{"version":3,"sources":["views/routes/myNotes/components/listNotes/components/NoteCard.module.scss","views/routes/myNotes/components/employeeNoteSidebar/EmployeeNoteSidebar.module.scss","views/routes/squad/components/squadTrends/SquadTrends.module.scss","views/components/primaryFlagDropdown/PrimaryFlagDropdown.module.scss","views/routes/squad/components/squadTrends/components/employeeListPopper/EmployeeListPopperItem.module.scss","views/routes/squad/components/squadTrends/components/flagChart/FlagChart.module.scss","views/components/shell/components/UserProfile.module.scss","views/components/charts/d3BubbleChart/D3BubbleChart.module.scss","views/routes/squad/components/roleChangeTable/RoleChangeTable.module.scss","views/components/shell/Shell.module.scss","views/routes/catchUps/components/myCatchUps/components/MemberRow/MemberRow.module.scss","views/routes/employeeJourney/EmployeeJourney.module.scss","views/routes/squad/components/squadFeed/components/SquadFeedTimelineItem.module.scss","views/routes/squad/Squad.module.scss","views/routes/employeeJourneys/components/employeeJourneysRow/EmployeeJourneysRow.module.scss","views/App.module.scss","views/routes/myNotes/components/listNotes/ListNotes.module.scss","views/routes/admin/Admin.module.scss","views/routes/squad/components/squadFeed/components/SquadFeedTimelineItemContent.module.scss","views/routes/squad/components/noteReview/components/NoteItemContent.module.scss","views/routes/catchUps/CatchUps.module.scss","views/routes/employeeJourney/components/roleChange/RoleChange.module.scss","views/routes/squad/components/talentAnalysisTool/components/employeeRow/EmployeeRow.module.scss","views/components/shell/components/search/Search.module.scss","views/components/EmployeeStatus/EmployeeStatus.module.scss","views/routes/myNotes/MyNotes.module.scss","views/routes/admin/components/manageRoles/ManageRoles.module.scss","views/components/squadNotSelected/SquadNotSelected.module.scss","views/routes/unauthorised/Unauthorised.module.scss","views/routes/catchUps/components/myCatchUps/components/FrequencySelector/FrequencySelector.module.scss","views/routes/catchUps/components/myCatchUps/components/GroupCard/GroupCard.module.scss","views/routes/catchUps/components/squadCatchUps/components/squadCatchUpItem/SquadCatchUpItem.module.scss","views/components/noAccessToApp/NoAccessToApp.module.scss","views/components/EmployeeStatus/StatusIcon/StatusIcon.module.scss","views/components/tagDropdown/TagDropdown.module.scss","views/routes/employeeJourney/components/roleChange/components/noRoleChangeSubmission/NoRoleChangeSubmission.module.scss","views/components/validationIcon/ValidationIcon.module.scss","views/components/markdownTextArea/MarkdownTextArea.module.scss","views/routes/squad/components/squadTrends/components/supportingOpportunitiesByMonth/SupportingOpportunitiesByMonthChart.module.scss","views/routes/catchUps/components/squadCatchUps/components/squadCatchUpItemSkeleton/SquadCatchUpItemSkeleton.module.scss","views/routes/myNotes/components/editNote/EditNote.module.scss","views/components/shell/components/nav/Nav.module.scss","views/components/loadingIndicator/LoadingIndicator.module.scss","views/routes/employeeJourney/components/employeeSidebar/components/longTermLeaveFlagCheckbox/LongTermLeaveFlagCheckbox.module.scss","views/routes/employeeJourney/components/employeeSidebar/components/longTermLeaveFlag/DialogWithDatepicker.module.scss","views/routes/employeeJourney/components/employeeSidebar/components/probation/Probation.module.scss","views/components/sensitiveAttribute/SensitiveAttribute.module.scss","views/components/faceToFaceDiscussionAttribute/FaceToFaceDiscussionAttribute.module.scss","views/components/tag/Tag.module.scss","views/routes/employeeJourney/components/employeeTimeline/components/backToTopButton/BackToTop.module.scss","views/components/roleChangeStatusChip/RoleChangeStatusChip.module.scss","views/routes/admin/components/manageSquads/AssignSquads.module.scss","views/routes/squad/components/noteReview/NoteReview.module.scss","views/routes/squad/components/squadTrends/components/chartHeader/ChartHeader.module.scss","views/components/customSelection/CustomSelection.module.scss","views/routes/squad/components/squadTrends/components/talentCodesByMonth/TalentCodesByMonthChart.module.scss","views/routes/squad/components/talentAnalysisTool/components/talentAnalysisToolTable/TalentAnalysisToolTable.module.scss","views/routes/squad/components/talentAnalysisTool/talentAnalysisTool.module.scss","views/components/employeeDropdown/EmployeeDropdown.module.scss","views/components/archivedChip/ArchivedChip.module.scss","views/components/avatar/Avatar.module.scss","views/components/shell/components/squadSelect/SquadSelect.module.scss","views/routes/employeeJourney/components/employeeSidebar/components/flightRisk/FlightRisk.module.scss","views/routes/employeeJourney/components/employeeSidebar/components/roleChangePathway/RoleChangePathway.module.scss","views/components/tab/Tab.module.scss","views/components/table/TablePaginationActions.module.scss","views/routes/admin/components/manageSquads/components/SquadEmployeeRow/SquadEmployeeRow.module.scss","views/routes/notFound/NotFound.module.scss","views/routes/squad/components/squadTrends/components/roleDistribution/RoleDistributionChart.module.scss","views/components/pageHeader/PageHeader.module.scss","views/routes/employeeJourneys/EmployeeJourneys.module.scss","views/routes/catchUps/components/myCatchUps/components/AddMemberForm/AddMemberForm.module.scss","views/routes/catchUps/components/myCatchUps/MyCatchUps.module.scss","views/routes/catchUps/components/squadCatchUps/SquadCatchUps.module.scss","views/routes/admin/components/manageRoles/components/changeAccess/ChangeAccessDialog.module.scss","views/routes/employeeJourney/components/employeeTimeline/components/noteTimelineItem/NoteTimelineItem.module.scss","views/routes/employeeJourney/components/employeeTimeline/EmployeeTimeline.module.scss","views/routes/squad/components/noteReview/components/NoteItem.module.scss","views/routes/squad/components/roleChangeTable/components/roleChangeSidePanel/RoleChangeSidePanel.module.scss","views/themes.ts","views/components/shell/components/nav/Nav.tsx","hooks/useNavigate.ts","hooks/useStore.ts","hooks/useGraph.ts","views/components/archivedChip/ArchivedChip.tsx","views/components/employeeDropdown/EmployeeDropdown.tsx","hooks/useUser.ts","hooks/usePermissions.ts","views/components/shell/components/search/Search.tsx","assets/purple-logo.svg","views/components/shell/components/logo/Logo.tsx","views/components/avatar/Avatar.tsx","hooks/useEmployeePhoto.ts","views/components/shell/components/UserProfile.tsx","hooks/useSecurity.ts","views/components/shell/components/squadSelect/SquadSelect.tsx","views/components/shell/Shell.tsx","hooks/useEmployeeJourney.ts","views/components/EmployeeSidebarDivider/EmployeeSidebarDivider.tsx","hooks/useFlags.ts","views/components/alertDialog/AlertDialog.tsx","views/routes/employeeJourney/components/employeeSidebar/components/updatedByInfoIcon/UpdatedByInfoIcon.tsx","views/components/primaryFlagDropdown/PrimaryFlagDropdown.tsx","views/components/loadingIndicator/LoadingIndicator.tsx","views/routes/employeeJourney/components/employeeSidebar/components/flightRisk/FlightRisk.tsx","views/routes/employeeJourney/components/employeeSidebar/components/flightRiskFlag/FlightRiskFlag.tsx","views/routes/employeeJourney/components/employeeSidebar/components/longTermLeaveFlagCheckbox/LongTermLeaveFlagCheckbox.tsx","views/routes/employeeJourney/components/employeeSidebar/components/longTermLeaveFlag/LeaveDatepicker.tsx","views/routes/employeeJourney/components/employeeSidebar/components/longTermLeaveFlag/DialogWithDatepicker.tsx","views/routes/employeeJourney/components/employeeSidebar/components/longTermLeaveFlag/LongTermLeaveFlag.tsx","views/routes/employeeJourney/components/employeeSidebar/components/roleChangePathwayTimeframe/TimeframeDropdown.tsx","views/routes/employeeJourney/components/employeeSidebar/components/roleChangePathway/RoleChangePathwayControl.tsx","views/routes/employeeJourney/components/employeeSidebar/components/roleChangePathwayFlag/DialogWithDropdown.tsx","views/routes/employeeJourney/components/employeeSidebar/components/roleChangePathwayFlag/RoleChangePathwayFlag.tsx","views/routes/employeeJourney/components/employeeSidebar/components/SidebarContent/SidebarContent.tsx","views/routes/employeeJourney/components/employeeSidebar/components/probation/Probation.tsx","domain/store/util.ts","domain/store/employeeJourney/EmployeeStatusModel.ts","views/components/EmployeeStatus/StatusIcon/StatusIcon.tsx","views/components/EmployeeStatus/EmployeeStatus.tsx","views/routes/employeeJourney/components/employeeSidebar/components/status/StatusFlag.tsx","views/routes/employeeJourney/components/employeeSidebar/EmployeeSidebar.tsx","views/components/sensitiveAttribute/SensitiveAttribute.tsx","views/components/faceToFaceDiscussionAttribute/FaceToFaceDiscussionAttribute.tsx","views/components/tag/Tag.tsx","views/routes/myNotes/components/listNotes/components/NoteStatusChip.tsx","views/routes/employeeJourney/components/employeeTimeline/components/noteTimelineItem/NoteTimelineItem.tsx","views/components/tagDropdown/TagDropdown.tsx","hooks/useTags.ts","views/routes/employeeJourney/components/employeeTimeline/components/backToTopButton/BackToTopButton.tsx","hooks/useBackToTopButton.ts","views/routes/employeeJourney/components/employeeTimeline/EmployeeTimeline.tsx","views/components/roleChangeStatusChip/RoleChangeStatusChip.tsx","views/routes/employeeJourney/components/roleChange/components/noRoleChangeSubmission/NoRoleChangeSubmission.tsx","hooks/useRoleChange.ts","shared/constants/Positions.ts","domain/store/employeeJourney/RoleChangeModel.ts","views/components/validationIcon/ValidationIcon.tsx","views/routes/employeeJourney/components/roleChange/components/roleChangeCheckbox/RoleChangeCheckbox.tsx","views/routes/employeeJourney/components/roleChange/components/roleChangeCycleRadioGroup/RoleChangeCycleRadioGroup.tsx","views/routes/employeeJourney/components/roleChange/components/roleChangeSkills/components/skillRating/SkillRating.tsx","views/routes/employeeJourney/components/roleChange/components/roleChangeSkills/RoleChangeSkills.tsx","views/components/navigationAlert/NavigationAlert.tsx","views/routes/employeeJourney/components/roleChange/components/roleChangeBusinessCaseAttachment/RoleChangeBusinessCaseAttachment.tsx","views/routes/employeeJourney/components/roleChange/RoleChange.tsx","views/routes/employeeJourney/components/roleChange/RoleChangesList.tsx","views/routes/employeeJourney/EmployeeJourney.tsx","views/components/markdownTextArea/MarkdownTextArea.tsx","views/routes/myNotes/components/editNote/EditNote.tsx","views/components/tab/Tab.tsx","views/routes/myNotes/components/listNotes/components/NoteCard.tsx","views/routes/myNotes/components/listNotes/RecentList.tsx","views/routes/myNotes/components/listNotes/DraftList.tsx","views/routes/myNotes/components/listNotes/ListNotes.tsx","hooks/useQueryParams.ts","views/routes/myNotes/components/employeeNoteSidebar/EmployeeNoteSidebar.tsx","views/routes/myNotes/MyNotes.tsx","hooks/useAdmin.ts","views/routes/admin/components/manageSquads/AssignSquads.tsx","views/components/squadNotSelected/SquadNotSelected.tsx","views/routes/admin/components/manageRoles/components/employeeListRow/EmployeeListRow.tsx","views/routes/admin/components/manageRoles/components/changeAccess/ChangeAccessDialog.tsx","views/components/table/TablePaginationActions.tsx","views/routes/admin/components/manageRoles/ManageRoles.tsx","views/routes/admin/components/manageSquads/components/SquadEmployeeRow/SquadEmployeeRow.tsx","views/routes/admin/components/manageSquads/components/AssignSquadDialog/AssignSquadDialog.tsx","views/routes/admin/Admin.tsx","views/routes/notFound/NotFound.tsx","views/routes/squad/components/squadFeed/components/SquadFeedTimelineItemContent.tsx","views/routes/squad/components/squadFeed/components/SquadFeedTimelineItemAction.tsx","views/routes/squad/components/squadFeed/components/SquadFeedTimelineItem.tsx","views/routes/squad/components/squadFeed/components/SquadFeedTimeline.tsx","views/routes/squad/components/squadFeed/components/SquadFeedTimelineGroups.tsx","views/routes/squad/components/squadFeed/SquadFeed.tsx","views/ViewConstants.ts","views/routes/squad/components/noteReview/components/NoteItemContent.tsx","views/routes/squad/components/noteReview/components/NoteItem.tsx","views/routes/squad/components/noteReview/NoteReview.tsx","views/routes/squad/components/squadTrends/components/chartHeader/ChartHeader.tsx","hooks/useTrends.ts","hooks/useEmployeeListPopper.ts","views/routes/squad/components/squadTrends/components/employeeListPopper/EmployeeListPopperItem.tsx","views/routes/squad/components/squadTrends/components/employeeListPopper/EmployeeList.tsx","views/routes/squad/components/squadTrends/components/employeeListPopper/EmployeeListPopper.tsx","views/routes/squad/components/squadTrends/components/roleDistribution/RoleDistributionChart.tsx","views/components/charts/d3BubbleChart/types.ts","views/components/charts/d3BubbleChart/d3chart.ts","views/routes/squad/components/squadTrends/ColourGenerator.ts","views/components/charts/d3BubbleChart/D3BubbleChartTooltip.tsx","views/components/charts/d3BubbleChart/D3BubbleChart.tsx","views/routes/squad/components/squadTrends/components/talentCodes/TalentCodesChart.tsx","views/routes/squad/components/squadTrends/components/flagChart/FlagItem.tsx","views/routes/squad/components/squadTrends/components/flagChart/FlagChart.tsx","views/components/customSelection/CustomSelection.tsx","views/routes/squad/components/squadTrends/components/supportingOpportunities/SupportingOpportunitiesChart.tsx","views/routes/squad/components/squadTrends/components/customColorCheckBox/CustomColorCheckBox.tsx","views/routes/squad/components/squadTrends/components/talentCodesByMonth/TalentCodesByMonthChart.tsx","views/routes/squad/components/squadTrends/components/supportingOpportunitiesByMonth/SupportingOpportunitiesByMonthChart.tsx","views/routes/squad/components/squadTrends/SquadTrends.tsx","hooks/useTalentAnalysis.ts","views/components/table/SortHelper.ts","views/components/table/SortTableHeader.tsx","views/routes/squad/components/alertCheckbox/AlertCheckbox.tsx","views/routes/squad/components/talentAnalysisTool/components/employeeRow/LongTermLeaveCheckbox.tsx","views/routes/squad/components/talentAnalysisTool/components/employeeRow/RoleChangePathwaySelector.tsx","views/routes/squad/components/talentAnalysisTool/components/employeeRow/TalentCodeSelector.tsx","views/routes/squad/components/talentAnalysisTool/components/employeeRow/EmployeeRow.tsx","hooks/useFlightRiskService.ts","hooks/useLongTermLeaveService.ts","hooks/useRoleChangePathwayService.ts","views/routes/squad/components/talentAnalysisTool/components/talentAnalysisToolTable/TalentAnalysisToolTable.tsx","hooks/usePagingCache.ts","views/routes/squad/components/talentAnalysisTool/components/employeeStatusSelect/EmployeeStatusSelect.tsx","views/routes/squad/components/talentAnalysisTool/components/multiSelect/multiSelect.tsx","views/routes/squad/components/talentAnalysisTool/components/singleSelect/singleSelect.tsx","views/routes/squad/components/talentAnalysisTool/talentAnalysisTool.tsx","views/components/table/TableFilterSelect/TableFilterSelect.tsx","views/routes/squad/components/roleChangeTable/components/employeeWithRoleChangeRow/EmployeeWithRoleChangeRow.tsx","views/routes/squad/components/roleChangeTable/components/roleChangeSidePanel/RoleChangeSidePanel.tsx","views/routes/squad/components/roleChangeTable/RoleChangeTable.tsx","views/routes/squad/Squad.tsx","views/components/pageHeader/PageHeader.tsx","views/routes/employeeJourneys/components/employeeJourneysRow/EmployeeJourneysRow.tsx","views/routes/employeeJourneys/EmployeeJourneys.tsx","views/routes/unauthorised/Unauthorised.tsx","hooks/useCatchUpGroups.ts","views/routes/catchUps/components/myCatchUps/components/AddGroupDialog/AddGroupDialog.tsx","views/routes/catchUps/components/myCatchUps/components/FrequencySelector/FrequencySelector.tsx","views/routes/catchUps/components/myCatchUps/components/AddMemberForm/AddMemberForm.tsx","views/routes/catchUps/components/myCatchUps/components/MemberRow/MemberRow.tsx","views/routes/catchUps/components/myCatchUps/components/RenameGroupDialog/RenameGroupDialog.tsx","views/routes/catchUps/components/myCatchUps/components/GroupCard/GroupCard.tsx","views/routes/catchUps/components/myCatchUps/MyCatchUps.tsx","views/routes/catchUps/components/squadCatchUps/components/squadCatchUpItem/SquadCatchUpItem.tsx","views/routes/catchUps/components/squadCatchUps/components/squadCatchUpItemSkeleton/SquadCatchUpItemSkeleton.tsx","views/routes/catchUps/components/squadCatchUps/SquadCatchUps.tsx","hooks/useSquadCatchUps.ts","views/routes/catchUps/CatchUps.tsx","views/routes/Routes.tsx","views/components/notification/Notifications.tsx","views/components/noAccessToApp/NoAccessToApp.tsx","theme.ts","views/App.tsx","hooks/useAuthentication.tsx","domain/store/TagsModel.ts","domain/store/NoteModel.ts","domain/store/employeeJourney/FlightRiskModel.ts","domain/store/employeeJourney/LongTermLeaveModel.ts","domain/store/employeeJourney/PrimaryFlagModel.ts","domain/store/employeeJourney/RoleChangePathwayModel.ts","domain/store/employeeJourney/EmployeeModel.ts","domain/store/employeeJourney/EmployeeJourneyModel.ts","domain/store/FlagsModel.ts","domain/store/singletons/GraphModel.ts","domain/store/singletons/NotificationModel.ts","domain/store/singletons/SecurityModel.ts","domain/store/trends/MonthlyTrendModel.ts","domain/store/trends/TalentCodeTrendsByMonthModel.ts","domain/store/trends/SupportingOpportunitiesByMonthModel.ts","domain/store/trends/TrendsEmployeesModel.ts","domain/store/trends/SupportingOpportunitiesWithEmployeesModel.ts","domain/store/trends/TrendsModel.ts","domain/store/PermissionsModel.ts","domain/store/ReviewModel.ts","domain/store/UserModel.ts","domain/store/talentAnalysisTool/TalentAnalysisToolModel.ts","domain/store/admin/EmployeeListModel.ts","domain/store/admin/SquadAssignmentEmployeeListModel.ts","domain/store/admin/AdminModel.ts","domain/store/catchUps/CatchUpsModel.ts","domain/store/PagingCacheModel.ts","domain/store/catchUps/SquadCatchUpsModel.ts","domain/store/RootStoreModel.ts","appSettings.ts","auth/AuthenticationTypes.ts","auth/AuthenticationProvider.ts","index.tsx","views/routes/squad/components/squadTrends/components/employeeListPopper/EmployeeListPopper.module.scss","views/routes/employeeJourney/components/employeeSidebar/EmployeeSidebar.module.scss","views/routes/admin/components/manageRoles/components/employeeListRow/EmployeeListRow.module.scss"],"names":["module","exports","color","siteDefault","catskillWhite","vibrantBlue","white","hollywoodCerise","bigStone","lemon","puertoRico","electricLime","treePoppy","tePapaGreen","blueDianne","fiord","athensGray","alabaster","codgray","sunglo","texasRose","pictonBlue","deYork","boulder","mineShaft","veryLightPink","pinkishRed","brownishGrey","sapGreen","aliceBlue","Nav","_ref","className","items","currentNav","_jsx","styles","navContainer","join","children","map","item","index","isActive","active","undefined","Link","to","link","onClick","e","preventDefault","title","useNavigate","history","useHistory","route","queryParams","push","pathname","search","querystring","stringify","useStore","store","useContext","StoreContext","Error","useGraph","graph","ArchivedChip","Chip","label","variant","size","archivedChip","EmployeeDropdown","props","searchForEmployees","_useState","useState","_useState2","_slicedToArray","value","setValue","_useState3","_useState4","loading","setLoading","_useState5","_useState6","inputValue","setInputValue","_useState7","_useState8","options","setOptions","inputTextRef","useRef","fetchUsers","useCallback","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","includeFormerEmployees","abrupt","sent","stop","_x","apply","arguments","useEffect","global","window","clearTimeout","timer","setTimeout","_callee2","users","_context2","fetchUsersDebounced","defaultValue","Autocomplete","getOptionLabel","option","displayName","autoComplete","filterSelectedOptions","onInputChange","event","newInputValue","getOptionSelected","idpId","onChange","clearCalled","_inputTextRef$current","current","blur","handleChange","onBlur","renderInput","params","TextField","_objectSpread","fullWidth","placeholder","textBoxClassName","InputLabelProps","shrink","InputProps","inputRef","endAdornment","_jsxs","React","Fragment","CircularProgress","renderOption","searchResult","isFormerEmployee","useUser","user","usePermissions","permissions","Search","navigate","canSearchForFormerEmployees","employees","setIncludeFormerEmployees","employee","clearCallback","concat","EMPLOYEE_JOURNEYS_ROUTE_PATH","headerSearch","FormControlLabel","control","Checkbox","classes","root","checkbox","colorSecondary","checked","_","_extends","Object","assign","target","i","length","source","key","prototype","hasOwnProperty","call","this","_objectWithoutProperties","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","d","fill","SvgPurpleLogo","svgRef","titleId","xmlns","viewBox","ref","id","ForwardRef","Logo","MyLogo","idpIdToColor","input","hash","charCodeAt","c","toString","toUpperCase","substring","Avatar","givenName","familyName","_useEmployeePhoto","employeeId","searchForEmployeePhoto","photo","setPhoto","isLoading","then","photoUri","catch","finally","useEmployeePhoto","initials","altText","cn","Skeleton","style","width","height","MuiAvatar","textDecoration","alt","src","backgroundColor","UserProfile","_useUser","squadName","signOut","security","_React$useState","_React$useState2","menuAnchorElement","setMenuAnchorElement","squadDisplayName","toLowerCase","Button","avatarButton","Boolean","loggedInUserMenuOpen","currentTarget","avatar","Menu","paper","loggedInUserMenu","list","loggedInUserMenuList","anchorEl","getContentAnchorEl","keepMounted","open","onClose","anchorOrigin","vertical","horizontal","transformOrigin","ListItem","disabled","signedInUser","menuAvatar","MenuItem","FontAwesomeIcon","icon","faSignOutAlt","SquadSelect","observer","canViewAllSquads","selectedSquad","setSquad","getAllSquads","assignedSquads","squads","setSquads","s","Array","from","Set","_toConsumableArray","_Fragment","roundInputBox","v","Shell","_usePermissions","canViewSquadTab","canViewEmployeeTab","canViewNoteTab","canManageRoles","canViewCatchupGroupTab","setCurrentNav","activeNav","setActiveNav","navs","setNav","topLevelRoute","split","SQUAD_ROUTE_PATH","CREATE_NOTE_ROUTE_PATH","CATCH_UPS_ROUTE_PATH","ADMIN_ROUTE_PATH","listen","location","header","logoContainer","nav","searchContainer","searchInput","main","useEmployeeJourney","employeeJourney","useParams","_employeeJourney$empl","unloadJourney","loadJourney","state","UNAUTHORISED_ROUTE_PATH","EmployeeSidebarDivider","Box","marginTop","marginBottom","Divider","useFlags","flags","AlertDialog","onDisagreeClick","Dialog","isOpen","DialogTitle","DialogContent","DialogContentText","text","content","DialogActions","onAgreeClick","autoFocus","agreeDisabled","agreeButtonText","disagreeButtonText","UpdatedByInfoIcon","Tooltip","updatedByDisplayName","moment","modifiedDateTime","format","InfoOutlined","PrimaryFlagDropdown","_employee$flags$prima","_employee$flags$prima2","journey","flagStore","isSubmitting","setIsSubmitting","showAlertDialog","setShowAlertDialog","_useState9","_useState10","flagIdToUpdate","setFlagIdToUpdate","_useState11","_useState12","showTalentCodeInfo","setShowTalentCodeInfo","_useState13","_useState14","flagModificationInfo","setFlagModificationInfo","flagId","primaryFlag","isLoaded","all","_employee$flags$prima3","_employee$flags$prima4","_employee$flags$prima5","_employee$flags$prima6","modifiedBy","resetPrimaryFlagUpdateStates","Select","labelId","disableUnderline","IconComponent","propsWithDropdownIcon","dropdownIcon","dropdownIconContainer","faChevronCircleDown","selectInput","flag","name","component","updateByInfo","_flags$primaryFlag","flagRequest","employeeIdpId","update","response","status","notifications","addError","LoadingIndicator","container","FlightRisk","flightRiskStatusModelValue","onToggle","display","alignItems","loadingIndicator","isFlightRisk","inputProps","Typography","fontWeight","FlightRiskFlag","_flightRiskStatusMode","flightRiskStatusModel","employeeDisplayName","isFlightRiskDialogOpen","setIsFlightRiskDialogOpen","isLoadingFlightRisk","setLoadingFlightRisk","resetFlightRiskDialogStates","toggleFlightRiskStatus","r","_e$response","_e$response2","LongTermLeaveFlagCheckbox","longTermLeave","canEdit","isOnLongTermLeave","readOnly","noWrap","expectedReturn","LeaveDatepicker","inputContainer","datePicker","type","isUpdating","onDateChange","min","DialogWithDatepicker","currentExpectedReturn","isDisabled","LongTermLeaveFlag","_longTermLeaveModel$v","_longTermLeaveModel$v2","_longTermLeaveModel$v3","longTermLeaveModel","isDialogOpen","setIsDialogOpen","setIsLoading","setIsDisabled","employeeExpectedReturn","setExpectedReturn","filterNull","newExpectedReturn","setNewExpectedReturn","resetDialogStates","toggleLongTermLeaveStatus","TimeframeDropdown","isUpdatingTimeframe","onSelectChange","values","timeframes","RoleChangePathwayControl","roleChangePathwayModelValue","onSelectChangeOnSidebar","roleChangePathway","hasRoleChangePathway","timeframe","DialogWithDropdown","_props$oldNewTimefram","oldNewTimeframe","oldValue","newValue","filterMoreThanOneYear","numberOfMonths","bold","RoleChangePathwayFlag","_roleChangePathwayMod","_roleChangePathwayMod2","roleChangePathwayModel","employeeTimeframe","currentTimeframe","setCurrentTimeframe","filterZero","newTimeframe","setNewNumberOfMonth","toggleRoleChangePathwayStatus","SidebarContent","heading","hasChildren","details","Probation","probation","overrideDisabledStyle","disabledLabel","disabledCheckbox","isInProbation","endDate","flow","generator","origFlow","getEnv","model","origGetEnv","getDefaultAjaxInstance","auth","ky","create","timeout","retry","limit","prefixUrl","origin","hooks","beforeRequest","request","getIsSignedIn","t0","headers","t1","getApiAccessToken","t2","t3","append","LoadingStateModel","types","optional","enumeration","EmployeeStatusModifier","identifier","string","toDictionary","EmployeeStatusLabels","EmployeeStatusModelValue","number","EmployeeStatusModel","maybeNull","actions","self","updateEmployeeStatus","statusData","_getEnv","ajax","result","post","json","StatusIcon","statusContainer","circle","EmployeeStatus","_props$employeeStatus","_props$employeeStatus2","_props$employeeStatus3","_props$employeeStatus4","employeeStatus","flexDirection","IconButton","editButton","faEdit","employeeStatusModelValue","ratingContainer","StatusFlag","_employeeStatusModel$","_employeeStatusModel$2","_employeeStatusModel$3","employeeStatusModel","setStatus","resetStatusDialogStates","FormControl","RadioGroup","Radio","_flags$status","statusRequest","parseInt","EmployeeSidebar","employeeSidebar","employeeDetailsContainer","avatarContainer","position","detailsContainer","tenureFormatted","lastRetroFormatted","emailAddress","purpleMeLink","href","process","LinkIcon","statusCodeContainer","flightRisk","flagsContainer","talentCodeContainer","SensitiveAttribute","isSensitive","Grid","textAlign","attribute","Visibility","fontSize","VisibilityOff","FaceToFaceDiscussionAttribute","isFaceToFaceDiscussion","ForumIcon","Tag","materialOverride","tagComponent","NOTE_STATUS_TO_LABEL","published","pending","draft","sensitive","none","NoteStatusChip","note","sensitivity","chipOverride","NoteTimelineItem","editable","deletable","onEdit","onDelete","editDisabled","showAll","setShowAll","date","eventDateMoment","local","_parseContent","allContent","showMoreButtonRequired","reducedContent","parseContent","noteTimelineItemComponent","dateContainer","noteContainer","noteContentContainer","headerContainer","subject","isPeopleLeaderConversation","plChatChip","attributes","actionButtonBar","noteId","deleteButton","faTrash","tagsContainer","tags","tag","reviewRequired","contentContainer","ReactMarkdown","markdownPreview","skipHtml","contentFade","authorContainer","author","showMoreContainer","TagDropdown","tagStore","_React$useState3","_React$useState5","_React$useState6","setValues","multiple","tagId","renderTags","p","chip","_defineProperty","isSensitiveChip","chipToDelete","filter","Lock","BackToTopButton","scrollToTop","edge","tabIndex","role","faArrowAltCircleUp","useBackToTopButton","scrollableContainerRef","createRef","showBackToTopButton","setShowBackToTopButton","checkIfBackToTopButtonIsNecessary","isNecessary","scrollTop","scrollHeight","clientHeight","observableEvents","fromEvent","scrollEventSubscription","merge","pipe","throttleTime","asapScheduler","leading","trailing","subscribe","unsubscribe","scrollToTopOfTimeline","_scrollableContainerR","scrollTo","top","behavior","Notes","notes","editNoteHandler","deleteNoteHandler","currentYear","noteEntries","entries","notesContainer","_ref2","_ref3","monthNotes","monthTitle","monthNotesContainer","canDelete","EmployeeTimeline","loadNotes","_useEmployeeJourney2","selectedDateRange","setDateRange","selectedTags","setSelectedTags","dateRangeValidationError","setDateRangeValidationError","_useBackToTopButton","noteIdToDelete","setNoteIdToDelete","groupedNotes","noteDate","_selectedDateRange","fromDate","toDate","isSameOrAfterFromDate","isSameOrAfter","isBeforeToDate","isBefore","clone","add","noteTags","t","noteTagsAreSelected","reduce","acc","cur","resetNoteDeleteStates","employeeTimelineComponent","timelineContainer","filterContainer","DateRangePicker","calendars","startText","endText","inputFormat","maxDate","startProps","endProps","dateRange","startDate","error","helperText","onError","reason","isSame","addNoteButtonContainer","containedPrimary","backToTopButtonContainer","EDIT_NOTE_ROUTE_PATH","deleteNote","addSuccess","emptyState","faFile","_selectedDateRange2","isFiltered","backToTopContainer","RoleChangeStatusChip","NoRoleChangeSubmissions","direction","justify","faExclamationCircle","spacing","useRoleChange","roleChange","Positions","ratings","description","RoleChangeModel","loadingState","getCurrentRoleChange","roleChangeId","get","searchParams","errorLog","getAllRoleChangeSubmissions","_getEnv2","getRoleChangeSubmissionsForSquad","_callee3","_getEnv3","_context3","upsertRoleChange","_callee4","_getEnv4","_context4","revertCurrentRoleChangeToDraft","_callee5","_getEnv5","_context5","approveRoleChangeForEmployee","_callee6","shouldApprove","approverAdditionalComments","_getEnv6","_context6","approveRoleChange","downloadRoleChangeBusinessCaseAttachment","_callee7","fileName","_getEnv7","_context7","blob","loadSkills","_callee8","capabilityId","roleNames","_getEnv8","searchRoleNames","roleName","_context8","URLSearchParams","views","currentRoleChangeCycle","getRoleChangeCycle","createdAt","isCurrentMonthInFirstCycle","slice","skipCurrentPromotionCycle","getRatingDescriptionFromValue","_ratings$find","find","getStatus","isDraft","isApproved","ValidationIcon","validationIconContainer","faTimesCircle","validationError","faCheckCircle","validationSuccess","RoleChangeCheckbox","selectedValue","dataTestId","formInputItem","reverse","RoleChangeCycleRadioGroup","cycles","roleChangeDate","getCurrentCycles","formItem","row","SkillRating","skill","select","currentRating","handleSkillChange","coreValueId","rating","RoleChangeSkills","setAnchorEl","selectedItem","positionToUpdate","setPositionToUpdate","setIsOpen","isOpenTarget","setIsOpenTarget","roleChangeSkills","withValidation","showValidationErrors","currentRoleSkills","ClickAwayListener","onClickAway","RatingDescription","FormGroup","currentRole","coreValues","_props$currentRoleSki","currentRoleSkillRatings","handleCurrentRoleSkillChange","showValidationError","formError","validationIcon","targetRole","targetRoleTitle","targetRoleSkills","onSelected","dataSource","labelPlacement","_props$targetRoleSkil","targetRoleSkillRatings","handleTargetRoleSkillChange","errorText","skillsRatingDescription","faQuestionCircle","Paper","ratingDescription","NavigationAlert","NavigationPrompt","when","onCancel","onConfirm","for","RoleChangeBusinessCaseAttachment","fileModified","setFileModified","allowed_types","accept","selectedFiles","selectedFile","includes","Promise","resolve","reject","reader","FileReader","onloadend","base64","contentType","readAsDataURL","attachment","onBusinessCaseFileModified","preFileUploadCheck","files","hidden","htmlFor","attachmentButton","faUpload","attachmentContainer","onDownload","faTimes","RoleChange","_employee$position","setSelectedRoleChange","setRoleChangeHasStarted","roleChangeHasStarted","_useEmployeeJourney","positions","_useRoleChange","_useStore$notificatio","roleChanges","employeeCurrentRole","positionsArray","confirmationDialogOpen","setConfirmationDialogOpen","setCurrentRoleSkillRatings","initialCurrentRoleSkillRatings","setInitialCurrentRoleSkillRatings","setTargetRoleSkillRatings","initialTargetRoleSkillRatings","setInitialTargetRoleSkillRatings","isSkillsLoaded","setIsSkillsLoaded","_useState15","_useState16","lastModifiedBy","setLastModifiedBy","_useState17","hasCompletedRetros","noPerformanceImprovementPlan","businessCaseAttachmentFileName","businessCaseAttachmentContentType","businessCaseAttachmentFileContent","businessCaseAttachmentContentModified","errors","submitterAdditionalComments","_useState18","formState","setFormState","_useState19","_useState20","initialFormState","setInitialFormState","_useState21","_useState22","validationQueue","setValidationQueue","_useState23","_useState24","showSkillRatingValidationIcons","setShowSkillRatingValidationIcons","_useState25","_useState26","setCurrentRoleSkills","_useState27","_useState28","setTargetRoleSkills","handleRoleSkillChange","skills","setter","tempSkills","skillRating","isReadOnly","loadRoleSkills","skillRatings","requireCurrentRoleSkills","Associate","capability","currentRs","x","targetRs","currentRoleRatings","findIndex","y","targetRoleRatings","handleSaveAsDraft","combinedSkillsRatings","saveAsDraft","err","_err$response5","_err$response6","utc","lastModifiedAtUtc","getValidationError","isNotOnProbation","noPerformancePlan","prerequisites","every","businessCaseAttachment","ManagingConsultant","PrincipalConsultant","handleValidateFormItem","newState","getValidationStatus","handleFormStateChange","forEach","isFormStateDirty","some","_initialCurrentRoleSk","_initialTargetRoleSki","formContainer","titleContainer","lastModified","file","url","URL","createObjectURL","Blob","a","document","createElement","setAttribute","body","appendChild","download","click","removeChild","_err$response7","commentsContainer","multiline","buttonsContainer","backButton","_err$response3","_err$response4","faPaperPlane","faSave","combinedSkillRatings","_err$response","_err$response2","RoleChangesList","newRoleChangeHasBeenStarted","setNewRoleChangeHasBeenStarted","allRoleChanges","setAllRoleChanges","selectedRoleChange","previousRole","handleRoleChangeHasStarted","canEditRoleChange","roleChangeList","roleChangeAction","startIcon","AddBoxIcon","previousRoleChangeContainer","roleDetails","EmployeeJourney","canView","useLocation","canViewRoleChanges","tabItems","employeeTimeline","visible","isInCareerFramework","activeTab","employeeJourneyComponent","AppBar","squadAppBar","Tabs","centered","indicator","Tab","appBarTab","tabBodyContainer","Switch","Route","path","Redirect","MarkdownTextArea","isFocused","setIsFocused","onClickHandler","onFocus","markdownInput","SUBMISSION_TEXT","EditNote","_formState$tags","_formState$tags2","formTitle","mode","showSensitivity","onValidateFormItem","onSubmitNote","onSubmitDraft","onUndoChanges","isOkToSaveAsDraft","getFormItemClass","pristine","editNoteComponent","formSection","onSubmit","max","informationIcon","informationText","sensitiveText","markdownTextContainer","markdownSupportedText","rel","faUndo","rightButtonsContainer","noteStatus","faArrowCircleRight","TabComponent","testId","NoteCard","_note$modifiedDateMom","selected","divider","ContainerProps","card","namespaceURI","button","ListItemAvatar","ListItemText","primary","subjectContainer","subjectTitle","modifiedDate","modifiedDateMoment","createdDateMoment","fromNow","secondaryTypographyProps","secondary","ListItemSecondaryAction","deleteContainer","Delete","RecentList","previous","loadSubmittedNotes","onAgreeClickDeleteNote","resetForm","replace","List","array","selectedNoteId","DraftList","drafts","loadDraftNotes","ListNotes","showDrafts","setActiveTab","noteListComponent","xs","newNoteButtonContainer","tabHeaderContainer","selectedIndex","useQueryParams","parse","EmployeeNoteSidebar","_flags$status$value$s","_flags$status$value","_flags$status$value$s2","_flags$status2","_flags$status2$value","_flags$primaryFlag$va","_flags$primaryFlag$va2","_flags$flightRisk","_flags$flightRisk$val","_flags$roleChangePath","_flags$roleChangePath2","_flags$longTermLeave","_flags$longTermLeave$","employeeNoteSidebar","RouterLink","FlagText","flagsNoTextTransform","MyNotes","_initialFormState$sub","userStore","loadEmployee","setShowDrafts","setisOkToSaveAsDraft","redirect","setRedirect","alertDialog","setAlertDialog","setEmployee","isLoadingEmployee","setIsLoadingEmployee","reset","canBypassReview","_step","_iterator","_createForOfIteratorHelper","n","done","f","_formState$employee$i","_formState$employee","setFormStateEmployee","currentEmployeeId","searchForEmployee","foundEmployee","_formState$employee2","_initialFormState$emp","_initialFormState$tag","origIds","currentIds","getNoteById","Number","loadEditNote","createNoteRequest","eventDate","saveNote","noteRequest","_x2","handleSubmitNote","_ref4","_employee","handleValidation","handleSubmitDraft","_ref5","_employee2","_formState$tags3","handleDraftValidation","_formState$tags4","trim","_formState$tags5","diff","newErrorState","onAgreeClickRestoreInitialFormValues","sm","noteListContainer","noteFormContainer","shouldShowAlert","Hidden","mdDown","employeeProfileContainer","useAdmin","admin","AssignmentState","SquadNotSelected","iconColor","faInfoCircle","EmployeeListRow","canChangeAccess","onAssignEmployee","TableRow","TableCell","nameCell","nameCellRoot","nameLink","forbidden","positionCell","accessLevelDisplayName","noAccessRequested","getAccessLevelValue","level","ChangeAccessDialog","_useStore","_useAdmin$employees","sendChangeAccessLevelInvitation","sendingRoleInvitationState","getLastChangeAccessLevelInvitationForEmployee","squadEmployees","loadSquadEmployees","squadEmployeesState","loadEmployees","squadFilter","setSquadFilter","accessLevel","filteredEmployees","setFilteredEmployees","lastInvitationForRole","setLastInvitationForRole","requestedRole","filterEmployees","_props$employee$assig","handleSubmit","closeDialog","maxWidth","closeButton","CloseIcon","employeeDetails","faKey","keyIcon","FormLabel","focused","accessSelection","rightPanel","employeeList","employeeNamesContainer","_e$assignedSquads","buttonContainer","disableElevation","buttonIcon","lastInvitationContainer","lastInvitationText","requestedRoleDisplayName","requesterDisplayName","requestDate","resendLink","TablePaginationActions","count","page","rowsPerPage","onChangePage","FirstPageIcon","KeyboardArrowLeft","Math","ceil","KeyboardArrowRight","LastPageIcon","ManageRoles","setPage","setRowsPerPage","searchedEmployee","setSearchedEmployee","showAllUnknownRoles","setShowAllUnknownRoles","employeeToAssign","setEmployeeToAssign","changeAccessDialogIsOpen","setChangeAccessDialogIsOpen","pattern","RegExp","givenNameMatches","match","sort","b","localeCompare","familyNameMatches","handleEmployeeAssignment","tableControls","TableContainer","Table","TableHead","TableBody","employeeAccessLevel","k","TablePagination","ActionsComponent","onChangeRowsPerPage","SquadEmployeeRow","_employee$assignedSqu","assignEmployee","align","AssignSquadDialog","allSquads","saveDialog","initialAssignedSquads","squadSelectionChanged","isEqual","sortBy","selectedSquads","allPossibleSquadsAreDeselected","assignSquads","SquadAssignment","setSelectedSquads","confirmation","setConfirmation","squad","addRemoveSquad","_employee$assignedSqu2","AssignSquads","_useAdmin$SquadAssign","squadAssignmentEmployees","loadEmployeesEligibleForSquadAssignment","squadAssignmentEmployeesSearch","searchEmployeesEligibleForSquadAssignment","selectedEmployee","setSquadAssignmentEmployees","searchState","searchValue","setSearchValue","setAllSquads","Closed","currentAssignmentState","setCurrentAssignmentState","searchEmployee","debounce","query","isEmpty","allowedAccessSquads","newSquadList","handleClose","getSnapshot","noOptionsText","margin","mt","AssignSquad","AssignRole","Admin","canAssignSquads","appBar","NotFound","notFoundRoot","SquadFeedTimelineItemContent","_cn","needsFade","setNeedsFade","_item$current$clientH","_item$current","rootOpen","readMore","readMoreOpen","readMoreButton","SquadFeedTimelineItemAction","menuEl","setMenuEl","MoreVert","Person","SquadFeedTimelineItem","_note$modifiedDateMom2","connected","isFirstOfDate","TimelineItem","TimelineOppositeContent","dateStamp","TimelineSeparator","TimelineDot","TimelineConnector","TimelineContent","Card","mx","CardHeader","plChat","nameContainer","tagContainer","action","CardContent","SquadFeedTimeline","group","startOf","valueOf","Timeline","SquadFeedTimelineGroups","groups","_b$modifiedDateMoment","_a$modifiedDateMoment","SquadFeed","loadSquadNotes","setNotes","hasMore","setHasMore","initialLoadHasCompleted","setInitialLoadHasCompleted","loadNextPage","combinedNotes","totalCount","InfiniteScroll","loadMore","loader","useWindow","Container","_cur$modifiedDateMome","NoteItemContent","readMoreBtn","NoteItemHeader","reviewStatus","NoteItem","onNoteApproved","review","selection","setSelection","isValidSelection","noteItem","visibilitySelector","menuItem","menuItemIcon","xlButton","updateNoteSensitivity","endIcon","ChevronRightRounded","sensitiveInfoText","NoteReview","_useUser$review","getNote","getNotes","updateReviewState","reviewState","shouldShowOtherNotes","setShouldShowOtherNotes","initialSquad","resetPage","swapView","buttonSwitcher","ChartHeader","subHeader","useTrends","trends","useEmployeeListPopper","_React$useState4","offset","setOffset","ignoreNextClose","setIgnoreNextClose","handleClick","EmployeeListPopperItem","getEmployeeId","tableCell","linkToEmployee","EmployeeList","padding","itemsPerRow","emptyCell","tableCellAsPadding","labelDisplayedRows","rowsPerPageOptions","EmployeeListPopper","horizontalOffset","verticalOffset","overflow","rect","getBoundingClientRect","center","left","right","windowLimit","documentElement","clientWidth","calculateOverflow","popperOffset","arrowOffset","employeesFilteredByTimeFrame","roleChangeTimeFrame","Popper","placement","disablePortal","modifiers","preventOverflow","enabled","hide","flip","arrow","marginLeft","block","background","isRoleChangePathway","tab","RoleDistributionChart","_useTrends","trendsEmployees","roleDistributionOrder","orderedRoles","roleCounts","abbreviations","CHART_OPTIONS","responsive","maintainAspectRatio","legend","scales","xAxes","stacked","gridLines","drawBorder","drawOnChartArea","drawTicks","lineWidth","ticks","callback","yAxes","onHover","chartElement","cursor","chartData","labels","datasets","borderColor","borderWidth","data","popper","divRef","selectedElement","setSelectedElement","Bar","onElementsClick","_divRef$current","_divRef$current$getBo","element","_model","skeleton","_index","jobTitle","_chart","employeesWithMatchingJobTitle","getSelectedElementEmployees","IdProvider","_classCallCheck","_createClass","uniqueBaseId","idStr","uri","ColourSet","d3Format","D3BubbleChartTooltip","arrowRef","setArrowRef","boundariesElement","D3BubbleChart","shouldEmployeeListFlip","chartType","chartRef","selectedBubbleDatum","setSelectedBubbleDatum","hoveredBubbleRef","setHoveredBubbleRef","supportingOpportunitiesWithEmployees","chart","parent","onOverBubble","onOutBubble","baseData","colour","dataHierarchy","hierarchy","sum","_b$value","_a$value","packed","pack","descendants","nestedData","nest","svg","attr","bubbleChart","selectAll","bubbleGroups","bubbleGroup","on","datum","nodes","transition","duration","ease","easeQuad","leafUid","uid","bubbleCircle","clipUid","bubbleText","fontSmall","fontLarge","createChart","onclick","remove","d3ChartBase","employeesWithMatchingTalentCode","employeesWithMatchingTag","noData","generateColours","numberOfColours","colourSet","colours","colourGroup","colourGroups","TealGreen","teal","cyan","lightGreen","green","LimeOrange","lime","amber","yellow","orange","RedPurple","deepOrange","red","pink","purple","Blue","deepPurple","indigo","blue","lightBlue","mapColours","TalentCodesChart","_useTrends$trendsEmpl","talentCodeCounts","setColours","setChartData","talentCode","FlagItem","square","flagItemContainer","FlagChart","flagChartContainer","flightRiskEmployees","employeesOnLongTermLeave","employeesOnRoleChangePathways","employeesOnProbation","CustomSelection","customSelection","InputLabel","customSelectionInput","TIME_RANGES","SupportingOpportunitiesChart","_useTrends$supporting","selectedTimeRange","loadSupportingOpportunitiesWithEmployees","selectTimeRange","people","CustomColorCheckBox","CustomCheckBox","withStyles","TalentCodesByMonthChart","_useTrends$talentCode","talentCodeTrendsByMonth","loadTalentCodeTrendsByMonth","talentCodes","setTalentCodes","talentCodeTrends","counts","dataSet","month","handleOnchange","dataSets","code","startYear","year","years","SupportingOpportunitiesByMonthChart","supportingOpportunitiesByMonth","loadSupportingOpportunitiesByMonth","selectedYear","setSelectedYear","supportingOpportunities","setSupportingOpportunities","supportingOpps","supportingOpportunityCounts","supportingOpportunity","yearSelector","SquadTrends","canViewTrends","chartRow","md","chartContainer","useTalentAnalysis","talentAnalysis","descendingComparator","orderBy","getComparator","order","stableSort","comparator","stabilizedThis","el","SortTableHeader","onRequestSort","l","isSortable","sortDirection","TableSortLabel","property","AlertCheckbox","onAgree","onCheckChangeHandler","dialogTitle","dialogText","LongTermLeaveCheckbox","checkboxContainer","RoleChangePathwaySelector","timeframeToSelect","setTimeframeToSelect","onCloseDialog","getTimeframeOption","newTimeframeOption","timeframeValue","TalentCodeSelector","_getFlag2","employeeName","onChanged","_useFlags","getFlag","updateTalentCode","loadingTalentCode","setLoadingTalentCode","currentTalentCode","setCurrentTalentCode","selectedTalentCode","setSelectedTalentCode","talentCodeToSelect","setTalentCodeToSelect","_all$find$flagId","_all$find","_getFlag$name","_getFlag","EmployeeRow","_employeeIdpId$trim","_ref$employee","statusType","propIsFlightRisk","isOnProbation","propIsOnLongTermLeave","propLongTermLeaveExpectedReturn","longTermLeaveExpectedReturn","propRoleProgressionPathwayTimeframeInMonths","roleChangePathwayTimeframeInMonths","onDataChanged","_useFlightRiskService","initFlightRiskValue","setIsFlightRisk","toggleFlightRisk","flagValue","finish","useFlightRiskService","isLeaveDialogOpen","setIsLeaveDialogOpen","expectedLeaveReturn","setExpectedLeaveReturn","_useLongTermLeaveServ","initLeaveValue","initExpectedReturn","setIsOnLongTermLeave","updateLongTermLeave","updateDto","useLongTermLeaveService","isLoadingLeaveChange","_useRoleChangePathway","initTimeframeValue","setHasRoleChangePathway","setTimeframe","updateRoleChangePathway","useRoleChangePathwayService","isLoadingRoleChangePathway","onFlightRiskAgreeClick","onLongTermLeaveAgreeClick","onRoleChangePathwayAgreeClick","_e$response3","_e$response4","justifyContent","tableCells","TalentAnalysisToolTable","_usePagingCache","pagingCache","setCurrentPageCache","setRowsPerPageCache","setOrder","setOrderBy","updatePage","toolTableContainer","stickyHeader","updateRowsPerPage","EmployeeStatusSelect","CheckBoxOutlineBlankIcon","checkedIcon","CheckBoxIcon","MultiSelect","selectedOptions","limitTags","disableCloseOnSelect","marginRight","getTagProps","SingleSelect","TalentAnalysisTool","_selectedEmployeeStat","canViewTalentAnalysis","_useTalentAnalysis","isDirty","setIsDirty","selectedPositions","setSelectedPositions","selectedEmployeeStatus","setSelectedEmployeeStatus","selectedTalentCodes","setSelectedTalentCodes","selectedRoleChangePathWay","setSelectedRoleChangePathWay","selectedFlightRisk","setSelectedFlightRisk","selectedProbation","setSelectedProbation","selectedLongTermLeave","setSelectedLongTermLeave","yesNoOptions","yes","requiresReloadEmployees","filterWrapper","so","_x3","_x4","TableFilterSelect","disallowAny","o","EmployeeWithRoleChangeRow","_employee$idpId","_employee$idpId$trim","setSelectedEmployee","department","RoleChangeSidePanel","isLoadingSkills","setIsLoadingSkills","setSkills","approverComment","setApproverComment","confirmationState","setConfirmationState","finalizeRoleChange","Drawer","anchor","section","CheckBoxOutlinedIcon","behaviors","_employee$roleChange$","validRoleChangeStatuses","RoleChangeTable","selectedCurrentPosition","setSelectedCurrentPosition","selectedProposedPosition","setSelectedProposedPosition","selectedChangeCycle","setSelectedChangeCycle","selectedChangeStatus","setSelectedChangeStatus","setEmployees","table","nothingFound","colSpan","Squad","canViewNoteReview","getNumberPendingNotes","canViewFeed","Badge","badgeContent","numberOfPendingNotes","squadRoot","PageHeader","EmployeeJourneysRow","Create","EmployeeJourneys","getEmployeesForSquad","selectedPosition","setSelectedPosition","res","gridContainer","Unauthorised","useCatchUpGroups","catchUpGroups","AddGroupDialog","newGroupName","setNewGroupName","onCancelClick","onKeyDown","keyCode","onOkClick","onEnter","FrequencySelector","showSelectOption","isUpdatingFrequency","onFrequencyChange","selectedFrequency","setSelectedFrequency","frequencies","frequency","AddMemberForm","isAddingMember","faCheck","MemberRow","member","_useCatchUpGroups","updateCatchupFrequency","removeMemberFromGroup","setIsUpdatingFrequency","isRemovingMember","setIsRemovingMember","catchupFrequencyInWeeks","isDeleteGroupDialogOpen","setIsDeleteDialogOpen","lastCatchupDateUTC","lastCatchupDateAsLocalString","nextCatchupDateUTC","nextCatchupDateAsLocalString","daysUntilNextCatchup","frequencyId","catchupGroupId","faMinusCircle","RenameGroupDialog","groupName","setGroupName","GroupCard","addMember","deleteGroup","renameGroup","isAddMemberFormOpen","setAddMemberFormOpen","isRenameGroupDialogOpen","setIsRenameDialogOpen","setIsAddingMember","catchupGroupName","isUpdatingGroupName","setIsUpdatingGroupName","mb","faTrashAlt","members","message","pl","faPlusCircle","handleGroupRename","MyCatchUps","loadGroups","createGroup","canViewMyCatchUps","catchUps","isAddGroupDialogOpen","showAddGroupDialog","my","activeElement","SquadCatchUpItem","catchup","personWhoCaughtUpWithEmployee","daysSinceLastCatchup","SquadCatchUpItemSkeleton","SquadCatchUps","_useSquadCatchUps","squadCatchUps","loadCatchupsForSquad","canViewSquadCatchUps","CatchUps","Routes","exact","Notifications","setNotifications","autorun","notificationsToShow","Notification","notification","closeNotification","_ref$notification","severity","Snackbar","autoHideDuration","Alert","elevation","NoAccessToApp","theme","createMuiTheme","palette","createContext","App","authState","provider","initialState","setState","updateState","signIn","useAuthentication","ThemeProvider","LocalizationProvider","dateAdapter","MomentUtils","Provider","Router","TagModel","identifierNumber","boolean","TagsModel","afterAttach","put","NotePersonNameModel","NoteModel","createdDate","modifier","maybe","createNote","FlightRiskStatusModifier","FlightRiskStatusModelValue","FlightRiskStatusModel","LongTermLeaveModifier","LongTermLeaveModelValue","LongTermLeaveModel","PrimaryFlagModifier","PrimaryFlagModelValue","PrimaryFlagModel","updatePrimaryFlag","primaryFlagData","RoleChangePathwayModifier","RoleChangePathwayModelValue","RoleChangePathwayModel","EmployeeFlagsModel","createEmployeeFlags","empFlags","ltl","pfm","rpp","EmployeeLeaveModel","annualLeaveInHours","personalLeaveInHours","pdTakenInHours","EmployeeModel","telstraEmployeeNumber","tenure","leaveDetails","probationEndDate","lastRetroDate","showMinimalDetails","annualLeaveDays","round","personalLeaveDays","pdTakenDays","annualLeaveHours","toFixed","personalLeaveHours","pdTakenHours","difference","units","asDays","humanizer","language","yearMonthHumaniser","asMilliseconds","createEmployee","EmployeeJourneyNotesModel","EmployeeJourneyModel","_self$employee","EmployeeIdpId","shouldUpdate","_self$employee2","_self$positions","roleDistributionOrderedSet","FlagModel","FlagsModel","LoadEmployeeModel","detach","PhotoModel","GraphModel","photos","_marked","_marked2","_args2","img","blobUrl","Client","initWithMiddleware","authProvider","_class","_getAccessToken","getGraphAccessToken","scopes","debugLogging","api","version","responseType","ResponseType","BLOB","webkitURL","NotificationModel","addNotification","msg","SecurityModel","getSignedInName","account","getAccountId","accountIdentifier","CountModel","CountByMonthModel","MonthlyTrendModel","TalentCodeTrendsByMonthModel","makeTrendsUrl","SupportingOpportunitiesByMonthModel","set","toDateString","trend","TrendsEmployeesItemModel","TrendsEmployeesModel","clear","sortByName","PersonModel","roleType","SupportingOpportunitiesWithEmployeesItemModel","SupportingOpportunitiesWithEmployeesModel","timeRange","timeRage","_self$value$find","PermissionLevel","TrendsModel","squadsStatus","_user$squadName","_getRoot","_self$roleDistributio","origGetRoot","ReviewModel","integer","numberOfNotes","method","SquadsPermissionModel","None","EmployeePermissionModel","canViewLeaveBalances","canViewPurpleMeLink","canViewPurpleMeRetroDate","canViewNoneSquadEmployees","NotesPermissionModel","canViewPreviousSquadNotes","canViewSensitive","canDeleteSubmitted","CatchUpsPermissionModel","PermissionsModel","permission","View","Edit","NotesModelMap","selectedSquadStorageKey","UserModel","draftNotes","submittedNotes","formData","delete","sessionStorage","setItem","sortNotes","aDate","_self$draftNotes","_self$submittedNotes","createUser","getItem","getUserSquad","TalentAnalysisEmployeeModel","TalentAnalysisToolModel","EmployeeListModel","squadNames","includeUnknownRoles","_args","makeAdminUrl","requestForIdpId","SquadAssignmentEmployeeListModel","assignSquadsRequest","emp","cast","nameFilter","titleFiltered","AdminModel","GroupMemberModel","nextCatchupDateLocal","now","createCatchupGroupMember","GroupModel","createCatchupGroup","cug","m","CatchUpsModel","cugs","g","groupId","_self$groups$find","cugm","catchupGroupMemberIdpId","PagingCacheModel","currentPageCache","rowsPerPageCache","SquadCatchUpItemModel","lastCatchupDateLocal","SquadCatchUpsModel","scus","scu","RootStoreModel","afterCreate","CLIENT_ID","AUTHORITY","isDevelopment","NODE_ENV","AuthenticationError","Account","_Error","_inherits","_super2","_createSuper","_wrapNativeSuper","AuthenticationProvider","config","authParams","application","UserAgentApplication","getAccount","_signIn","getIsSigningIn","getIsLoginError","signInRedirect","logout","_getIsSignedIn","canAcquireTokenSilent","_getApiAccessToken","acquireTokenSilent","accessToken","_getGraphAccessToken","accessTokenRequest","loginRedirect","isLoginError","handleRedirectCallback","authErr","getLoginInProgress","urlContainsHash","_canAcquireTokenSilent","fontAwesomeConfig","autoAddCss","Chart","platform","disableCSSInjection","createBrowserHistory","reactPlugin","ReactPlugin","appInsights","ApplicationInsights","instrumentationKey","extensions","extensionConfig","loadAppInsights","onunhandledrejection","trackException","exception","properties","stack","severityLevel","SeverityLevel","console","clientId","authority","validateAuthority","redirectUri","postLogoutRedirectUri","getDefaultStore","ReactDOM","render","getElementById"],"mappings":"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","file":"static/js/main.83aaee36.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"card\":\"NoteCard_card__YVTCk\",\"avatarContainer\":\"NoteCard_avatarContainer__AtHKa\",\"subjectContainer\":\"NoteCard_subjectContainer__8iiqw\",\"subjectTitle\":\"NoteCard_subjectTitle__UHJm1\",\"chipOverride\":\"NoteCard_chipOverride__/uYIA\",\"modifiedDate\":\"NoteCard_modifiedDate__9bu5W\",\"deleteContainer\":\"NoteCard_deleteContainer__Kontq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"employeeNoteSidebar\":\"EmployeeNoteSidebar_employeeNoteSidebar__y+sGE\",\"avatarContainer\":\"EmployeeNoteSidebar_avatarContainer__DnvpX\",\"avatar\":\"EmployeeNoteSidebar_avatar__CqYC0\",\"employeeDetailsContainer\":\"EmployeeNoteSidebar_employeeDetailsContainer__DBriR\",\"details\":\"EmployeeNoteSidebar_details__ZpKCv\",\"capability\":\"EmployeeNoteSidebar_capability__cCZlW\",\"talentCodeContainer\":\"EmployeeNoteSidebar_talentCodeContainer__04e9W\",\"flagsContainer\":\"EmployeeNoteSidebar_flagsContainer__sn3rO\",\"balancesContainer\":\"EmployeeNoteSidebar_balancesContainer__ouCsa\",\"balanceTitle\":\"EmployeeNoteSidebar_balanceTitle__HulZD\",\"flagsNoTextTransform\":\"EmployeeNoteSidebar_flagsNoTextTransform__ogJ7p\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sectionTitle\":\"SquadTrends_sectionTitle__NzDWW\",\"chartRow\":\"SquadTrends_chartRow__Lbay8\",\"chartContainer\":\"SquadTrends_chartContainer__A1vyB\",\"chartPlaceholder\":\"SquadTrends_chartPlaceholder__0I0cW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"selectInput\":\"PrimaryFlagDropdown_selectInput__gXlmF\",\"MuiSelect-select\":\"PrimaryFlagDropdown_MuiSelect-select__hgqJO\",\"dropdownIconContainer\":\"PrimaryFlagDropdown_dropdownIconContainer__RMudq\",\"dropdownIcon\":\"PrimaryFlagDropdown_dropdownIcon__EBWom\",\"updateByInfo\":\"PrimaryFlagDropdown_updateByInfo__MpOON\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tableCell\":\"EmployeeListPopperItem_tableCell__6MQvT\",\"emptyCell\":\"EmployeeListPopperItem_emptyCell__Sq6Cn\",\"nameCellRoot\":\"EmployeeListPopperItem_nameCellRoot__QbkzK\",\"linkToEmployee\":\"EmployeeListPopperItem_linkToEmployee__W/V7O\",\"avatarContainer\":\"EmployeeListPopperItem_avatarContainer__epPpf\",\"avatar\":\"EmployeeListPopperItem_avatar__6mA3m\",\"tableCellAsPadding\":\"EmployeeListPopperItem_tableCellAsPadding__dBCZv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"flagChartContainer\":\"FlagChart_flagChartContainer__yWh9d\",\"row\":\"FlagChart_row__qyykJ\",\"square\":\"FlagChart_square__AFQCu\",\"flagItemContainer\":\"FlagChart_flagItemContainer__hvTHf\",\"number\":\"FlagChart_number__+aHBD\",\"skeleton\":\"FlagChart_skeleton__DqGqw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"UserProfile_root__LAWsa\",\"avatarButton\":\"UserProfile_avatarButton__pJC7/\",\"avatar\":\"UserProfile_avatar__iTEiv\",\"loggedInUserMenuOpen\":\"UserProfile_loggedInUserMenuOpen__l7ZxT\",\"loggedInUserMenu\":\"UserProfile_loggedInUserMenu__/RlOs\",\"loggedInUserMenuList\":\"UserProfile_loggedInUserMenuList__VSH79\",\"signedInUser\":\"UserProfile_signedInUser__b1WuQ\",\"menuAvatar\":\"UserProfile_menuAvatar__E4my5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"d3ChartBase\":\"D3BubbleChart_d3ChartBase__EWIxH\",\"bubbleChart\":\"D3BubbleChart_bubbleChart__iYvNu\",\"bubbleGroups\":\"D3BubbleChart_bubbleGroups__M97K1\",\"bubbleGroup\":\"D3BubbleChart_bubbleGroup__zKjXE\",\"bubbleText\":\"D3BubbleChart_bubbleText__IdrEe\",\"fontLarge\":\"D3BubbleChart_fontLarge__oVPAT\",\"fontSmall\":\"D3BubbleChart_fontSmall__idAEn\",\"bubbleCircle\":\"D3BubbleChart_bubbleCircle__DFj5S\",\"popper\":\"D3BubbleChart_popper__5iatz\",\"arrow\":\"D3BubbleChart_arrow__topuv\",\"content\":\"D3BubbleChart_content__bCPSS\",\"noData\":\"D3BubbleChart_noData__ozT/z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filterWrapper\":\"RoleChangeTable_filterWrapper__3wr6P\",\"table\":\"RoleChangeTable_table__7p3iY\",\"toolTableContainer\":\"RoleChangeTable_toolTableContainer__ee2lk\",\"name\":\"RoleChangeTable_name__qGnQ0\",\"avatarContainer\":\"RoleChangeTable_avatarContainer__HWp6Q\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"Shell_root__YBOy8\",\"header\":\"Shell_header__oSRML\",\"logoContainer\":\"Shell_logoContainer__mOiLX\",\"navContainer\":\"Shell_navContainer__YuEIL\",\"searchContainer\":\"Shell_searchContainer__zBVAG\",\"searchInput\":\"Shell_searchInput__hBJAG\",\"main\":\"Shell_main__pJ4QT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"avatar\":\"MemberRow_avatar__cjlxN\",\"linkToEmployee\":\"MemberRow_linkToEmployee__OmeOh\",\"button\":\"MemberRow_button__/mBiW\",\"daysUntilNextCatchup\":\"MemberRow_daysUntilNextCatchup__Nee5c\",\"green\":\"MemberRow_green__lIaob\",\"orange\":\"MemberRow_orange__4hGL2\",\"red\":\"MemberRow_red__fiDBP\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"employeeJourneyComponent\":\"EmployeeJourney_employeeJourneyComponent__upth6\",\"employeeTimeline\":\"EmployeeJourney_employeeTimeline__kUtK6\",\"squadAppBar\":\"EmployeeJourney_squadAppBar__H3tSb\",\"appBarTab\":\"EmployeeJourney_appBarTab__b0hjU\",\"indicator\":\"EmployeeJourney_indicator__LlzXQ\",\"tabBodyContainer\":\"EmployeeJourney_tabBodyContainer__E1zN8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dateStamp\":\"SquadFeedTimelineItem_dateStamp__vnJ9v\",\"avatar\":\"SquadFeedTimelineItem_avatar__ki1iD\",\"plChat\":\"SquadFeedTimelineItem_plChat__PiVsa\",\"nameContainer\":\"SquadFeedTimelineItem_nameContainer__Ws/K3\",\"tagContainer\":\"SquadFeedTimelineItem_tagContainer__lrG4G\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"indicator\":\"Squad_indicator__E7Auq\",\"squadRoot\":\"Squad_squadRoot__3bTSe\",\"squadAppBar\":\"Squad_squadAppBar__G+4l9\",\"appBarTab\":\"Squad_appBarTab__Ry+no\",\"tabBodyContainer\":\"Squad_tabBodyContainer__u+OUt\",\"backToTopContainer\":\"Squad_backToTopContainer__ekpZE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"EmployeeJourneysRow_root__l3q6r\",\"nameCell\":\"EmployeeJourneysRow_nameCell__c2cGr\",\"nameCellRoot\":\"EmployeeJourneysRow_nameCellRoot__plJEl\",\"avatarContainer\":\"EmployeeJourneysRow_avatarContainer__yIhd8\",\"avatar\":\"EmployeeJourneysRow_avatar__s4rIt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"App_root__mem46\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"noteListComponent\":\"ListNotes_noteListComponent__J5uTz\",\"tabHeaderContainer\":\"ListNotes_tabHeaderContainer__A8OKN\",\"tabBodyContainer\":\"ListNotes_tabBodyContainer__EOVP+\",\"newNoteButtonContainer\":\"ListNotes_newNoteButtonContainer__yRG5b\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"Admin_root__/wBQR\",\"appBar\":\"Admin_appBar__anIkO\",\"tabBodyContainer\":\"Admin_tabBodyContainer__KJ//I\",\"backToTopContainer\":\"Admin_backToTopContainer__RGXK7\",\"indicator\":\"Admin_indicator__G+48O\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"SquadFeedTimelineItemContent_root__NIPWy\",\"rootOpen\":\"SquadFeedTimelineItemContent_rootOpen__+MnYb\",\"readMore\":\"SquadFeedTimelineItemContent_readMore__T1TgJ\",\"readMoreOpen\":\"SquadFeedTimelineItemContent_readMoreOpen__PDB0c\",\"readMoreButton\":\"SquadFeedTimelineItemContent_readMoreButton__b2jKK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"NoteItemContent_root__QnqoF\",\"rootOpen\":\"NoteItemContent_rootOpen__mO20q\",\"readMore\":\"NoteItemContent_readMore__557Tf\",\"readMoreOpen\":\"NoteItemContent_readMoreOpen__2GfEz\",\"readMoreBtn\":\"NoteItemContent_readMoreBtn__nX3cD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"CatchUps_root__VX4Pk\",\"appBar\":\"CatchUps_appBar__+5vd4\",\"tabBodyContainer\":\"CatchUps_tabBodyContainer__v/KIR\",\"backToTopContainer\":\"CatchUps_backToTopContainer__sVTny\",\"indicator\":\"CatchUps_indicator__I3DfF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"RoleChange_root__WE3AG\",\"titleContainer\":\"RoleChange_titleContainer__Qyvxc\",\"roleChangeAction\":\"RoleChange_roleChangeAction__YP2ZF\",\"lastModified\":\"RoleChange_lastModified__hueZT\",\"formContainer\":\"RoleChange_formContainer__96/fc\",\"formItem\":\"RoleChange_formItem__TOT6B\",\"editButton\":\"RoleChange_editButton__qv4ND\",\"commentsContainer\":\"RoleChange_commentsContainer__aDAky\",\"attachmentContainer\":\"RoleChange_attachmentContainer__2cyKI\",\"deleteButton\":\"RoleChange_deleteButton__aXwWc\",\"attachmentProgress\":\"RoleChange_attachmentProgress__pv4FJ\",\"attachmentButton\":\"RoleChange_attachmentButton__Spaj5\",\"withValidation\":\"RoleChange_withValidation__nOzKk\",\"errorText\":\"RoleChange_errorText__RAtct\",\"formInputItem\":\"RoleChange_formInputItem__UFRqh\",\"reverse\":\"RoleChange_reverse__AZOaT\",\"select\":\"RoleChange_select__ogwUj\",\"checkbox\":\"RoleChange_checkbox__7JqhD\",\"radioButton\":\"RoleChange_radioButton__bQzmS\",\"buttonsContainer\":\"RoleChange_buttonsContainer__xIPNW\",\"loadingIndicator\":\"RoleChange_loadingIndicator__Osbbs\",\"backButton\":\"RoleChange_backButton__64FsX\",\"previousRoleChangeContainer\":\"RoleChange_previousRoleChangeContainer__5OJEW\",\"status\":\"RoleChange_status__e2Tfo\",\"ratingDescription\":\"RoleChange_ratingDescription__2aS90\",\"roleChangeSkills\":\"RoleChange_roleChangeSkills__gLRsM\",\"currentRole\":\"RoleChange_currentRole__Niasg\",\"fileName\":\"RoleChange_fileName__Bf/lD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"name\":\"EmployeeRow_name__NCaR2\",\"avatarContainer\":\"EmployeeRow_avatarContainer__4yoMC\",\"checkboxContainer\":\"EmployeeRow_checkboxContainer__mhYhu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"headerSearch\":\"Search_headerSearch__JSd11\",\"includeFormerEmployees\":\"Search_includeFormerEmployees__n9Alg\",\"checkbox\":\"Search_checkbox__6WTYd\",\"checked\":\"Search_checked__OhOH+\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"employeeStatus\":\"EmployeeStatus_employeeStatus__uboyz\",\"editButton\":\"EmployeeStatus_editButton__7NOAt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"MyNotes_container__qZsec\",\"noteListContainer\":\"MyNotes_noteListContainer__PQ6zD\",\"noteFormContainer\":\"MyNotes_noteFormContainer__JtA0z\",\"employeeProfileContainer\":\"MyNotes_employeeProfileContainer__sfjjF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ManageRoles_root__z+7ec\",\"tableControls\":\"ManageRoles_tableControls__5Sxai\",\"search\":\"ManageRoles_search__00XQb\",\"checkbox\":\"ManageRoles_checkbox__FL8d/\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"SquadNotSelected_container__DNheu\",\"iconColor\":\"SquadNotSelected_iconColor__6+3aj\",\"bold\":\"SquadNotSelected_bold__WlPl3\",\"light\":\"SquadNotSelected_light__HHbLl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"Unauthorised_container__KA7Qs\",\"iconColor\":\"Unauthorised_iconColor__4UnXo\",\"bold\":\"Unauthorised_bold__+Aocf\",\"light\":\"Unauthorised_light__/+Fp9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dropdownIconContainer\":\"FrequencySelector_dropdownIconContainer__CzAAA\",\"dropdownIcon\":\"FrequencySelector_dropdownIcon__Ggeo8\",\"loadingIndicator\":\"FrequencySelector_loadingIndicator__famzY\",\"select\":\"FrequencySelector_select__BvPYL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paper\":\"GroupCard_paper__3+Z86\",\"actions\":\"GroupCard_actions__UzeyZ\",\"loadingIndicator\":\"GroupCard_loadingIndicator__qYli9\",\"table\":\"GroupCard_table__jFZDX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"avatar\":\"SquadCatchUpItem_avatar__Ljl72\",\"linkToEmployee\":\"SquadCatchUpItem_linkToEmployee__ph8e5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"NoAccessToApp_container__Fr6ZE\",\"iconColor\":\"NoAccessToApp_iconColor__p/XJU\",\"bold\":\"NoAccessToApp_bold__EzIgo\",\"light\":\"NoAccessToApp_light__LjTOB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"statusContainer\":\"StatusIcon_statusContainer__J9qOj\",\"circle\":\"StatusIcon_circle__W9Zcb\",\"status_0\":\"StatusIcon_status_0__fT/i7\",\"undefined\":\"StatusIcon_undefined__8Ok/A\",\"status_1\":\"StatusIcon_status_1__sOSS5\",\"status_2\":\"StatusIcon_status_2__n7AQQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"isSensitiveChip\":\"TagDropdown_isSensitiveChip__Ik+KS\",\"chip\":\"TagDropdown_chip__kh/wf\",\"option\":\"TagDropdown_option__YbBiD\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"NoRoleChangeSubmission_container__TY3LS\",\"icon\":\"NoRoleChangeSubmission_icon__nsN//\",\"bold\":\"NoRoleChangeSubmission_bold__lxRB3\",\"spacing\":\"NoRoleChangeSubmission_spacing__AtOWf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"validationIconContainer\":\"ValidationIcon_validationIconContainer__gTw9d\",\"validationSuccess\":\"ValidationIcon_validationSuccess__xo9Tc\",\"validationError\":\"ValidationIcon_validationError__EW6sl\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"MarkdownTextArea_root__TOABf\",\"markdownPreview\":\"MarkdownTextArea_markdownPreview__oE99N\",\"markdownInput\":\"MarkdownTextArea_markdownInput__7wL5c\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"SupportingOpportunitiesByMonthChart_root__xEZar\",\"skeleton\":\"SupportingOpportunitiesByMonthChart_skeleton__huf6b\",\"yearSelector\":\"SupportingOpportunitiesByMonthChart_yearSelector__1M94R\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"avatar\":\"SquadCatchUpItemSkeleton_avatar__WJmUP\",\"skeleton\":\"SquadCatchUpItemSkeleton_skeleton__ctaZX\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"editNoteComponent\":\"EditNote_editNoteComponent__6g1Gq\",\"formSection\":\"EditNote_formSection__UimPv\",\"formContainer\":\"EditNote_formContainer__e78PP\",\"formItem\":\"EditNote_formItem__NLXfY\",\"checkbox\":\"EditNote_checkbox__CLV6P\",\"inputContainer\":\"EditNote_inputContainer__hjW7F\",\"errorText\":\"EditNote_errorText__3A2Oz\",\"markdownTextContainer\":\"EditNote_markdownTextContainer__ij75F\",\"markdownSupportedText\":\"EditNote_markdownSupportedText__DjyQi\",\"validationIcon\":\"EditNote_validationIcon__FNsOf\",\"sensitivity\":\"EditNote_sensitivity__axdnb\",\"isFaceToFaceDiscussion\":\"EditNote_isFaceToFaceDiscussion__yBuxF\",\"error\":\"EditNote_error__9gS/W\",\"datePicker\":\"EditNote_datePicker__s/jRC\",\"buttonsContainer\":\"EditNote_buttonsContainer__KekrR\",\"rightButtonsContainer\":\"EditNote_rightButtonsContainer__ZVVe3\",\"sensitiveText\":\"EditNote_sensitiveText__y1FLP\",\"loadingContainer\":\"EditNote_loadingContainer__1UG+3\",\"loadingIndicator\":\"EditNote_loadingIndicator__WbuK/\",\"informationIcon\":\"EditNote_informationIcon__jGA4F\",\"informationText\":\"EditNote_informationText__Pids/\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"navContainer\":\"Nav_navContainer__888vU\",\"active\":\"Nav_active__uFB0e\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"LoadingIndicator_container__eslDg\",\"text\":\"LoadingIndicator_text__crdJB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loadingIndicator\":\"LongTermLeaveFlagCheckbox_loadingIndicator__r9WTW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"inputContainer\":\"DialogWithDatepicker_inputContainer__aM212\",\"datePicker\":\"DialogWithDatepicker_datePicker__IO/PQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"disabledCheckbox\":\"Probation_disabledCheckbox__bHMjP\",\"disabledLabel\":\"Probation_disabledLabel__xGbpY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"SensitiveAttribute_root__I8j0D\",\"attribute\":\"SensitiveAttribute_attribute__NsJPF\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"FaceToFaceDiscussionAttribute_root__lap9Y\",\"attribute\":\"FaceToFaceDiscussionAttribute_attribute__iud0M\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"tagComponent\":\"Tag_tagComponent__SUCBx\",\"materialOverride\":\"Tag_materialOverride__mG8Jk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"BackToTop_root__EgcNv\",\"materialOverride\":\"BackToTop_materialOverride__xIEdz\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"RoleChangeStatusChip_root__PmA5C\",\"new\":\"RoleChangeStatusChip_new__KD+Ze\",\"draft\":\"RoleChangeStatusChip_draft__dn7JJ\",\"rejected\":\"RoleChangeStatusChip_rejected__Rn9cB\",\"submitted\":\"RoleChangeStatusChip_submitted__1/Ixd\",\"approved\":\"RoleChangeStatusChip_approved__+Oj6p\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"AssignSquads_root__W8YXA\",\"tableControls\":\"AssignSquads_tableControls__mrna8\",\"search\":\"AssignSquads_search__4NRcY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"NoteReview_container__uGWDu\",\"buttonSwitcher\":\"NoteReview_buttonSwitcher__ks4nr\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"ChartHeader_root__VJRX0\",\"subHeader\":\"ChartHeader_subHeader__SKCtt\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"customSelection\":\"CustomSelection_customSelection__Zp7Bm\",\"customSelectionInput\":\"CustomSelection_customSelectionInput__RdOMc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"TalentCodesByMonthChart_root__00Hsk\",\"skeleton\":\"TalentCodesByMonthChart_skeleton__ss79A\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"TalentAnalysisToolTable_root__Vz6OU\",\"toolTableContainer\":\"TalentAnalysisToolTable_toolTableContainer__UQzkm\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filterWrapper\":\"talentAnalysisTool_filterWrapper__ikPBi\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"searchResult\":\"EmployeeDropdown_searchResult__J1++m\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"archivedChip\":\"ArchivedChip_archivedChip__xOCOS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"Avatar_root__jJMod\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"roundInputBox\":\"SquadSelect_roundInputBox__KOixk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loadingIndicator\":\"FlightRisk_loadingIndicator__xOTSv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"loadingIndicator\":\"RoleChangePathway_loadingIndicator__yc0a2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"indicator\":\"Tab_indicator__Uc1mL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"TablePaginationActions_root__JjXZ3\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"avatar\":\"SquadEmployeeRow_avatar__QAfpy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"notFoundRoot\":\"NotFound_notFoundRoot__tgMuQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"skeleton\":\"RoleDistributionChart_skeleton__nNGwb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"PageHeader\":\"PageHeader_PageHeader__Vw3gw\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"employeeHeader\":\"EmployeeJourneys_employeeHeader__bRpOm\",\"gridContainer\":\"EmployeeJourneys_gridContainer__Zjqnc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"AddMemberForm_button__ofi+X\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button\":\"MyCatchUps_button__M0RO+\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paper\":\"SquadCatchUps_paper__kV9Nq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"ChangeAccessDialog_title__bc7ri\",\"closeButton\":\"ChangeAccessDialog_closeButton__MzHDe\",\"content\":\"ChangeAccessDialog_content__scdDJ\",\"employeeDetailsContainer\":\"ChangeAccessDialog_employeeDetailsContainer__LQmhe\",\"avatar\":\"ChangeAccessDialog_avatar__urbGa\",\"employeeDetails\":\"ChangeAccessDialog_employeeDetails__khaQN\",\"bold\":\"ChangeAccessDialog_bold__/Yf2O\",\"keyIcon\":\"ChangeAccessDialog_keyIcon__4eWwv\",\"accessSelection\":\"ChangeAccessDialog_accessSelection__VAU4n\",\"rightPanel\":\"ChangeAccessDialog_rightPanel__hvW0y\",\"buttonContainer\":\"ChangeAccessDialog_buttonContainer__I58Do\",\"loadingIndicator\":\"ChangeAccessDialog_loadingIndicator__g0gyF\",\"buttonIcon\":\"ChangeAccessDialog_buttonIcon__3Uiw4\",\"employeeList\":\"ChangeAccessDialog_employeeList__hUnzl\",\"employeeNamesContainer\":\"ChangeAccessDialog_employeeNamesContainer__KV9rd\",\"accessLevel\":\"ChangeAccessDialog_accessLevel__QS7Ne\",\"lastInvitationContainer\":\"ChangeAccessDialog_lastInvitationContainer__251tV\",\"lastInvitationText\":\"ChangeAccessDialog_lastInvitationText__1tFUf\",\"resendLink\":\"ChangeAccessDialog_resendLink__TnlsU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"noteTimelineItemComponent\":\"NoteTimelineItem_noteTimelineItemComponent__nbOCn\",\"dateContainer\":\"NoteTimelineItem_dateContainer__7HtyK\",\"noteContainer\":\"NoteTimelineItem_noteContainer__EUyyN\",\"noteContentContainer\":\"NoteTimelineItem_noteContentContainer__hGVYf\",\"headerContainer\":\"NoteTimelineItem_headerContainer__/6Cbi\",\"plChatChip\":\"NoteTimelineItem_plChatChip__h2MqX\",\"materialOverride\":\"NoteTimelineItem_materialOverride__6l3g0\",\"attributes\":\"NoteTimelineItem_attributes__ddqAP\",\"actionButtonBar\":\"NoteTimelineItem_actionButtonBar__JFMUC\",\"editButton\":\"NoteTimelineItem_editButton__U0NPB\",\"deleteButton\":\"NoteTimelineItem_deleteButton__/OUMt\",\"tagsContainer\":\"NoteTimelineItem_tagsContainer__ezBCe\",\"contentContainer\":\"NoteTimelineItem_contentContainer__2rtpT\",\"contentFade\":\"NoteTimelineItem_contentFade__0I9l7\",\"authorContainer\":\"NoteTimelineItem_authorContainer__6bBaJ\",\"showMoreContainer\":\"NoteTimelineItem_showMoreContainer__CmnCq\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"employeeTimelineComponent\":\"EmployeeTimeline_employeeTimelineComponent__SlLog\",\"timelineContainer\":\"EmployeeTimeline_timelineContainer__MYrrS\",\"emptyState\":\"EmployeeTimeline_emptyState__9fjVB\",\"filterContainer\":\"EmployeeTimeline_filterContainer__3akG7\",\"roundInputBox\":\"EmployeeTimeline_roundInputBox__Eev6i\",\"dateRange\":\"EmployeeTimeline_dateRange__udvnk\",\"startDate\":\"EmployeeTimeline_startDate__W6GQN\",\"tag\":\"EmployeeTimeline_tag__esFcj\",\"addNoteButtonContainer\":\"EmployeeTimeline_addNoteButtonContainer__jwxa3\",\"materialOverride\":\"EmployeeTimeline_materialOverride__m1ywm\",\"backToTopButtonContainer\":\"EmployeeTimeline_backToTopButtonContainer__B6yAv\",\"notesContainer\":\"EmployeeTimeline_notesContainer__J/7hz\",\"monthNotesContainer\":\"EmployeeTimeline_monthNotesContainer__aRWut\",\"backToTopContainer\":\"EmployeeTimeline_backToTopContainer__H9X1u\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"avatar\":\"NoteItem_avatar__JDKCl\",\"plChat\":\"NoteItem_plChat__2x9wc\",\"reviewStatus\":\"NoteItem_reviewStatus__FPW3X\",\"review\":\"NoteItem_review__aS4gM\",\"visibilitySelector\":\"NoteItem_visibilitySelector__b5tsL\",\"tagContainer\":\"NoteItem_tagContainer__opORU\",\"xlButton\":\"NoteItem_xlButton__WNS5V\",\"noteItem\":\"NoteItem_noteItem__bs0Uc\",\"nameContainer\":\"NoteItem_nameContainer__ILqgF\",\"menuItem\":\"NoteItem_menuItem__PYLUl\",\"menuItemIcon\":\"NoteItem_menuItemIcon__mCZil\",\"sensitiveInfoText\":\"NoteItem_sensitiveInfoText__NzALk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"root\":\"RoleChangeSidePanel_root__T31IM\",\"closeButton\":\"RoleChangeSidePanel_closeButton__vSTFd\",\"section\":\"RoleChangeSidePanel_section__dmWm/\",\"behaviors\":\"RoleChangeSidePanel_behaviors__JnJ5y\",\"buttonContainer\":\"RoleChangeSidePanel_buttonContainer__waOHI\",\"statusContainer\":\"RoleChangeSidePanel_statusContainer__DoN9l\",\"loadingIndicator\":\"RoleChangeSidePanel_loadingIndicator__oC9O5\",\"businessCaseAttachment\":\"RoleChangeSidePanel_businessCaseAttachment__XZXpO\"};","import { CSSProperties } from 'react';\n\nexport enum color {\n black = '#000000',\n white = '#ffffff',\n vibrantBlue = '#0e39fb',\n pinkishRed = '#ed1f4f',\n brick = '#d32323',\n tangerine = '#ff9300',\n sapGreen = '#58a41e',\n veryLightPink = '#d1d1d1',\n brownGrey = '#8b8b8b',\n brownishGrey = '#707070',\n mineShaft = '#343434',\n cerulean = '#00aeef',\n hollywoodCerise = '#ff029a',\n bigStone = '#141b33',\n lemon = '#f9ea1d',\n puertoRico = '#49BAAA',\n electricLime = '#CCFF00',\n treePoppy = '#F7941D',\n tePapaGreen = '#1F313E',\n blueDianne = '#223F54',\n fiord = '#3D5567',\n athensGray = '#F0F0F4',\n alabaster = '#F8F8F8',\n codgray = '#111111',\n sunglo = '#E57373',\n texasRose = '#FFB74D',\n pictonBlue = '#4FC3F7',\n deYork = '#81C784',\n boulder = '#777777',\n catskillWhite = '#F9FAFC',\n aliceBlue = '#F9FAFC',\n}\n\ninterface IAppCssProperties extends CSSProperties {\n '--background': color;\n '--primary-one': color;\n '--on-primary-one': color;\n '--primary-two': color;\n '--on-primary-two': color;\n '--primary-three': color;\n '--on-primary-three': color;\n '--secondary-one': color;\n '--secondary-two': color;\n '--secondary-three': color;\n '--secondary-four': color;\n '--shade-darkest': color;\n '--shade-darker': color;\n '--shade-dark': color;\n '--shade-light': color;\n '--shade-lighter': color;\n '--on-notification': color;\n '--error': color;\n '--warning': color;\n '--information': color;\n '--success': color;\n '--disabled': color;\n '--header-bg': color;\n '--nav-link': color;\n '--active-nav': color;\n '--input-border': color;\n '--validation-success': color;\n '--active-nav-link': color;\n '--journey-background': color;\n}\n\nexport const siteDefault: IAppCssProperties = {\n '--background': color.catskillWhite,\n '--primary-one': color.vibrantBlue,\n '--on-primary-one': color.white,\n '--primary-two': color.hollywoodCerise,\n '--on-primary-two': color.white,\n '--primary-three': color.bigStone,\n '--on-primary-three': color.white,\n '--secondary-one': color.lemon,\n '--secondary-two': color.puertoRico,\n '--secondary-three': color.electricLime,\n '--secondary-four': color.treePoppy,\n '--shade-darkest': color.tePapaGreen,\n '--shade-darker': color.blueDianne,\n '--shade-dark': color.fiord,\n '--shade-light': color.athensGray,\n '--shade-lighter': color.alabaster,\n '--on-notification': color.codgray,\n '--error': color.sunglo,\n '--warning': color.texasRose,\n '--information': color.pictonBlue,\n '--success': color.deYork,\n '--disabled': color.boulder,\n '--header-bg': color.mineShaft,\n '--nav-link': color.veryLightPink,\n '--active-nav': color.pinkishRed,\n '--active-nav-link': color.white,\n '--input-border': color.brownishGrey,\n '--validation-success': color.sapGreen,\n '--journey-background': color.aliceBlue,\n};\n","import React from 'react';\n\nimport { Link } from 'react-router-dom';\n\nimport styles from './Nav.module.scss';\n\nexport interface NavItem {\n title: string;\n link: string;\n isActive: boolean;\n}\n\ninterface Props {\n className?: string;\n items: NavItem[];\n currentNav: string;\n}\n\nexport const Nav: React.FC = ({ className, items, currentNav }) => (\n \n);\n","import querystring from 'query-string';\nimport { useHistory } from 'react-router-dom';\n\ninterface IQueryParams {\n [key: string]: string;\n}\n\ntype UseNavigateReturn = (route: string, queryParams?: IQueryParams) => void;\n\nexport function useNavigate(): UseNavigateReturn {\n const history = useHistory();\n return (route: string, queryParams?: IQueryParams) => {\n history.push({\n pathname: route,\n search: queryParams ? querystring.stringify(queryParams) : undefined,\n });\n };\n}\n","import { useContext } from 'react';\n\nimport { StoreContext } from 'views/App';\nimport { IRootStoreModel } from 'domain/store/RootStoreModel';\n\nexport function useStore(): IRootStoreModel {\n const store = useContext(StoreContext);\n\n if (!store) throw new Error('Store context has not been initialised');\n return store;\n}\n","import { useStore } from './useStore';\nimport { IGraphModel } from 'domain/store/singletons/GraphModel';\n\nexport function useGraph(): IGraphModel {\n const { graph } = useStore();\n return graph;\n}\n","import { Chip } from '@material-ui/core';\nimport React from 'react';\nimport styles from './ArchivedChip.module.scss';\n\nexport const ArchivedChip: React.FC = () => {\n return (\n \n );\n};\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { Autocomplete } from '@material-ui/lab';\nimport { CircularProgress, TextField } from '@material-ui/core';\nimport { useGraph } from 'hooks/useGraph';\nimport { EmployeeSearchResult } from 'domain/store/singletons/GraphModel';\nimport styles from './EmployeeDropdown.module.scss';\nimport { ArchivedChip } from '../archivedChip/ArchivedChip';\n\ninterface EmployeeDropdownProps {\n defaultValue?: EmployeeSearchResult | null;\n onChange?: (employee: EmployeeSearchResult | undefined, clearCallback: () => void) => void;\n onBlur?: () => void;\n className?: string;\n textBoxClassName?: string;\n includeFormerEmployees?: boolean;\n}\n\nexport const EmployeeDropdown: React.FC = (props: EmployeeDropdownProps) => {\n const { searchForEmployees } = useGraph();\n const [value, setValue] = useState(null);\n const [loading, setLoading] = useState(false);\n const [inputValue, setInputValue] = useState('');\n const [options, setOptions] = useState([]);\n const inputTextRef = useRef();\n\n const fetchUsers = useCallback(\n async (search: string) => await searchForEmployees(search, props.includeFormerEmployees),\n [searchForEmployees, props.includeFormerEmployees]\n );\n\n useEffect(() => {\n const fetchUsersDebounced = (search: string) => {\n const global = (window as unknown) as { timer: NodeJS.Timeout };\n clearTimeout(global.timer);\n if (inputValue) {\n setLoading(true);\n } else {\n setLoading(false);\n setOptions([]);\n return;\n }\n global.timer = setTimeout(async () => {\n const users = await fetchUsers(search);\n setOptions(users);\n setLoading(false);\n }, 500);\n };\n\n fetchUsersDebounced(inputValue);\n }, [inputValue, fetchUsers]);\n\n useEffect(() => {\n if (props.defaultValue || props.defaultValue === null) {\n setValue(props.defaultValue);\n }\n }, [props.defaultValue]);\n\n const handleChange = (value: EmployeeSearchResult | null) => {\n let clearCalled = false;\n props.onChange &&\n props.onChange(value || undefined, () => {\n clearCalled = true;\n setValue(null);\n setOptions([]);\n setInputValue('');\n inputTextRef.current?.blur();\n });\n !clearCalled && setValue(value || null);\n };\n\n return (\n option.displayName}\n className={props.className}\n options={options}\n autoComplete\n filterSelectedOptions\n value={value}\n loading={loading}\n onInputChange={(event, newInputValue) => setInputValue(newInputValue)}\n getOptionSelected={(option: EmployeeSearchResult, value: EmployeeSearchResult) =>\n option.idpId === value.idpId\n }\n onChange={(event, value) => handleChange(value)}\n onBlur={() => props.onBlur && props.onBlur()}\n renderInput={(params) => (\n \n {loading ? : null}\n {params.InputProps.endAdornment}\n \n ),\n }}\n />\n )}\n renderOption={(option: EmployeeSearchResult) => {\n return (\n
\n {option.displayName}\n {option.isFormerEmployee && }\n
\n );\n }}\n />\n );\n};\n","import { IUser } from 'domain/store/UserModel';\nimport { useStore } from 'hooks/useStore';\n\nexport function useUser(): IUser {\n const { user } = useStore();\n\n return user;\n}\n","import { useUser } from './useUser';\nimport { IPermissions } from 'domain/store/UserModel';\n\nexport function usePermissions(): IPermissions {\n const { permissions } = useUser();\n\n return permissions;\n}\n","import React, { useState } from 'react';\nimport styles from 'views/components/shell/components/search/Search.module.scss';\nimport { useNavigate } from 'hooks/useNavigate';\nimport { EmployeeDropdown } from 'views/components/employeeDropdown/EmployeeDropdown';\nimport { EMPLOYEE_JOURNEYS_ROUTE_PATH } from 'views/routes/Routes';\nimport { Checkbox, FormControlLabel } from '@material-ui/core';\nimport { usePermissions } from 'hooks/usePermissions';\n\ninterface Props {\n className?: string;\n}\n\nexport const Search: React.FC = ({ className }) => {\n const navigate = useNavigate();\n const {\n employees: { canSearchForFormerEmployees },\n } = usePermissions();\n\n const [includeFormerEmployees, setIncludeFormerEmployees] = useState(false);\n\n return (\n
\n {\n if (employee) {\n navigate(`${EMPLOYEE_JOURNEYS_ROUTE_PATH}/${employee.idpId}`);\n clearCallback();\n }\n }}\n textBoxClassName={styles.headerSearch}\n includeFormerEmployees={includeFormerEmployees}\n />\n {canSearchForFormerEmployees && (\n setIncludeFormerEmployees(value)}\n />\n }\n label=\"Include former employees\"\n className={styles.includeFormerEmployees}\n />\n )}\n
\n );\n};\n","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport * as React from \"react\";\nvar _ref2 = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M0 485.41h161.8V323.6H0zM323.6 161.8A161.8 161.8 0 00161.8 0v323.61A161.8 161.8 0 00323.6 161.8\",\n fill: \"#fff\"\n}));\nfunction SvgPurpleLogo(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, [\"title\", \"titleId\"]);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 323.6 485.41\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _ref2);\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgPurpleLogo);\nexport default __webpack_public_path__ + \"static/media/purple-logo.e2e0e5e0.svg\";\nexport { ForwardRef as ReactComponent };","import React from 'react';\n\nimport { Link } from 'react-router-dom';\n\nimport { ReactComponent as MyLogo } from 'assets/purple-logo.svg';\n\ninterface Props {\n className?: string;\n}\n\nexport const Logo: React.FC = ({ className }) => {\n return (\n \n \n \n );\n};\n","import React from 'react';\nimport { useEmployeePhoto } from 'hooks/useEmployeePhoto';\nimport { Avatar as MuiAvatar } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport styles from './Avatar.module.scss';\nimport cn from 'classnames';\n\ninterface AvatarProps {\n idpId?: string;\n givenName?: string;\n familyName?: string;\n className?: string;\n}\n\n// Basically lifted this from https://stackoverflow.com/questions/3426404/create-a-hexadecimal-colour-based-on-a-string-with-javascript\nconst idpIdToColor = (input: string) => {\n let hash = 0;\n for (let i = 0; i < input.length; i++) {\n hash = input.charCodeAt(i) + ((hash << 5) - hash);\n }\n\n const c = (hash & 0x00ffffff).toString(16).toUpperCase();\n\n return '00000'.substring(0, 6 - c.length) + c;\n};\n\nexport const Avatar: React.FC = ({ idpId, givenName, familyName, className }) => {\n const { photo, isLoading } = useEmployeePhoto(idpId);\n const initials = givenName && familyName ? `${givenName[0]}${familyName[0]}` : '';\n const altText = givenName && familyName ? `${givenName} ${familyName}` : 'User';\n\n return (\n
\n {isLoading || !idpId ? (\n \n ) : photo ? (\n \n ) : (\n \n {initials}\n \n )}\n
\n );\n};\n","import { useEffect, useState } from 'react';\n\nimport { useGraph } from './useGraph';\n\ninterface IEmployeePhotoResult {\n photo?: string | null;\n isLoading: boolean;\n}\n\nexport function useEmployeePhoto(employeeId?: string): IEmployeePhotoResult {\n const { searchForEmployeePhoto } = useGraph();\n const [photo, setPhoto] = useState(undefined);\n const [isLoading, setLoading] = useState(true);\n\n useEffect(() => {\n let active = true;\n if (employeeId) {\n setLoading(true);\n searchForEmployeePhoto(employeeId)\n .then((photoUri) => {\n active && setPhoto(photoUri);\n })\n .catch(() => active && setPhoto(null))\n .finally(() => active && setLoading(false));\n } else {\n active && setPhoto(undefined);\n }\n return () => {\n active = false;\n };\n }, [employeeId, searchForEmployeePhoto]);\n\n return { photo, isLoading };\n}\n","import React from 'react';\nimport styles from './UserProfile.module.scss';\nimport cn from 'classnames';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport { useUser } from 'hooks/useUser';\nimport { useSecurity } from 'hooks/useSecurity';\nimport { faSignOutAlt } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button, ListItem, Menu, MenuItem } from '@material-ui/core';\nimport { siteDefault } from 'views/themes';\n\ninterface UserProfileProps {\n className?: string;\n}\n\nexport const UserProfile: React.FC = ({ className }) => {\n const { idpId, givenName, familyName, squadName } = useUser();\n const { signOut } = useSecurity();\n const [menuAnchorElement, setMenuAnchorElement] = React.useState(null);\n\n const handleClick = (event: React.MouseEvent) =>\n setMenuAnchorElement(event.currentTarget);\n const handleClose = () => setMenuAnchorElement(null);\n const squadDisplayName =\n squadName?.toLowerCase().indexOf('squad') === -1 ? `${squadName} Squad` : squadName;\n\n return (\n
\n \n \n \n \n \n
\n Signed-In as\n {`${givenName} ${familyName}`}\n {squadDisplayName}\n
\n \n
\n {/* An Example of adding a new element (e.g. for Admin). */}\n {/* {console.warn('clicked!'); handleClose();}>\n Admin \n */}\n \n Sign Out \n \n \n
\n );\n};\n","import { useStore } from 'hooks/useStore';\n\ninterface IUseSecurity {\n signOut: () => void;\n}\n\nexport function useSecurity(): IUseSecurity {\n const { security } = useStore();\n\n return {\n signOut: security.signOut,\n };\n}\n","import React, { useEffect, useState } from 'react';\nimport { TextField } from '@material-ui/core';\nimport styles from './SquadSelect.module.scss';\nimport { IUser } from 'domain/store/UserModel';\nimport { observer } from 'mobx-react-lite';\nimport { Autocomplete } from '@material-ui/lab';\nimport cn from 'classnames';\n\nexport const SquadSelect: React.FC<{ user: IUser }> = observer(({ user }) => {\n const {\n permissions: { canViewAllSquads },\n selectedSquad,\n setSquad,\n getAllSquads,\n assignedSquads,\n } = user;\n\n const [squads, setSquads] = useState(assignedSquads);\n\n useEffect(() => {\n if (canViewAllSquads) {\n getAllSquads().then((s) => {\n setSquads(\n Array.from(\n new Set([...s])\n )\n );\n });\n }\n }, [getAllSquads, canViewAllSquads]);\n\n if (!canViewAllSquads && assignedSquads.length === 0) return null;\n\n return (\n <>\n option}\n className={cn(styles.roundInputBox)}\n options={squads}\n value={selectedSquad ? selectedSquad : undefined}\n onChange={(e, v) => (v === null ? setSquad('') : setSquad(v as string))}\n renderInput={(params) => (\n \n )}\n />\n \n );\n});\n","import React, { useEffect, useState, useCallback } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { Nav, NavItem } from 'views/components/shell/components/nav/Nav';\nimport { Search } from 'views/components/shell/components/search/Search';\nimport {\n ADMIN_ROUTE_PATH,\n CREATE_NOTE_ROUTE_PATH,\n SQUAD_ROUTE_PATH,\n EMPLOYEE_JOURNEYS_ROUTE_PATH,\n CATCH_UPS_ROUTE_PATH,\n} from 'views/routes/Routes';\nimport { Logo } from './components/logo/Logo';\nimport { UserProfile } from './components/UserProfile';\nimport styles from './Shell.module.scss';\n\nimport { useUser } from 'hooks/useUser';\nimport { usePermissions } from 'hooks/usePermissions';\nimport { SquadSelect } from './components/squadSelect/SquadSelect';\n\nexport const Shell: React.FC = ({ children }) => {\n const user = useUser();\n\n const {\n canViewSquadTab,\n canViewEmployeeTab,\n canViewNoteTab,\n canManageRoles,\n canViewCatchupGroupTab,\n } = usePermissions();\n const history = useHistory();\n const [currentNav, setCurrentNav] = useState('');\n const [activeNav, setActiveNav] = useState('');\n\n const navs: NavItem[] = [];\n const setNav = useCallback((route: string) => {\n setCurrentNav(route);\n setActiveNav(topLevelRoute(route));\n }, []);\n const topLevelRoute = (route: string) => route.split('/')[1];\n\n if (canViewSquadTab) {\n navs.push({\n title: 'Squad',\n link: SQUAD_ROUTE_PATH,\n isActive: false,\n });\n }\n\n if (canViewEmployeeTab) {\n navs.push({\n title: 'Employees',\n link: EMPLOYEE_JOURNEYS_ROUTE_PATH,\n isActive: false,\n });\n }\n\n if (canViewNoteTab) {\n navs.push({\n title: 'Notes',\n link: CREATE_NOTE_ROUTE_PATH,\n isActive: false,\n });\n }\n\n if (canViewCatchupGroupTab) {\n navs.push({\n title: 'Catch-ups',\n link: CATCH_UPS_ROUTE_PATH,\n isActive: false,\n });\n }\n\n if (canManageRoles) {\n navs.push({\n title: 'Admin',\n link: ADMIN_ROUTE_PATH,\n isActive: false,\n });\n }\n\n useEffect(() =>\n history.listen((location) => {\n setNav(location.pathname + location.search);\n })\n );\n\n useEffect(() => {\n if (history.location.pathname === '/') {\n if (canViewSquadTab) {\n setNav(SQUAD_ROUTE_PATH);\n } else if (canViewEmployeeTab) {\n setNav(EMPLOYEE_JOURNEYS_ROUTE_PATH);\n } else {\n setNav(history.location.pathname + history.location.search);\n }\n } else {\n setNav(history.location.pathname + history.location.search);\n }\n }, [setNav, history.location, canViewSquadTab, canViewEmployeeTab]);\n\n const getNavs = () =>\n navs.map((nav) => ({\n ...nav,\n isActive: topLevelRoute(nav.link) === activeNav,\n }));\n\n return (\n
\n
\n \n
\n
{children}
\n
\n );\n};\n","import { useEffect } from 'react';\nimport { useStore } from './useStore';\nimport { IEmployeeJourney } from 'domain/store/employeeJourney/EmployeeJourneyModel';\nimport { UNAUTHORISED_ROUTE_PATH } from 'views/routes/Routes';\nimport { useHistory, useParams } from 'react-router-dom';\n\nexport function useEmployeeJourney(): IEmployeeJourney {\n const { employeeJourney } = useStore();\n const { idpId } = useParams<{ idpId?: string }>();\n const history = useHistory();\n\n useEffect(() => {\n if (idpId && idpId !== employeeJourney.employee?.idpId) {\n employeeJourney.unloadJourney();\n employeeJourney.loadJourney(idpId).then(() => {\n if (employeeJourney.state === 'unauthorised') {\n history.push(UNAUTHORISED_ROUTE_PATH);\n }\n });\n }\n }, [employeeJourney, history, idpId]);\n\n return employeeJourney;\n}\n","import React from 'react';\nimport { Divider, Box } from '@material-ui/core';\n\nexport const EmployeeSidebarDivider: React.FC = () => {\n return (\n \n \n \n );\n};\n","import { IFlags } from 'domain/store/FlagsModel';\nimport { useStore } from 'hooks/useStore';\n\nexport function useFlags(): IFlags {\n const { flags } = useStore();\n\n return flags;\n}\n","import React, { ReactNode } from 'react';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n} from '@material-ui/core';\n\nexport interface AlertDialogProps {\n isOpen: boolean;\n title: string;\n text?: string;\n content?: ReactNode;\n agreeButtonText?: string;\n disagreeButtonText?: string;\n onAgreeClick?: () => void;\n onDisagreeClick?: () => void;\n agreeDisabled?: boolean;\n}\n\nexport const AlertDialog: React.FunctionComponent = (props) => {\n const onAgreeClick = () => {\n props.onAgreeClick && props.onAgreeClick();\n };\n\n const onDisagreeClick = () => {\n props.onDisagreeClick && props.onDisagreeClick();\n };\n\n return (\n \n \n {props.title}\n \n \n {props.text}\n {props.content}\n \n \n \n {props.agreeButtonText || 'Yes'}\n \n {props.onDisagreeClick && (\n \n {props.disagreeButtonText || 'No'}\n \n )}\n \n \n );\n};\n","import React from 'react';\nimport { Tooltip } from '@material-ui/core';\nimport moment from 'moment';\nimport { InfoOutlined } from '@material-ui/icons';\n\nexport interface UpdatedByTooltipProps {\n updatedByDisplayName: string;\n modifiedDateTime: string;\n}\n\nexport const UpdatedByInfoIcon: React.FunctionComponent = (props) => {\n return (\n \n Updated by: {props.updatedByDisplayName} on{' '}\n {moment(props.modifiedDateTime).format('DD/MM/YYYY')}\n \n }>\n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { MenuItem, Select, Box } from '@material-ui/core';\nimport { useFlags } from 'hooks/useFlags';\nimport { IFlag } from 'domain/store/FlagsModel';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronCircleDown } from '@fortawesome/free-solid-svg-icons/faChevronCircleDown';\nimport styles from './PrimaryFlagDropdown.module.scss';\nimport CircularProgress from '@material-ui/core/CircularProgress';\nimport { useStore } from 'hooks/useStore';\nimport { IUpdatePrimaryFlagRequest } from 'domain/store/employeeJourney/PrimaryFlagModel';\nimport { observer } from 'mobx-react-lite';\nimport { IEmployeeJourney } from 'domain/store/employeeJourney/EmployeeJourneyModel';\nimport { Skeleton } from '@material-ui/lab';\nimport { AlertDialog } from '../alertDialog/AlertDialog';\nimport { UpdatedByInfoIcon } from 'views/routes/employeeJourney/components/employeeSidebar/components/updatedByInfoIcon/UpdatedByInfoIcon';\nimport { api } from '../../../shared/api/interfaces';\n\ninterface IPrimaryFlagDropdownProps {\n journey: IEmployeeJourney;\n disabled: boolean;\n}\ninterface IFlagModificationInfo {\n modifiedDateTime: string;\n modifiedBy: string;\n}\n\nexport const PrimaryFlagDropdown: React.FC = observer(\n ({ journey, disabled }) => {\n const store = useStore();\n const flagStore = useFlags();\n const { employee } = journey;\n const [options, setOptions] = useState([]);\n const [value, setValue] = useState(-1);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [showAlertDialog, setShowAlertDialog] = useState(false);\n const [flagIdToUpdate, setFlagIdToUpdate] = useState(null);\n const [showTalentCodeInfo, setShowTalentCodeInfo] = useState(false);\n const [flagModificationInfo, setFlagModificationInfo] = useState(\n null\n );\n\n const flagId = employee?.flags.primaryFlag?.value?.flagId || -1;\n const isLoaded = journey.isLoaded && flagStore.state === 'done';\n\n useEffect(() => {\n const flags = flagStore.all;\n setOptions(flags);\n }, [setOptions, flagStore.all]);\n\n useEffect(() => {\n if (isLoaded) {\n setValue(flagId);\n setShowTalentCodeInfo(flagId !== -1);\n setFlagModificationInfo({\n modifiedBy: employee?.flags.primaryFlag?.value?.modifiedBy.displayName || '',\n modifiedDateTime: employee?.flags.primaryFlag?.value?.modifiedDateTime || '',\n });\n }\n }, [isLoaded, flagId, employee]);\n\n const handleChange = (event: React.ChangeEvent<{ value: unknown }>) => {\n const flagId = event.target.value as number;\n setFlagIdToUpdate(flagId);\n setShowAlertDialog(true);\n };\n\n const resetPrimaryFlagUpdateStates = () => {\n setFlagIdToUpdate(null);\n setShowAlertDialog(false);\n };\n\n const onAgreeClickChangePrimaryFlag = () => {\n const flagRequest: IUpdatePrimaryFlagRequest = {\n employeeIdpId: employee!.idpId,\n flagId: flagIdToUpdate as number,\n };\n setIsSubmitting(true);\n\n employee!.flags.primaryFlag\n ?.update(flagRequest)\n .then((response: api.FlagDto) => {\n setValue(flagIdToUpdate as number);\n setShowTalentCodeInfo(true);\n setFlagModificationInfo({\n modifiedBy: response.modifiedBy.displayName,\n modifiedDateTime: response.modifiedDateTime,\n });\n })\n .catch((e) => {\n if (e.response.status) {\n if (e.response.status === 409) {\n store.notifications.addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (e.response.status === 403) {\n store.notifications.addError('Not authorised to change primary flag.');\n } else if (e.response.status === 404) {\n store.notifications.addError('Primary flag could not be changed, please try again.');\n }\n }\n })\n .finally(() => setIsSubmitting(false));\n\n resetPrimaryFlagUpdateStates();\n };\n\n const onDisagreeClick = () => resetPrimaryFlagUpdateStates();\n\n return (\n <>\n {isLoaded ? (\n \n handleChange(event)}\n IconComponent={(props) => {\n const propsWithDropdownIcon = {\n ...props,\n className: `${props.className} ${styles.dropdownIcon} `,\n };\n return (\n
\n {isSubmitting ? (\n \n ) : (\n \n )}\n
\n );\n }}\n className={styles.selectInput}\n disabled={disabled}\n data-testid=\"edit-primary-flag-dropdown\">\n {value === -1 && (\n \n No Primary Flag Selected\n \n )}\n {options.length &&\n options.map((flag) => {\n return (\n \n {flag.name}\n \n );\n })}\n \n {showTalentCodeInfo && (\n \n \n \n )}\n
\n ) : (\n \n )}\n \n \n );\n }\n);\n","import React from 'react';\nimport cn from 'classnames';\nimport styles from './LoadingIndicator.module.scss';\nimport { CircularProgress } from '@material-ui/core';\n\ninterface ILoadingIndicatorProps {\n text?: string;\n size?: number | string;\n className?: string;\n}\n\nexport const LoadingIndicator: React.FC = ({ text, className, size }) => {\n return (\n
\n \n
{text}
\n
\n );\n};\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Checkbox, FormControlLabel, Box, Typography } from '@material-ui/core';\nimport { SwitchBaseProps } from '@material-ui/core/internal/SwitchBase';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport styles from './FlightRisk.module.scss';\nimport { UpdatedByInfoIcon } from 'views/routes/employeeJourney/components/employeeSidebar/components/updatedByInfoIcon/UpdatedByInfoIcon';\nimport { IFlightRiskStatusModelValue } from 'domain/store/employeeJourney/FlightRiskModel';\n\ninterface FlightRiskProps {\n flightRiskStatusModelValue: IFlightRiskStatusModelValue | null;\n loading: boolean;\n onToggle?: () => void;\n disabled: boolean;\n}\n\nexport const FlightRisk: React.FC = observer(\n ({ flightRiskStatusModelValue, onToggle, loading, disabled }) => {\n return (\n \n \n \n \n ) : (\n onToggle && onToggle()}\n disabled={onToggle === undefined}\n inputProps={\n {\n 'data-testid': 'flight-risk-checkbox',\n } as SwitchBaseProps['inputProps'] & { 'data-testid': string }\n }\n />\n )\n }\n label={\n \n \n Flight risk\n \n \n }\n />\n {!loading && flightRiskStatusModelValue && (\n \n )}\n \n );\n }\n);\n","import { IFlightRiskStatusModel } from 'domain/store/employeeJourney/FlightRiskModel';\nimport { useStore } from 'hooks/useStore';\nimport React, { useState } from 'react';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\nimport { FlightRisk } from 'views/routes/employeeJourney/components/employeeSidebar/components/flightRisk/FlightRisk';\nexport interface FlightRiskFlagProps {\n employeeId: string;\n employeeDisplayName: string;\n flightRiskStatusModel: IFlightRiskStatusModel | null;\n disabled: boolean;\n}\n\nexport const FlightRiskFlag: React.FC = ({\n flightRiskStatusModel,\n employeeId,\n employeeDisplayName,\n disabled,\n}) => {\n const [isFlightRiskDialogOpen, setIsFlightRiskDialogOpen] = useState(false);\n const [isLoadingFlightRisk, setLoadingFlightRisk] = useState(false);\n const store = useStore();\n const toggleFlightRisk = () => {\n setIsFlightRiskDialogOpen(true);\n };\n\n const resetFlightRiskDialogStates = () => {\n setIsFlightRiskDialogOpen(false);\n };\n\n const onFlightRiskAgree = () => {\n setLoadingFlightRisk(true);\n\n flightRiskStatusModel\n ?.toggleFlightRiskStatus(employeeId)\n .then((r) => r)\n .catch((e) => {\n if (e?.response?.status === 409) {\n store.notifications.addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (e?.response?.status === 403) {\n store.notifications.addError('Not authorised to save changes.');\n } else {\n store.notifications.addError('Unable to change flight risk status, please try again.');\n }\n })\n .finally(() => setLoadingFlightRisk(false));\n\n resetFlightRiskDialogStates();\n };\n\n const onFlightRiskDisagree = () => {\n resetFlightRiskDialogStates();\n };\n\n return (\n <>\n \n \n \n );\n};\n","import { Box, Checkbox, FormControlLabel, Typography } from '@material-ui/core';\nimport { SwitchBaseProps } from '@material-ui/core/internal/SwitchBase';\nimport { ILongTermLeaveModelValue } from 'domain/store/employeeJourney/LongTermLeaveModel';\nimport { usePermissions } from 'hooks/usePermissions';\nimport { observer } from 'mobx-react-lite';\nimport moment from 'moment';\nimport React from 'react';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { UpdatedByInfoIcon } from 'views/routes/employeeJourney/components/employeeSidebar/components/updatedByInfoIcon/UpdatedByInfoIcon';\nimport styles from './LongTermLeaveFlagCheckbox.module.scss';\n\ninterface LongTermLeaveFlagCheckboxProps {\n longTermLeave: ILongTermLeaveModelValue | null;\n loading: boolean;\n onToggle?: () => void;\n disabled: boolean;\n}\n\nexport const LongTermLeaveFlagCheckbox: React.FC = observer(\n ({ longTermLeave, onToggle, loading, disabled }) => {\n const { canEdit, employees } = usePermissions();\n\n return (\n <>\n \n \n ) : (\n onToggle && onToggle()}\n readOnly={!canEdit(employees.longTermLeave)}\n disabled={onToggle === undefined}\n inputProps={\n {\n 'data-testid': 'long-term-leave-checkbox',\n } as SwitchBaseProps['inputProps'] & { 'data-testid': string }\n }\n />\n )\n }\n label={\n \n \n Long Term Leave\n \n \n }\n />\n {!loading && longTermLeave && (\n \n )}\n \n \n {!loading && longTermLeave?.isOnLongTermLeave && (\n \n \n Expected Return: {moment(longTermLeave!.expectedReturn).format('DD/MM/YYYY')}\n \n \n )}\n \n \n );\n }\n);\n","import { TextField } from '@material-ui/core';\nimport moment from 'moment';\nimport React, { ChangeEvent, useState } from 'react';\nimport styles from './DialogWithDatepicker.module.scss';\n\ninterface IDatepickerProps {\n value: string | null;\n onChange: (e: ChangeEvent) => void;\n isUpdating: boolean;\n}\n\nexport const LeaveDatepicker: React.FC = (props: IDatepickerProps) => {\n const [value, setValue] = useState(props.value);\n const onDateChange = (e: ChangeEvent) => {\n !props.isUpdating && setValue(e.target.value);\n props.onChange(e);\n };\n\n return (\n
\n onDateChange(e)}\n inputProps={{ min: moment().format('YYYY-MM-DD') }}\n />\n
\n );\n};\n","import {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n} from '@material-ui/core';\nimport React, { ChangeEvent } from 'react';\nimport { LeaveDatepicker } from './LeaveDatepicker';\n\ninterface IDialogWithDatepickerProps {\n isOpen: boolean;\n title: string;\n employeeDisplayName: string;\n currentExpectedReturn: string | null;\n onDateChange: (e: ChangeEvent) => void;\n onAgreeClick?: () => void;\n onDisagreeClick?: () => void;\n isDisabled: boolean;\n}\n\nexport const DialogWithDatepicker: React.FC = (\n props: IDialogWithDatepickerProps\n) => {\n const onAgreeClick = () => {\n props.onAgreeClick && props.onAgreeClick();\n };\n\n const onDisagreeClick = () => {\n props.onDisagreeClick && props.onDisagreeClick();\n };\n return (\n \n \n {props.title}\n \n \n <>\n {!props.currentExpectedReturn ? (\n <>\n \n You are editing {props.employeeDisplayName}'s Long Term Leave to\n \n
\n \n \n ) : (\n \n You are clearing {props.employeeDisplayName}'s Long Term Leave\n \n )}\n \n
\n \n \n {'Submit'}\n \n {props.onDisagreeClick && (\n \n {'Cancel'}\n \n )}\n \n \n );\n};\n","import { ILongTermLeaveModel } from 'domain/store/employeeJourney/LongTermLeaveModel';\nimport { useStore } from 'hooks/useStore';\nimport React, { ChangeEvent, useCallback, useEffect, useState } from 'react';\nimport { LongTermLeaveFlagCheckbox } from 'views/routes/employeeJourney/components/employeeSidebar/components/longTermLeaveFlagCheckbox/LongTermLeaveFlagCheckbox';\nimport { DialogWithDatepicker } from './DialogWithDatepicker';\n\nexport interface LongTermLeaveFlagProps {\n employeeId: string;\n employeeDisplayName: string;\n longTermLeaveModel: ILongTermLeaveModel | null;\n disabled: boolean;\n}\n\nexport const LongTermLeaveFlag: React.FC = ({\n longTermLeaveModel,\n employeeId,\n employeeDisplayName,\n disabled,\n}) => {\n const store = useStore();\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [isDisabled, setIsDisabled] = useState(true);\n const employeeExpectedReturn = longTermLeaveModel?.value?.expectedReturn ?? null;\n const [expectedReturn, setExpectedReturn] = useState(employeeExpectedReturn);\n const filterNull = useCallback(\n (source: string | null) => {\n return !source ? employeeExpectedReturn : source;\n },\n [employeeExpectedReturn]\n );\n const [newExpectedReturn, setNewExpectedReturn] = useState(\n filterNull(expectedReturn)\n );\n\n useEffect(() => {\n setExpectedReturn(employeeExpectedReturn);\n setNewExpectedReturn(filterNull(employeeExpectedReturn));\n }, [employeeExpectedReturn, filterNull]);\n\n const toggle = () => {\n setIsDialogOpen(true);\n };\n\n const resetDialogStates = () => {\n setNewExpectedReturn(filterNull(expectedReturn));\n setIsDialogOpen(false);\n setIsDisabled(true);\n };\n\n const handleChange = (e: ChangeEvent) => {\n setNewExpectedReturn(e.target.value as string);\n setIsDisabled(false);\n };\n\n const onAgreeClick = () => {\n if (longTermLeaveModel) {\n setIsLoading(true);\n longTermLeaveModel\n .toggleLongTermLeaveStatus(\n employeeId,\n newExpectedReturn === expectedReturn ? null : newExpectedReturn\n )\n .catch(() => {\n store.notifications.addError('Expected return must not be in the past');\n })\n .finally(() => setIsLoading(false));\n }\n\n resetDialogStates();\n };\n\n const onDisagreeClick = () => {\n resetDialogStates();\n };\n\n return (\n <>\n \n \n \n );\n};\n","import React, { useState } from 'react';\nimport { Select, MenuItem } from '@material-ui/core';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faChevronCircleDown } from '@fortawesome/free-solid-svg-icons';\nimport styles from 'views/components/primaryFlagDropdown/PrimaryFlagDropdown.module.scss';\nimport { siteDefault } from 'views/themes';\n\nexport interface TimeframeDropdownProps {\n value: number;\n onSelectChange: (event: React.ChangeEvent<{ value: unknown }>) => void;\n timeframes: number[];\n isUpdatingTimeframe: boolean;\n}\n\nexport const TimeframeDropdown: React.FunctionComponent = (props) => {\n const [value, setValue] = useState(props.value);\n const onSelectChange = (\n event: React.ChangeEvent<{\n value: unknown;\n }>\n ) => {\n !props.isUpdatingTimeframe && setValue(event.target.value as number);\n props.onSelectChange(event);\n };\n return (\n onSelectChange(event)}\n style={siteDefault}\n IconComponent={(values) => {\n const propsWithDropdownIcon = {\n ...values,\n className: `${values.className} ${styles.dropdownIcon} `,\n };\n return (\n
\n \n
\n );\n }}\n variant=\"outlined\"\n className={styles.selectInput}>\n {props.timeframes.map((key) => {\n return (\n \n {key > 12 ? '12+' : key} months\n \n );\n })}\n \n );\n};\n","import React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Checkbox, FormControlLabel, Box, Typography } from '@material-ui/core';\nimport { SwitchBaseProps } from '@material-ui/core/internal/SwitchBase';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { UpdatedByInfoIcon } from '../updatedByInfoIcon/UpdatedByInfoIcon';\nimport styles from './RoleChangePathway.module.scss';\nimport { TimeframeDropdown } from '../roleChangePathwayTimeframe/TimeframeDropdown';\nimport { IRoleChangePathwayModelValue } from 'domain/store/employeeJourney/RoleChangePathwayModel';\nimport { usePermissions } from 'hooks/usePermissions';\n\ninterface RoleChangePathwayControlProps {\n roleChangePathwayModelValue: IRoleChangePathwayModelValue | null;\n loading: boolean;\n onToggle?: () => void;\n timeframes: number[];\n onSelectChangeOnSidebar: (event: React.ChangeEvent<{ value: unknown }>) => void;\n disabled: boolean;\n}\n\nexport const RoleChangePathwayControl: React.FC = observer(\n ({\n roleChangePathwayModelValue,\n onToggle,\n loading,\n timeframes,\n onSelectChangeOnSidebar,\n disabled,\n }) => {\n const {\n canEdit,\n employees: { roleChangePathway },\n } = usePermissions();\n const loadingIndicator = (\n \n );\n\n return (\n <>\n \n onToggle && onToggle()}\n readOnly={!canEdit(roleChangePathway)}\n disabled={onToggle === undefined}\n inputProps={\n {\n 'data-testid': 'role-change-pathway-checkbox',\n } as SwitchBaseProps['inputProps'] & { 'data-testid': string }\n }\n />\n )\n }\n label={\n \n \n Role Change Pathway\n \n \n }\n />\n {!loading && roleChangePathwayModelValue && (\n \n )}\n \n {loading\n ? loadingIndicator\n : roleChangePathwayModelValue?.hasRoleChangePathway && (\n \n )}\n \n );\n }\n);\n","import React from 'react';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n DialogContentText,\n} from '@material-ui/core';\nimport { TimeframeDropdown } from '../roleChangePathwayTimeframe/TimeframeDropdown';\n\nexport interface DialogWithDropdownProps {\n isOpen: boolean;\n title: string;\n agreeButtonText?: string;\n disagreeButtonText?: string;\n timeframes: number[];\n employeeDisplayName: string;\n oldNewTimeframe: [number, number];\n onSelectChange: (event: React.ChangeEvent<{ value: unknown }>) => void;\n onAgreeClick?: () => void;\n onDisagreeClick?: () => void;\n}\n\nexport const DialogWithDropdown: React.FunctionComponent = (props) => {\n const [oldValue, newValue] = props.oldNewTimeframe;\n const onAgreeClick = () => {\n props.onAgreeClick && props.onAgreeClick();\n };\n\n const onDisagreeClick = () => {\n props.onDisagreeClick && props.onDisagreeClick();\n };\n\n const filterMoreThanOneYear = (numberOfMonths: number) => {\n return numberOfMonths > 12 ? '12+' : numberOfMonths;\n };\n\n const bold: React.CSSProperties = { fontWeight: 'bold' };\n\n return (\n \n \n {props.title}\n \n \n <>\n {oldValue === 0 ? (\n <>\n \n You are editing {props.employeeDisplayName}'s Role Change Pathway to\n \n
\n \n \n ) : (\n \n {newValue === oldValue ? (\n <>You are clearing {props.employeeDisplayName}'s Role Change Pathway\n ) : (\n <>\n You are editing {props.employeeDisplayName}'s Role Change Pathway from{' '}\n {filterMoreThanOneYear(oldValue)} months to{' '}\n {filterMoreThanOneYear(newValue)} months\n \n )}\n \n )}\n \n
\n \n \n {props.agreeButtonText || 'Submit'}\n \n {props.onDisagreeClick && (\n \n {props.disagreeButtonText || 'Cancel'}\n \n )}\n \n \n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { RoleChangePathwayControl } from 'views/routes/employeeJourney/components/employeeSidebar/components/roleChangePathway/RoleChangePathwayControl';\nimport { DialogWithDropdown } from './DialogWithDropdown';\nimport { IRoleChangePathwayModel } from 'domain/store/employeeJourney/RoleChangePathwayModel';\n\nexport interface RoleChangePathwayFlagProps {\n employeeId: string;\n employeeDisplayName: string;\n roleChangePathwayModel: IRoleChangePathwayModel | null;\n disabled: boolean;\n}\n\nexport const RoleChangePathwayFlag: React.FunctionComponent = ({\n roleChangePathwayModel,\n employeeId,\n employeeDisplayName,\n disabled,\n}) => {\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const timeframes = [6, 12, 18];\n const employeeTimeframe = roleChangePathwayModel?.value?.timeframe ?? 0;\n const [currentTimeframe, setCurrentTimeframe] = useState(employeeTimeframe);\n const filterZero = (source: number) => {\n return source === 0 ? timeframes[0] : source;\n };\n const [newTimeframe, setNewNumberOfMonth] = useState(filterZero(currentTimeframe));\n\n useEffect(() => {\n setCurrentTimeframe(employeeTimeframe);\n setNewNumberOfMonth(filterZero(employeeTimeframe));\n }, [employeeTimeframe]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const toggle = () => {\n setIsDialogOpen(true);\n };\n\n const resetDialogStates = () => {\n setNewNumberOfMonth(filterZero(currentTimeframe));\n setIsDialogOpen(false);\n };\n\n const onSelectChangeInDialog = (event: React.ChangeEvent<{ value: unknown }>) => {\n setNewNumberOfMonth(event.target.value as number);\n };\n\n const onSelectChangeOnSidebar = (event: React.ChangeEvent<{ value: unknown }>) => {\n setNewNumberOfMonth(event.target.value as number);\n setIsDialogOpen(true);\n };\n\n const onAgreeClick = () => {\n setIsLoading(true);\n\n roleChangePathwayModel\n ?.toggleRoleChangePathwayStatus(\n employeeId,\n newTimeframe === currentTimeframe ? 0 : newTimeframe\n )\n .finally(() => setIsLoading(false));\n\n resetDialogStates();\n };\n\n const onDisagreeClick = () => {\n resetDialogStates();\n };\n\n return (\n <>\n \n \n \n );\n};\n","import { Typography, Box } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport React from 'react';\n\ninterface ISidebarContentProps {\n heading: string;\n details?: string | undefined;\n hasChildren?: boolean;\n isLoaded?: boolean;\n}\n\nexport const SidebarContent: React.FC = (props: ISidebarContentProps) => {\n return (\n <>\n \n \n {props.heading}\n \n \n {props.hasChildren && (\n \n \n {props.isLoaded ? props.details : }\n \n \n )}\n \n );\n};\n","import React from 'react';\nimport { Box, Checkbox, FormControlLabel, Tooltip } from '@material-ui/core';\nimport { InfoOutlined } from '@material-ui/icons';\nimport { Probation as EmployeeProbation } from 'domain/store/employeeJourney/EmployeeModel';\nimport styles from './Probation.module.scss';\nimport { SwitchBaseProps } from '@material-ui/core/internal/SwitchBase';\n\ninterface ProbationProps {\n probation: EmployeeProbation;\n overrideDisabledStyle?: boolean;\n disabled: boolean;\n}\n\nexport const Probation: React.FC = ({\n probation,\n overrideDisabledStyle,\n disabled,\n}) => {\n return (\n \n \n }\n label={'Probation'}\n />\n End of probation on {probation.endDate}}>\n \n \n \n );\n};\n","import {\n flow as origFlow,\n getEnv as origGetEnv,\n getRoot as origGetRoot,\n IStateTreeNode,\n types,\n} from 'mobx-state-tree';\nimport ky from 'ky';\nimport { FlowReturn } from 'mobx-state-tree/dist/core/flow';\n\nimport { IAuthenticationProvider } from 'auth/AuthenticationTypes';\nimport { IRootStoreEnvironment, IRootStoreModel } from './RootStoreModel';\n\nexport function flow, R, Args extends unknown[]>(\n generator: (...args: Args) => Generator ? Y : never>\n): (...args: Args) => Promise> {\n return origFlow(generator);\n}\n\nexport function getEnv(model: IStateTreeNode): IRootStoreEnvironment {\n return origGetEnv(model);\n}\n\nexport function getRoot(model: IStateTreeNode): IRootStoreModel {\n return origGetRoot(model);\n}\n\nexport function getDefaultAjaxInstance(auth: IAuthenticationProvider): typeof ky {\n return ky.create({\n timeout: false,\n retry: { limit: 1 },\n prefixUrl: `${window.location.origin}/api`,\n hooks: {\n beforeRequest: [\n async (request) => {\n if (await auth.getIsSignedIn()) {\n request.headers.append('Authorization', `Bearer ${await auth.getApiAccessToken()}`);\n }\n },\n ],\n },\n });\n}\n\nexport type ModelLoadingState = 'loading' | 'done' | 'error' | 'unauthorized';\n\nexport const LoadingStateModel = types.optional(\n types.enumeration(['loading', 'done', 'error', 'unauthorized']),\n 'loading'\n);\n","import { flow, getEnv } from 'domain/store/util';\nimport { Instance, types } from 'mobx-state-tree';\nimport { api } from 'shared/api/interfaces';\nimport { IEmployeeStatusDto } from '../dataTranferObjects/IEmployeeStatusDto';\n\nexport const EmployeeStatusModifier = types.model('EmployeeStatusModifier', {\n idpId: types.identifier,\n displayName: types.string,\n});\n\nconst toDictionary: { [id: number]: string } = {};\n\ntoDictionary[0] = 'No concern';\ntoDictionary[1] = 'Few things to keep an eye on';\ntoDictionary[2] = 'Needs close attention';\n\nexport const EmployeeStatusLabels = toDictionary;\n\nexport interface IEmployeeStatusModel extends Instance {}\n\nexport interface IEmployeeStatusWithMobx extends IEmployeeStatusDto {\n modifiedBy: Instance;\n}\n\nexport interface IEmployeeStatusModelValue extends Instance {}\n\nexport const EmployeeStatusModelValue = types.model('EmployeeStatusModelValue', {\n status: types.number,\n modifiedBy: EmployeeStatusModifier,\n modifiedDateTime: types.string,\n});\n\nexport const EmployeeStatusModel = types\n .model('EmployeeStatusModel', {\n value: types.maybeNull(EmployeeStatusModelValue),\n })\n .actions((self) => {\n const updateEmployeeStatus = function* (\n statusData: IUpdateStatusRequest\n ): Generator<\n Promise,\n IEmployeeStatusWithMobx,\n IEmployeeStatusWithMobx\n > {\n const { ajax } = getEnv(self);\n\n const result = yield ajax\n .post('employee/status', {\n json: statusData,\n })\n .json();\n\n self.value = result;\n return result;\n };\n\n return {\n updateEmployeeStatus: flow(updateEmployeeStatus),\n };\n });\n\nexport interface IEmployeeStatus extends Instance {}\n\nexport interface IEmployeeStatuses extends Instance {}\n\nexport interface IUpdateStatusRequest {\n employeeIdpId: string;\n status: number;\n}\n","import { Typography } from '@material-ui/core';\nimport React from 'react';\nimport styles from './StatusIcon.module.scss';\n\ninterface IStatusIconProps {\n color: string | number;\n status?: string;\n}\n\nexport const StatusIcon: React.FC = (props: IStatusIconProps) => {\n return (\n
\n
\n {props.status && (\n \n {props.status}\n \n )}\n
\n );\n};\n","import { faEdit } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Box, IconButton, Typography } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport {\n EmployeeStatusLabels,\n IEmployeeStatusModelValue,\n} from 'domain/store/employeeJourney/EmployeeStatusModel';\nimport { observer } from 'mobx-react-lite';\nimport React from 'react';\nimport { UpdatedByInfoIcon } from 'views/routes/employeeJourney/components/employeeSidebar/components/updatedByInfoIcon/UpdatedByInfoIcon';\nimport styles from './EmployeeStatus.module.scss';\nimport { StatusIcon } from './StatusIcon/StatusIcon';\n\nexport interface IEmployeeStatusProps {\n employeeStatusModelValue: IEmployeeStatusModelValue | null;\n loading: boolean;\n onToggle?: () => void;\n disabled: boolean;\n}\n\nexport const EmployeeStatus = observer((props: IEmployeeStatusProps) => {\n return (\n \n \n \n Status\n \n props.onToggle && props.onToggle()}\n data-testid=\"edit-status\"\n className={styles.editButton}\n disabled={props.disabled}>\n \n \n {!props.loading && props.employeeStatusModelValue && (\n <>\n \n \n )}\n \n \n {!props.loading ? (\n
\n \n
\n ) : (\n \n )}\n
\n \n );\n});\n","import { FormControl, FormControlLabel, Radio, RadioGroup } from '@material-ui/core';\nimport { IEmployeeJourney } from 'domain/store/employeeJourney/EmployeeJourneyModel';\nimport {\n IEmployeeStatusModel,\n IUpdateStatusRequest,\n} from 'domain/store/employeeJourney/EmployeeStatusModel';\nimport React, { useEffect, useState } from 'react';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\nimport { EmployeeStatus } from 'views/components/EmployeeStatus/EmployeeStatus';\nexport interface IStatusFlagProps {\n employeeId: string;\n employeeDisplayName: string;\n employeeStatusModel: IEmployeeStatusModel | null;\n journey: IEmployeeJourney;\n disabled: boolean;\n}\n\nexport const StatusFlag: React.FC = ({\n employeeStatusModel,\n employeeId,\n employeeDisplayName,\n journey,\n disabled,\n}) => {\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [status, setStatus] = useState('0');\n\n const { employee } = journey;\n\n const employeeStatus = employeeStatusModel?.value?.status ?? 0;\n\n useEffect(() => {\n if (!isLoading) {\n setStatus(employeeStatus.toString());\n }\n }, [isLoading, employeeStatus]);\n\n const toggleStatus = () => {\n setIsDialogOpen(true);\n };\n\n const resetStatusDialogStates = () => {\n setIsDialogOpen(false);\n };\n\n const handleChange = (event: React.ChangeEvent) => {\n setStatus(event.target.value);\n };\n\n const onStatusAgree = () => {\n const statusRequest: IUpdateStatusRequest = {\n employeeIdpId: employeeId,\n status: parseInt(status),\n };\n\n setIsLoading(true);\n employee!.flags.status?.updateEmployeeStatus(statusRequest).finally(() => setIsLoading(false));\n resetStatusDialogStates();\n };\n\n const onStatusDisagree = () => {\n resetStatusDialogStates();\n };\n\n return (\n <>\n \n \n \n \n } label=\"No concern\" />\n }\n label=\"Few things to keep an eye on\"\n />\n } label=\"Needs close attention\" />\n \n \n \n }\n onAgreeClick={onStatusAgree}\n agreeButtonText={'Save'}\n agreeDisabled={parseInt(status) === employeeStatusModel?.value?.status}\n onDisagreeClick={onStatusDisagree}\n disagreeButtonText={'Cancel'}\n />\n \n );\n};\n","import { Box, Link, Typography } from '@material-ui/core';\nimport LinkIcon from '@material-ui/icons/Link';\nimport { Skeleton } from '@material-ui/lab';\nimport { useEmployeeJourney } from 'hooks/useEmployeeJourney';\nimport { observer } from 'mobx-react-lite';\nimport React from 'react';\nimport { EmployeeSidebarDivider } from 'views/components/EmployeeSidebarDivider/EmployeeSidebarDivider';\nimport { ArchivedChip } from 'views/components/archivedChip/ArchivedChip';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport { PrimaryFlagDropdown } from 'views/components/primaryFlagDropdown/PrimaryFlagDropdown';\nimport { FlightRiskFlag } from 'views/routes/employeeJourney/components/employeeSidebar/components/flightRiskFlag/FlightRiskFlag';\nimport { LongTermLeaveFlag } from 'views/routes/employeeJourney/components/employeeSidebar/components/longTermLeaveFlag/LongTermLeaveFlag';\nimport { RoleChangePathwayFlag } from 'views/routes/employeeJourney/components/employeeSidebar/components/roleChangePathwayFlag/RoleChangePathwayFlag';\nimport styles from './EmployeeSidebar.module.scss';\nimport { SidebarContent } from './components/SidebarContent/SidebarContent';\nimport { Probation } from './components/probation/Probation';\nimport { StatusFlag } from './components/status/StatusFlag';\n\nexport const EmployeeSidebar: React.FC = observer(() => {\n const journey = useEmployeeJourney();\n const { employee, isLoaded } = journey;\n\n return (\n \n \n
\n \n
\n
\n \n \n {isLoaded ? employee?.displayName : }\n \n \n {employee?.isFormerEmployee && }\n \n \n {isLoaded ? `${employee?.position}` : }\n \n \n {/* Capability (Department) data is no longer available */}\n {/* \n \n {isLoaded ? `${employee?.capability}` : }\n \n */}\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n\n {employee?.emailAddress && (\n <>\n \n \n \n \n PurpleMe\n \n \n \n \n \n )}\n\n {(!employee || employee!.flags.status) && (\n <>\n \n \n {!isLoaded ? (\n \n ) : (\n \n )}\n \n \n )}\n\n {employee &&\n (employee!.flags.flightRisk ||\n employee!.flags.longTermLeave ||\n employee!.flags.primaryFlag ||\n employee!.flags.roleChangePathway) && (\n <>\n \n \n \n {employee!.flags.flightRisk && (\n \n )}\n {employee.probation.isInProbation && (\n \n )}\n {employee!.flags.roleChangePathway && (\n \n )}\n {employee!.flags.longTermLeave && (\n \n )}\n \n \n )}\n\n {(!employee || employee!.flags.primaryFlag) && (\n <>\n \n \n \n \n \n \n )}\n\n {/* No leave or PD data available */}\n {/* {employee && employee.leaveDetails && (\n <>\n \n \n \n \n Balances\n \n \n \n \n \n \n \n \n
\n \n )} */}\n \n );\n});\n","import React from 'react';\nimport styles from './SensitiveAttribute.module.scss';\nimport { Typography, Grid, Box } from '@material-ui/core';\nimport Visibility from '@material-ui/icons/Visibility';\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\n\ninterface ISensitiveAttributeProps {\n isSensitive: boolean;\n}\n\nexport const SensitiveAttribute: React.FC = ({ isSensitive }) => {\n return (\n \n \n \n {isSensitive ? (\n \n ) : (\n \n )}\n {isSensitive ? 'Sensitive' : 'Non-Sensitive'}\n \n \n \n );\n};\n","import React from 'react';\nimport styles from './FaceToFaceDiscussionAttribute.module.scss';\nimport { Typography, Grid, Box } from '@material-ui/core';\nimport ForumIcon from '@material-ui/icons/Forum';\n\ninterface IFaceToFaceDiscussionAttributeProps {\n isFaceToFaceDiscussion: boolean;\n}\n\nexport const FaceToFaceDiscussionAttribute: React.FC = ({\n isFaceToFaceDiscussion,\n}) => {\n return (\n \n \n \n \n \n {isFaceToFaceDiscussion\n ? 'Direct conversation with the employee'\n : 'Feedback/observations about the employee'}\n \n \n \n \n );\n};\n","import React from 'react';\nimport styles from 'views/components/tag/Tag.module.scss';\nimport { Chip } from '@material-ui/core';\n\nexport interface TagProps {\n name: string;\n isSensitive: boolean;\n reviewRequired: boolean;\n}\n\nexport const Tag: React.FC = ({ isSensitive, name }) => {\n return (\n \n );\n};\n","import { Chip } from '@material-ui/core';\nimport { INote, NoteSensitivity, NoteStatus } from 'domain/store/NoteModel';\nimport React from 'react';\nimport styles from './NoteCard.module.scss';\n\nconst NOTE_STATUS_TO_LABEL: Record = {\n published: '',\n pending: 'Requires Review',\n draft: '',\n sensitive: 'Sensitive',\n 'non-sensitive': '',\n none: '',\n};\nexport const NoteStatusChip: React.FC<{ note: INote }> = ({ note }) => {\n const key = note.status === 'published' ? note.sensitivity : note.status;\n const label = NOTE_STATUS_TO_LABEL[key];\n return label ? (\n \n ) : null;\n};\n","import { faEdit, faTrash } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button, Chip, IconButton, Typography } from '@material-ui/core';\nimport { INote } from 'domain/store/NoteModel';\nimport React, { useState } from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport { SensitiveAttribute } from 'views/components/sensitiveAttribute/SensitiveAttribute';\nimport { FaceToFaceDiscussionAttribute } from 'views/components/faceToFaceDiscussionAttribute/FaceToFaceDiscussionAttribute';\nimport { Tag } from 'views/components/tag/Tag';\nimport styles from 'views/routes/employeeJourney/components/employeeTimeline/components/noteTimelineItem/NoteTimelineItem.module.scss';\nimport 'github-markdown-css';\nimport cn from 'classnames';\nimport { NoteStatusChip } from 'views/routes/myNotes/components/listNotes/components/NoteStatusChip';\n\ninterface NoteTimelineItemProps {\n note: INote;\n editable?: boolean;\n deletable?: boolean;\n onEdit: (noteId: number) => void;\n onDelete: (noteId: number) => void;\n editDisabled: boolean;\n}\n\nconst parseContent = (allContent: string) => {\n const maxCharactersToShowInitially = 500;\n const showMoreButtonRequired = allContent.length > maxCharactersToShowInitially;\n const reducedContent = allContent.substring(0, maxCharactersToShowInitially) + '...';\n\n return { allContent, reducedContent, showMoreButtonRequired };\n};\n\nexport const NoteTimelineItem: React.FC = ({\n note,\n editable,\n deletable,\n onEdit,\n onDelete,\n editDisabled,\n}) => {\n const [showAll, setShowAll] = useState(false);\n const date = note.eventDateMoment!.local();\n\n const { allContent, reducedContent, showMoreButtonRequired } = parseContent(note.content);\n const toggleShowMore = () => setShowAll(!showAll);\n\n return (\n
  • \n
    \n
    {date.format('dddd')}
    \n
    {date.format('DD MMMM')}
    \n
    \n
    \n
    \n
    \n \n {note.subject}\n {note.isPeopleLeaderConversation === true && (\n \n )}\n {note.status === 'pending' && (\n
    \n \n
    \n )}\n
    \n
    \n
    \n {editable && (\n onEdit(note.noteId)}\n data-testid=\"edit-note\"\n className={styles.editButton}\n disabled={editDisabled}>\n \n \n )}\n {deletable && (\n onDelete(note.noteId)}\n data-testid=\"delete-note\"\n className={styles.deleteButton}>\n \n \n )}\n
    \n \n {note.sensitivity === 'sensitive' && }\n {note.sensitivity === 'non-sensitive' && }\n
    \n
    \n
    \n {note.tags.map((tag, index) => (\n \n ))}\n
    \n
    \n \n {showMoreButtonRequired && !showAll &&
    }\n
    \n
    Author: {note.author.displayName}
    \n {showMoreButtonRequired && (\n
    \n \n
    \n )}\n
    \n
    \n
  • \n );\n};\n","import React, { useEffect } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { Autocomplete } from '@material-ui/lab';\nimport { Chip, CircularProgress, TextField } from '@material-ui/core';\nimport { useTags } from 'hooks/useTags';\nimport { ITag } from 'domain/store/TagsModel';\nimport styles from './TagDropdown.module.scss';\nimport cn from 'classnames';\nimport { Lock } from '@material-ui/icons';\n\nexport interface Props {\n defaultValue?: ITag[];\n onChange?: (tags: ITag[]) => void;\n onBlur?: () => void;\n className?: string;\n textBoxClassName?: string;\n}\n\nexport const TagDropdown: React.FC = observer((props: Props) => {\n const tagStore = useTags();\n const [options, setOptions] = React.useState([]);\n const [loading] = React.useState(false);\n const [values, setValues] = React.useState([]);\n\n useEffect(() => {\n const tags = tagStore.all;\n setOptions(tags);\n }, [setOptions, tagStore.state, tagStore.all]);\n\n useEffect(() => {\n if (props.defaultValue) {\n setValues(props.defaultValue);\n }\n }, [props.defaultValue]);\n\n const handleDelete = (chipToDelete: ITag) => () => {\n if (props.onChange) {\n props.onChange(values?.filter((chip) => chip.tagId !== chipToDelete.tagId) || []);\n }\n setValues(values?.filter((chip) => chip.tagId !== chipToDelete.tagId) || undefined);\n };\n\n const handleChange = (values: ITag[] | null) => {\n if (props.onChange) {\n props.onChange(values || []);\n }\n setValues(values || undefined);\n };\n\n return (\n option.name}\n className={props.className}\n options={options}\n autoComplete\n filterSelectedOptions\n loading={loading}\n multiple\n value={values}\n getOptionSelected={(option: ITag, value: ITag) => option.tagId === value.tagId}\n onChange={(_, values) => {\n handleChange(values);\n }}\n onBlur={() => {\n props.onBlur && props.onBlur();\n }}\n renderTags={(params) =>\n params.map((p, i) => (\n \n ))\n }\n renderInput={(params) => (\n 0 ? '' : 'Select Tag(s)'}\n className={props.textBoxClassName}\n variant=\"outlined\"\n fullWidth\n InputLabelProps={{ shrink: false }}\n InputProps={{\n ...params.InputProps,\n endAdornment: (\n \n {loading ? : null}\n {params.InputProps.endAdornment}\n \n ),\n }}\n />\n )}\n renderOption={(option: ITag) => {\n return (\n
    \n {option.name}\n {(option.isSensitive || option.reviewRequired) && }\n
    \n );\n }}\n />\n );\n});\n","import { ITags } from 'domain/store/TagsModel';\nimport { useStore } from 'hooks/useStore';\n\nexport function useTags(): ITags {\n const { tags } = useStore();\n\n return tags;\n}\n","import React from 'react';\nimport { IconButton } from '@material-ui/core';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faArrowAltCircleUp } from '@fortawesome/free-regular-svg-icons';\nimport styles from './BackToTop.module.scss';\n\nexport interface BackToTopButtonProps {\n scrollToTop: () => void;\n edge?: 'start' | 'end';\n}\n\nexport const BackToTopButton: React.FC = ({ scrollToTop, edge }) => {\n return (\n \n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { asapScheduler, fromEvent, merge } from 'rxjs';\nimport { throttleTime } from 'rxjs/operators';\n\ninterface IBackToTopButtonResult {\n scrollableContainerRef: React.Ref;\n scrollToTopOfTimeline: () => void;\n showBackToTopButton: boolean;\n}\n\nexport function useBackToTopButton(): IBackToTopButtonResult {\n const scrollableContainerRef = React.createRef();\n const [showBackToTopButton, setShowBackToTopButton] = useState(false);\n const scrollToTopOfTimeline = () =>\n scrollableContainerRef.current?.scrollTo({ top: 0, behavior: 'smooth' });\n\n useEffect(() => {\n const checkIfBackToTopButtonIsNecessary = () => {\n const isNecessary =\n !!scrollableContainerRef.current &&\n scrollableContainerRef.current.scrollTop > 100 &&\n scrollableContainerRef.current.scrollHeight > scrollableContainerRef.current.clientHeight;\n\n if (showBackToTopButton !== isNecessary) {\n setShowBackToTopButton(isNecessary);\n }\n };\n\n const observableEvents = [fromEvent(window, 'resize'), fromEvent(window, 'orientationchange')];\n\n if (scrollableContainerRef.current) {\n observableEvents.push(fromEvent(scrollableContainerRef.current, 'scroll'));\n }\n\n const scrollEventSubscription = merge(...observableEvents)\n .pipe(throttleTime(250, asapScheduler, { leading: true, trailing: true }))\n .subscribe(checkIfBackToTopButtonIsNecessary);\n\n checkIfBackToTopButtonIsNecessary();\n return () => {\n scrollEventSubscription.unsubscribe();\n };\n }, [showBackToTopButton, scrollableContainerRef]);\n\n return { scrollableContainerRef, scrollToTopOfTimeline, showBackToTopButton };\n}\n","import React, { useState } from 'react';\nimport styles from 'views/routes/employeeJourney/components/employeeTimeline/EmployeeTimeline.module.scss';\nimport cn from 'classnames';\nimport { NoteTimelineItem } from 'views/routes/employeeJourney/components/employeeTimeline/components/noteTimelineItem/NoteTimelineItem';\nimport { useEmployeeJourney } from 'hooks/useEmployeeJourney';\nimport { observer } from 'mobx-react-lite';\nimport moment, { Moment, MomentInput } from 'moment';\nimport { INote } from 'domain/store/NoteModel';\nimport { useUser } from 'hooks/useUser';\nimport { useNavigate } from 'hooks/useNavigate';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { DateRange, DateRangePicker } from '@material-ui/pickers';\nimport { Button, TextField } from '@material-ui/core';\nimport { TagDropdown } from 'views/components/tagDropdown/TagDropdown';\nimport { BackToTopButton } from './components/backToTopButton/BackToTopButton';\nimport { useBackToTopButton } from 'hooks/useBackToTopButton';\nimport { CREATE_NOTE_ROUTE_PATH, EDIT_NOTE_ROUTE_PATH } from 'views/routes/Routes';\nimport { ITag } from 'domain/store/TagsModel';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faFile } from '@fortawesome/free-regular-svg-icons';\nimport { DateRangeValidationError } from '@material-ui/pickers/_helpers/date-utils';\nimport { useStore } from 'hooks/useStore';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\n\ninterface EmployeeTimelineProps {\n idpId?: string;\n className?: string;\n}\n\ninterface NotesProps {\n notes: { [key: string]: INote[] };\n editNoteHandler: (noteId: number) => void;\n deleteNoteHandler: (noteId: number) => void;\n editDisabled: boolean;\n}\n\nconst Notes: React.FC = ({\n notes,\n editNoteHandler,\n deleteNoteHandler,\n editDisabled,\n}) => {\n const currentYear = moment().format('YYYY');\n const noteEntries = Object.entries(notes);\n\n return (\n
    \n {noteEntries.map(([key, monthNotes]) => {\n const monthTitle =\n moment(key).format('YYYY') === currentYear\n ? moment(key).format('MMMM')\n : moment(key).format('MMMM YYYY');\n\n return (\n
    \n

    {monthTitle}

    \n
      \n {monthNotes?.map((note, index) => {\n return (\n \n );\n })}\n
    \n
    \n );\n })}\n
    \n );\n};\n\nexport const EmployeeTimeline: React.FC = observer(\n (props: EmployeeTimelineProps) => {\n const { notifications } = useStore();\n const user = useUser();\n const { loadNotes } = useEmployeeJourney();\n const navigate = useNavigate();\n const { isLoaded, notes, employee } = useEmployeeJourney();\n const [selectedDateRange, setDateRange] = useState>([null, null]);\n const [selectedTags, setSelectedTags] = useState([]);\n const [\n dateRangeValidationError,\n setDateRangeValidationError,\n ] = React.useState([null, null]);\n const {\n showBackToTopButton,\n scrollToTopOfTimeline,\n scrollableContainerRef,\n } = useBackToTopButton();\n\n const [showAlertDialog, setShowAlertDialog] = useState(false);\n const [noteIdToDelete, setNoteIdToDelete] = useState(null);\n\n const noteIsIncludedByFilter = (note: INote) => {\n const noteDate = note.eventDateMoment;\n const [fromDate, toDate] = selectedDateRange;\n\n const isSameOrAfterFromDate = !fromDate || noteDate!.isSameOrAfter(fromDate);\n const isBeforeToDate = !toDate || noteDate!.isBefore(toDate.clone().add(1, 'day'));\n\n const noteTags = note.tags.map((t) => t.tagId);\n const noteTagsAreSelected =\n selectedTags.length === 0 ||\n noteTags.filter((tagId) => selectedTags.map((t) => t.tagId).indexOf(tagId) >= 0).length > 0;\n\n return isSameOrAfterFromDate && isBeforeToDate && noteTagsAreSelected;\n };\n\n const groupedNotes =\n notes?.filter(noteIsIncludedByFilter).reduce((acc: NotesProps['notes'], cur: INote) => {\n const key = cur.eventDateMoment!.format('YYYY-MM');\n if (Object.prototype.hasOwnProperty.call(acc, key)) {\n acc[key].push(cur);\n } else {\n acc[key] = [cur];\n }\n return acc;\n }, {}) || {};\n\n const isFiltered = () => {\n const [fromDate, toDate] = selectedDateRange;\n return fromDate || toDate || selectedTags.length > 0;\n };\n\n const storeNoteToDelete = (noteId: number) => {\n setNoteIdToDelete(noteId);\n setShowAlertDialog(true);\n };\n\n const resetNoteDeleteStates = () => {\n setNoteIdToDelete(null);\n setShowAlertDialog(false);\n };\n\n const onAgreeClickDeleteNote = () => {\n user\n .deleteNote(noteIdToDelete as number)\n .then(() => loadNotes())\n .then(() => {\n notifications.addSuccess('The note was deleted successfully');\n })\n .catch((e) => {\n if (e?.response?.status === 409) {\n notifications.addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (e?.response?.status === 403) {\n notifications.addError('Not authorised to save changes.');\n } else {\n notifications.addError('An error occurred whilst deleting the note, please try again');\n }\n });\n resetNoteDeleteStates();\n };\n\n const onDisagreeClick = () => resetNoteDeleteStates();\n\n const editNote = (noteId: number) => {\n navigate(`${EDIT_NOTE_ROUTE_PATH}/${noteId}`);\n };\n\n return (\n \n
    \n
    \n (\n
    \n \n \n
    \n )}\n value={selectedDateRange}\n onChange={setDateRange}\n onError={(reason, value) => {\n // Fix for known bug https://github.com/mui-org/material-ui-pickers/issues/1801\n if (reason[0] === 'invalidRange' && value[0] && value[1]) {\n if (moment(value[0] as MomentInput).isSame(moment(value[1] as MomentInput))) {\n setDateRangeValidationError([null, null]);\n return;\n }\n }\n setDateRangeValidationError(reason);\n }}\n />\n\n setSelectedTags(tags)}\n defaultValue={selectedTags}\n />\n {isLoaded && (\n
    \n \n navigate(CREATE_NOTE_ROUTE_PATH, { employeeId: props.idpId || '' })\n }\n disabled={employee?.isFormerEmployee}\n data-testid=\"add-note-button\">\n Add A Note\n \n
    \n )}\n
    \n\n {isLoaded ? (\n groupedNotes && Object.entries(groupedNotes).length > 0 ? (\n
    \n \n \n
    \n ) : (\n
    \n \n

    No notes were found

    \n {isFiltered() && (\n

    \n You could try adjusting your search filters to help find what you're\n looking for.\n

    \n )}\n
    \n )\n ) : (\n \n )}\n\n {showBackToTopButton && (\n
    \n \n
    \n )}\n
    \n
    \n );\n }\n);\n","import { Chip } from '@material-ui/core';\nimport { RoleChangeStatus } from 'domain/store/employeeJourney/RoleChangeModel';\nimport React from 'react';\nimport styles from './RoleChangeStatusChip.module.scss';\n\ninterface IRoleChangeStatusChipProps {\n status: RoleChangeStatus;\n}\n\nexport const RoleChangeStatusChip: React.FC = ({ status }) => {\n return (\n \n );\n};\n","import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Grid } from '@material-ui/core';\nimport cn from 'classnames';\nimport React from 'react';\nimport styles from './NoRoleChangeSubmission.module.scss';\n\nexport const NoRoleChangeSubmissions: React.FC = () => {\n return (\n \n \n \n \n \n There is no role change submission for this employee\n \n \n );\n};\n","import { IRoleChangeModel } from 'domain/store/employeeJourney/RoleChangeModel';\nimport { useStore } from 'hooks/useStore';\n\nexport function useRoleChange(): IRoleChangeModel {\n const { roleChange } = useStore();\n\n return roleChange;\n}\n","export enum Positions {\n LeadConsultant = 'Lead Consultant',\n SeniorDeveloper = 'Senior Developer',\n TechnicalLead = 'Technical Lead',\n ManagingConsultant = 'Managing Consultant',\n Consultant = 'Consultant',\n SquadLeader = 'Squad Leader',\n PrincipalConsultant = 'Principal Consultant',\n Associate = 'Associate',\n AssociateSquadLeader = 'Associate Squad Leader',\n}\n","import { flow, getEnv, LoadingStateModel } from 'domain/store/util';\nimport { Instance, types } from 'mobx-state-tree';\nimport { api } from 'shared/api/interfaces';\nimport { errorLog } from 'index';\nimport moment from 'moment';\n\nexport const ratings = [\n { value: '0', description: 'Not Applicable' },\n { value: '1', description: 'Needs Coaching' },\n { value: '2', description: 'Maturing' },\n { value: '3', description: 'No Brainer' },\n { value: '4', description: 'Outstanding' },\n];\n\nexport type RoleChangeStatus = 'draft' | 'submitted' | 'approved' | 'rejected' | 'new';\nexport interface RoleChangeAttachmentFile {\n name: string;\n base64: string;\n contentType: string;\n}\n\nexport const RoleChangeModel = types\n .model('RoleChange', {\n loadingState: LoadingStateModel,\n })\n .actions((self) => ({\n getCurrentRoleChange: flow(function* (\n roleChangeId: number\n ): Generator, api.RoleChangeDto | null, api.RoleChangeDto> {\n const { ajax } = getEnv(self);\n try {\n self.loadingState = 'loading';\n const result = yield ajax\n .get('RoleChanges/rolechange', { searchParams: { roleChangeId } })\n .json();\n\n self.loadingState = 'done';\n return result;\n } catch (error) {\n self.loadingState = 'error';\n errorLog('Failed to fetch current role change', error);\n return null;\n }\n }),\n getAllRoleChangeSubmissions: flow(function* (\n employeeIdpId: string\n ): Generator, api.RoleChangeDto[] | null, api.RoleChangeDto[]> {\n const { ajax } = getEnv(self);\n try {\n self.loadingState = 'loading';\n const result = yield ajax\n .get('RoleChanges/rolechangesforemployee', { searchParams: { employeeIdpId } })\n .json();\n\n self.loadingState = 'done';\n return result;\n } catch (error) {\n self.loadingState = 'error';\n errorLog('Failed to fetch current role change', error);\n return null;\n }\n }),\n getRoleChangeSubmissionsForSquad: flow(function* (\n squadName: string\n ): Generator<\n Promise,\n api.EmployeeWithRoleChangeDto[],\n api.EmployeeWithRoleChangeDto[]\n > {\n const { ajax } = getEnv(self);\n try {\n self.loadingState = 'loading';\n const result = yield ajax\n .get('RoleChanges/rolechangesforsquad', { searchParams: { squadName } })\n .json();\n\n self.loadingState = 'done';\n return result;\n } catch (error) {\n self.loadingState = 'error';\n errorLog(`Failed to fetch role change submissions for ${squadName}`, error);\n return [];\n }\n }),\n upsertRoleChange: flow(function* (\n request: api.UpsertRoleChangeSubmissionRequest\n ): Generator, void, void> {\n const { ajax } = getEnv(self);\n\n try {\n yield ajax\n .post('RoleChanges/upsertrolechange', {\n json: request,\n })\n .json();\n } catch (error) {\n errorLog('Failed to submit role change', error);\n throw error;\n }\n }),\n revertCurrentRoleChangeToDraft: flow(function* (\n roleChangeId: number\n ): Generator, void, void> {\n const { ajax } = getEnv(self);\n try {\n yield ajax\n .post('RoleChanges/revertrolechangetodraft', { searchParams: { roleChangeId } })\n .json();\n } catch (error) {\n errorLog('Failed to revert current role change to draft', error);\n }\n }),\n approveRoleChangeForEmployee: flow(function* (\n roleChangeId: number,\n shouldApprove: boolean,\n approverAdditionalComments: string\n ): Generator, void, void> {\n const { ajax } = getEnv(self);\n try {\n yield ajax\n .post('RoleChanges/finalizerolechange', {\n json: { roleChangeId, approveRoleChange: shouldApprove, approverAdditionalComments },\n })\n .json();\n } catch (error) {\n errorLog(`Failed to ${shouldApprove ? 'approve' : 'reject'} role change`, error);\n }\n }),\n downloadRoleChangeBusinessCaseAttachment: flow(function* (\n employeeIdpId: string,\n roleChangeId: number,\n fileName: string\n ): Generator, Blob, Blob> {\n const { ajax } = getEnv(self);\n\n try {\n return yield ajax\n .get('RoleChanges/downloadBusinessCaseAttachment', {\n searchParams: { employeeIdpId, roleChangeId, fileName },\n })\n .blob();\n } catch (error) {\n errorLog('Failed to download business case for Role Change', error);\n throw error;\n }\n }),\n }))\n .actions((self) => ({\n loadSkills: flow(function* (\n capabilityId: string,\n roleNames: string[]\n ): Generator<\n Promise,\n api.CapabilityRoleDto[],\n api.CapabilityRoleDto[]\n > {\n const { ajax } = getEnv(self);\n\n const searchRoleNames = new URLSearchParams(roleNames.map((s) => ['roleName', s]));\n const roleName = searchRoleNames.toString();\n\n return yield ajax\n .get('RoleChanges/details?capabilityId=' + capabilityId + '&' + roleName)\n .json();\n }),\n }))\n .views((self) => ({\n get isLoading() {\n return self.loadingState === 'loading';\n },\n get currentRoleChangeCycle() {\n const currentYear = moment().get('year');\n return moment().get('month') < 6 ? `Jan-Jun ${currentYear}` : `Jul-Dec ${currentYear}`;\n },\n getRoleChangeCycle(roleChange: api.RoleChangeDto) {\n const currentYear = moment(roleChange.createdAt).get('year');\n const isCurrentMonthInFirstCycle = moment(roleChange.createdAt).get('month') < 6;\n const cycles = [\n `Jan-Jun ${currentYear}`,\n `Jul-Dec ${currentYear}`,\n `Jan-Jun ${currentYear + 1}`,\n ].slice(isCurrentMonthInFirstCycle ? 0 : 1, isCurrentMonthInFirstCycle ? 2 : 3);\n\n return cycles[roleChange.skipCurrentPromotionCycle ? 1 : 0];\n },\n getRatingDescriptionFromValue(value: string) {\n return ratings.find((r) => r.value === value)?.description || undefined;\n },\n }));\n\nexport const getStatus = (\n isDraft: boolean | undefined,\n isApproved: boolean | undefined,\n isActive: boolean | undefined\n): RoleChangeStatus => {\n if (isDraft) return 'draft';\n if (isDraft === undefined) return 'new';\n if (isApproved === null && isActive) return 'submitted';\n if (isApproved && !isActive) {\n return 'approved';\n } else {\n return 'rejected';\n }\n};\n\nexport interface IRoleChangeModel extends Instance {}\n","import React from 'react';\nimport styles from 'views/components/validationIcon/ValidationIcon.module.scss';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faCheckCircle, faTimesCircle } from '@fortawesome/free-solid-svg-icons';\n\nexport type ValidationStatus = 'hidden' | 'valid' | 'error';\n\ninterface IStatusIconProps {\n status: ValidationStatus;\n className?: string;\n}\n\nexport const ValidationIcon: React.FC = ({ status, className }) => {\n return (\n <>\n {status !== 'hidden' && (\n
    v).join(' ')}>\n {status === 'error' && (\n \n )}\n {status === 'valid' && (\n \n )}\n
    \n )}\n \n );\n};\n","import { Checkbox, FormControlLabel } from '@material-ui/core';\nimport { SwitchBaseProps } from '@material-ui/core/internal/SwitchBase';\nimport React from 'react';\nimport styles from '../../RoleChange.module.scss';\nimport cn from 'classnames';\n\ninterface IRoleChangeCheckboxProps {\n onChange?: (value: boolean) => void;\n disabled: boolean;\n selectedValue: boolean;\n label: string;\n inputProps?: React.InputHTMLAttributes | undefined;\n dataTestId?: string;\n}\n\nexport const RoleChangeCheckbox: React.FC = (props) => {\n return (\n \n props.onChange && props.onChange((event.target as HTMLInputElement).checked)\n }\n inputProps={\n props.dataTestId\n ? ({\n 'data-testid': props.dataTestId,\n } as SwitchBaseProps['inputProps'] & { 'data-testid': string })\n : undefined\n }\n />\n }\n label={props.label}\n className={cn(styles.formInputItem, styles.reverse)}\n />\n );\n};\n","import { FormControl, FormControlLabel, Radio, RadioGroup } from '@material-ui/core';\nimport React from 'react';\nimport styles from '../../RoleChange.module.scss';\nimport moment from 'moment';\nimport cn from 'classnames';\nimport { SwitchBaseProps } from '@material-ui/core/internal/SwitchBase';\n\ninterface IRoleChangeCycleRadioGroupProps {\n onChange: (value: boolean) => void;\n disabled: boolean;\n selectedValue: boolean | undefined;\n roleChangeDate: string | undefined;\n dataTestId: string;\n}\n\nexport const RoleChangeCycleRadioGroup: React.FC = (props) => {\n const getCurrentCycles = () => {\n const currentYear = moment(props.roleChangeDate).get('year');\n const isCurrentMonthInFirstCycle = moment(props.roleChangeDate).get('month') < 6;\n\n if (isCurrentMonthInFirstCycle) {\n return [`January to June ${currentYear}`, `July to December ${currentYear}`];\n } else {\n return [`July to December ${currentYear}`, `January to June ${currentYear + 1}`];\n }\n };\n\n const cycles = getCurrentCycles();\n\n return (\n \n \n \n props.onChange(cycles.indexOf((event.target as HTMLInputElement).value) > 0)\n }>\n {cycles.map((c, i) => (\n \n }\n label={c}\n className={cn(styles.formInputItem, styles.reverse)}\n />\n ))}\n \n \n );\n};\n","import { FormControl, MenuItem, Select } from '@material-ui/core';\nimport React from 'react';\nimport styles from '../../../../RoleChange.module.scss';\nimport { api } from 'shared/api/interfaces';\nimport { ratings } from 'domain/store/employeeJourney/RoleChangeModel';\nimport { SwitchBaseProps } from '@material-ui/core/internal/SwitchBase';\n\ninterface IRatingProps {\n coreValueId: string;\n skill: string;\n currentRating: number;\n index: number;\n handleSkillChange: (item: api.SkillRatingDto) => void;\n disabled: boolean;\n dataTestId: string;\n showValidationError: boolean;\n}\n\nexport const SkillRating: React.FC = (props) => {\n return (\n \n \n \n props.handleSkillChange({\n coreValueId: props.coreValueId,\n rating: parseInt((e.target as HTMLInputElement).value) as api.Rating,\n })\n }\n inputProps={\n {\n 'data-testid': 'skill-rating-dropdown-input',\n } as SwitchBaseProps['inputProps'] & { 'data-testid': string }\n }\n data-testid=\"skill-rating-dropdown\"\n disableUnderline>\n {ratings.map((r, i) => (\n \n {r.description}\n \n ))}\n \n \n );\n};\n","import { faEdit, faQuestionCircle } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n ClickAwayListener,\n FormControl,\n FormControlLabel,\n FormGroup,\n IconButton,\n Menu,\n MenuItem,\n Paper,\n Radio,\n RadioGroup,\n} from '@material-ui/core';\nimport cn from 'classnames';\nimport React, { ChangeEvent, useState } from 'react';\nimport { api } from 'shared/api/interfaces';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\nimport { ValidationIcon } from 'views/components/validationIcon/ValidationIcon';\nimport styles from '../../RoleChange.module.scss';\nimport { SkillRating } from './components/skillRating/SkillRating';\n\ninterface IRoleChangeSkills {\n currentRoleSkills?: api.CapabilityRoleDto;\n targetRoleSkills: api.CapabilityRoleDto;\n disabled: boolean;\n dataSource: string[];\n onSelected?: (selectedItem: string) => void;\n selectedItem: string;\n currentRoleSkillRatings: api.SkillRatingDto[];\n targetRoleSkillRatings: api.SkillRatingDto[];\n handleCurrentRoleSkillChange: (item: api.SkillRatingDto) => void;\n handleTargetRoleSkillChange: (item: api.SkillRatingDto) => void;\n formError: string | undefined;\n showValidationErrors: boolean;\n}\n\nexport const RoleChangeSkills: React.FC = (props) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n const [positionToUpdate, setPositionToUpdate] = useState(props.selectedItem || '');\n const [isOpen, setIsOpen] = useState(false);\n const [isOpenTarget, setIsOpenTarget] = useState(false);\n\n const onCloseDialog = () => {\n setIsDialogOpen(false);\n setAnchorEl(null);\n };\n\n const toggleSkillsMenu = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleRoleChange = (e: ChangeEvent<{ value: unknown }>) => {\n const newValue = e.target.value as string;\n setPositionToUpdate(newValue);\n setIsDialogOpen(true);\n };\n\n const onAgree = () => {\n props.onSelected!(positionToUpdate);\n setIsDialogOpen(false);\n };\n\n return (\n \n {props.currentRoleSkills && (\n <>\n setIsOpen(false)}>\n \n \n \n {props.currentRoleSkills.coreValues.map((skill, index) => {\n const rating =\n props.currentRoleSkillRatings.find((r) => r.coreValueId === skill.id)?.rating || 0;\n return (\n \n \n {props.showValidationErrors && (\n \n )}\n \n );\n })}\n \n \n )}\n setIsOpenTarget(false)}>\n \n \n \n {props.targetRoleSkills.coreValues.map((skill, index) => {\n const rating =\n props.targetRoleSkillRatings.find((r) => r.coreValueId === skill.id)?.rating || 0;\n return (\n \n \n {props.showValidationErrors && (\n \n )}\n \n );\n })}\n \n {props.formError && props.showValidationErrors && (\n
    {props.formError}
    \n )}\n \n );\n};\n\ninterface IRatingDescriptionProps {\n open: boolean;\n onClick: () => void;\n}\n\nconst RatingDescription = (props: IRatingDescriptionProps) => {\n return (\n <>\n props.onClick && props.onClick()}>\n \n \n {props.open ? (\n \n

    \n Rating Descriptions\n

    \n

    \n Not Applicable - There hasn't been an opportunity to demonstrate this,\n or your contributor hasn't had the opportunity to witness this area.\n

    \n

    \n Needs Coaching - This area needs improvement. If you haven’t already, focus\n your PD plan on it.\n

    \n

    \n Maturing - You’re developing well in this area. Continue to work on it as a\n growth area.\n

    \n

    \n No Brainer - You’re consistently demonstrating solid ability at this. Keep\n it up!\n

    \n

    \n Outstanding - You’re doing this exceptionally well, demonstrating\n leadership in this space.\n

    \n
    \n ) : null}\n \n );\n};\n","import React from 'react';\nimport NavigationPrompt from 'react-router-navigation-prompt';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\n\nexport interface NavigationAlertProps {\n for: string;\n when: boolean;\n}\n\nexport const NavigationAlert: React.FunctionComponent = (props) => (\n \n {({ onCancel, onConfirm }) => (\n \n )}\n \n);\n","import { Box, FormControl, Link, Tooltip, Button, IconButton } from '@material-ui/core';\nimport { faTimes, faUpload } from '@fortawesome/free-solid-svg-icons';\nimport React, { useState } from 'react';\nimport styles from '../../RoleChange.module.scss';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport cn from 'classnames';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\nimport { useStore } from '../../../../../../../hooks/useStore';\nimport { RoleChangeAttachmentFile } from 'domain/store/employeeJourney/RoleChangeModel';\n\ninterface IRoleChangeBusinessCaseAttachment {\n fileName: string | undefined;\n onBusinessCaseFileModified: (file: RoleChangeAttachmentFile, fileModified: boolean) => void;\n onDownload: (fileName: string | undefined) => void;\n onDelete: (fileName: string | undefined) => void;\n disabled: boolean;\n formError: string | undefined;\n showValidationErrors: boolean;\n}\n\nexport const RoleChangeBusinessCaseAttachment: React.FC = (\n props: IRoleChangeBusinessCaseAttachment\n) => {\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n const {\n notifications: { addError },\n } = useStore();\n const [fileModified, setFileModified] = useState(false);\n const allowed_types = [\n 'application/pdf',\n 'text/plain',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n ];\n\n const onAgree = () => {\n props.onDelete(props.fileName);\n setIsDialogOpen(false);\n };\n\n const preFileUploadCheck = (selectedFiles: FileList | null) => {\n if (!selectedFiles || selectedFiles.length === 0) {\n addError('Please select a file');\n return;\n }\n\n const selectedFile = selectedFiles[0];\n\n if (!allowed_types.includes(selectedFile.type)) {\n addError('Only Word, Text and PDF files are allowed ( Doc(x) | Txt | PDF)');\n return;\n }\n\n const getFileContent = new Promise(\n (resolve: (file: RoleChangeAttachmentFile) => void, reject) => {\n const reader = new FileReader();\n reader.onloadend = function () {\n resolve({\n name: selectedFile.name,\n base64: reader.result,\n contentType: selectedFile.type,\n } as RoleChangeAttachmentFile);\n };\n reader.readAsDataURL(selectedFile);\n }\n );\n getFileContent.then((attachment) => {\n setFileModified(true);\n props.onBusinessCaseFileModified(attachment, true);\n });\n };\n\n return (\n \n \n \n {!!props.fileName && !fileModified && (\n \n props.onDownload(props.fileName)} target=\"_blank\">\n {props.fileName}\n \n \n )}\n {!!props.fileName && fileModified && {props.fileName}}\n {!props.disabled && !!props.fileName && (\n \n setIsDialogOpen(true)}>\n \n \n \n )}\n {!props.fileName && No files attached}\n \n {props.formError && props.showValidationErrors && (\n
    {props.formError}
    \n )}\n setIsDialogOpen(false)}\n />\n \n );\n};\n","import { faPaperPlane, faSave } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button, FormControl, FormGroup, TextField } from '@material-ui/core';\nimport { SwitchBaseProps } from '@material-ui/core/internal/SwitchBase';\nimport cn from 'classnames';\nimport {\n getStatus,\n RoleChangeStatus,\n RoleChangeAttachmentFile,\n} from 'domain/store/employeeJourney/RoleChangeModel';\nimport { useEmployeeJourney } from 'hooks/useEmployeeJourney';\nimport { usePermissions } from 'hooks/usePermissions';\nimport { useRoleChange } from 'hooks/useRoleChange';\nimport { useStore } from 'hooks/useStore';\nimport { useUser } from 'hooks/useUser';\nimport { observer } from 'mobx-react-lite';\nimport moment, { utc } from 'moment';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { api } from 'shared/api/interfaces';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { RoleChangeStatusChip } from 'views/components/roleChangeStatusChip/RoleChangeStatusChip';\nimport { ValidationIcon, ValidationStatus } from 'views/components/validationIcon/ValidationIcon';\nimport { RoleChangeCheckbox } from './components/roleChangeCheckbox/RoleChangeCheckbox';\nimport { RoleChangeCycleRadioGroup } from './components/roleChangeCycleRadioGroup/RoleChangeCycleRadioGroup';\nimport { RoleChangeSkills } from './components/roleChangeSkills/RoleChangeSkills';\nimport styles from './RoleChange.module.scss';\nimport { NavigationAlert } from 'views/components/navigationAlert/NavigationAlert';\nimport { RoleChangeBusinessCaseAttachment } from './components/roleChangeBusinessCaseAttachment/RoleChangeBusinessCaseAttachment';\nimport { Positions } from '../../../../../shared/constants/Positions';\n\ninterface IRoleChangeProps {\n roleChange: api.RoleChangeDto | undefined;\n setSelectedRoleChange: (value: api.RoleChangeDto | undefined) => void;\n setRoleChangeHasStarted: (value: boolean) => void;\n roleChangeHasStarted: boolean;\n}\n\ntype FormItem =\n | 'isNotOnProbation'\n | 'hasCompletedRetros'\n | 'noPerformancePlan'\n | 'prerequisites'\n | 'skillRatings'\n | 'businessCaseAttachment';\n\ntype FormError = { [key in FormItem]?: string };\n\ninterface IFormState {\n targetRole: string;\n skipCurrentPromotionCycle: boolean;\n createdAt: string | undefined;\n hasCompletedRetros: boolean;\n noPerformanceImprovementPlan: boolean;\n isDraft: boolean | undefined;\n businessCaseAttachmentFileName: string | undefined;\n businessCaseAttachmentContentType: string | undefined;\n businessCaseAttachmentFileContent: string | undefined;\n businessCaseAttachmentContentModified: boolean;\n errors: FormError;\n submitterAdditionalComments: string | undefined;\n}\n\nconst immutableEmptyFormState = (): IFormState => {\n return {\n targetRole: '',\n skipCurrentPromotionCycle: false,\n createdAt: undefined,\n hasCompletedRetros: false,\n noPerformanceImprovementPlan: false,\n isDraft: undefined,\n businessCaseAttachmentFileName: undefined,\n businessCaseAttachmentContentType: undefined,\n businessCaseAttachmentFileContent: undefined,\n businessCaseAttachmentContentModified: false,\n errors: {},\n submitterAdditionalComments: undefined,\n };\n};\n\nexport const RoleChange: React.FC = observer(\n ({ roleChange, setSelectedRoleChange, setRoleChangeHasStarted, roleChangeHasStarted }) => {\n const { employee, positions } = useEmployeeJourney();\n const {\n isLoading,\n upsertRoleChange,\n loadSkills,\n revertCurrentRoleChangeToDraft,\n downloadRoleChangeBusinessCaseAttachment,\n } = useRoleChange();\n const {\n notifications: { addError, addSuccess },\n } = useStore();\n const {\n canEdit,\n employees: { roleChanges },\n } = usePermissions();\n\n const { givenName, familyName } = useUser();\n\n const employeeCurrentRole = employee?.position ?? 'Select Position';\n const positionsArray = positions.slice(\n positions.indexOf(employeeCurrentRole) + 1,\n positions.length\n );\n const [confirmationDialogOpen, setConfirmationDialogOpen] = useState(false);\n const [currentRoleSkillRatings, setCurrentRoleSkillRatings] = useState(\n []\n );\n const [initialCurrentRoleSkillRatings, setInitialCurrentRoleSkillRatings] = useState<\n api.SkillRatingDto[]\n >([]);\n const [targetRoleSkillRatings, setTargetRoleSkillRatings] = useState([]);\n const [initialTargetRoleSkillRatings, setInitialTargetRoleSkillRatings] = useState<\n api.SkillRatingDto[]\n >([]);\n const [isSkillsLoaded, setIsSkillsLoaded] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [lastModifiedBy, setLastModifiedBy] = useState<{\n user: string;\n date: string;\n } | null>(null);\n const [formState, setFormState] = useState({\n ...immutableEmptyFormState(),\n targetRole: positionsArray[0],\n });\n const [initialFormState, setInitialFormState] = useState({\n ...formState,\n });\n const [validationQueue, setValidationQueue] = useState([]);\n const [showSkillRatingValidationIcons, setShowSkillRatingValidationIcons] = useState(false);\n const [currentRoleSkills, setCurrentRoleSkills] = useState();\n const [targetRoleSkills, setTargetRoleSkills] = useState();\n\n const handleRoleSkillChange = (\n item: api.SkillRatingDto,\n skills: api.SkillRatingDto[],\n setter: React.Dispatch>\n ) => {\n const tempSkills = [...skills];\n const skillRating = tempSkills.find((r) => r.coreValueId === item.coreValueId);\n if (skillRating) {\n skillRating.rating = item.rating;\n setter(tempSkills);\n setValidationQueue(['skillRatings']);\n }\n };\n\n const isReadOnly = !canEdit(roleChanges) || formState.isDraft === false;\n\n const loadRoleSkills = (\n currentRole: string,\n targetRole: string,\n skillRatings: api.SkillRatingDto[] | undefined = undefined\n ) => {\n setIsSkillsLoaded(false);\n const requireCurrentRoleSkills =\n currentRole === Positions.Associate ? [targetRole] : [currentRole, targetRole];\n employee &&\n loadSkills(employee.capability, requireCurrentRoleSkills)\n .then((s) => {\n const currentRs = s.find((x) => x.name === currentRole);\n const targetRs = s.find((x) => x.name === targetRole);\n setCurrentRoleSkills(currentRs);\n setTargetRoleSkills(targetRs);\n if (skillRatings) {\n if (currentRs) {\n const currentRoleRatings = skillRatings.filter(\n (value) => currentRs!.coreValues.findIndex((y) => y.id === value.coreValueId) >= 0\n );\n setCurrentRoleSkillRatings(\n currentRoleRatings.map((r) => {\n return { coreValueId: r.coreValueId, rating: r.rating };\n })\n );\n\n setInitialCurrentRoleSkillRatings(\n currentRoleRatings.map((r) => {\n return { coreValueId: r.coreValueId, rating: r.rating };\n })\n );\n }\n const targetRoleRatings = skillRatings.filter(\n (value) => targetRs!.coreValues.findIndex((y) => y.id === value.coreValueId) >= 0\n );\n\n setTargetRoleSkillRatings(\n targetRoleRatings.map((r) => {\n return { coreValueId: r.coreValueId, rating: r.rating };\n })\n );\n\n setInitialTargetRoleSkillRatings(\n targetRoleRatings.map((r) => {\n return { coreValueId: r.coreValueId, rating: r.rating };\n })\n );\n\n setValidationQueue(['skillRatings']);\n } else {\n if (currentRs) {\n setCurrentRoleSkillRatings(\n currentRs!.coreValues.map((r) => {\n return { coreValueId: r.id, rating: 0 };\n })\n );\n\n setInitialCurrentRoleSkillRatings(\n currentRs!.coreValues.map((r) => {\n return { coreValueId: r.id, rating: 0 };\n })\n );\n }\n\n setTargetRoleSkillRatings(\n targetRs!.coreValues.map((r) => {\n return { coreValueId: r.id, rating: 0 };\n })\n );\n\n setInitialTargetRoleSkillRatings(\n targetRs!.coreValues.map((r) => {\n return { coreValueId: r.id, rating: 0 };\n })\n );\n }\n })\n .finally(() => setIsSkillsLoaded(true));\n };\n const handleSubmitRoleChange = () => {\n if (employee) {\n setConfirmationDialogOpen(false);\n setIsSubmitting(true);\n const combinedSkillRatings = targetRoleSkillRatings.concat(currentRoleSkillRatings);\n upsertRoleChange({\n ...formState,\n roleChangeId: roleChange?.roleChangeId,\n employeeIdpId: employee.idpId,\n skillRatings: combinedSkillRatings,\n saveAsDraft: false,\n })\n .then(() => {\n addSuccess('Role change is submitted');\n setFormState({ ...formState, isDraft: false });\n setInitialFormState({ ...formState, isDraft: false });\n\n setInitialCurrentRoleSkillRatings(\n currentRoleSkillRatings.map((r) => {\n return { coreValueId: r.coreValueId, rating: r.rating };\n })\n );\n\n setInitialTargetRoleSkillRatings(\n targetRoleSkillRatings.map((r) => {\n return { coreValueId: r.coreValueId, rating: r.rating };\n })\n );\n\n setLastModifiedBy({\n user: `${givenName} ${familyName}`,\n date: moment().format('DD/MM/YYYY'),\n });\n setSelectedRoleChange(roleChange);\n })\n .catch((err) => {\n if (err?.response?.status === 409) {\n addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (err?.response?.status === 403) {\n addError('Not authorised to save changes.');\n } else {\n addError('Failed to submit role change');\n }\n })\n .finally(() => {\n setIsSubmitting(false);\n setRoleChangeHasStarted(false);\n });\n }\n };\n\n const handleRevertToDraft = () => {\n if (roleChange) {\n setIsSubmitting(true);\n revertCurrentRoleChangeToDraft(roleChange.roleChangeId)\n .then(() => {\n setFormState({ ...formState, isDraft: true });\n setInitialFormState({ ...formState, isDraft: true });\n })\n .catch((err) => {\n if (err?.response?.status === 409) {\n addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (err?.response?.status === 403) {\n addError('Not authorised to save changes.');\n } else {\n addError('Failed to revert role change to draft');\n }\n })\n .finally(() => setIsSubmitting(false));\n }\n };\n\n const handleSaveAsDraft = async () => {\n if (employee) {\n setIsSubmitting(true);\n const combinedSkillsRatings = targetRoleSkillRatings.concat(currentRoleSkillRatings);\n await upsertRoleChange({\n ...formState,\n roleChangeId: roleChange?.roleChangeId,\n employeeIdpId: employee.idpId,\n skillRatings: combinedSkillsRatings,\n saveAsDraft: true,\n })\n .then(() => {\n addSuccess('Draft role change is saved');\n setFormState({ ...formState, isDraft: true });\n setInitialFormState({ ...formState, isDraft: true });\n setInitialCurrentRoleSkillRatings(\n currentRoleSkillRatings.map((r) => {\n return { coreValueId: r.coreValueId, rating: r.rating };\n })\n );\n setInitialTargetRoleSkillRatings(\n targetRoleSkillRatings.map((r) => {\n return { coreValueId: r.coreValueId, rating: r.rating };\n })\n );\n setLastModifiedBy({\n user: `${givenName} ${familyName}`,\n date: moment().format('DD/MM/YYYY'),\n });\n setSelectedRoleChange(roleChange);\n })\n .catch((err) => {\n if (err?.response?.status === 409) {\n addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (err?.response?.status === 403) {\n addError('Not authorised to save changes.');\n } else {\n addError('Failed to save draft');\n }\n })\n .finally(() => {\n setIsSubmitting(false);\n setRoleChangeHasStarted(false);\n });\n }\n };\n\n const handleBusinessCaseFileModified = (\n file: RoleChangeAttachmentFile,\n fileModified: boolean\n ) => {\n setFormState((formState) => {\n return {\n ...formState,\n ...{\n businessCaseAttachmentFileName: file.name,\n businessCaseAttachmentFileContent: file.base64,\n businessCaseAttachmentContentType: file.contentType,\n businessCaseAttachmentContentModified: fileModified,\n },\n };\n });\n setValidationQueue(['businessCaseAttachment']);\n };\n\n const handleFileDownload = (fileName: string | undefined) => {\n if (employee === null || fileName === undefined) {\n addError('for downloading the file, employee and fileName should be present');\n return;\n }\n\n if (roleChange) {\n downloadRoleChangeBusinessCaseAttachment(employee.idpId, roleChange.roleChangeId, fileName)\n .then((blob: Blob) => {\n const url = window.URL.createObjectURL(new Blob([blob]));\n const a = document.createElement('a');\n a.setAttribute('style', 'display:none;');\n document.body.appendChild(a);\n a.download = fileName;\n a.href = url;\n a.target = '_blank';\n a.click();\n document.body.removeChild(a);\n })\n .catch((err) => {\n if (err?.response?.status === 404) addError('File not found');\n });\n }\n };\n\n const handleFileDelete = (fileName: string | undefined) => {\n if (employee === null || fileName === undefined) {\n return;\n }\n setFormState((formState) => {\n return {\n ...formState,\n ...{\n businessCaseAttachmentFileName: undefined,\n businessCaseAttachmentContentType: undefined,\n businessCaseAttachmentFileContent: undefined,\n businessCaseAttachmentContentModified: true,\n },\n };\n });\n\n setValidationQueue(['businessCaseAttachment']);\n };\n\n useEffect(() => {\n if (!roleChange && !roleChangeHasStarted) return;\n\n if (roleChange && employee) {\n loadRoleSkills(employee.position, roleChange.targetRole, roleChange.skillRatings);\n setFormState((formState) => {\n return {\n ...formState,\n ...roleChange,\n };\n });\n setInitialFormState((initialFormState) => {\n return {\n ...formState,\n ...roleChange,\n };\n });\n setLastModifiedBy({\n user: roleChange.lastModifiedBy,\n date: utc(roleChange.lastModifiedAtUtc).local().format('DD/MM/YYYY'),\n });\n }\n\n if (roleChangeHasStarted && employee && roleChange?.isDraft === undefined) {\n loadRoleSkills(employee.position, positionsArray[0]);\n setFormState((formState) => {\n return {\n ...formState,\n };\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [employee, roleChange]);\n\n const getValidationError = useCallback(\n (item: FormItem): string | undefined => {\n const validationErrors: FormError = {\n isNotOnProbation: !employee?.probation.isInProbation ? undefined : '',\n hasCompletedRetros: formState.hasCompletedRetros ? undefined : '',\n noPerformancePlan: formState.noPerformanceImprovementPlan ? undefined : '',\n\n prerequisites:\n !employee?.probation.isInProbation &&\n formState.hasCompletedRetros &&\n formState.noPerformanceImprovementPlan\n ? undefined\n : 'All prerequisites must be satisfied prior to submission',\n\n skillRatings:\n targetRoleSkillRatings.every((r) => r.rating >= 3) &&\n currentRoleSkillRatings.every((r) => r.rating >= 3)\n ? undefined\n : 'All skills & behaviours must be rated as No Brainer or above prior to submission',\n\n businessCaseAttachment:\n (formState.targetRole === Positions.ManagingConsultant ||\n formState.targetRole === Positions.PrincipalConsultant) &&\n !formState.businessCaseAttachmentFileName\n ? `Business Case Attachment is mandatory for ${Positions.ManagingConsultant} and ${Positions.PrincipalConsultant} roles`\n : undefined,\n };\n\n return validationErrors[item];\n },\n [employee, formState, currentRoleSkillRatings, targetRoleSkillRatings]\n );\n\n const handleValidateFormItem = useCallback(\n (name: FormItem) => {\n const newState = {\n ...formState,\n };\n\n newState.errors[name] = getValidationError(name);\n setFormState(newState);\n },\n [formState, getValidationError]\n );\n\n const handleValidation = () => {\n handleValidateFormItem('isNotOnProbation');\n handleValidateFormItem('hasCompletedRetros');\n handleValidateFormItem('noPerformancePlan');\n handleValidateFormItem('prerequisites');\n handleValidateFormItem('skillRatings');\n handleValidateFormItem('businessCaseAttachment');\n\n setShowSkillRatingValidationIcons(true);\n\n return Object.values(formState.errors).every((v) => v === undefined);\n };\n\n const getValidationStatus = (item: FormItem): ValidationStatus => {\n if (Object.prototype.hasOwnProperty.call(formState.errors, item)) {\n return formState.errors[item] === undefined ? 'valid' : 'error';\n }\n return 'hidden';\n };\n\n const handleFormStateChange = useCallback(\n (state: IFormState, item?: FormItem | FormItem[]) => {\n item && setValidationQueue(validationQueue.concat(item));\n setFormState(state);\n },\n [validationQueue]\n );\n\n useEffect(() => {\n if (validationQueue.length) {\n const errors = formState.errors;\n validationQueue.forEach((item) => {\n errors[item] = getValidationError(item);\n });\n setFormState({ ...formState, errors });\n setValidationQueue([]);\n }\n }, [validationQueue, handleValidateFormItem, formState, getValidationError]);\n\n const isFormStateDirty = useCallback(() => {\n if (formState.targetRole !== initialFormState.targetRole) {\n return true;\n }\n if (formState.skipCurrentPromotionCycle !== initialFormState.skipCurrentPromotionCycle) {\n return true;\n }\n if (formState.hasCompletedRetros !== initialFormState.hasCompletedRetros) {\n return true;\n }\n if (\n formState.noPerformanceImprovementPlan !== initialFormState.noPerformanceImprovementPlan\n ) {\n return true;\n }\n if (formState.submitterAdditionalComments !== initialFormState.submitterAdditionalComments) {\n return true;\n }\n return (\n currentRoleSkillRatings.some(\n (r, i) => r.rating !== initialCurrentRoleSkillRatings[i]?.rating\n ) ||\n targetRoleSkillRatings.some((r, i) => r.rating !== initialTargetRoleSkillRatings[i]?.rating)\n );\n }, [\n formState,\n initialFormState,\n currentRoleSkillRatings,\n initialCurrentRoleSkillRatings,\n targetRoleSkillRatings,\n initialTargetRoleSkillRatings,\n ]);\n\n if (isLoading) {\n return (\n
    \n \n
    \n );\n }\n\n return (\n <>\n \n
    \n
    \n

    Role Change

    \n \n
    \n {lastModifiedBy && (\n \n Last modified by {lastModifiedBy.user} on {lastModifiedBy.date}\n \n )}\n \n handleFormStateChange({ ...formState, skipCurrentPromotionCycle: value })\n }\n roleChangeDate={formState.createdAt}\n dataTestId=\"role-change-cycle-radio-button\"\n />\n\n \n \n \n \n \n \n handleFormStateChange(\n {\n ...formState,\n hasCompletedRetros: value,\n },\n getValidationStatus('prerequisites') !== 'hidden'\n ? ['hasCompletedRetros', 'prerequisites']\n : undefined\n )\n }\n label=\"Candidate has completed 2 retros within the last 12 months\"\n dataTestId=\"completed-retros-checkbox\"\n />\n \n \n handleFormStateChange(\n {\n ...formState,\n noPerformanceImprovementPlan: value,\n },\n getValidationStatus('prerequisites') !== 'hidden'\n ? ['noPerformancePlan', 'prerequisites']\n : undefined\n )\n }\n label=\"Candidate has not been on a performance improvement plan for at least 12 months\"\n dataTestId=\"performance-improvement-plan-checkbox\"\n />\n \n \n {formState.errors.prerequisites && (\n
    {formState.errors.prerequisites}
    \n )}\n \n {isSkillsLoaded && targetRoleSkills ? (\n {\n handleFormStateChange({\n ...formState,\n targetRole: e,\n });\n loadRoleSkills(employee!.position, e);\n }}\n selectedItem={formState.targetRole}\n currentRoleSkillRatings={currentRoleSkillRatings}\n targetRoleSkillRatings={targetRoleSkillRatings}\n handleCurrentRoleSkillChange={(e) =>\n handleRoleSkillChange(e, currentRoleSkillRatings, setCurrentRoleSkillRatings)\n }\n handleTargetRoleSkillChange={(e) =>\n handleRoleSkillChange(e, targetRoleSkillRatings, setTargetRoleSkillRatings)\n }\n formError={formState.errors.skillRatings}\n showValidationErrors={showSkillRatingValidationIcons}\n />\n ) : (\n \n )}\n \n \n \n {!isReadOnly ? (\n \n setFormState({\n ...formState,\n submitterAdditionalComments: e.currentTarget.value,\n })\n }\n />\n ) : (\n
    \n {roleChange?.submitterAdditionalComments || 'No comments were made'}\n
    \n )}\n
    \n {roleChange?.approverAdditionalComments && (\n
    \n \n
    {roleChange.approverAdditionalComments}
    \n
    \n )}\n
    \n {\n setRoleChangeHasStarted(false);\n setSelectedRoleChange(undefined);\n }}>\n Back\n \n {canEdit(roleChanges) && isSubmitting ? (\n
    \n \n
    \n ) : formState.isDraft === false ? (\n roleChange?.isApproved === true ||\n roleChange?.isApproved === false ||\n !canEdit(roleChanges) ? null : (\n \n Edit\n \n \n )\n ) : (\n <>\n \n Save\n \n \n handleValidation() && setConfirmationDialogOpen(true)}>\n Submit\n \n \n setConfirmationDialogOpen(false)}\n agreeButtonText=\"Submit\"\n disagreeButtonText=\"Cancel\"\n />\n \n )}\n
    \n \n \n );\n }\n);\n","import { Button, Typography, Box } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\nimport { api } from 'shared/api/interfaces';\nimport { RoleChangeStatusChip } from 'views/components/roleChangeStatusChip/RoleChangeStatusChip';\nimport { NoRoleChangeSubmissions } from './components/noRoleChangeSubmission/NoRoleChangeSubmission';\nimport styles from './RoleChange.module.scss';\nimport { useRoleChange } from 'hooks/useRoleChange';\nimport { useEmployeeJourney } from 'hooks/useEmployeeJourney';\nimport { observer } from 'mobx-react-lite';\nimport { usePermissions } from 'hooks/usePermissions';\nimport AddBoxIcon from '@material-ui/icons/AddBox';\nimport { RoleChange } from './RoleChange';\nimport { useStore } from 'hooks/useStore';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { getStatus, RoleChangeStatus } from 'domain/store/employeeJourney/RoleChangeModel';\nimport { Positions } from '../../../../../shared/constants/Positions';\n\nexport const RoleChangesList: React.FC = observer(() => {\n const { employee, positions } = useEmployeeJourney();\n const { getRoleChangeCycle, getAllRoleChangeSubmissions } = useRoleChange();\n const {\n canEdit,\n employees: { roleChanges },\n } = usePermissions();\n const {\n notifications: { addError },\n } = useStore();\n const [isLoading, setIsLoading] = useState(false);\n const [newRoleChangeHasBeenStarted, setNewRoleChangeHasBeenStarted] = useState(false);\n const [allRoleChanges, setAllRoleChanges] = useState([]);\n const [selectedRoleChange, setSelectedRoleChange] = useState(\n undefined\n );\n const previousRole = (targetRole: string) => {\n const index = positions.indexOf(targetRole);\n return positions[index - 1];\n };\n\n const handleRoleChangeHasStarted = (value: boolean) => {\n setNewRoleChangeHasBeenStarted(value);\n };\n\n const canEditRoleChange = canEdit(roleChanges);\n\n useEffect(() => {\n setAllRoleChanges([]);\n setIsLoading(true);\n employee &&\n getAllRoleChangeSubmissions(employee.idpId)\n .then((result) => {\n setAllRoleChanges(result);\n })\n .catch((err) => {\n if (err?.response?.status === 403) {\n addError('Not authorised to access role changes.');\n } else {\n addError(`Failed to get role changes for ${employee.givenName} ${employee.familyName}`);\n }\n })\n .finally(() => setIsLoading(false));\n }, [\n getAllRoleChangeSubmissions,\n employee,\n setAllRoleChanges,\n addError,\n newRoleChangeHasBeenStarted,\n ]);\n\n return (\n
    \n {!newRoleChangeHasBeenStarted ? (\n
    \n
    \n

    Role Change

    \n {canEditRoleChange && employee?.position !== Positions.PrincipalConsultant && (\n }\n onClick={() => handleRoleChangeHasStarted(true)}>\n Create New\n \n )}\n {employee?.position === Positions.PrincipalConsultant && (\n \n )}\n
    \n {!isLoading ? (\n allRoleChanges && allRoleChanges.length > 0 ? (\n allRoleChanges.map((r, i) => (\n
    \n
    \n \n \n {previousRole(r.targetRole)} to {r.targetRole} ·\n \n \n \n \n {getRoleChangeCycle(r)}\n \n \n
    \n
    \n \n {\n setSelectedRoleChange(r);\n handleRoleChangeHasStarted(true);\n }}>\n View\n \n
    \n
    \n ))\n ) : (\n \n )\n ) : (\n \n )}\n
    \n ) : (\n \n )}\n
    \n );\n});\n","import React, { ReactNode } from 'react';\nimport { Link, Redirect, Route, Switch, useLocation, useParams } from 'react-router-dom';\nimport styles from 'views/routes/employeeJourney/EmployeeJourney.module.scss';\nimport { EmployeeSidebar } from 'views/routes/employeeJourney/components/employeeSidebar/EmployeeSidebar';\nimport { EmployeeTimeline } from 'views/routes/employeeJourney/components/employeeTimeline/EmployeeTimeline';\nimport { RoleChangesList } from 'views/routes/employeeJourney/components/roleChange/RoleChangesList';\nimport { AppBar, Tab, Tabs } from '@material-ui/core';\nimport { usePermissions } from 'hooks/usePermissions';\nimport { observer } from 'mobx-react-lite';\nimport { useEmployeeJourney } from 'hooks/useEmployeeJourney';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\n\ninterface TabItem {\n link: string;\n title: ReactNode;\n component: ReactNode;\n disabled: boolean;\n visible: boolean;\n}\n\nexport const EmployeeJourney: React.FC = observer(() => {\n const { idpId } = useParams<{ idpId?: string }>();\n const {\n canView,\n canViewEmployeeTab,\n employees: { roleChanges },\n } = usePermissions();\n const location = useLocation();\n\n const canViewRoleChanges = canView(roleChanges);\n const { isLoaded, employee } = useEmployeeJourney();\n\n const tabItems: TabItem[] = [\n {\n title: 'Journey',\n component: ,\n link: 'journey',\n disabled: !canViewEmployeeTab,\n visible: true,\n },\n {\n title: 'Role Change',\n component: isLoaded ? : ,\n link: 'role-change',\n disabled: !canViewRoleChanges || !employee?.isInCareerFramework,\n visible: canViewRoleChanges,\n },\n ].filter((t) => t.visible);\n\n const activeTab: number = tabItems.findIndex(\n (item) => location.pathname === `/employees/${idpId}/${item.link}`\n );\n\n return (\n
    \n \n \n {tabItems.map((item, index) => (\n \n ))}\n \n \n
    \n \n \n {tabItems.map(\n (item) =>\n !item.disabled && ( // prevent the user from just using updating the url\n \n {item.component}\n \n )\n )}\n {isLoaded && (\n \n )}\n \n
    \n
    \n );\n});\n","import React, { useState } from 'react';\nimport ReactMarkdown from 'react-markdown';\nimport { TextField } from '@material-ui/core';\nimport styles from './MarkdownTextArea.module.scss';\nimport 'github-markdown-css';\n\ntype ITextAreaProps = {\n content: string;\n onChange?: (text: string) => void;\n onBlur?: () => void;\n};\n\nexport const MarkdownTextArea: React.FC = function ({ content, onChange, onBlur }) {\n const [isFocused, setIsFocused] = useState(false);\n\n const onBlurHandler = () => {\n setIsFocused(false);\n onBlur && onBlur();\n };\n\n const onClickHandler = () => {\n setIsFocused(true);\n };\n\n const onChangeHandler = (event: React.ChangeEvent) => {\n onChange && onChange(event.target.value);\n };\n\n return (\n \n {!isFocused && content.length ? (\n
    \n \n
    \n ) : (\n \n )}\n \n );\n};\n","import React, { FormEvent } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport moment from 'moment';\nimport { MarkdownTextArea } from 'views/components/markdownTextArea/MarkdownTextArea';\nimport {\n Button,\n Checkbox,\n FormControl,\n FormControlLabel,\n Radio,\n RadioGroup,\n TextField,\n} from '@material-ui/core';\nimport styles from 'views/routes/myNotes/components/editNote/EditNote.module.scss';\nimport { EmployeeDropdown } from 'views/components/employeeDropdown/EmployeeDropdown';\nimport { TagDropdown } from 'views/components/tagDropdown/TagDropdown';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faArrowCircleRight, faSave, faUndo } from '@fortawesome/free-solid-svg-icons';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { FormItem, IFormState, ModeType } from 'views/routes/myNotes/MyNotes';\nimport { ValidationIcon, ValidationStatus } from 'views/components/validationIcon/ValidationIcon';\nimport { NavigationAlert } from 'views/components/navigationAlert/NavigationAlert';\nimport { Tooltip } from '@material-ui/core';\nimport { InfoOutlined } from '@material-ui/icons';\nimport { NoteSensitivity } from 'domain/store/NoteModel';\n\ninterface IEditNoteProps {\n formState: IFormState;\n formTitle: string;\n mode: ModeType;\n showSensitivity: boolean;\n onChange: (state: IFormState, item?: FormItem) => void;\n onSubmitNote: () => void;\n onSubmitDraft: () => void;\n onValidateFormItem: (item: FormItem) => void;\n onUndoChanges: () => void;\n isFormStateDirty: boolean;\n isOkToSaveAsDraft: boolean;\n isSubmitting: false | 'draft' | 'published';\n}\n\ninterface CheckboxProps extends React.InputHTMLAttributes {\n 'data-testid'?: string;\n}\n\nconst SUBMISSION_TEXT: { draft: string; published: string } = {\n draft: 'Saving Note',\n published: 'Submitting Note',\n};\n\nexport const EditNote: React.FC = observer(\n ({\n formState,\n formTitle,\n mode,\n showSensitivity,\n onChange,\n onValidateFormItem,\n onSubmitNote,\n onSubmitDraft,\n onUndoChanges,\n isFormStateDirty,\n isOkToSaveAsDraft,\n isSubmitting,\n }) => {\n const onSubmitForm = (e: FormEvent) => {\n e.preventDefault();\n onSubmitNote();\n };\n\n const handleSaveAsDraft = (e: FormEvent) => {\n e.preventDefault();\n onSubmitDraft();\n };\n\n const getFormItemClass = (item: FormItem): string => {\n const classes = [styles.formItem];\n\n if (styles[item]) {\n classes.push(styles[item]);\n }\n\n const errors = formState.errors;\n if (errors[item]) {\n classes.push(styles.error);\n }\n\n if (!isFormStateDirty) {\n classes.push(styles.pristine);\n }\n\n return classes.join(' ');\n };\n\n const getValidationStatus = (item: FormItem): ValidationStatus => {\n if (Object.prototype.hasOwnProperty.call(formState.errors, item)) {\n return formState.errors[item] === undefined ? 'valid' : 'error';\n }\n return 'hidden';\n };\n\n return (\n <>\n \n
    \n
    \n

    {formTitle}

    \n \n
    \n \n
    \n onChange({ ...formState, employee }, 'employee')}\n defaultValue={formState.employee}\n onBlur={() => onValidateFormItem('employee')}\n />\n
    \n \n
    {formState.errors.employee}
    \n
    \n\n {formState.employee && (\n
    \n \n \n \n onChange({\n ...formState,\n isFaceToFaceDiscussion:\n (event.target as HTMLInputElement).value === 'true',\n })\n }\n onBlur={() => onValidateFormItem('isFaceToFaceDiscussion')}>\n }\n label=\"Direct conversation with the employee\"\n data-testid=\"is-face-to-face\"\n />\n }\n label=\"Feedback/observations about the employee\"\n />\n \n \n \n
    {formState.errors.isFaceToFaceDiscussion}
    \n
    \n )}\n\n
    \n \n
    \n \n onChange({ ...formState, date: event.currentTarget.value }, 'date')\n }\n onBlur={() => onValidateFormItem('date')}\n inputProps={{\n 'data-testid': 'date',\n max: moment().format('YYYY-MM-DD'),\n min: moment().add(-1, 'year').format('YYYY-MM-DD'),\n }}\n />\n
    \n \n
    {formState.errors.date}
    \n
    \n\n
    \n \n
    \n onChange({ ...formState, tags }, 'tags')}\n onBlur={() => onValidateFormItem('tags')}\n defaultValue={formState.tags}\n />\n
    \n \n {(formState.errors.tags || showSensitivity) && (\n
    {formState.errors.tags}
    \n )}\n
    \n\n {showSensitivity ? (\n
    \n \n \n \n onChange({\n ...formState,\n sensitivity: (event.target as HTMLInputElement).value as NoteSensitivity,\n })\n }\n onBlur={() => onValidateFormItem('sensitivity')}>\n }\n label={\n <>\n Sensitive\n \n Marking this note as sensitive will make this note visible to only\n M & A users.\n \n }>\n \n \n \n }\n />\n }\n label={\n <>\n Non-Sensitive\n \n Marking this note as non-sensitive will make this note visible to\n M, A, B1 & B2 users.
    C users will not have visibility.\n \n }>\n \n \n \n }\n />\n \n
    \n \n
    {formState.errors.sensitivity}
    \n
    \n ) : formState.tags?.some((p) => p.isSensitive) ? (\n
    You have selected a sensitive tag
    \n ) : formState.tags?.some((p) => p.reviewRequired) ? (\n
    \n You have selected a sensitive tag which requires a review\n
    \n ) : (\n !formState.errors.tags &&
    \n )}\n\n
    \n \n
    \n \n onChange({ ...formState, subject: event.currentTarget.value })\n }\n onBlur={() => onValidateFormItem('subject')}\n inputProps={{\n 'data-testid': 'subject',\n }}\n />\n
    \n \n
    {formState.errors.subject}
    \n
    \n\n
    \n \n
    \n onChange({ ...formState, description })}\n onBlur={() => isFormStateDirty && onValidateFormItem('description')}\n />\n
    \n \n
    \n
    {formState.errors.description}
    \n \n \n Markdown\n {' '}\n is supported\n \n
    \n
    \n\n
    \n \n onChange({ ...formState, isPeopleLeaderConversation: event.target.checked })\n }\n inputProps={\n {\n 'data-testid': 'isPeopleLeaderConvoCheckbox',\n } as CheckboxProps\n }\n />\n }\n label=\"This is a People Leader conversation\"\n className={styles.checkbox}\n />\n
    \n\n
    \n {isSubmitting ? (\n \n ) : (\n <>\n \n Undo Changes\n \n \n
    \n {(mode === 'create' || formState.noteStatus === 'draft') && (\n \n Save Draft\n \n \n )}\n \n {mode === 'create' || formState.noteStatus === 'draft' ? 'Submit' : 'Save'}\n \n \n
    \n \n )}\n
    \n \n
    \n
    \n \n );\n }\n);\n","import React, { ReactNode } from 'react';\nimport { Tab, Tabs } from '@material-ui/core';\nimport styles from './Tab.module.scss';\n\nexport interface TabItem {\n title: ReactNode;\n testId?: string;\n disabled?: boolean;\n component?: ReactNode;\n}\n\ninterface Props {\n className?: string;\n items: TabItem[];\n centered?: boolean;\n value: number;\n onChange?: (selectedIndex: number) => void;\n}\n\nexport const TabComponent: React.FC = ({ items, centered, onChange, value, className }) => {\n const handleChange = (event: unknown, newValue: number) => {\n onChange && onChange(newValue);\n };\n\n return (\n \n {items.map((item, index) => (\n \n ))}\n \n );\n};\n","import React, { useState } from 'react';\nimport styles from './NoteCard.module.scss';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport { INote } from 'domain/store/NoteModel';\nimport {\n IconButton,\n ListItem,\n ListItemAvatar,\n ListItemSecondaryAction,\n ListItemText,\n Typography,\n} from '@material-ui/core';\nimport { Delete } from '@material-ui/icons';\nimport { NoteStatusChip } from 'views/routes/myNotes/components/listNotes/components/NoteStatusChip';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\n\ninterface INoteCardProps {\n note: INote;\n selected: boolean;\n onClick: () => void;\n onDelete?: (noteId: number) => void;\n divider: boolean;\n}\n\nexport const NoteCard: React.FC = ({\n note,\n selected,\n onClick,\n onDelete,\n divider,\n}) => {\n const [showAlertDialog, setShowAlertDialog] = useState(false);\n\n const onDisagreeClick = () => {\n setShowAlertDialog(false);\n };\n\n const onDeleteButtonClick = () => {\n setShowAlertDialog(true);\n };\n\n const onAgreeClick = () => {\n setShowAlertDialog(false);\n onDelete && onDelete(note.noteId);\n };\n\n return (\n <>\n \n (e.target as Element).namespaceURI !== 'http://www.w3.org/2000/svg' && onClick()\n }\n alignItems={'flex-start'}\n divider={divider}\n button={true}>\n \n \n \n \n primary={\n \n \n {note.subject} \n \n \n {(note.modifiedDateMoment ?? note.createdDateMoment).fromNow()}\n \n \n }\n secondaryTypographyProps={{ component: 'span' }}\n secondary={\n <>\n
    {note.employee.displayName}
    \n
    {note.eventDateMoment!.format('DD/MM/YY')}
    \n {note.canDelete && (\n \n \n \n \n \n )}\n \n }\n />\n \n \n \n );\n};\n","import { List, ListItem, ListItemText } from '@material-ui/core';\nimport { useNavigate } from 'hooks/useNavigate';\nimport { useStore } from 'hooks/useStore';\nimport { useUser } from 'hooks/useUser';\nimport { observer } from 'mobx-react-lite';\nimport React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { CREATE_NOTE_ROUTE_PATH, EDIT_NOTE_ROUTE_PATH } from 'views/routes/Routes';\nimport { NoteCard } from './components/NoteCard';\ninterface IRecentListProps {\n selectedNoteId: number;\n resetForm: () => void;\n}\n\nexport const RecentList = observer((props: IRecentListProps) => {\n const { previous, loadSubmittedNotes, deleteNote } = useUser();\n const navigate = useNavigate();\n const { notifications } = useStore();\n const [isLoading, setLoading] = useState(true);\n const history = useHistory();\n\n useEffect(() => {\n let active = true;\n loadSubmittedNotes()\n .then(() => {\n active && setLoading(false);\n })\n .catch(() => {\n notifications.addError('Unable to load your submitted notes');\n active && setLoading(false);\n });\n return () => {\n active = false;\n };\n }, [loadSubmittedNotes, notifications]);\n\n const onAgreeClickDeleteNote = (noteId: number) => {\n deleteNote(noteId).then(() => {\n loadSubmittedNotes();\n props.resetForm();\n history.replace(CREATE_NOTE_ROUTE_PATH);\n });\n };\n\n if (previous?.length && !isLoading) {\n const handleNoteSelected = (noteId: number) => {\n if (props.selectedNoteId === noteId) return;\n\n navigate(`${EDIT_NOTE_ROUTE_PATH}/${noteId}`);\n };\n return (\n \n {previous.map((note, index, array) => (\n handleNoteSelected(note.noteId)}\n onDelete={onAgreeClickDeleteNote}\n divider={index < array.length - 1}\n />\n ))}\n \n );\n }\n return (\n <>\n {isLoading ? (\n \n ) : (\n \n \n No recent notes to display}\n />\n \n \n )}\n \n );\n});\n","import { List, ListItem, ListItemText } from '@material-ui/core';\nimport { useNavigate } from 'hooks/useNavigate';\nimport { useStore } from 'hooks/useStore';\nimport { useUser } from 'hooks/useUser';\nimport { observer } from 'mobx-react-lite';\nimport React, { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { CREATE_NOTE_ROUTE_PATH, EDIT_NOTE_ROUTE_PATH } from 'views/routes/Routes';\nimport { NoteCard } from './components/NoteCard';\n\ninterface IDraftListProps {\n selectedNoteId: number;\n resetForm: () => void;\n}\n\nexport const DraftList = observer((props: IDraftListProps) => {\n const { drafts, deleteNote, loadDraftNotes } = useUser();\n const navigate = useNavigate();\n const { notifications } = useStore();\n const [isLoading, setLoading] = useState(true);\n const history = useHistory();\n\n useEffect(() => {\n let active = true;\n loadDraftNotes()\n .then(() => {\n active && setLoading(false);\n })\n .catch(() => {\n active && notifications.addError('Unable to load your draft notes');\n active && setLoading(false);\n });\n return () => {\n active = false;\n };\n }, [loadDraftNotes, notifications]);\n\n if (drafts?.length && !isLoading) {\n const handleNoteSelected = (noteId: number) => {\n if (props.selectedNoteId === noteId) return;\n\n navigate(`${EDIT_NOTE_ROUTE_PATH}/${noteId}`);\n };\n\n const onAgreeClickDeleteNote = (noteId: number) => {\n deleteNote(noteId).then(() => {\n loadDraftNotes();\n props.resetForm();\n history.replace(CREATE_NOTE_ROUTE_PATH);\n });\n };\n\n return (\n <>\n \n {drafts.map((note, index, array) => (\n handleNoteSelected(note.noteId)}\n onDelete={onAgreeClickDeleteNote}\n divider={index < array.length - 1}\n />\n ))}\n \n \n );\n }\n return (\n <>\n {isLoading ? (\n \n ) : (\n \n \n No drafts to display}\n />\n \n \n )}\n \n );\n});\n","import React, { useEffect, useState } from 'react';\nimport styles from './ListNotes.module.scss';\nimport { TabComponent, TabItem } from 'views/components/tab/Tab';\nimport { RecentList } from './RecentList';\nimport { DraftList } from './DraftList';\nimport { Button, Grid } from '@material-ui/core';\nimport { useNavigate } from 'hooks/useNavigate';\nimport { CREATE_NOTE_ROUTE_PATH } from 'views/routes/Routes';\n\ninterface IListNotesProps {\n selectedNoteId?: number;\n showDrafts: boolean;\n resetForm: () => void;\n}\n\nexport const ListNotes: React.FC = ({ selectedNoteId, showDrafts, resetForm }) => {\n const [activeTab, setActiveTab] = useState(showDrafts ? 0 : 1);\n const navigate = useNavigate();\n\n useEffect(() => setActiveTab(showDrafts ? 0 : 1), [showDrafts]);\n\n const tabItems: TabItem[] = [\n {\n title: 'Drafts',\n testId: 'list-notes-header-drafts',\n component: ,\n },\n {\n title: 'Previous',\n testId: 'list-notes-header-previous',\n component: ,\n },\n ];\n\n const handleTabChange = (selectedIndex: number) => {\n setActiveTab(selectedIndex);\n };\n\n return (\n
    \n \n \n

    Notes

    \n
    \n \n navigate(CREATE_NOTE_ROUTE_PATH)}>\n New Note\n \n \n
    \n \n
    {tabItems[activeTab].component}
    \n
    \n );\n};\n","import { useLocation } from 'react-router-dom';\nimport querystring, { ParsedQuery } from 'query-string';\n\nexport function useQueryParams(): Params {\n const { search } = useLocation();\n const params = querystring.parse(search);\n return params as Params;\n}\n","import { Box, Link, Typography } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport cn from 'classnames';\nimport { IEmployee } from 'domain/store/employeeJourney/EmployeeModel';\nimport { EmployeeStatusLabels } from 'domain/store/employeeJourney/EmployeeStatusModel';\nimport React from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { EmployeeSidebarDivider } from 'views/components/EmployeeSidebarDivider/EmployeeSidebarDivider';\nimport { StatusIcon } from 'views/components/EmployeeStatus/StatusIcon/StatusIcon';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport { EMPLOYEE_JOURNEYS_ROUTE_PATH } from 'views/routes/Routes';\nimport { SidebarContent } from 'views/routes/employeeJourney/components/employeeSidebar/components/SidebarContent/SidebarContent';\nimport styles from './EmployeeNoteSidebar.module.scss';\n\ninterface IEmployeeNoteSidebarProps {\n className?: string;\n employee?: IEmployee;\n isLoading: boolean;\n}\n\nexport const EmployeeNoteSidebar: React.FC = ({\n className,\n employee,\n isLoading,\n}) => {\n return (\n \n \n
    \n \n
    \n
    \n \n {\n \n \n {!isLoading ? employee?.displayName : }\n \n \n }\n \n\n {employee?.isFormerEmployee && (\n \n (Archived)\n \n )}\n \n \n {!isLoading ? `${employee?.position}` : }\n \n \n {/* \n \n {!isLoading ? `${employee?.capability}` : }\n \n */}\n
    \n
    \n \n \n \n \n \n \n \n \n \n\n {(!employee || employee!.flags.status) && (\n <>\n \n \n {employee ? : }\n \n {employee ? (\n \n ) : (\n \n )}\n \n \n \n )}\n\n {(!employee || employee!.flags.primaryFlag) && (\n <>\n \n \n {employee ? (\n \n ) : (\n \n )}\n \n \n )}\n\n {employee &&\n (employee!.flags.flightRisk ||\n employee!.flags.longTermLeave ||\n employee!.flags.primaryFlag ||\n employee!.flags.roleChangePathway) && (\n <>\n \n \n \n {employee!.flags.flightRisk?.value?.isFlightRisk && (\n \n )}\n {employee.probation.isInProbation && (\n \n )}\n {employee!.flags.roleChangePathway?.value?.hasRoleChangePathway && (\n \n )}\n {employee!.flags.longTermLeave?.value?.isOnLongTermLeave && (\n \n )}\n \n \n )}\n {/* No leave or PD data available */}\n {/* {employee && employee.leaveDetails && (\n <>\n \n \n \n \n Balances\n \n \n \n \n \n \n \n \n \n \n )} */}\n \n );\n};\n\ninterface IFlagTextProps {\n text: string;\n testId: string;\n}\n\nconst FlagText = (props: IFlagTextProps) => {\n return (\n \n \n {props.text}\n \n \n );\n};\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { EditNote } from './components/editNote/EditNote';\nimport { ListNotes } from './components/listNotes/ListNotes';\nimport { ITag } from 'domain/store/TagsModel';\nimport { INoteRequest, NoteSensitivity, NoteStatus } from 'domain/store/NoteModel';\nimport { useUser } from 'hooks/useUser';\nimport { useStore } from 'hooks/useStore';\nimport moment from 'moment';\nimport styles from './MyNotes.module.scss';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { EmployeeSearchResult } from 'domain/store/singletons/GraphModel';\nimport { Redirect, useParams } from 'react-router-dom';\nimport { useNavigate } from 'hooks/useNavigate';\nimport { useQueryParams } from 'hooks/useQueryParams';\nimport { CREATE_NOTE_ROUTE_PATH, UNAUTHORISED_ROUTE_PATH } from 'views/routes/Routes';\nimport { Grid, Hidden } from '@material-ui/core';\nimport { EmployeeNoteSidebar } from 'views/routes/myNotes/components/employeeNoteSidebar/EmployeeNoteSidebar';\nimport { AlertDialog, AlertDialogProps } from 'views/components/alertDialog/AlertDialog';\nimport { useGraph } from 'hooks/useGraph';\nimport { IEmployee } from 'domain/store/employeeJourney/EmployeeModel';\nimport { usePermissions } from 'hooks/usePermissions';\n\nexport type FormItem =\n | 'employee'\n | 'date'\n | 'tags'\n | 'subject'\n | 'description'\n | 'isPeopleLeaderConversation'\n | 'sensitivity'\n | 'isFaceToFaceDiscussion';\nexport type FormError = { [key in FormItem]?: string };\n\n// Employee needs a null state in order to reset the Employee field. This a quirk of Material UI\nexport interface IFormState {\n employee?: EmployeeSearchResult | null;\n date: string;\n tags?: ITag[];\n subject: string;\n description: string;\n isPeopleLeaderConversation: boolean;\n errors: FormError;\n noteStatus: NoteStatus;\n sensitivity: NoteSensitivity | undefined;\n isFaceToFaceDiscussion: boolean | undefined;\n}\n\nconst MAX_SUBJECT_LENGTH = 256;\n\nexport type ModeType = 'create' | 'edit';\n\nexport interface MyNotesProps {\n mode: ModeType;\n}\n\nconst immutableEmptyFormState = (): IFormState => {\n return {\n employee: null,\n date: '',\n tags: [],\n subject: '',\n description: '',\n isPeopleLeaderConversation: false,\n errors: {},\n noteStatus: 'draft',\n sensitivity: undefined,\n isFaceToFaceDiscussion: undefined,\n };\n};\n\nconst immutableEmptyAlertDialog = (): AlertDialogProps => {\n return {\n isOpen: false,\n title: '',\n text: '',\n agreeButtonText: undefined,\n disagreeButtonText: undefined,\n onAgreeClick: undefined,\n onDisagreeClick: undefined,\n };\n};\n\nexport const MyNotes: React.FC = ({ mode }) => {\n const store = useStore();\n const userStore = useUser();\n const { notes } = usePermissions();\n const navigate = useNavigate();\n const { noteId } = useParams<{ noteId?: string }>();\n const { employeeId } = useQueryParams<{ employeeId: string | null }>();\n const { loadEmployee } = useGraph();\n const [showDrafts, setShowDrafts] = useState(true);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [isOkToSaveAsDraft, setisOkToSaveAsDraft] = useState(false);\n const [isLoading, setIsLoading] = useState(false);\n const [formState, setFormState] = useState(immutableEmptyFormState());\n const [validationQueue, setValidationQueue] = useState([]);\n const [initialFormState, setInitialFormState] = useState(immutableEmptyFormState());\n const [redirect, setRedirect] = useState('');\n const [alertDialog, setAlertDialog] = useState(immutableEmptyAlertDialog());\n const [employee, setEmployee] = useState();\n const [isLoadingEmployee, setIsLoadingEmployee] = useState(false);\n\n useEffect(() => {\n if (noteId) return;\n loadEmployee.reset();\n setFormState(immutableEmptyFormState());\n setInitialFormState(immutableEmptyFormState());\n setIsSubmitting(false);\n setisOkToSaveAsDraft(false);\n setValidationQueue([]);\n setAlertDialog(immutableEmptyAlertDialog());\n setRedirect(null);\n setEmployee(undefined);\n setIsLoadingEmployee(false);\n }, [loadEmployee, mode, employeeId, noteId]);\n\n const showSensitivity = useCallback((): boolean => {\n if (!notes.canBypassReview || !formState.tags) {\n return false;\n }\n\n let showSensitivity = false;\n for (const tag of formState.tags) {\n if (tag.isSensitive) {\n return false;\n }\n\n if (tag.reviewRequired) {\n showSensitivity = true;\n }\n }\n\n return showSensitivity;\n }, [notes.canBypassReview, formState.tags]);\n\n const handleFormStateChange = useCallback(\n (state: IFormState, item?: FormItem | FormItem[]) => {\n item && setValidationQueue(validationQueue.concat(item));\n\n if (item === 'employee') setEmployee(undefined); // clear sidebar\n\n setFormState(state);\n },\n [validationQueue]\n );\n\n useEffect(() => {\n const setFormStateEmployee = (e?: IEmployee | null) => {\n const state: IFormState = {\n ...formState,\n employee: e,\n };\n setInitialFormState(state);\n setFormState(state);\n setValidationQueue((self) => self.concat('employee'));\n setAlertDialog(immutableEmptyAlertDialog());\n };\n\n let active = true;\n const currentEmployeeId = formState.employee?.idpId ?? employeeId;\n if (currentEmployeeId) {\n setIsLoadingEmployee(true);\n loadEmployee.searchForEmployee(currentEmployeeId).then((foundEmployee) => {\n setEmployee(foundEmployee ?? undefined);\n if (loadEmployee.state === 'unauthorized') {\n if (employeeId || noteId) {\n active && setRedirect(UNAUTHORISED_ROUTE_PATH);\n } else {\n setAlertDialog({\n isOpen: true,\n title: 'Not Authorised',\n text: 'You are not authorised to add a note for this employee.',\n agreeButtonText: 'OK',\n onAgreeClick: () => setFormStateEmployee(null),\n });\n }\n } else if (foundEmployee !== null && employeeId && !formState.employee) {\n active && setFormStateEmployee(foundEmployee);\n }\n setIsLoadingEmployee(false);\n });\n } else {\n setEmployee(undefined);\n }\n return () => {\n active = false;\n };\n // Including the suggested formState as a dependency will cause the employee to be re-loaded every time the form changes\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [formState.employee, employeeId, loadEmployee, noteId]);\n\n const isFormStateDirty = useCallback(() => {\n if (formState.employee?.idpId !== initialFormState.employee?.idpId) {\n return true;\n }\n if (formState.date !== initialFormState.date) {\n return true;\n }\n if (formState.subject !== initialFormState.subject) {\n return true;\n }\n if (formState.tags?.length !== initialFormState.tags?.length) {\n return true;\n }\n if (formState.tags && initialFormState.tags) {\n const origIds = initialFormState.tags.map((t) => t.tagId);\n const currentIds = formState.tags.map((t) => t.tagId);\n if (origIds.filter((t) => !currentIds.includes(t)).length !== 0) {\n return true;\n }\n }\n if (formState.subject !== initialFormState.subject) {\n return true;\n }\n if (formState.isPeopleLeaderConversation !== initialFormState.isPeopleLeaderConversation) {\n return true;\n }\n if (formState.isFaceToFaceDiscussion !== initialFormState.isFaceToFaceDiscussion) {\n return true;\n }\n return formState.description !== initialFormState.description;\n }, [formState, initialFormState]);\n\n const getNoteById = useCallback(\n async (id: string): Promise => {\n const noteId = Number(id);\n const response = await userStore.loadEditNote(noteId);\n\n return {\n ...immutableEmptyFormState(),\n employee: response.employee,\n date: response.eventDateMoment!.format('yyyy-MM-DD'),\n tags: response.tags,\n subject: response.subject,\n description: response.content || '',\n isPeopleLeaderConversation: response.isPeopleLeaderConversation,\n noteStatus: response.status,\n sensitivity: response.sensitivity,\n isFaceToFaceDiscussion: response.isFaceToFaceDiscussion,\n };\n },\n [userStore]\n );\n\n useEffect(() => {\n let active = true;\n if (noteId) {\n active && setIsLoading(true);\n active && setShowDrafts(false); //default to previous tab if editing an existing note.\n active &&\n getNoteById(noteId)\n .then((note: IFormState) => {\n active && setShowDrafts(note.noteStatus === 'draft');\n active && setInitialFormState(note);\n active && setFormState(note);\n })\n .catch(() => {\n active && setFormState(immutableEmptyFormState());\n active && setInitialFormState(immutableEmptyFormState());\n if (active) {\n store.notifications.addError(\n 'There was an error loading the note. Please try again later.'\n );\n }\n })\n .finally(() => {\n active && setIsLoading(false);\n active &&\n setValidationQueue([\n 'employee',\n 'date',\n 'tags',\n 'subject',\n 'description',\n 'isFaceToFaceDiscussion',\n ]);\n });\n }\n return () => {\n active = false;\n };\n }, [noteId, getNoteById, store.notifications]);\n\n const createNoteRequest = (\n employee: EmployeeSearchResult,\n tags: number[],\n sensitivity: NoteSensitivity | undefined\n ): INoteRequest => {\n return {\n employeeIdpId: employee.idpId,\n content: formState.description,\n tags: tags,\n eventDate: formState.date,\n subject: formState.subject,\n isPeopleLeaderConversation: formState.isPeopleLeaderConversation,\n sensitivity: sensitivity,\n noteStatus: undefined,\n isFaceToFaceDiscussion: formState.isFaceToFaceDiscussion,\n };\n };\n\n const saveNote = async (noteRequest: INoteRequest) => {\n await userStore\n .saveNote(noteRequest, Number(noteId) || undefined)\n .then(() => {\n store.notifications.addSuccess('The note is saved');\n resetForm();\n setShowDrafts(noteRequest.noteStatus === 'draft');\n if (noteRequest.noteStatus === 'draft') {\n userStore.loadDraftNotes();\n } else {\n userStore.loadSubmittedNotes();\n }\n navigate(CREATE_NOTE_ROUTE_PATH);\n })\n .catch((e) => {\n if (e?.response?.status === 403) {\n store.notifications.addError('Not authorised to save note for employee');\n } else if (e?.response?.status === 409) {\n store.notifications.addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else {\n store.notifications.addError('Unable to save note, please try again');\n }\n })\n .finally(() => setIsSubmitting(false));\n };\n\n const handleSubmitNote = async () => {\n if (handleValidation()) {\n const employee: EmployeeSearchResult | undefined | null = formState.employee;\n if (employee) {\n const tags = formState.tags?.map((t) => t.tagId) || [];\n const noteRequest = createNoteRequest(employee, tags, formState.sensitivity);\n setIsSubmitting('published');\n await saveNote(noteRequest);\n }\n }\n };\n\n const handleSubmitDraft = async () => {\n if (handleDraftValidation()) {\n const employee: EmployeeSearchResult | undefined | null = formState.employee;\n if (employee) {\n const tags = formState.tags?.map((t) => t.tagId) || [];\n const noteRequest = createNoteRequest(employee, tags, formState.sensitivity);\n noteRequest.noteStatus = 'draft';\n setIsSubmitting('draft');\n await saveNote(noteRequest);\n }\n }\n };\n\n const handleDraftValidation = useCallback(() => {\n return (\n formState.employee !== undefined &&\n formState.employee !== null &&\n formState.date.trim().length > 0 &&\n formState.subject.trim().length > 0 &&\n formState.subject.length <= MAX_SUBJECT_LENGTH &&\n formState.isFaceToFaceDiscussion !== undefined &&\n ((formState.tags?.length || 0) > 0 || formState.description.trim().length > 0)\n );\n }, [formState]);\n\n useEffect(() => {\n setisOkToSaveAsDraft(handleDraftValidation());\n }, [formState, handleDraftValidation]);\n\n const getValidationError = useCallback(\n (item: FormItem): string | undefined => {\n const validationErrors: FormError = {\n employee: formState.employee ? undefined : 'Please select an employee.',\n date: formState.date.length\n ? moment().diff(formState.date) < 0\n ? 'Date cannot be in the future'\n : undefined\n : 'Please select a date.',\n tags: (formState.tags?.length || 0) > 0 ? undefined : 'Please select at least one tag.',\n subject: formState.subject\n ? formState.subject.length > MAX_SUBJECT_LENGTH\n ? 'Subject is too long. Please provide a subject less than 256 characters.'\n : undefined\n : 'Please provide a subject.',\n description: formState.description ? undefined : 'Please provide details.',\n sensitivity:\n showSensitivity() && formState.sensitivity === undefined\n ? 'Please specify the sensitivity.'\n : undefined,\n isFaceToFaceDiscussion:\n formState.isFaceToFaceDiscussion === undefined\n ? 'Please specify whether this was a \"Direct conversation with the employee\" or \"Feedback/observations about the employee\".'\n : undefined,\n };\n\n return validationErrors[item];\n },\n [formState, showSensitivity]\n );\n\n const handleValidateFormItem = useCallback(\n (name: FormItem) => {\n const newState = {\n ...formState,\n };\n\n newState.errors[name] = getValidationError(name);\n setFormState(newState);\n },\n [formState, getValidationError]\n );\n\n const handleValidation = () => {\n const newErrorState = {\n employee: getValidationError('employee'),\n date: getValidationError('date'),\n tags: getValidationError('tags'),\n subject: getValidationError('subject'),\n description: getValidationError('description'),\n sensitivity: notes.canBypassReview ? getValidationError('sensitivity') : undefined,\n isFaceToFaceDiscussion: getValidationError('isFaceToFaceDiscussion'),\n };\n setFormState({ ...formState, errors: newErrorState });\n const invalid = Object.values(newErrorState).some((v) => v !== undefined);\n\n return !invalid;\n };\n\n useEffect(() => {\n if (validationQueue.length) {\n const errors = formState.errors;\n validationQueue.forEach((item) => {\n errors[item] = getValidationError(item);\n });\n setFormState({ ...formState, errors });\n setValidationQueue([]);\n }\n }, [validationQueue, handleValidateFormItem, formState, getValidationError]);\n\n const resetForm = () => {\n setEmployee(undefined);\n setFormState(immutableEmptyFormState());\n setInitialFormState(immutableEmptyFormState());\n setIsSubmitting(false);\n };\n\n const onAgreeClickRestoreInitialFormValues = () => {\n setFormState({ ...initialFormState, errors: {} });\n setAlertDialog(immutableEmptyAlertDialog());\n };\n\n const onDisagreeClick = () => setAlertDialog(immutableEmptyAlertDialog());\n\n const onUndoPrompt = () => {\n const shouldShowAlert = isFormStateDirty() && !isSubmitting;\n setAlertDialog({\n isOpen: shouldShowAlert,\n title: 'Undo changes',\n text: 'Are you sure you want to undo your changes?',\n onAgreeClick: onAgreeClickRestoreInitialFormValues,\n onDisagreeClick: onDisagreeClick,\n });\n };\n\n const formTitle =\n mode !== 'create' && initialFormState.subject?.trim().length > 0\n ? initialFormState.subject.trim()\n : 'New Note';\n\n return (\n \n {redirect && }\n \n \n \n \n {isLoading ? (\n \n ) : (\n \n )}\n \n\n \n\n {formState.employee && (\n \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n );\n};\n","import { IAdmin } from 'domain/store/admin/AdminModel';\nimport { useStore } from './useStore';\n\nexport function useAdmin(): IAdmin {\n const { admin } = useStore();\n\n return admin;\n}\n","import React, { useEffect, useRef, useState } from 'react';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport Table from '@material-ui/core/Table';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableBody from '@material-ui/core/TableBody';\nimport { observer } from 'mobx-react-lite';\nimport { useAdmin } from 'hooks/useAdmin';\nimport Box from '@material-ui/core/Box/Box';\nimport { SquadEmployeeRow } from './components/SquadEmployeeRow/SquadEmployeeRow';\nimport { useUser } from 'hooks/useUser';\nimport { useStore } from 'hooks/useStore';\nimport { Grid, TextField } from '@material-ui/core';\nimport { Autocomplete } from '@material-ui/lab';\nimport { IEmployeeItem } from 'domain/store/admin/EmployeeListModel';\nimport { getSnapshot } from 'mobx-state-tree';\nimport styles from './AssignSquads.module.scss';\nimport { debounce, isEmpty } from 'lodash';\nimport { AssignSquadDialog } from './components/AssignSquadDialog/AssignSquadDialog';\nimport { ChangeAccessDialog } from '../manageRoles/components/changeAccess/ChangeAccessDialog';\nimport { usePermissions } from '../../../../../hooks/usePermissions';\n\nenum AssignmentState {\n Closed = 0,\n AssignSquad = 1,\n AssignRole = 2,\n}\n\nexport const AssignSquads: React.FC = observer(() => {\n const {\n SquadAssignment: {\n squadAssignmentEmployees,\n loadEmployeesEligibleForSquadAssignment,\n squadAssignmentEmployeesSearch,\n searchEmployeesEligibleForSquadAssignment,\n selectedEmployee,\n setSquadAssignmentEmployees,\n searchState,\n state,\n },\n } = useAdmin();\n const { accessLevel, squadName, assignedSquads, getAllSquads } = useUser();\n const { canViewAllSquads } = usePermissions();\n const store = useStore();\n const [searchValue, setSearchValue] = useState(null);\n const [squads, setSquads] = useState([]);\n const [allSquads, setAllSquads] = useState([]);\n const inputTextRef = useRef();\n const [employeeToAssign, setEmployeeToAssign] = useState(null);\n const [currentAssignmentState, setCurrentAssignmentState] = useState(\n AssignmentState.Closed\n );\n\n const searchEmployee = useRef(\n debounce((query: string) => {\n const search = isEmpty(query) ? undefined : query;\n searchEmployeesEligibleForSquadAssignment(search, false).catch(() => {\n store.notifications.addError('Unable to load employees, please try again.');\n });\n }, 600)\n ).current;\n\n const getSearchPlaceholderText = () => {\n if (searchState === 'error') return 'Could not load results, try again';\n if (searchValue === null) return 'Type name to search';\n return searchState === 'loading' ? 'Searching' : 'No results';\n };\n\n useEffect(() => {\n loadEmployeesEligibleForSquadAssignment().catch(() => {\n store.notifications.addError('Unable to load employees, please try again.');\n });\n }, [loadEmployeesEligibleForSquadAssignment, store.notifications]);\n\n useEffect(() => {\n getAllSquads().then((result) => {\n const allowedAccessSquads = canViewAllSquads ? result : [...assignedSquads, squadName];\n const newSquadList = result.filter((canView) => allowedAccessSquads.includes(canView));\n setSquads(newSquadList);\n setAllSquads(result);\n });\n }, [assignedSquads, getAllSquads, squadName, canViewAllSquads]);\n\n const isEmployeeAccessLevelBelowUser = (employeeAccessLevel: string) => {\n if (accessLevel === 'A' && employeeAccessLevel !== 'M' && employeeAccessLevel !== 'A')\n return true;\n return accessLevel === 'M' && employeeAccessLevel !== 'M';\n };\n\n const handleClose = () => {\n setEmployeeToAssign(null);\n setCurrentAssignmentState(AssignmentState.Closed);\n };\n\n return (\n
    \n \n \n option?.name}\n options={getSnapshot(squadAssignmentEmployeesSearch) as IEmployeeItem[]}\n noOptionsText={getSearchPlaceholderText()}\n autoComplete\n filterSelectedOptions\n className={styles.search}\n value={selectedEmployee}\n onInputChange={(_, newInputValue) => {\n if (searchValue !== newInputValue) {\n setSearchValue(newInputValue);\n searchEmployee(newInputValue);\n }\n }}\n getOptionSelected={(option: IEmployeeItem, value: IEmployeeItem) =>\n option.idpId === value?.idpId\n }\n onChange={(_, value, reason) => {\n if (reason === 'clear') {\n loadEmployeesEligibleForSquadAssignment().catch(() => {\n store.notifications.addError('Unable to load employees, please try again.');\n });\n }\n setSquadAssignmentEmployees(value);\n }}\n renderInput={(params) => (\n \n )}\n renderOption={(option: IEmployeeItem) => {\n return
    {option.name}
    ;\n }}\n />\n
    \n \n \n \n \n \n Name\n Position\n Access Level\n Squads\n Action\n \n \n \n {state === 'done'\n ? Array.from(squadAssignmentEmployees).map((employee) => (\n {\n setEmployeeToAssign(e);\n setCurrentAssignmentState(AssignmentState.AssignSquad);\n }}\n />\n ))\n : Array.from({ length: 6 }, (v, k) => k).map((i) => (\n \n ))}\n \n
    \n
    \n
    \n
    \n {employeeToAssign && (\n <>\n setCurrentAssignmentState(AssignmentState.AssignRole)}\n />\n \n \n )}\n
    \n );\n});\n","import React from 'react';\nimport { Grid } from '@material-ui/core';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faInfoCircle } from '@fortawesome/free-solid-svg-icons';\n\nimport styles from './SquadNotSelected.module.scss';\n\nexport const SquadNotSelected: React.FC = () => {\n return (\n
    \n \n \n \n \n \n No Squad Selected\n \n Select a squad from the dropdown menu in the header above.\n \n
    \n );\n};\n","import React from 'react';\nimport { Button, Link, TableCell, TableRow } from '@material-ui/core';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { EMPLOYEE_JOURNEYS_ROUTE_PATH } from 'views/routes/Routes';\nimport { Skeleton } from '@material-ui/lab';\nimport styles from './EmployeeListRow.module.scss';\nimport { IEmployeeItem } from 'domain/store/admin/EmployeeListModel';\nimport { useStore } from 'hooks/useStore';\nimport { observer } from 'mobx-react-lite';\ninterface EmployeeListRowProps {\n employee: IEmployeeItem | null;\n canView: boolean;\n canChangeAccess: boolean;\n onAssignEmployee: (employee: IEmployeeItem) => void;\n}\n\nexport const EmployeeListRow: React.FC = observer(\n ({ canView, canChangeAccess, onAssignEmployee, employee }) => {\n const {\n notifications: { addError },\n } = useStore();\n\n return (\n <>\n \n \n
    \n
    \n \n
    \n
    \n {employee ? (\n canView ? (\n \n {employee.name}\n \n ) : (\n {employee.name}\n )\n ) : (\n \n )}\n
    \n
    \n
    \n \n {employee ? <>{`${employee?.position}`} : }\n \n \n {employee ? (\n <>\n {employee.accessLevelDisplayName} {employee.noAccessRequested ? '(Blocked)' : null}\n \n ) : (\n \n )}\n \n \n {employee ? (\n canChangeAccess ? (\n \n !canChangeAccess\n ? addError(\"You cannot send invitations for this person's role\")\n : onAssignEmployee(employee)\n }>\n Change Access\n \n ) : null\n ) : (\n \n )}\n \n
    \n \n );\n }\n);\n","import {\n Button,\n Dialog,\n DialogContent,\n DialogTitle,\n FormControl,\n FormControlLabel,\n FormLabel,\n IconButton,\n Radio,\n RadioGroup,\n Typography,\n} from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { IEmployeeItem } from 'domain/store/admin/EmployeeListModel';\nimport React, { useState, useEffect, useCallback } from 'react';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport styles from './ChangeAccessDialog.module.scss';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faKey, faArrowCircleRight } from '@fortawesome/free-solid-svg-icons';\nimport { useAdmin } from 'hooks/useAdmin';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { observer } from 'mobx-react-lite';\nimport { useStore } from 'hooks/useStore';\nimport { api } from 'shared/api/interfaces';\nimport { utc } from 'moment';\n\ninterface IChangeAccessDialogProps {\n isOpen: boolean;\n employee: IEmployeeItem;\n closeDialog: () => void;\n}\n\nconst getAccessLevelValue = (level: string) => {\n switch (level) {\n case 'Unknown':\n return 0;\n case 'C':\n return 1;\n case 'B2':\n return 2;\n case 'B1':\n return 3;\n case 'A':\n return 4;\n case 'M':\n return 5;\n default:\n return 0;\n }\n};\n\nexport const ChangeAccessDialog: React.FC = observer((props) => {\n const {\n notifications,\n user: { selectedSquad },\n } = useStore();\n const {\n employees: {\n sendChangeAccessLevelInvitation,\n sendingRoleInvitationState,\n getLastChangeAccessLevelInvitationForEmployee,\n squadEmployees,\n loadSquadEmployees,\n squadEmployeesState,\n loadEmployees,\n },\n } = useAdmin();\n\n const [squadFilter, setSquadFilter] = useState();\n const [value, setValue] = useState(props.employee.accessLevel);\n const [filteredEmployees, setFilteredEmployees] = useState([]);\n const [lastInvitationForRole, setLastInvitationForRole] = useState<\n api.ChangeAccessLevelMessageDto | undefined\n >(undefined);\n\n useEffect(() => {\n if (props.isOpen) {\n setValue(props.employee.accessLevel);\n setLastInvitationForRole(undefined);\n getLastChangeAccessLevelInvitationForEmployee(props.employee.idpId).then((response) => {\n if (response.requestedRole !== props.employee.accessLevel) {\n setLastInvitationForRole(response);\n }\n });\n }\n }, [\n props.employee.accessLevel,\n props.isOpen,\n getLastChangeAccessLevelInvitationForEmployee,\n props.employee.idpId,\n ]);\n\n const filterEmployees = useCallback(() => {\n return squadEmployees.filter(\n (e) =>\n getAccessLevelValue(e.accessLevel) < getAccessLevelValue(value) &&\n e.idpId !== props.employee.idpId\n );\n }, [props.employee.idpId, squadEmployees, value]);\n\n useEffect(\n () => {\n if (props.isOpen) {\n const squads = props.employee.assignedSquads ?? [selectedSquad];\n if (squads !== squadFilter) {\n setFilteredEmployees([]);\n setSquadFilter(squads);\n loadSquadEmployees(squads, true).then(() => setFilteredEmployees(filterEmployees()));\n } else {\n setFilteredEmployees(filterEmployees());\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n filterEmployees,\n loadSquadEmployees,\n props.employee.assignedSquads,\n props.isOpen,\n selectedSquad,\n ]\n );\n\n const handleChange = (event: React.ChangeEvent) =>\n setValue((event.target as HTMLInputElement).value);\n\n const handleSubmit = (role?: string) =>\n sendChangeAccessLevelInvitation(props.employee.idpId, props.employee.accessLevel, role || value)\n .then((response) => {\n setLastInvitationForRole(response);\n props.closeDialog();\n loadEmployees(selectedSquad);\n })\n .catch((e) => {\n if (e?.response?.status === 409) {\n notifications.addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (e?.response?.status === 403) {\n notifications.addError('Not authorised to save changes.');\n } else {\n notifications.addError('Changes could not be saved, please try again.');\n }\n });\n\n return (\n \n \n Change Access\n \n \n \n \n \n
    \n
    \n \n
    \n {props.employee.name}\n {props.employee.position}\n {/* {props.employee.capability} */}\n {selectedSquad} Squad\n
    \n \n \n Current access: {props.employee.accessLevelDisplayName}{' '}\n {props.employee.noAccessRequested ||\n lastInvitationForRole?.requestedRole === 'Unknown'\n ? '(Blocked)'\n : null}\n \n
    \n
    \n \n \n Select access type:\n \n \n } label=\"Portfolio Leader\" />\n } label=\"Squad Leader\" />\n } label=\"Principal Consultant\" />\n } label=\"Managing Consultant\" />\n } label=\"Contributor\" />\n } label=\"No Access\" />\n \n \n
    \n
    \n
    \n {squadEmployeesState === 'loading' ? (\n \n ) : value === 'Unknown' ? (\n \n You are removing {props.employee.name}'s "YOUtopia Access" which will\n prevent them from accessing the YOUtopia app.\n \n ) : (\n
    \n \n Granting {props.employee.name} the "{value}" access will allow them to\n view:\n \n
    \n
      \n {filteredEmployees.map((e) => (\n
    1. \n {e.accessLevelDisplayName}\n - {e.name}\n - ({e.assignedSquads?.join(', ')})\n
    2. \n ))}\n
    \n
    \n
    \n )}\n
    \n {sendingRoleInvitationState === 'loading' ? (\n \n ) : (\n handleSubmit()}\n disabled={props.employee.accessLevel === value}\n variant=\"contained\"\n disableElevation\n color=\"primary\"\n data-testid=\"invite-button\">\n {value !== 'Unknown' ? 'Invite' : 'Continue'}\n \n \n )}\n
    \n
    \n {lastInvitationForRole && (\n \n \n {`${\n lastInvitationForRole.requestedRole !== 'Unknown'\n ? `Invitation to access ${lastInvitationForRole.requestedRoleDisplayName}`\n : 'Notification to remove access'\n }\n sent by ${lastInvitationForRole.requesterDisplayName}\n on ${utc(lastInvitationForRole.requestDate).local().format('DD MMMM YYYY')}`}\n \n handleSubmit(lastInvitationForRole.requestedRole)}\n data-testid=\"resend-button\">\n Resend?\n \n \n )}\n
    \n
    \n );\n});\n","import React from 'react';\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\nimport LastPageIcon from '@material-ui/icons/LastPage';\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\nimport { IconButton } from '@material-ui/core';\nimport { TablePaginationActionsProps } from '@material-ui/core/TablePagination/TablePaginationActions';\nimport styles from './TablePaginationActions.module.scss';\n\nexport const TablePaginationActions: React.FC = ({\n count,\n page,\n rowsPerPage,\n onChangePage,\n}) => {\n return (\n
    \n onChangePage(e, 0)} disabled={page === 0} aria-label=\"first page\">\n \n \n onChangePage(e, page - 1)}\n disabled={page === 0}\n aria-label=\"previous page\">\n \n \n onChangePage(e, page + 1)}\n disabled={page >= Math.ceil(count / rowsPerPage) - 1}\n aria-label=\"next page\">\n \n \n onChangePage(e, Math.max(0, Math.ceil(count / rowsPerPage) - 1))}\n disabled={page >= Math.ceil(count / rowsPerPage) - 1}\n aria-label=\"last page\">\n \n \n
    \n );\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport styles from './ManageRoles.module.scss';\nimport { useUser } from 'hooks/useUser';\nimport { useAdmin } from 'hooks/useAdmin';\nimport { SquadNotSelected } from 'views/components/squadNotSelected/SquadNotSelected';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport Table from '@material-ui/core/Table';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport Paper from '@material-ui/core/Paper';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableBody from '@material-ui/core/TableBody';\nimport TablePagination from '@material-ui/core/TablePagination';\nimport { observer } from 'mobx-react-lite';\nimport { Autocomplete } from '@material-ui/lab';\nimport { Checkbox, FormControlLabel, TextField } from '@material-ui/core';\nimport { IEmployeeItem } from 'domain/store/admin/EmployeeListModel';\nimport { EmployeeListRow } from './components/employeeListRow/EmployeeListRow';\nimport { ChangeAccessDialog } from './components/changeAccess/ChangeAccessDialog';\nimport { TablePaginationActions } from 'views/components/table/TablePaginationActions';\n\nexport const ManageRoles: React.FC = observer(() => {\n const { selectedSquad, idpId, accessLevel } = useUser();\n const {\n employees: { employees, loadEmployees, state },\n } = useAdmin();\n\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(10);\n const [searchedEmployee, setSearchedEmployee] = useState(null);\n const [inputValue, setInputValue] = useState('');\n const [options, setOptions] = useState([]);\n const [showAllUnknownRoles, setShowAllUnknownRoles] = useState(false);\n const inputTextRef = useRef();\n const [employeeToAssign, setEmployeeToAssign] = useState(null);\n const [changeAccessDialogIsOpen, setChangeAccessDialogIsOpen] = React.useState(false);\n\n useEffect(() => {\n loadEmployees(selectedSquad, true);\n }, [loadEmployees, selectedSquad]);\n\n useEffect(() => {\n setPage(0);\n }, [employees, searchedEmployee, showAllUnknownRoles]);\n\n useEffect(() => {\n if (!inputValue) {\n setOptions([]);\n return;\n }\n\n const pattern = new RegExp(`^${inputValue}`, 'i');\n\n const givenNameMatches = employees\n .filter((e) => e.givenName.match(pattern))\n .sort((a, b) => a.givenName.localeCompare(b.givenName));\n\n const familyNameMatches = employees\n .filter((e) => e.familyName.match(pattern) && !givenNameMatches.includes(e))\n .sort((a, b) => a.familyName.localeCompare(b.familyName));\n\n setOptions([...givenNameMatches, ...familyNameMatches]);\n }, [inputValue, employees]);\n\n const filteredEmployees = employees\n .filter((e) => searchedEmployee || showAllUnknownRoles || e.accessLevel !== 'Unknown')\n .filter((e) => !searchedEmployee || e.idpId === searchedEmployee.idpId);\n\n const isEmployeeAccessLevelBelowUser = (employeeAccessLevel: string) => {\n if (accessLevel === 'A' && employeeAccessLevel !== 'M' && employeeAccessLevel !== 'A')\n return true;\n return accessLevel === 'M' && employeeAccessLevel !== 'M';\n };\n\n const handleClose = () => {\n setEmployeeToAssign(null);\n setChangeAccessDialogIsOpen(false);\n };\n const handleEmployeeAssignment = (e: IEmployeeItem | null) => {\n setEmployeeToAssign(e);\n setChangeAccessDialogIsOpen(true);\n };\n\n return (\n
    \n {selectedSquad ? (\n <>\n
    \n option.name}\n className={styles.search}\n options={options}\n autoComplete\n filterSelectedOptions\n value={searchedEmployee}\n onInputChange={(_, newInputValue) => setInputValue(newInputValue)}\n getOptionSelected={(option: IEmployeeItem, value: IEmployeeItem) =>\n option.idpId === value.idpId\n }\n onChange={(_, value) => setSearchedEmployee(value)}\n renderInput={(params) => (\n \n )}\n renderOption={(option: IEmployeeItem) => {\n return
    {option.name}
    ;\n }}\n />\n setShowAllUnknownRoles(value)}\n />\n }\n label=\"Show users with no access\"\n className={styles.checkbox}\n />\n
    \n \n \n \n \n Name\n Position\n Access Level\n Action\n \n \n \n {state === 'done'\n ? filteredEmployees\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map((employee, index) => (\n \n ))\n : Array.from({ length: 10 }, (v, k) => k).map((i) => (\n {}}\n />\n ))}\n \n
    \n setPage(p)}\n page={page}\n rowsPerPage={rowsPerPage}\n ActionsComponent={TablePaginationActions}\n onChangeRowsPerPage={(e) => {\n setRowsPerPage(+e.target.value);\n setPage(0);\n }}\n />\n
    \n \n ) : (\n \n )}\n {employeeToAssign && (\n \n )}\n
    \n );\n});\n","import { Box, Button, TableCell, TableRow } from '@material-ui/core';\nimport Skeleton from '@material-ui/lab/Skeleton/Skeleton';\nimport { IEmployeeItem } from 'domain/store/admin/EmployeeListModel';\nimport { observer } from 'mobx-react-lite';\nimport React from 'react';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport styles from './SquadEmployeeRow.module.scss';\n\nexport interface SquadEmployeeRowProps {\n employee: IEmployeeItem | null;\n canChangeAccess: boolean;\n assignEmployee: (employee: IEmployeeItem) => void;\n}\n\nexport const SquadEmployeeRow: React.FC = observer(\n ({ employee, canChangeAccess, assignEmployee }) => {\n return (\n \n \n \n \n {employee?.name}\n \n \n {employee ? employee?.position : }\n \n {employee ? employee?.accessLevelDisplayName : }\n \n \n {employee ? employee?.assignedSquads?.join(' / ') : }\n \n \n {employee ? (\n canChangeAccess ? (\n {\n assignEmployee(employee);\n }}\n color=\"primary\">\n Assign\n \n ) : null\n ) : (\n \n )}\n \n \n );\n }\n);\n","import {\n Dialog,\n DialogTitle,\n DialogContent,\n DialogActions,\n Button,\n FormControlLabel,\n Checkbox,\n Grid,\n Box,\n DialogContentText,\n} from '@material-ui/core';\nimport { IEmployeeItem } from 'domain/store/admin/EmployeeListModel';\nimport { useAdmin } from 'hooks/useAdmin';\nimport { useStore } from 'hooks/useStore';\nimport { observer } from 'mobx-react-lite';\nimport React, { useState } from 'react';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport _ from 'lodash';\n\nexport interface AssignSquadDialogProps {\n isOpen: boolean;\n squads: string[];\n allSquads: string[];\n employee: IEmployeeItem;\n closeDialog: () => void;\n saveDialog: () => void;\n}\n\nexport const AssignSquadDialog: React.FC = observer(\n ({ isOpen, squads, allSquads, employee, closeDialog, saveDialog }) => {\n const initialAssignedSquads = employee.assignedSquads ? employee.assignedSquads : [];\n\n const squadSelectionChanged = () =>\n _.isEqual(_.sortBy(selectedSquads), _.sortBy(initialAssignedSquads));\n\n const allPossibleSquadsAreDeselected = () => !selectedSquads.some((s) => squads.includes(s));\n\n const {\n SquadAssignment: { assignSquads },\n } = useAdmin();\n\n const store = useStore();\n\n const [selectedSquads, setSelectedSquads] = useState(initialAssignedSquads);\n const [isLoading, setIsLoading] = useState(false);\n const [confirmation, setConfirmation] = useState(false);\n\n const handleOkClick = () => {\n setIsLoading(true);\n assignSquads({ employeeIdpId: employee.idpId, squads: selectedSquads })\n .then(() => {\n if (allPossibleSquadsAreDeselected()) {\n closeDialog();\n } else {\n saveDialog();\n }\n })\n .catch((e) => {\n setSelectedSquads(employee.assignedSquads ?? []);\n if (e?.response?.status === 409) {\n store.notifications.addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (e?.response?.status === 403) {\n store.notifications.addError('Not authorised to save changes.');\n } else {\n store.notifications.addError('Unable to assign squads, please try again.');\n }\n })\n .finally(() => {\n setIsLoading(false);\n });\n };\n\n const handleCancelClick = () => {\n setSelectedSquads(employee.assignedSquads ?? []);\n closeDialog();\n };\n\n const addRemoveSquad = (e: React.ChangeEvent, squad: string) => {\n if (e.target.checked) {\n setSelectedSquads([...selectedSquads, squad]);\n } else {\n setSelectedSquads(selectedSquads.filter((s) => s !== squad));\n }\n };\n\n return isOpen ? (\n \n Assign Squads\n \n {!confirmation ? (\n \n {allSquads.map((squad) => (\n \n }\n disabled={!squads.includes(squad)}\n onChange={(event) =>\n addRemoveSquad(event as React.ChangeEvent, squad)\n }\n label={squad}\n />\n \n ))}\n \n ) : (\n \n {selectedSquads.length > 0 ? (\n <>\n You're about to update assigned squads for "{employee.name}" to\n below squads. Do you wish to continue?\n
      \n {selectedSquads.map((squad) => (\n
    • \n - {squad}\n
    • \n ))}\n
    \n \n ) : (\n <>\n You're about to unassign all squads for "{employee.name}". Do you\n wish to continue?\n \n )}\n
    \n )}\n
    \n \n {isLoading ? (\n \n \n \n ) : (\n <>\n {!confirmation ? (\n setConfirmation(true)}\n color=\"primary\"\n disabled={squadSelectionChanged()}>\n Next\n \n ) : (\n \n )}\n\n \n \n )}\n \n \n ) : null;\n }\n);\n","import { AppBar, Tab, Tabs } from '@material-ui/core';\nimport { useBackToTopButton } from 'hooks/useBackToTopButton';\nimport { usePermissions } from 'hooks/usePermissions';\nimport React, { ReactNode } from 'react';\nimport { Link, Switch, Redirect, useLocation, Route } from 'react-router-dom';\nimport { BackToTopButton } from '../employeeJourney/components/employeeTimeline/components/backToTopButton/BackToTopButton';\nimport styles from './Admin.module.scss';\nimport { ManageRoles } from './components/manageRoles/ManageRoles';\nimport { AssignSquads } from './components/manageSquads/AssignSquads';\n\ninterface TabItem {\n link: string;\n title: ReactNode;\n component: ReactNode;\n disabled: boolean;\n}\n\nexport const Admin: React.FC = () => {\n const { canAssignSquads, canManageRoles } = usePermissions();\n const location = useLocation();\n\n const {\n showBackToTopButton,\n scrollToTopOfTimeline,\n scrollableContainerRef,\n } = useBackToTopButton();\n\n const tabItems: TabItem[] = [\n {\n title: 'Squad Member Access',\n component: ,\n link: 'manage-roles',\n disabled: !canManageRoles,\n },\n {\n title: 'Non-Squad Member Access',\n component: ,\n link: 'assign-squads',\n disabled: !canAssignSquads,\n },\n ].filter((t) => !t.disabled);\n\n const activeTab: number = tabItems.findIndex(\n (item) => location.pathname === `/admin/${item.link}`\n );\n\n return (\n
    \n \n \n {tabItems.map((item, index) => (\n \n ))}\n \n \n
    \n \n {tabItems.map(\n (item) =>\n !item.disabled && (\n \n {item.component}\n \n )\n )}\n \n \n {showBackToTopButton && (\n
    \n \n
    \n )}\n
    \n
    \n );\n};\n","import React from 'react';\nimport styles from 'views/routes/notFound/NotFound.module.scss';\n\nexport const NotFound: React.FC = function () {\n return (\n
    \n

    Oh no!

    \n

    The page you were looking for cannot be found. Try clicking on one of the menu links.

    \n
    \n );\n};\n","import React, { CSSProperties, useEffect, useRef, useState } from 'react';\nimport cn from 'classnames';\nimport ReactMarkdown from 'react-markdown';\nimport { Button } from '@material-ui/core';\nimport styles from './SquadFeedTimelineItemContent.module.scss';\nimport 'github-markdown-css';\n\nconst FADE_HEIGHT = 114;\n\nexport const SquadFeedTimelineItemContent: React.FC<{ content: string }> = ({ content }) => {\n const item = useRef(null);\n\n const [needsFade, setNeedsFade] = useState(false);\n const [showAll, setShowAll] = useState(false);\n const toggleShowMore = () => setShowAll(!showAll);\n\n useEffect(() => {\n setNeedsFade((item.current?.clientHeight ?? 0) > FADE_HEIGHT);\n }, [item]);\n\n return (\n <>\n \n
    (item.current = e)} className=\"markdown-body\">\n \n
    \n {needsFade &&
    }\n
    \n {needsFade && (\n \n )}\n \n );\n};\n","import React, { useState } from 'react';\nimport { INote } from 'domain/store/NoteModel';\nimport { useNavigate } from 'hooks/useNavigate';\nimport { IconButton, Menu, MenuItem } from '@material-ui/core';\nimport { MoreVert, Person } from '@material-ui/icons';\nimport { EMPLOYEE_JOURNEYS_ROUTE_PATH } from 'views/routes/Routes';\n\nexport const SquadFeedTimelineItemAction: React.FC<{ note: INote }> = ({ note }) => {\n const navigate = useNavigate();\n const [menuEl, setMenuEl] = useState(null);\n const handleClose = () => setMenuEl(null);\n return (\n <>\n {\n setMenuEl(e.currentTarget);\n }}>\n \n \n \n {\n handleClose();\n navigate(`${EMPLOYEE_JOURNEYS_ROUTE_PATH}/${note.employee.idpId}`);\n }}>\n \n View Profile\n \n \n \n );\n};\n","import React from 'react';\nimport { INote } from 'domain/store/NoteModel';\nimport { Link as RouterLink } from 'react-router-dom';\nimport {\n TimelineConnector,\n TimelineContent,\n TimelineDot,\n TimelineItem,\n TimelineOppositeContent,\n TimelineSeparator,\n} from '@material-ui/lab';\nimport {\n Card,\n CardContent,\n CardHeader,\n Chip,\n Typography,\n Link,\n Grid,\n Box,\n} from '@material-ui/core';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport styles from './SquadFeedTimelineItem.module.scss';\nimport { SquadFeedTimelineItemContent } from 'views/routes/squad/components/squadFeed/components/SquadFeedTimelineItemContent';\nimport { Tag } from 'views/components/tag/Tag';\nimport { SquadFeedTimelineItemAction } from 'views/routes/squad/components/squadFeed/components/SquadFeedTimelineItemAction';\nimport { EMPLOYEE_JOURNEYS_ROUTE_PATH } from 'views/routes/Routes';\nimport { SensitiveAttribute } from 'views/components/sensitiveAttribute/SensitiveAttribute';\nimport { FaceToFaceDiscussionAttribute } from 'views/components/faceToFaceDiscussionAttribute/FaceToFaceDiscussionAttribute';\n\ninterface ISquadFeedTimelineItemProps {\n note: INote;\n connected: boolean;\n isFirstOfDate: boolean;\n}\n\nexport const SquadFeedTimelineItem: React.FC = ({\n note,\n connected,\n isFirstOfDate,\n}) => {\n return (\n \n \n \n {isFirstOfDate &&\n (note.modifiedDateMoment ?? note.createdDateMoment).local().format('dddd')}\n \n \n {isFirstOfDate &&\n (note.modifiedDateMoment ?? note.createdDateMoment).local().format('DD MMMM')}\n \n \n \n \n {connected && }\n \n \n \n \n \n }\n title={\n \n \n \n \n \n {note.subject}\n {note.isPeopleLeaderConversation === true && (\n \n )}\n \n \n \n \n \n \n \n {note.employee.displayName}\n \n \n \n \n \n {note.eventDateMoment!.local().format('DD/MM/YYYY')}\n \n \n \n \n \n {note.tags.map((tag, index) => (\n \n ))}\n \n \n \n \n \n \n \n \n Author: {note.author.displayName}\n \n \n \n \n \n \n Last modified: {note.modifiedDateMoment!.local().fromNow()}\n \n \n \n \n {note.sensitivity === 'sensitive' && (\n \n )}\n {note.sensitivity === 'non-sensitive' && (\n \n )}\n \n \n \n }\n action={}\n />\n \n \n \n \n \n \n \n \n \n );\n};\n","import React from 'react';\nimport { INote } from 'domain/store/NoteModel';\nimport moment from 'moment';\nimport { Typography } from '@material-ui/core';\nimport { Timeline } from '@material-ui/lab';\nimport { SquadFeedTimelineItem } from './SquadFeedTimelineItem';\n\nexport const SquadFeedTimeline: React.FC<{ notes: INote[]; group: string }> = ({\n notes,\n group,\n}) => {\n const currentYear = moment().format('YYYY');\n\n const title =\n moment(group).format('YYYY') === currentYear\n ? moment(group).format('MMMM')\n : moment(group).format('MMMM YYYY');\n\n const isFirstOfDate = (note: INote, index: number) => {\n const date = (note.modifiedDateMoment || note.createdDateMoment)\n .local()\n .startOf('day')\n .valueOf();\n\n return (\n notes.findIndex(\n (n) =>\n (n.modifiedDateMoment || n.createdDateMoment).local().startOf('day').valueOf() === date\n ) === index\n );\n };\n\n return (\n <>\n {title}\n\n \n {notes.map((n, index, array) => (\n \n ))}\n \n \n );\n};\n","import React from 'react';\nimport { INote } from 'domain/store/NoteModel';\nimport { SquadFeedTimeline } from './SquadFeedTimeline';\n\ninterface ISquadFeedTimelineGroupsProps {\n groups: { [key: string]: INote[] };\n}\n\nexport const SquadFeedTimelineGroups: React.FC = ({ groups }) => {\n const entries = Object.entries(groups);\n\n return (\n <>\n {entries.length > 0 ? (\n entries.map(([key, value], i) => (\n \n (b.modifiedDateMoment ?? b.createdDateMoment).diff(\n a.modifiedDateMoment ?? a.createdDateMoment\n )\n )}\n key={i}\n />\n ))\n ) : (\n

    There are no notes currently available

    \n )}\n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { Container } from '@material-ui/core';\nimport { INote } from 'domain/store/NoteModel';\nimport { useUser } from 'hooks/useUser';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { SquadFeedTimelineGroups } from './components/SquadFeedTimelineGroups';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport { DEFAULT_PAGE_NUMBER, DEFAULT_ROWS_PER_PAGE } from 'views/ViewConstants';\nimport { observer } from 'mobx-react-lite';\n\nexport const SquadFeed: React.FC = observer(() => {\n const { loadSquadNotes, selectedSquad } = useUser();\n const [notes, setNotes] = useState([]);\n const [page, setPage] = useState(DEFAULT_PAGE_NUMBER);\n const [hasMore, setHasMore] = useState(true);\n const [isLoading, setIsLoading] = useState(false);\n const [initialLoadHasCompleted, setInitialLoadHasCompleted] = useState(false);\n\n useEffect(() => {\n setNotes([]);\n setPage(0);\n setHasMore(true);\n }, [selectedSquad]);\n\n const loadNextPage = () => {\n if (isLoading) return;\n setIsLoading(true);\n loadSquadNotes(selectedSquad, page, DEFAULT_ROWS_PER_PAGE)\n .then((result) => {\n const combinedNotes = [...notes, ...result.notes];\n setNotes(combinedNotes);\n setPage(page + 1);\n setHasMore(combinedNotes.length < result.totalCount);\n })\n .finally(() => {\n setInitialLoadHasCompleted(true);\n setIsLoading(false);\n });\n };\n\n useEffect(() => {\n loadNextPage();\n // This is only here to fire off the initial request, so we don't want to give it any dependencies that might cause it to run again\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n }\n useWindow={false}>\n {!!notes.length && (\n \n {\n const key = (cur.modifiedDateMoment ?? cur.createdDateMoment).format('YYYY-MM');\n if (Object.prototype.hasOwnProperty.call(acc, key)) {\n acc[key].push(cur);\n } else {\n acc[key] = [cur];\n }\n return acc;\n }, {})}\n />\n \n )}\n \n );\n});\n","export const DEFAULT_PAGE_NUMBER = 0;\nexport const DEFAULT_ROWS_PER_PAGE = 10;\n","import React, { CSSProperties, useEffect, useRef, useState } from 'react';\nimport cn from 'classnames';\nimport styles from './NoteItemContent.module.scss';\nimport ReactMarkdown from 'react-markdown';\nimport { Box, Button } from '@material-ui/core';\nimport 'github-markdown-css';\n\nconst FADE_HEIGHT = 114;\nexport const NoteItemContent: React.FC<{ content: string }> = ({ content }) => {\n const item = useRef(null);\n\n const [needsFade, setNeedsFade] = useState(false);\n const [showAll, setShowAll] = useState(false);\n const toggleShowMore = () => setShowAll(!showAll);\n\n useEffect(() => {\n setNeedsFade((item.current?.clientHeight ?? 0) > FADE_HEIGHT);\n }, [item]);\n\n return (\n <>\n \n
    (item.current = e)} className=\"markdown-body\">\n \n
    \n {needsFade &&
    }\n
    \n \n {needsFade && (\n \n )}\n \n \n );\n};\n","import {\n Box,\n Button,\n Card,\n CardContent,\n CardHeader,\n Chip,\n FormControl,\n Grid,\n Link,\n MenuItem,\n Select,\n Typography,\n} from '@material-ui/core';\nimport { ChevronRightRounded, Visibility, VisibilityOff } from '@material-ui/icons';\nimport { INote, NoteSensitivity } from 'domain/store/NoteModel';\nimport { useStore } from 'hooks/useStore';\nimport { useUser } from 'hooks/useUser';\nimport React, { useEffect, useState } from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport { SensitiveAttribute } from 'views/components/sensitiveAttribute/SensitiveAttribute';\nimport { FaceToFaceDiscussionAttribute } from 'views/components/faceToFaceDiscussionAttribute/FaceToFaceDiscussionAttribute';\nimport { Tag } from 'views/components/tag/Tag';\nimport { EMPLOYEE_JOURNEYS_ROUTE_PATH } from 'views/routes/Routes';\nimport { NoteItemContent } from 'views/routes/squad/components/noteReview/components/NoteItemContent';\nimport styles from './NoteItem.module.scss';\n\ninterface INoteItemProps {\n note: INote;\n onNoteApproved: () => void;\n}\n\nexport const NoteItemHeader: React.FC<{ note: INote }> = ({ note }) => {\n return (\n \n }\n title={\n \n \n \n \n \n {note.subject}\n {note.isPeopleLeaderConversation === true && (\n \n )}\n \n \n \n \n \n \n \n {note.employee.displayName}\n \n \n \n \n \n {note.eventDateMoment!.format('DD/MM/YYYY')}\n \n \n \n \n \n {note.tags.map((tag, index) => (\n \n ))}\n \n \n \n \n \n \n \n \n Author: {note.author.displayName}\n \n \n \n \n \n \n Last modified: {note.modifiedDateMoment!.fromNow()}\n \n \n \n \n \n \n {note.status === 'pending' && To be reviewed}\n {note.sensitivity === 'sensitive' && }\n {note.sensitivity === 'non-sensitive' && (\n \n )}\n \n \n \n \n \n }\n />\n );\n};\n\nexport const NoteItem: React.FC = ({ note, onNoteApproved }) => {\n const store = useStore();\n const { review } = useUser();\n const [selection, setSelection] = useState('none');\n\n const isValidSelection = () =>\n (selection === 'sensitive' || selection === 'non-sensitive') && selection !== note.sensitivity;\n\n const updateNoteSensitivity = () => {\n if (isValidSelection()) {\n review\n .updateNoteSensitivity(selection, note.noteId)\n .then(() => onNoteApproved())\n .catch(() => {\n store.notifications.addError('Unable to approve the note, please try again.');\n });\n }\n };\n\n useEffect(() => {\n setSelection(note.sensitivity);\n }, [note]);\n\n return (\n \n \n \n \n \n \n \n \n \n \n
    Visibility Settings
    \n \n setSelection(e.target.value as NoteSensitivity)}>\n \n Choose settings...\n \n \n \n \n Mark as Sensitive\n \n \n \n \n \n Mark as Non-Sensitive\n \n \n \n \n
    \n \n updateNoteSensitivity()}\n endIcon={}>\n Submit\n \n \n {isValidSelection() && selection === 'sensitive' && (\n \n Marking this note as sensitive will make this note visible to only M & A users.\n \n )}\n {isValidSelection() && selection === 'non-sensitive' && (\n \n Marking this note as non-sensitive will make this note visible to M, A, B1 & B2\n users. C users will not have visibility.\n \n )}\n \n
    \n
    \n
    \n
    \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { Button, Container, Grid, Typography } from '@material-ui/core';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { NoteItem } from 'views/routes/squad/components/noteReview/components/NoteItem';\nimport { useUser } from 'hooks/useUser';\nimport { observer } from 'mobx-react-lite';\nimport { useQueryParams } from 'hooks/useQueryParams';\nimport styles from './NoteReview.module.scss';\nimport { INote } from 'domain/store/NoteModel';\nimport { ReviewState } from 'domain/store/ReviewModel';\nimport InfiniteScroll from 'react-infinite-scroller';\nimport { DEFAULT_PAGE_NUMBER, DEFAULT_ROWS_PER_PAGE } from 'views/ViewConstants';\nimport { SquadNotSelected } from 'views/components/squadNotSelected/SquadNotSelected';\n\nexport const NoteReview: React.FC = observer(() => {\n const {\n selectedSquad,\n review: { getNote, getNotes, updateReviewState, reviewState },\n } = useUser();\n const { noteId } = useQueryParams<{ noteId: string | null }>();\n const [shouldShowOtherNotes, setShouldShowOtherNotes] = useState(!noteId);\n const [notes, setNotes] = useState([]);\n const [page, setPage] = useState(DEFAULT_PAGE_NUMBER);\n const [hasMore, setHasMore] = useState(true);\n const [isLoading, setIsLoading] = useState(false);\n const [initialLoadHasCompleted, setInitialLoadHasCompleted] = useState(false);\n const [initialSquad] = useState(selectedSquad);\n\n useEffect(() => {\n if (noteId && !shouldShowOtherNotes) {\n setIsLoading(true);\n getNote(Number(noteId))\n .then((n) => n && setNotes([n]))\n .finally(() => setIsLoading(false));\n }\n }, [getNote, noteId, shouldShowOtherNotes]);\n\n useEffect(() => {\n resetPage();\n }, [selectedSquad]);\n\n const loadNextPage = () => {\n if (isLoading) return;\n setIsLoading(true);\n getNotes(selectedSquad, page, DEFAULT_ROWS_PER_PAGE)\n .then((result) => {\n const combinedNotes = [...notes, ...result.notes];\n setNotes(combinedNotes);\n setPage(page + 1);\n setHasMore(combinedNotes.length < result.totalCount);\n })\n .finally(() => {\n setInitialLoadHasCompleted(true);\n setIsLoading(false);\n });\n };\n\n useEffect(() => {\n shouldShowOtherNotes && loadNextPage();\n // This is only here to fire off the initial request, so we don't want to give it any dependencies that might cause it to run again\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [shouldShowOtherNotes]);\n\n const resetPage = () => {\n setNotes([]);\n setPage(0);\n setHasMore(true);\n };\n\n useEffect(() => {\n if (selectedSquad !== initialSquad) {\n setShouldShowOtherNotes(true);\n }\n }, [selectedSquad, initialSquad]);\n\n const swapView = (state: ReviewState) => {\n setShouldShowOtherNotes(true);\n updateReviewState(state);\n resetPage();\n };\n\n return shouldShowOtherNotes && !selectedSquad ? (\n \n ) : (\n }\n useWindow={false}>\n \n \n \n \n \n swapView('in-progress')}>\n In Progress\n \n \n \n swapView('reviewed')}>\n Reviewed\n \n \n \n \n {notes.length || isLoading ? (\n notes.map((note) => (\n \n \n \n ))\n ) : noteId && !shouldShowOtherNotes ? (\n \n \n There is no note with id {noteId}{' '}\n {reviewState === 'in-progress' ? 'requiring review' : 'that has been reviewed'}\n \n \n ) : (\n \n \n {reviewState === 'in-progress'\n ? 'There are no notes currently requiring review'\n : 'You have not reviewed any notes yet'}\n \n \n )}\n \n \n \n );\n});\n","import React from 'react';\nimport styles from './ChartHeader.module.scss';\n\nexport const ChartHeader: React.FC<{ text: string; subHeader?: string }> = ({\n text,\n subHeader,\n}) => {\n return (\n
    \n {text}\n {subHeader ?
    By Month
    : <>}\n
    \n );\n};\n","import { ITrends } from 'domain/store/trends/TrendsModel';\nimport { useStore } from 'hooks/useStore';\n\nexport function useTrends(): ITrends {\n const { trends } = useStore();\n\n return trends;\n}\n","import React from 'react';\n\n// eslint-disable-next-line\nexport function useEmployeeListPopper() {\n const [anchorEl, setAnchorEl] = React.useState(null);\n const [offset, setOffset] = React.useState<[number, number] | undefined>(undefined);\n const [ignoreNextClose, setIgnoreNextClose] = React.useState(false);\n\n const handleClick = (event: React.MouseEvent) => setAnchorEl(event.currentTarget);\n\n const handleClose = () => {\n if (ignoreNextClose) {\n setIgnoreNextClose(false);\n return;\n }\n setAnchorEl(null);\n };\n\n return { anchorEl, setAnchorEl, offset, setOffset, handleClick, handleClose, setIgnoreNextClose };\n}\n","import React from 'react';\nimport styles from './EmployeeListPopperItem.module.scss';\nimport { TableCell } from '@material-ui/core';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport { Link } from 'react-router-dom';\nimport { ITrendsEmployeesItem } from 'domain/store/trends/TrendsEmployeesModel';\nimport { EMPLOYEE_JOURNEYS_ROUTE_PATH } from 'views/routes/Routes';\nimport { ISupportingOpportunityEmployee } from 'domain/store/trends/SupportingOpportunitiesWithEmployeesModel';\n\ninterface IEmployeeListPopperItemProps {\n employee: ITrendsEmployeesItem | ISupportingOpportunityEmployee;\n}\n\nexport const EmployeeListPopperItem: React.FC = function (props) {\n const getEmployeeId = () =>\n 'employeeIdpId' in props.employee ? props.employee.employeeIdpId : props.employee.idpId;\n\n return (\n \n
    \n
    \n \n
    \n \n {props.employee.displayName}\n \n
    \n
    \n );\n};\n","import React from 'react';\nimport {\n TableContainer,\n Table,\n TableRow,\n TableBody,\n TablePagination,\n TableCell,\n} from '@material-ui/core';\nimport { EmployeeListPopperItem } from './EmployeeListPopperItem';\nimport { ITrendsEmployeesItem } from 'domain/store/trends/TrendsEmployeesModel';\nimport { ISupportingOpportunityEmployee } from 'domain/store/trends/SupportingOpportunitiesWithEmployeesModel';\nimport styles from './EmployeeListPopperItem.module.scss';\nimport cn from 'classnames';\n\ninterface IEmployeeListProps {\n employees: Array;\n}\n\nexport const EmployeeList: React.FC = function (props) {\n const rowsPerPage = 6;\n const itemsPerRow = 3;\n const itemsPerPage = itemsPerRow * rowsPerPage;\n const [page, setPage] = React.useState(0);\n\n React.useEffect(() => {\n setPage(0);\n }, [props]);\n\n return (\n \n \n \n {[...Array(rowsPerPage)].map((_, row) => (\n \n {[...Array(itemsPerRow)].map((_, i) => {\n const index = page * itemsPerPage + row * 3 + i;\n const employee = props.employees[index];\n return employee ? (\n \n ) : (\n itemsPerPage,\n })}\n key={index}\n />\n );\n })}\n \n ))}\n \n
    \n setPage(p)}\n page={page}\n rowsPerPage={rowsPerPage}\n labelDisplayedRows={() =>\n `${page + 1} of ${Math.ceil(props.employees.length / itemsPerPage || 1)}`\n }\n rowsPerPageOptions={[rowsPerPage]}\n />\n
    \n );\n};\n","import React from 'react';\nimport styles from './EmployeeListPopper.module.scss';\nimport { IconButton, Popper, ClickAwayListener, Tabs, Tab } from '@material-ui/core';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { faTimesCircle } from '@fortawesome/free-regular-svg-icons';\nimport { ITrendsEmployeesItem } from 'domain/store/trends/TrendsEmployeesModel';\nimport { ISupportingOpportunityEmployee } from 'domain/store/trends/SupportingOpportunitiesWithEmployeesModel';\nimport { EmployeeList } from './EmployeeList';\n\ninterface IEmployeeListPopperProps {\n anchorEl: HTMLElement | SVGElement | null;\n handleClose: () => void;\n title: string;\n employees: Array;\n color: string;\n offset?: [number, number];\n flip?: boolean;\n isRoleChangePathway?: boolean;\n}\n\nexport const EmployeeListPopper: React.FC = function (props) {\n const calculateOverflow = () => {\n if (!props.anchorEl) return 0;\n\n // Having to use a magic number for pageMargin due to using causes it to not be rendered correctly\n // (position is wrong and has display: none). If keepMounted worked it would give us the actual popper element to grab dimensions from.\n // The number should be relative to width of this popper when rendered\n const pageMargin = 350;\n const rect = props.anchorEl.getBoundingClientRect();\n const horizontalOffset = props.offset ? props.offset[0] : 0;\n const center = rect.left + rect.width / 2;\n const left = center + horizontalOffset - pageMargin;\n const right = center + horizontalOffset + pageMargin;\n const windowLimit = document.documentElement.clientWidth;\n\n if (left < 0) {\n return left * -1;\n }\n\n if (right > windowLimit) {\n return windowLimit - right;\n }\n\n return 0;\n };\n\n const horizontalOffset = props.offset ? props.offset[0] : 0;\n const verticalOffset = props.offset ? props.offset[1] : 0;\n const overflow = calculateOverflow();\n const popperOffset = `${horizontalOffset + overflow},${verticalOffset}`;\n const arrowOffset = overflow * -1;\n\n const [activeTab, setActiveTab] = React.useState(0);\n const changeTab = (_: React.ChangeEvent, value: number) => setActiveTab(value);\n\n const employeesFilteredByTimeFrame = (timeframe: 0 | 6 | 12 | 18) => {\n if (timeframe === 0) return props.employees;\n\n return props.employees.filter(\n (e) =>\n 'roleChangeTimeFrame' in e && e.roleChangeTimeFrame && e.roleChangeTimeFrame === timeframe\n ) as ITrendsEmployeesItem[];\n };\n\n return (\n \n \n \n
    \n
    \n
    \n {props.title}\n Total: {props.employees.length}\n
    \n \n \n \n {props.isRoleChangePathway ? (\n <>\n \n \n \n \n \n \n \n \n ) : (\n \n )}\n
    \n \n \n );\n};\n","import React from 'react';\nimport { useTrends } from 'hooks/useTrends';\nimport { Skeleton } from '@material-ui/lab';\nimport { observer } from 'mobx-react-lite';\nimport { Bar } from 'react-chartjs-2';\nimport { useEmployeeListPopper } from 'hooks/useEmployeeListPopper';\nimport { EmployeeListPopper } from '../employeeListPopper/EmployeeListPopper';\nimport { IRoleCount } from 'domain/store/trends/TrendsEmployeesModel';\nimport styles from './RoleDistributionChart.module.scss';\n\nexport const RoleDistributionChart: React.FC = observer(() => {\n const { trendsEmployees, roleDistributionOrder } = useTrends();\n\n const orderedRoles = trendsEmployees.roleCounts\n .filter((c) => roleDistributionOrder.indexOf(c.role) > -1)\n .sort((a, b) => roleDistributionOrder.indexOf(a.role) - roleDistributionOrder.indexOf(b.role));\n\n const abbreviations = Object.assign(\n {},\n ...orderedRoles.map((x) => ({\n [x.role]: x.role\n .split(' ')\n .map((n) => n[0])\n .join(''),\n }))\n );\n\n const CHART_OPTIONS = {\n responsive: true,\n maintainAspectRatio: false,\n legend: {\n display: false,\n },\n scales: {\n xAxes: [\n {\n stacked: true,\n gridLines: {\n display: true,\n drawBorder: true,\n drawOnChartArea: false,\n drawTicks: false,\n lineWidth: 1,\n },\n ticks: {\n padding: 10,\n callback: (value: string) => abbreviations[value],\n },\n },\n ],\n yAxes: [\n {\n stacked: true,\n display: true,\n },\n ],\n },\n onHover: (event: MouseEvent, chartElement: HTMLElement[]) => {\n if (event.currentTarget)\n (event.currentTarget as HTMLElement).style.cursor = chartElement[0] ? 'pointer' : 'default';\n },\n };\n\n const chartData = {\n labels: orderedRoles.map((item: IRoleCount) => item.role),\n datasets: [\n {\n backgroundColor: '#5DDAE7',\n borderColor: '#313232',\n borderWidth: 0,\n data: orderedRoles.map((item: IRoleCount) => item.count),\n },\n ],\n };\n\n const popper = useEmployeeListPopper();\n const divRef = React.useRef(null);\n // eslint-disable-next-line\n const [selectedElement, setSelectedElement] = React.useState(undefined);\n\n const handleClick = (e: HTMLElement[]) => {\n // eslint-disable-next-line\n const element = e[0] as any;\n if (!element) return;\n\n // Without this, selecting subsequent bars will fire the ClickAwayListener's handleClose() *after* this assigns anchorEl, thereby dismissing the new popper\n if (popper.anchorEl) {\n popper.setIgnoreNextClose(true);\n }\n\n setSelectedElement(element);\n popper.setAnchorEl(divRef.current);\n popper.setOffset([\n element._model.x - (divRef.current?.getBoundingClientRect()?.width || 0) / 2,\n 0,\n ]);\n };\n\n const getSelectedElementEmployees = () => {\n if (!selectedElement) return [];\n const index = selectedElement._index;\n const jobTitle = selectedElement._chart.data.labels[index];\n\n return trendsEmployees.employeesWithMatchingJobTitle(jobTitle);\n };\n\n return (\n <>\n
    \n {trendsEmployees.state === 'done' ? (\n \n ) : (\n \n )}\n
    \n \n \n );\n});\n","import { HierarchyCircularNode } from 'd3-hierarchy';\n\nexport interface ChartData {\n name: string;\n value: number;\n colour: string;\n}\n\nexport interface PackData extends ChartData {\n children: PackData[];\n}\n\ninterface UniqueId {\n id: string;\n href: string;\n uri: string;\n}\n\nexport type PackDatum = HierarchyCircularNode;\n\nexport interface GroupDatum extends PackDatum {\n leafUid: UniqueId;\n clipUid: UniqueId;\n}\n\nexport class IdProvider {\n protected static uniqueBaseId = 0;\n\n public static uid(name: string): UniqueId {\n const id = this.uniqueBaseId++;\n const idStr = `${name}-${id}`;\n return {\n id: idStr,\n href: `#${idStr}`,\n uri: `url(#${idStr})`,\n };\n }\n}\n\nexport type ChartEventCallback = (datum: GroupDatum, elem: SVGGElement) => void;\n","import { easeQuad, format, hierarchy, HierarchyNode, nest, pack, Selection } from 'd3';\nimport cn from 'classnames';\nimport {\n ChartData,\n ChartEventCallback,\n GroupDatum,\n IdProvider,\n PackData,\n PackDatum,\n} from './types';\nimport { color } from 'views/themes';\n\nconst d3Format = format(',d');\n\nexport const createChart = (\n styles: { [key: string]: string },\n parent: Selection,\n data: ChartData[],\n size: [number, number],\n onOverBubble: ChartEventCallback,\n onOutBubble: ChartEventCallback\n): Selection => {\n const baseData: PackData = {\n value: 0,\n name: 'root',\n colour: '',\n children: data.map((d) => ({ ...d, children: [] })),\n };\n\n const dataHierarchy: HierarchyNode = hierarchy(baseData)\n .sum((d) => d.value)\n .sort((a, b) => (b.value ?? 0) - (a.value ?? 0));\n\n const packed = pack()\n .size(size)\n .padding(30)(dataHierarchy)\n .descendants()\n .filter((d) => !d.children);\n const nestedData = nest()\n .key((d) => `${d.height}`)\n .entries(packed);\n\n const svg = parent\n .append('svg')\n .attr('width', size[0])\n .attr('height', size[1])\n .attr('viewBox', `${[0, 0, ...size]}`)\n .attr('class', cn(styles.bubbleChart))\n .attr('text-anchor', 'middle');\n\n const groups = svg\n .selectAll('g')\n .data(nestedData)\n .join('g')\n .attr('class', cn(styles.bubbleGroups))\n .selectAll('g')\n .data((d) => d.values)\n .join('g')\n .attr('class', cn(styles.bubbleGroup))\n .attr('transform', `translate(${size[0] / 2},${size[1] / 2})`)\n .on('mouseover click touchend', (datum, index, nodes) => {\n onOverBubble && onOverBubble(datum, nodes[index]);\n })\n .on('mouseout', (datum, index, nodes) => {\n onOutBubble && onOutBubble(datum, nodes[index]);\n });\n\n groups\n .transition('animate-groups')\n .duration(500)\n .ease(easeQuad)\n .attr('transform', (d) => `translate(${d.x + 1},${d.y + 1})`);\n\n groups.append('title').text((d) => `${d.data.name}\\n${d3Format(d.data.value)}`);\n\n groups\n .append('circle')\n .attr('id', (d) => (d.leafUid = IdProvider.uid('leaf')).id)\n // .attr('fill', () => 'hsl(' + Math.random() * 360 + ',65%, 50%)')\n .attr('fill', (d) => d.data.colour)\n .attr('class', cn(styles.bubbleCircle))\n .transition('animate-circles')\n .duration(500)\n .attr('r', (d) => (d.r ? d.r + 11 : 0));\n\n groups\n .append('clipPath')\n .attr('id', (d) => (d.clipUid = IdProvider.uid('clip')).id)\n .append('use')\n .attr('xlink:href', (d) => d.leafUid.href);\n\n groups\n .filter((d) => d.r + 10 > 30)\n .append('text')\n .attr('clip-path', (d) => d.clipUid.uri)\n .attr('class', cn(styles.bubbleText))\n .attr('fill', (d) => color.white)\n .selectAll('tspan')\n .data<{ text: string; size: number }>((d) =>\n d.data.name.split(' ').map((v) => ({ text: `${v}`, size: d.r }))\n )\n .join('tspan')\n .attr('x', 0)\n .attr('y', (d, i, nodes) => `${i - nodes.length / 2 + 0.8}em`)\n .attr('class', (d) => cn({ [styles.fontSmall]: d.size < 50 }, styles.fontLarge))\n .text((d) => d.text);\n\n return svg;\n};\n","import {\n green,\n cyan,\n deepPurple,\n purple,\n blue,\n amber,\n deepOrange,\n indigo,\n lightBlue,\n lightGreen,\n lime,\n orange,\n pink,\n red,\n teal,\n yellow,\n} from '@material-ui/core/colors';\n\nexport enum ColourSet {\n TealGreen,\n LimeOrange,\n RedPurple,\n Blue,\n}\n\n// eslint-disable-next-line\nconst mapColours = (colourSet: ColourSet): any[] => {\n switch (colourSet) {\n case ColourSet.TealGreen:\n return [teal, cyan, lightGreen, green];\n case ColourSet.LimeOrange:\n return [lime, amber, yellow, orange];\n case ColourSet.RedPurple:\n return [deepOrange, red, pink, purple];\n case ColourSet.Blue:\n return [deepPurple, indigo, blue, lightBlue];\n }\n};\n\nexport const generateColours = (numberOfColours: number, colourSet: ColourSet): string[] => {\n const colours: string[] = [];\n let colourGroup = undefined;\n\n const colourGroups = mapColours(colourSet);\n\n for (let i = 0; i * 4 < numberOfColours; i++) {\n const indexOfColourGroups = i >= colourGroups.length ? i % colourGroups.length : i;\n colourGroup = colourGroups[indexOfColourGroups];\n\n colours.push(colourGroup[800]);\n colours.push(colourGroup[600]);\n colours.push(colourGroup[400]);\n colours.push(colourGroup[200]);\n }\n\n return colours.slice(0, numberOfColours);\n};\n","import React from 'react';\nimport styles from './D3BubbleChart.module.scss';\nimport { Paper, Popper, Typography } from '@material-ui/core';\n\ninterface ID3BubbleChartTooltipProps {\n anchorEl: SVGElement | null;\n title: string;\n value: number;\n}\n\nexport const D3BubbleChartTooltip: React.FC = (props) => {\n const [arrowRef, setArrowRef] = React.useState(null);\n\n return (\n \n \n \n {props.title}\n {props.value}\n \n \n );\n};\n","import React, { useEffect, useRef, useState } from 'react';\nimport { select } from 'd3-selection';\nimport cn from 'classnames';\nimport { ChartData, GroupDatum } from './types';\nimport { createChart } from './d3chart';\nimport styles from './D3BubbleChart.module.scss';\nimport { useEmployeeListPopper } from 'hooks/useEmployeeListPopper';\nimport { EmployeeListPopper } from 'views/routes/squad/components/squadTrends/components/employeeListPopper/EmployeeListPopper';\nimport { useTrends } from 'hooks/useTrends';\nimport { D3BubbleChartTooltip } from './D3BubbleChartTooltip';\n\ninterface ID3BubbleChartProps {\n className?: string;\n data: ChartData[];\n size: [number, number];\n chartType: 'talentCodes' | 'supportingOpportunities';\n shouldEmployeeListFlip?: boolean;\n}\n\nexport const D3BubbleChart: React.FC = ({\n data,\n className,\n size,\n shouldEmployeeListFlip,\n chartType,\n}) => {\n const chartRef = useRef(null);\n const [selectedBubbleDatum, setSelectedBubbleDatum] = React.useState(null);\n const [hoveredBubbleRef, setHoveredBubbleRef] = useState<{\n element: SVGElement;\n datum: GroupDatum;\n } | null>(null);\n\n const { trendsEmployees, supportingOpportunitiesWithEmployees } = useTrends();\n\n useEffect(() => {\n if (chartRef.current) {\n const ref = (chartRef.current as unknown) as HTMLElement;\n const chart = createChart(\n styles,\n select(ref),\n data,\n size,\n (d, e) => {\n e.onclick = () => setSelectedBubbleDatum(d);\n setHoveredBubbleRef({ element: e, datum: d });\n },\n () => {\n setHoveredBubbleRef(null);\n }\n );\n return () => {\n chart.remove();\n };\n }\n return () => {};\n }, [chartRef, data, size]);\n\n const employeeList = useEmployeeListPopper();\n\n const handleClick = () => {\n employeeList.setAnchorEl(hoveredBubbleRef?.element || null);\n\n // Without this, selecting subsequent bars will fire the ClickAwayListener's handleClose() *after* this assigns anchorEl, thereby dismissing the new popper\n if (employeeList.anchorEl) {\n employeeList.setIgnoreNextClose(true);\n }\n };\n\n return !data.length ? (\n
    \n No data available\n
    \n ) : (\n <>\n {hoveredBubbleRef && (\n \n )}\n
    \n {selectedBubbleDatum && (\n \n )}\n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { useTrends } from 'hooks/useTrends';\nimport { D3BubbleChart } from 'views/components/charts/d3BubbleChart/D3BubbleChart';\nimport { Skeleton } from '@material-ui/lab';\nimport { Typography } from '@material-ui/core';\nimport { ColourSet, generateColours } from '../../ColourGenerator';\nimport { ChartData } from '../../../../../../components/charts/d3BubbleChart/types';\n\nexport const TalentCodesChart: React.FC = observer(() => {\n const {\n trendsEmployees: { state, talentCodeCounts },\n } = useTrends();\n\n const [colours, setColours] = useState([] as string[]);\n const [chartData, setChartData] = useState([] as ChartData[]);\n\n useEffect(() => {\n setColours(generateColours(talentCodeCounts.length, ColourSet.Blue));\n }, [talentCodeCounts]);\n\n useEffect(() => {\n setChartData(\n talentCodeCounts.map((item, index) => ({\n name: item.talentCode,\n value: item.count,\n colour: colours[index],\n }))\n );\n }, [colours, talentCodeCounts]);\n\n return (\n \n {state === 'done' ? (\n \n ) : (\n \n )}\n \n );\n});\n","import React from 'react';\nimport styles from './FlagChart.module.scss';\nimport { EmployeeListPopper } from '../employeeListPopper/EmployeeListPopper';\nimport { useEmployeeListPopper } from 'hooks/useEmployeeListPopper';\nimport { ITrendsEmployeesItem } from 'domain/store/trends/TrendsEmployeesModel';\n\ninterface IFlagItemProps {\n color: string;\n flag: string;\n employees: ITrendsEmployeesItem[];\n isRoleChangePathway?: boolean;\n}\n\nexport const FlagItem: React.FC = (props) => {\n const popper = useEmployeeListPopper();\n\n return (\n <>\n \n
    \n {props.employees.length}\n {props.flag}\n
    \n \n \n \n );\n};\n","import { Skeleton } from '@material-ui/lab';\nimport { useTrends } from 'hooks/useTrends';\nimport { observer } from 'mobx-react-lite';\nimport React from 'react';\nimport styles from './FlagChart.module.scss';\nimport { FlagItem } from './FlagItem';\n\nexport const FlagChart = observer(() => {\n const { trendsEmployees } = useTrends();\n\n return (\n <>\n {trendsEmployees.state === 'done' ? (\n
    \n
    \n \n \n
    \n
    \n \n \n
    \n
    \n ) : (\n \n )}\n \n );\n});\n","import { FormControl, InputLabel, Select } from '@material-ui/core';\nimport React, { JSXElementConstructor, PropsWithChildren, ReactElement } from 'react';\nimport cn from 'classnames';\nimport styles from './CustomSelection.module.scss';\n\ninterface ICustomSelectionProps {\n label: string;\n value: DataType;\n onChange: (value: DataType) => void;\n className?: string;\n fullWidth?: boolean;\n}\n\ntype Props = PropsWithChildren>;\n\nexport function CustomSelection({\n label,\n value,\n onChange,\n children,\n className,\n fullWidth,\n}: Props): ReactElement, JSXElementConstructor>> | null {\n return (\n \n {label}\n onChange(event.target.value as DataType)}>\n {children}\n \n \n );\n}\n","import React, { useEffect, useState } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { useTrends } from 'hooks/useTrends';\nimport { MenuItem, Typography } from '@material-ui/core';\nimport { D3BubbleChart } from 'views/components/charts/d3BubbleChart/D3BubbleChart';\nimport { Skeleton } from '@material-ui/lab';\nimport { CustomSelection } from 'views/components/customSelection/CustomSelection';\nimport { TimeRange } from 'domain/store/trends/SupportingOpportunitiesWithEmployeesModel';\nimport { useUser } from 'hooks/useUser';\nimport { ColourSet, generateColours } from '../../ColourGenerator';\nimport { ChartData } from '../../../../../../components/charts/d3BubbleChart/types';\n\nconst TIME_RANGES: { text: string; value: TimeRange }[] = [\n { text: 'Last FY Quarter', value: 'last_fy_quarter' },\n { text: 'Current FY Quarter', value: 'current_fy_quarter' },\n { text: 'Last FY', value: 'last_fy' },\n { text: 'Current FY', value: 'current_fy' },\n];\n\nexport const SupportingOpportunitiesChart: React.FC = observer(() => {\n const { selectedSquad } = useUser();\n const {\n supportingOpportunitiesWithEmployees: {\n state,\n value,\n selectedTimeRange,\n loadSupportingOpportunitiesWithEmployees,\n selectTimeRange,\n },\n } = useTrends();\n\n const [colours, setColours] = useState([] as string[]);\n const [chartData, setChartData] = useState([] as ChartData[]);\n\n useEffect(() => {\n loadSupportingOpportunitiesWithEmployees(selectedSquad).then(() =>\n setColours(generateColours(value.length, ColourSet.TealGreen))\n );\n }, [loadSupportingOpportunitiesWithEmployees, selectedSquad, selectedTimeRange, value]);\n\n useEffect(() => {\n setChartData(\n value.map((item, index) => ({\n name: item.tag,\n value: item.people.length,\n colour: colours[index],\n }))\n );\n }, [colours, value]);\n\n return (\n <>\n {state === 'done' ? (\n \n \n \n ) : (\n \n )}\n
    \n \n {TIME_RANGES.map((t) => (\n \n {t.text}\n \n ))}\n \n
    \n \n );\n});\n","import Checkbox, { CheckboxProps } from '@material-ui/core/Checkbox';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport { withStyles } from '@material-ui/core/styles';\nimport React from 'react';\n\ninterface ICheckBoxProps {\n index: number;\n label: string;\n color: string;\n checked: boolean;\n onChange: (index: number) => void;\n}\n\nexport const CustomColorCheckBox: React.FC = (props: ICheckBoxProps) => {\n const CustomCheckBox = withStyles({\n root: {\n color: props.color,\n '&$checked': {\n color: props.color,\n },\n },\n checked: {},\n })((props: CheckboxProps) => );\n\n const handleOnchange = () => {\n props.onChange(props.index);\n };\n\n return (\n }\n label={props.label}\n />\n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { useUser } from 'hooks/useUser';\nimport { useTrends } from 'hooks/useTrends';\nimport { Bar } from 'react-chartjs-2';\nimport { Skeleton } from '@material-ui/lab';\nimport { ColourSet, generateColours } from '../../ColourGenerator';\nimport { CustomColorCheckBox } from '../customColorCheckBox/CustomColorCheckBox';\nimport styles from './TalentCodesByMonthChart.module.scss';\nimport { ChartData } from 'chart.js';\n\nconst CHART_OPTIONS = {\n responsive: true,\n maintainAspectRatio: false,\n legend: {\n display: false,\n },\n scales: {\n xAxes: [\n {\n stacked: true,\n gridLines: {\n display: true,\n drawBorder: true,\n drawOnChartArea: false,\n drawTicks: false,\n lineWidth: 1,\n },\n ticks: {\n padding: 10,\n },\n },\n ],\n yAxes: [\n {\n stacked: true,\n display: true,\n },\n ],\n },\n};\n\nexport const TalentCodesByMonthChart: React.FC = observer(() => {\n const { selectedSquad } = useUser();\n const {\n talentCodeTrendsByMonth: { state, value, loadTalentCodeTrendsByMonth },\n } = useTrends();\n\n // eslint-disable-next-line\n const [talentCodes, setTalentCodes] = useState([] as any[]);\n const [chartData, setChartData] = useState({} as ChartData);\n\n useEffect(() => {\n loadTalentCodeTrendsByMonth(selectedSquad).then((talentCodeTrends) => {\n const colours = generateColours(talentCodeTrends.labels.length, ColourSet.Blue);\n setTalentCodes(\n talentCodeTrends.labels.map((label, index) => {\n const talentCodeCounts = [] as number[];\n talentCodeTrends.data.forEach((d) => {\n const counts = d.counts.find((c) => c.name === label);\n talentCodeCounts.push(counts ? counts.count : 0);\n });\n\n return {\n name: label,\n checked: false,\n dataSet: {\n label: label,\n backgroundColor: colours[index],\n data: talentCodeCounts,\n },\n };\n })\n );\n });\n }, [loadTalentCodeTrendsByMonth, selectedSquad]);\n\n useEffect(() => {\n setChartData({\n labels: value.data.map((d) => d.month),\n datasets: talentCodes.map((talentCode) => talentCode.dataSet),\n });\n }, [talentCodes, value]);\n\n const handleOnchange = (index: number) => {\n setTalentCodes((talentCodes) => {\n talentCodes[index].checked = !talentCodes[index].checked;\n return talentCodes;\n });\n\n setChartData((chartData: ChartData) => {\n let dataSets = talentCodes\n .filter((talentCode) => talentCode.checked)\n .map((code) => code.dataSet);\n if (dataSets.length === 0) {\n dataSets = talentCodes.map((code) => code.dataSet);\n }\n return {\n ...chartData,\n datasets: dataSets,\n };\n });\n };\n\n return (\n
    \n {state === 'done' ? (\n <>\n
    \n \n
    \n
    \n {talentCodes.map((talentCode, index) => {\n return (\n \n );\n })}\n
    \n \n ) : (\n \n )}\n
    \n );\n});\n","import React, { useEffect, useState } from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { useUser } from 'hooks/useUser';\nimport { useTrends } from 'hooks/useTrends';\nimport { ColourSet, generateColours } from '../../ColourGenerator';\nimport { Bar } from 'react-chartjs-2';\nimport { CustomColorCheckBox } from '../customColorCheckBox/CustomColorCheckBox';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport styles from './SupportingOpportunitiesByMonthChart.module.scss';\nimport { CustomSelection } from 'views/components/customSelection/CustomSelection';\nimport { MenuItem } from '@material-ui/core';\nimport moment from 'moment';\nimport { ChartData } from 'chart.js';\n\nconst startYear = Number(process.env.REACT_APP_SUPPORTING_OPPORTUNITIES_BY_MONTH_STARTING_YEAR);\nconst currentYear = moment().year();\nconst years = Array.from(\n { length: Math.max(currentYear - startYear + 1, 1) },\n (_, i) => currentYear - i\n);\n\nconst CHART_OPTIONS = {\n responsive: true,\n maintainAspectRatio: false,\n legend: {\n display: false,\n },\n scales: {\n xAxes: [\n {\n stacked: true,\n gridLines: {\n display: true,\n drawBorder: true,\n drawOnChartArea: false,\n drawTicks: false,\n lineWidth: 1,\n },\n ticks: {\n padding: 10,\n },\n },\n ],\n yAxes: [\n {\n stacked: true,\n display: true,\n },\n ],\n },\n};\n\nexport const SupportingOpportunitiesByMonthChart: React.FC = observer(() => {\n const { selectedSquad } = useUser();\n const {\n supportingOpportunitiesByMonth: { state, value, loadSupportingOpportunitiesByMonth },\n } = useTrends();\n\n const [selectedYear, setSelectedYear] = useState(currentYear.toString());\n // eslint-disable-next-line\n const [supportingOpportunities, setSupportingOpportunities] = useState([] as any[]);\n const [chartData, setChartData] = useState({} as ChartData);\n\n useEffect(() => {\n loadSupportingOpportunitiesByMonth(selectedSquad, Number(selectedYear)).then(\n (supportingOpps) => {\n const colours = generateColours(supportingOpps.labels.length, ColourSet.TealGreen);\n setSupportingOpportunities(\n supportingOpps.labels.map((label, index) => {\n const supportingOpportunityCounts = [] as number[];\n supportingOpps.data.forEach((d) => {\n const counts = d.counts.find((c) => c.name === label);\n supportingOpportunityCounts.push(counts ? counts.count : 0);\n });\n\n return {\n name: label,\n checked: false,\n dataSet: {\n label: label,\n backgroundColor: colours[index],\n data: supportingOpportunityCounts,\n },\n };\n })\n );\n }\n );\n }, [loadSupportingOpportunitiesByMonth, selectedSquad, selectedYear]);\n\n useEffect(() => {\n setChartData({\n labels: value.data.map((d) => d.month),\n datasets: supportingOpportunities.map(\n (supportingOpportunity) => supportingOpportunity.dataSet\n ),\n });\n }, [supportingOpportunities, value]);\n\n const handleOnchange = (index: number) => {\n setSupportingOpportunities((supportingOpportunities) => {\n supportingOpportunities[index].checked = !supportingOpportunities[index].checked;\n return supportingOpportunities;\n });\n\n setChartData((chartData: ChartData) => {\n let dataSets = supportingOpportunities\n .filter((supportingOpportunity) => supportingOpportunity.checked)\n .map((supportingOpportunity) => supportingOpportunity.dataSet);\n if (dataSets.length === 0) {\n dataSets = supportingOpportunities.map(\n (supportingOpportunity) => supportingOpportunity.dataSet\n );\n }\n return {\n ...chartData,\n datasets: dataSets,\n };\n });\n };\n\n return (\n
    \n setSelectedYear(value)}\n className={styles.yearSelector}>\n {years.map((t) => {\n const value = t.toString();\n return (\n \n {value}\n \n );\n })}\n \n {state === 'done' ? (\n <>\n
    \n \n
    \n
    \n {supportingOpportunities.map((supportingOpportunity, index) => {\n return (\n \n );\n })}\n
    \n \n ) : (\n \n )}\n
    \n );\n});\n","import { Grid, Paper } from '@material-ui/core';\nimport { useUser } from 'hooks/useUser';\nimport { observer } from 'mobx-react-lite';\nimport React from 'react';\nimport { ChartHeader } from 'views/routes/squad/components/squadTrends/components/chartHeader/ChartHeader';\nimport { RoleDistributionChart } from 'views/routes/squad/components/squadTrends/components/roleDistribution/RoleDistributionChart';\nimport { TalentCodesChart } from 'views/routes/squad/components/squadTrends/components/talentCodes/TalentCodesChart';\nimport { FlagChart } from './components/flagChart/FlagChart';\nimport { SupportingOpportunitiesChart } from './components/supportingOpportunities/SupportingOpportunitiesChart';\nimport styles from './SquadTrends.module.scss';\nimport { TalentCodesByMonthChart } from './components/talentCodesByMonth/TalentCodesByMonthChart';\nimport { SupportingOpportunitiesByMonthChart } from './components/supportingOpportunitiesByMonth/SupportingOpportunitiesByMonthChart';\nimport { useTrends } from 'hooks/useTrends';\n\nexport const SquadTrends: React.FC = observer(() => {\n const {\n permissions: {\n squads: { canViewTrends },\n },\n selectedSquad,\n } = useUser();\n\n const {\n trendsEmployees: { loadEmployees },\n } = useTrends();\n\n React.useEffect(() => {\n loadEmployees(selectedSquad);\n }, [loadEmployees, selectedSquad]);\n\n if (!canViewTrends) return null;\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n});\n","import { useStore } from 'hooks/useStore';\nimport { ITalentAnalysisTool } from 'domain/store/talentAnalysisTool/TalentAnalysisToolModel';\n\nexport function useTalentAnalysis(): ITalentAnalysisTool {\n const { talentAnalysis } = useStore();\n\n return talentAnalysis;\n}\n","export type Order = 'asc' | 'desc';\n\nconst descendingComparator = (a: T, b: T, orderBy: keyof T) => {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n};\n\nexport function getComparator(order: Order, orderBy: keyof T): (a: T, b: T) => number {\n return order === 'desc'\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy);\n}\n\nexport const stableSort = (array: T[], comparator: (a: T, b: T) => number): T[] => {\n const stabilizedThis = array.map((el, index) => [el, index] as [T, number]);\n stabilizedThis.sort((a, b) => {\n const order = comparator(a[0], b[0]);\n if (order !== 0) return order;\n return a[1] - b[1];\n });\n return stabilizedThis.map((el) => el[0]);\n};\n","import { TableCell, TableHead, TableRow, TableSortLabel } from '@material-ui/core';\nimport React from 'react';\nimport { Order } from './SortHelper';\n\nexport interface HeadCell {\n id: string;\n label: string;\n isSortable: boolean;\n}\n\ninterface ISortTableHeaderProps {\n // eslint-disable-next-line\n onRequestSort: (event: React.MouseEvent, property: any) => void;\n order: Order;\n orderBy: string;\n labels: HeadCell[];\n}\n\nexport const SortTableHeader: React.FC = ({\n onRequestSort,\n order,\n orderBy,\n labels,\n}) => {\n // eslint-disable-next-line\n const createSortHandler = (property: any) => (event: React.MouseEvent) => {\n onRequestSort(event, property);\n };\n\n return (\n \n \n {labels.map((l) =>\n l.isSortable ? (\n \n \n {l.label}\n \n \n ) : (\n {l.label}\n )\n )}\n \n \n );\n};\n","import React, { useState } from 'react';\nimport { Checkbox } from '@material-ui/core';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\n\nexport interface AlertCheckboxProps {\n isLoading: boolean;\n checked: boolean;\n onAgreeClick?: () => void;\n dialogTitle?: string;\n dialogText: string;\n}\n\nexport const AlertCheckbox: React.FunctionComponent = (props) => {\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n\n const onAgree = async () => {\n resetDialogStates();\n props.onAgreeClick && props.onAgreeClick();\n };\n\n const onDisagree = () => {\n resetDialogStates();\n };\n\n const onCheckChangeHandler = async (event: React.ChangeEvent) => {\n setIsDialogOpen(true);\n };\n\n const resetDialogStates = () => {\n setIsDialogOpen(false);\n };\n return (\n <>\n \n {props.isLoading ? (\n \n ) : (\n \n )}\n \n );\n};\n","import { Checkbox, Tooltip } from '@material-ui/core';\nimport { InfoOutlined } from '@material-ui/icons';\nimport moment from 'moment';\nimport React from 'react';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport styles from './EmployeeRow.module.scss';\n\ninterface ILongTermLeaveCheckboxProps {\n checked: boolean;\n employeeExpectedReturn: string | null;\n isLoading: boolean;\n onToggle?: () => void;\n}\n\nexport const LongTermLeaveCheckbox: React.FC = (\n props: ILongTermLeaveCheckboxProps\n) => {\n return props.isLoading ? (\n \n ) : (\n
    \n props.onToggle && props.onToggle()} checked={props.checked} />\n {props.employeeExpectedReturn && (\n Expected Return: {moment(props.employeeExpectedReturn).format('DD/MM/YYYY')}}>\n \n \n )}\n
    \n );\n};\n","import React, { useState } from 'react';\nimport { MenuItem } from '@material-ui/core';\nimport { CustomSelection } from 'views/components/customSelection/CustomSelection';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\n\nexport type TimeframeOption = { description: string; value: number };\n\nexport interface RoleChangePathwaySelectorProps {\n employeeDisplayName: string;\n selectedValue: number;\n onAgreeClick: (selectedValue: TimeframeOption) => void;\n isLoading: boolean;\n}\n\nexport const RoleChangePathwaySelector: React.FunctionComponent = (\n props\n) => {\n const options: TimeframeOption[] = [\n { description: 'N/A', value: 0 },\n { description: '6 months', value: 6 },\n { description: '12 months', value: 12 },\n { description: '12+ months', value: 18 },\n ];\n\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n const [timeframeToSelect, setTimeframeToSelect] = useState(0);\n\n const onTimeframeChange = (timeframeValue: number) => {\n setTimeframeToSelect(timeframeValue);\n setIsDialogOpen(true);\n };\n\n const onCloseDialog = () => {\n setIsDialogOpen(false);\n setTimeframeToSelect(0);\n };\n\n const onAgreeUpdateClick = () => {\n // update logic here\n const newTimeframeOption = getTimeframeOption(timeframeToSelect);\n props.onAgreeClick(newTimeframeOption!);\n onCloseDialog();\n };\n\n const getTimeframeOption = (timeframeToSelect: number) => {\n return options.find((x) => x.value === timeframeToSelect);\n };\n\n return props.isLoading ? (\n \n ) : (\n <>\n \n \n {options.map(({ description, value }) => (\n \n {description}\n \n ))}\n \n \n );\n};\n","import React, { useEffect, useState } from 'react';\nimport { MenuItem } from '@material-ui/core';\nimport { useFlags } from 'hooks/useFlags';\nimport { CustomSelection } from 'views/components/customSelection/CustomSelection';\nimport { useTalentAnalysis } from 'hooks/useTalentAnalysis';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\n\nexport const TalentCodeSelector: React.FC<{\n employeeIdpId: string;\n talentCode: string;\n employeeName: string;\n onChanged: () => void;\n}> = ({ employeeIdpId, talentCode, employeeName, onChanged }) => {\n const { all, getFlag } = useFlags();\n const { updateTalentCode } = useTalentAnalysis();\n const [loadingTalentCode, setLoadingTalentCode] = useState(true);\n const [currentTalentCode, setCurrentTalentCode] = useState(talentCode);\n const [selectedTalentCode, setSelectedTalentCode] = useState(-1);\n\n const [isDialogOpen, setIsDialogOpen] = useState(false);\n const [talentCodeToSelect, setTalentCodeToSelect] = useState(-1);\n\n const updateTC = (talentCode: number) => {\n setTalentCodeToSelect(talentCode);\n setIsDialogOpen(true);\n };\n\n const onCloseDialog = () => {\n setIsDialogOpen(false);\n setTalentCodeToSelect(-1);\n };\n\n const onAgreeUpdate = () => {\n setLoadingTalentCode(true);\n updateTalentCode(employeeIdpId, talentCodeToSelect)\n .then(() => {\n setCurrentTalentCode(getFlag(talentCodeToSelect)?.name ?? '');\n setSelectedTalentCode(talentCodeToSelect);\n onChanged();\n })\n .finally(() => {\n setLoadingTalentCode(false);\n onCloseDialog();\n });\n };\n\n useEffect(() => {\n setSelectedTalentCode(all.find((flag) => flag.name === currentTalentCode)?.flagId ?? -1);\n setLoadingTalentCode(false);\n }, [all, currentTalentCode]);\n\n return loadingTalentCode ? (\n \n ) : (\n <>\n \n \n {currentTalentCode || N/A}\n {all.map(({ name, flagId }) => (\n \n {name}\n \n ))}\n \n \n );\n};\n","import { Box, Link, TableCell, TableRow } from '@material-ui/core';\nimport { IEmployeeTalentModel } from 'domain/store/talentAnalysisTool/TalentAnalysisToolModel';\nimport { useFlightRiskService } from 'hooks/useFlightRiskService';\nimport { useLongTermLeaveService } from 'hooks/useLongTermLeaveService';\nimport { useRoleChangePathwayService } from 'hooks/useRoleChangePathwayService';\nimport { useStore } from 'hooks/useStore';\nimport React, { ChangeEvent, useCallback, useEffect, useState } from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport { StatusIcon } from 'views/components/EmployeeStatus/StatusIcon/StatusIcon';\nimport { DialogWithDatepicker } from 'views/routes/employeeJourney/components/employeeSidebar/components/longTermLeaveFlag/DialogWithDatepicker';\nimport { EMPLOYEE_JOURNEYS_ROUTE_PATH } from 'views/routes/Routes';\nimport { AlertCheckbox } from 'views/routes/squad/components/alertCheckbox/AlertCheckbox';\nimport styles from './EmployeeRow.module.scss';\nimport { LongTermLeaveCheckbox } from './LongTermLeaveCheckbox';\nimport { RoleChangePathwaySelector, TimeframeOption } from './RoleChangePathwaySelector';\nimport { TalentCodeSelector } from './TalentCodeSelector';\n\nexport const EmployeeRow: React.FC<{\n employee: IEmployeeTalentModel;\n onDataChanged: () => void;\n}> = ({\n employee: {\n idpId: employeeIdpId,\n givenName,\n familyName,\n role,\n // department,\n statusType,\n talentCode,\n isFlightRisk: propIsFlightRisk,\n isRoleChangePathway: propHasRoleChangePathway,\n isOnProbation,\n isOnLongTermLeave: propIsOnLongTermLeave,\n longTermLeaveExpectedReturn: propLongTermLeaveExpectedReturn,\n roleChangePathwayTimeframeInMonths: propRoleProgressionPathwayTimeframeInMonths,\n },\n onDataChanged,\n}) => {\n const store = useStore();\n\n const { isFlightRisk, toggleFlightRisk, isLoading: isLoadingFlightRisk } = useFlightRiskService(\n propIsFlightRisk\n );\n\n const [isLeaveDialogOpen, setIsLeaveDialogOpen] = useState(false);\n const [isDisabled, setIsDisabled] = useState(true);\n const employeeExpectedReturn = propLongTermLeaveExpectedReturn ?? null;\n const [expectedLeaveReturn, setExpectedLeaveReturn] = useState(\n employeeExpectedReturn\n );\n const filterNull = useCallback(\n (source: string | null) => {\n return !source ? employeeExpectedReturn : source;\n },\n [employeeExpectedReturn]\n );\n const [newExpectedReturn, setNewExpectedReturn] = useState(\n filterNull(expectedLeaveReturn)\n );\n\n useEffect(() => {\n setExpectedLeaveReturn(employeeExpectedReturn);\n setNewExpectedReturn(filterNull(employeeExpectedReturn));\n }, [employeeExpectedReturn, filterNull]);\n\n const toggleLeave = () => {\n setIsLeaveDialogOpen(true);\n };\n\n const resetDialogStates = () => {\n setNewExpectedReturn(filterNull(expectedReturn));\n setIsLeaveDialogOpen(false);\n setIsDisabled(true);\n };\n\n const onDisagreeLeaveClick = () => {\n resetDialogStates();\n };\n\n const handleLeaveChange = (e: ChangeEvent) => {\n setNewExpectedReturn(e.target.value as string);\n setIsDisabled(false);\n };\n\n const {\n isOnLongTermLeave,\n expectedReturn,\n updateLongTermLeave,\n isLoading: isLoadingLeaveChange,\n } = useLongTermLeaveService(propIsOnLongTermLeave, propLongTermLeaveExpectedReturn);\n\n const {\n timeframe,\n updateRoleChangePathway,\n isLoading: isLoadingRoleChangePathway,\n } = useRoleChangePathwayService(propRoleProgressionPathwayTimeframeInMonths);\n\n const onFlightRiskAgreeClick = async () => {\n try {\n await toggleFlightRisk(employeeIdpId);\n onDataChanged();\n } catch (error) {\n store.notifications.addError('Failed to update Flight Risk flag');\n }\n };\n\n const onLongTermLeaveAgreeClick = async () => {\n try {\n await updateLongTermLeave({\n employeeIdpId,\n expectedReturn: newExpectedReturn === expectedReturn ? null : newExpectedReturn,\n });\n resetDialogStates();\n onDataChanged();\n } catch (e) {\n if (e?.response?.status === 409) {\n store.notifications.addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (e?.response?.status === 403) {\n store.notifications.addError('Not authorised to save changes.');\n } else {\n store.notifications.addError('Failed to update Long Term Leave flag');\n }\n }\n };\n\n const onRoleChangePathwayAgreeClick = async (selectedValue: TimeframeOption) => {\n try {\n await updateRoleChangePathway({\n employeeIdpId,\n timeframe: selectedValue.value,\n });\n onDataChanged();\n } catch (e) {\n if (e?.response?.status === 409) {\n store.notifications.addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (e?.response?.status === 403) {\n store.notifications.addError('Not authorised to save changes.');\n } else {\n store.notifications.addError('Failed to update Role Change Pathway flag');\n }\n }\n };\n\n const displayName = `${givenName} ${familyName}`;\n\n return (\n \n \n \n \n \n {givenName} {familyName}\n \n \n \n {role}\n {/* {department} */}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n <>\n \n \n \n \n \n \n {isOnProbation ? 'Yes' : 'No'}\n \n );\n};\n","import { auth, errorLog } from 'index';\nimport { getDefaultAjaxInstance } from 'domain/store/util';\nimport { useState, useCallback } from 'react';\nimport { api } from 'shared/api/interfaces';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const useFlightRiskService = (initFlightRiskValue: boolean) => {\n const [isFlightRisk, setIsFlightRisk] = useState(initFlightRiskValue);\n const [isLoading, setIsLoading] = useState(false);\n\n const ajax = getDefaultAjaxInstance(auth);\n const toggleFlightRisk = useCallback(\n async (employeeId: string) => {\n setIsLoading(true);\n try {\n const result = await ajax\n .post('Employee/FlightRisk', {\n json: { employeeIdpId: employeeId, flagValue: !isFlightRisk },\n })\n .json();\n\n setIsFlightRisk(result.isFlightRisk);\n return result;\n } catch (error) {\n errorLog('Failed to update employee flight risk.', error);\n throw error;\n } finally {\n setIsLoading(false);\n }\n },\n [ajax, isFlightRisk]\n );\n\n return { isFlightRisk, isLoading, toggleFlightRisk };\n};\n","import { auth, errorLog } from 'index';\nimport { getDefaultAjaxInstance } from 'domain/store/util';\nimport { useState, useCallback } from 'react';\nimport { api } from 'shared/api/interfaces';\nimport { IUpdateLongTermLeaveDto } from 'domain/store/dataTranferObjects/ILongTermLeaveDto';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const useLongTermLeaveService = (\n initLeaveValue: boolean,\n initExpectedReturn: string | null\n) => {\n const [isOnLongTermLeave, setIsOnLongTermLeave] = useState(initLeaveValue);\n const [expectedReturn, setExpectedReturn] = useState(initExpectedReturn);\n const [isLoading, setIsLoading] = useState(false);\n\n const ajax = getDefaultAjaxInstance(auth);\n const updateLongTermLeave = useCallback(\n async (updateDto: IUpdateLongTermLeaveDto) => {\n setIsLoading(true);\n try {\n const result = await ajax\n .post('Employee/LongTermLeave', {\n json: {\n employeeIdpId: updateDto.employeeIdpId,\n flagValue: !isOnLongTermLeave || updateDto.expectedReturn !== null,\n expectedReturn: updateDto.expectedReturn,\n } as api.UpdateLongTermLeaveRequest,\n })\n .json();\n\n setIsOnLongTermLeave(result.isOnLongTermLeave);\n setExpectedReturn(result.expectedReturn || null);\n return result;\n } catch (error) {\n errorLog('Failed to update employee long term leave.', error);\n throw error;\n } finally {\n setIsLoading(false);\n }\n },\n [ajax, isOnLongTermLeave]\n );\n\n return { isOnLongTermLeave, isLoading, updateLongTermLeave, expectedReturn };\n};\n","import { auth, errorLog } from 'index';\nimport { getDefaultAjaxInstance } from 'domain/store/util';\nimport { useState, useCallback } from 'react';\nimport { IUpdateRoleChangePathwayDto } from 'domain/store/dataTranferObjects/IRoleChangePathwayDto';\nimport { api } from 'shared/api/interfaces';\n\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport const useRoleChangePathwayService = (initTimeframeValue: number) => {\n const [hasRoleChangePathway, setHasRoleChangePathway] = useState(initTimeframeValue > 0);\n const [timeframe, setTimeframe] = useState(initTimeframeValue);\n const [isLoading, setIsLoading] = useState(false);\n\n const ajax = getDefaultAjaxInstance(auth);\n const updateRoleChangePathway = useCallback(\n async (updateDto: IUpdateRoleChangePathwayDto) => {\n setIsLoading(true);\n try {\n const result = await ajax\n .post('Employee/rolechangepathway', {\n json: {\n employeeIdpId: updateDto.employeeIdpId,\n flagValue: updateDto.timeframe !== 0 ? true : false,\n timeframe: updateDto.timeframe,\n } as api.UpdateRoleChangePathwayRequest,\n })\n .json();\n\n setHasRoleChangePathway(result.hasRoleChangePathway);\n setTimeframe(result.timeframe);\n return result;\n } catch (error) {\n errorLog('Failed to update employee role progression.', error);\n throw error;\n } finally {\n setIsLoading(false);\n }\n },\n [ajax]\n );\n\n return { hasRoleChangePathway, timeframe, isLoading, updateRoleChangePathway };\n};\n","import { Paper, Table, TableBody, TableContainer, TablePagination } from '@material-ui/core';\nimport { getComparator, Order, stableSort } from 'views/components/table/SortHelper';\nimport { IEmployeeTalentModelDto } from 'domain/store/dataTranferObjects/IEmployeeTalentModelDto';\nimport { IEmployeeTalentModel } from 'domain/store/talentAnalysisTool/TalentAnalysisToolModel';\nimport { usePagingCache } from 'hooks/usePagingCache';\nimport React, { useState } from 'react';\nimport { HeadCell, SortTableHeader } from 'views/components/table/SortTableHeader';\nimport { EmployeeRow } from 'views/routes/squad/components/talentAnalysisTool/components/employeeRow/EmployeeRow';\nimport styles from './TalentAnalysisToolTable.module.scss';\nimport { TablePaginationActions } from 'views/components/table/TablePaginationActions';\n\nconst tableCells: HeadCell[] = [\n { id: 'givenName', label: 'Name', isSortable: true },\n { id: 'role', label: 'Position', isSortable: true },\n // { id: 'department', label: 'Capability', isSortable: true },\n { id: 'status', label: 'Status', isSortable: false },\n { id: 'talentCode', label: 'Talent Code', isSortable: false },\n { id: 'rcp', label: 'Role Change Pathway', isSortable: false },\n { id: 'ft', label: 'Flight Risk ', isSortable: false },\n { id: 'ltl', label: 'Long Term Leave', isSortable: false },\n { id: 'p', label: 'Probation', isSortable: false },\n];\n\nexport const TalentAnalysisToolTable: React.FC<{\n employees: IEmployeeTalentModel[];\n onDataChanged: () => void;\n}> = ({ employees, onDataChanged }) => {\n const { setCurrentPageCache, setRowsPerPageCache } = usePagingCache();\n\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(10);\n const [order, setOrder] = useState('asc');\n const [orderBy, setOrderBy] = useState('givenName');\n\n const updatePage = (page: number) => {\n setPage(page);\n setCurrentPageCache(page);\n };\n\n const updateRowsPerPage = (rowsPerPage: number) => {\n setRowsPerPage(rowsPerPage);\n setRowsPerPageCache(rowsPerPage);\n };\n\n const handleRequestSort = (\n event: React.MouseEvent,\n property: keyof IEmployeeTalentModelDto\n ) => {\n const isAsc = orderBy === property && order === 'asc';\n setOrder(isAsc ? 'desc' : 'asc');\n setOrderBy(property);\n };\n\n return (\n \n \n \n \n \n {stableSort(employees, getComparator(order, orderBy))\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map((employee) => (\n \n ))}\n \n
    \n
    \n updatePage(p)}\n ActionsComponent={TablePaginationActions}\n onChangeRowsPerPage={(e) => {\n updateRowsPerPage(+e.target.value);\n updatePage(0);\n }}\n />\n
    \n );\n};\n","import { IPagingCache } from 'domain/store/PagingCacheModel';\nimport { useStore } from './useStore';\n\nexport function usePagingCache(): IPagingCache {\n const { pagingCache } = useStore();\n\n return pagingCache;\n}\n","import { MenuItem, FormControl, InputLabel, Select } from '@material-ui/core';\nimport React from 'react';\nimport { observer } from 'mobx-react-lite';\nimport { StatusIcon } from 'views/components/EmployeeStatus/StatusIcon/StatusIcon';\nimport { EmployeeStatusLabels } from 'domain/store/employeeJourney/EmployeeStatusModel';\n\ninterface IEmployeeStatusSelectProps {\n id: string;\n options: string[];\n onChanged: (selectedOptions: string) => void;\n label: string;\n value?: string;\n}\n\nexport const EmployeeStatusSelect: React.FC = observer((props) => {\n return (\n \n {props.label}\n props.onChanged(event.target.value as string)}\n value={props.value}>\n {props.options.map((option) => (\n \n {option ? (\n \n ) : (\n 'Any'\n )}\n \n ))}\n \n \n );\n});\n","import { Autocomplete } from '@material-ui/lab';\nimport React from 'react';\nimport { Checkbox, Chip, TextField } from '@material-ui/core';\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\nimport CheckBoxOutlineBlankIcon from '@material-ui/icons/CheckBoxOutlineBlank';\nimport { observer } from 'mobx-react-lite';\n\ninterface MultiSelectProps {\n id: string;\n options: string[];\n onChanged: (selectedOptions: string[]) => void;\n label: string;\n values?: string[];\n}\n\nconst icon = ;\nconst checkedIcon = ;\n\nexport const MultiSelect: React.FC = observer((props: MultiSelectProps) => {\n const [selectedOptions, setValues] = React.useState(props.values);\n\n return (\n {\n setValues(values);\n props.onChanged(values);\n }}\n options={props.options}\n getOptionLabel={(option) => option}\n disableCloseOnSelect\n renderOption={(option, { selected }) => (\n \n \n {option}\n \n )}\n renderTags={(value, getTagProps) =>\n value.map((v, index) => (\n \n ))\n }\n renderInput={(params) => }\n />\n );\n});\n","import { MenuItem, FormControl, InputLabel, Select } from '@material-ui/core';\nimport React from 'react';\nimport { observer } from 'mobx-react-lite';\n\ninterface SingleSelectProps {\n id: string;\n options: string[];\n onChanged: (selectedOptions: string) => void;\n label: string;\n value?: string;\n}\n\nexport const SingleSelect: React.FC = observer((props: SingleSelectProps) => {\n return (\n \n {props.label}\n props.onChanged(event.target.value as string)}\n value={props.value}>\n {props.options.map((option) => (\n \n {option || 'Any'}\n \n ))}\n \n \n );\n});\n","import { Box, Grid } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { useFlags } from 'hooks/useFlags';\nimport { usePermissions } from 'hooks/usePermissions';\nimport { useTalentAnalysis } from 'hooks/useTalentAnalysis';\nimport { useUser } from 'hooks/useUser';\nimport { observer } from 'mobx-react-lite';\nimport React, { useEffect, useState } from 'react';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { TalentAnalysisToolTable } from 'views/routes/squad/components/talentAnalysisTool/components/talentAnalysisToolTable/TalentAnalysisToolTable';\nimport { EmployeeStatusSelect } from './components/employeeStatusSelect/EmployeeStatusSelect';\nimport { MultiSelect } from './components/multiSelect/multiSelect';\nimport { SingleSelect } from './components/singleSelect/singleSelect';\nimport styles from './talentAnalysisTool.module.scss';\n\nexport const TalentAnalysisTool: React.FC = observer(() => {\n const { selectedSquad, getAllSquads } = useUser();\n\n const {\n // canViewAllSquads,\n squads: { canViewTalentAnalysis },\n } = usePermissions();\n\n if (!canViewTalentAnalysis) return null;\n const canViewAllSquads = false; // TODO: Get CanViewAllSquads from permissions when multi squad support is in.\n\n const { loadEmployees, state, employees } = useTalentAnalysis();\n const { all: talentCodes } = useFlags();\n\n const [isDirty, setIsDirty] = useState(false);\n const [squads, setSquads] = useState([]);\n const [, setSelectedSquads] = useState([]);\n const [selectedPositions, setSelectedPositions] = useState([]);\n // const [selectedDepartments, setSelectedDepartments] = useState([]);\n const [selectedEmployeeStatus, setSelectedEmployeeStatus] = useState('');\n const [selectedTalentCodes, setSelectedTalentCodes] = useState([]);\n const [selectedRoleChangePathWay, setSelectedRoleChangePathWay] = useState('');\n const [selectedFlightRisk, setSelectedFlightRisk] = useState('');\n const [selectedProbation, setSelectedProbation] = useState('');\n const [selectedLongTermLeave, setSelectedLongTermLeave] = useState('');\n\n const yesNoOptions = ['', 'Yes', 'No'];\n const yes = 'Yes';\n\n if (canViewAllSquads) {\n useEffect(() => {\n getAllSquads().then((s) => {\n setSquads(\n Array.from(\n new Set([...s])\n )\n );\n });\n }, [getAllSquads, canViewAllSquads]);\n }\n\n const requiresReloadEmployees = async () => {\n if (isDirty) await loadEmployees(selectedSquad);\n setIsDirty(false);\n };\n\n useEffect(() => {\n if (selectedSquad) {\n loadEmployees(selectedSquad);\n }\n }, [loadEmployees, selectedSquad]);\n\n const filteredEmployees = employees.filter(\n (e) =>\n (selectedPositions.length === 0 || selectedPositions.indexOf(e.role) > -1) &&\n // (selectedDepartments.length === 0 || selectedDepartments.indexOf(e.department) > -1) &&\n (selectedEmployeeStatus === '' || e.statusType === Number(selectedEmployeeStatus)) &&\n (selectedTalentCodes.length === 0 || selectedTalentCodes.indexOf(e.talentCode) > -1) &&\n (selectedRoleChangePathWay === '' ||\n e.isRoleChangePathway === (selectedRoleChangePathWay === yes)) &&\n (selectedFlightRisk === '' || e.isFlightRisk === (selectedFlightRisk === yes)) &&\n (selectedProbation === '' || e.isOnProbation === (selectedProbation === yes)) &&\n (selectedLongTermLeave === '' || e.isOnLongTermLeave === (selectedLongTermLeave === yes))\n );\n\n return (\n <>\n {state === 'error' ? undefined : (\n <>\n \n {canViewAllSquads && (\n \n {state !== 'done' ? (\n \n ) : (\n \n )}\n \n )}\n \n {state !== 'done' ? (\n \n ) : (\n ([...employees.map((e) => e.role)])\n )}\n onChanged={setSelectedPositions}\n label=\"Positions\"\n values={selectedPositions}\n />\n )}\n \n \n {state !== 'done' ? (\n \n ) : (\n {\n setSelectedEmployeeStatus(so);\n await requiresReloadEmployees();\n }}\n options={['', '0', '1', '2']}\n value={selectedEmployeeStatus?.toString() ?? ''}\n />\n )}\n \n \n \n {/* \n {state !== 'done' ? (\n \n ) : (\n ([...employees.map((e) => e.department)])\n )}\n onChanged={setSelectedDepartments}\n label=\"Capabilities\"\n values={selectedDepartments}\n />\n )}\n */}\n \n {state !== 'done' ? (\n \n ) : (\n t.name)}\n onChanged={async (so) => {\n setSelectedTalentCodes(so);\n await requiresReloadEmployees();\n }}\n label=\"Talent Codes\"\n values={selectedTalentCodes}\n />\n )}\n \n \n {state !== 'done' ? (\n \n ) : (\n {\n setSelectedRoleChangePathWay(so);\n await requiresReloadEmployees();\n }}\n options={yesNoOptions}\n value={selectedRoleChangePathWay ?? ''}\n />\n )}\n \n \n {state !== 'done' ? (\n \n ) : (\n {\n setSelectedFlightRisk(so);\n await requiresReloadEmployees();\n }}\n options={yesNoOptions}\n value={selectedFlightRisk ?? ''}\n />\n )}\n \n \n {state !== 'done' ? (\n \n ) : (\n \n )}\n \n \n {state !== 'done' ? (\n \n ) : (\n \n )}\n \n \n \n )}\n {state === 'done' && (\n setIsDirty(true)}\n />\n )}\n {state === 'loading' && }\n {state === 'error' && (\n This is awkward - Failed to load Talent Analysis Tool.\n )}\n \n );\n});\n","import { FormControl, Grid, InputLabel, MenuItem, Select } from '@material-ui/core';\nimport React, { ChangeEvent } from 'react';\nexport interface ITableFilterSelectProps {\n label: string;\n value: string;\n options: string[];\n disallowAny?: boolean;\n onChange: (\n event: ChangeEvent<{\n name?: string | undefined;\n value: unknown;\n }>\n ) => void;\n}\n\nexport const TableFilterSelect: React.FC = (props) => {\n return (\n \n \n {props.label}\n \n \n \n );\n};\n","import { Button, Link, TableCell, TableRow } from '@material-ui/core';\nimport { useRoleChange } from 'hooks/useRoleChange';\nimport React from 'react';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { api } from 'shared/api/interfaces';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport { RoleChangeStatusChip } from 'views/components/roleChangeStatusChip/RoleChangeStatusChip';\nimport { EMPLOYEE_JOURNEYS_ROUTE_PATH } from 'views/routes/Routes';\nimport styles from '../../RoleChangeTable.module.scss';\n\ninterface IEmployeeWithRoleChangeRowProps {\n employee: api.EmployeeWithRoleChangeDto;\n setSelectedEmployee: (value: api.EmployeeWithRoleChangeDto) => void;\n}\n\nexport const EmployeeWithRoleChangeRow: React.FC = ({\n employee,\n setSelectedEmployee,\n}) => {\n const { getRoleChangeCycle } = useRoleChange();\n\n return (\n \n \n \n \n \n {employee.givenName} {employee.familyName}\n \n \n \n {employee.role}\n {employee.roleChange.targetRole}\n {employee.department}\n {employee.talentCode || 'N/A'}\n {getRoleChangeCycle(employee.roleChange)}\n \n \n \n \n \n \n \n );\n};\n","import {\n Button,\n Drawer,\n IconButton,\n Link,\n TextField,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport CheckBoxOutlinedIcon from '@material-ui/icons/CheckBoxOutlined';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { Skeleton } from '@material-ui/lab';\nimport cn from 'classnames';\nimport { usePermissions } from 'hooks/usePermissions';\nimport { useRoleChange } from 'hooks/useRoleChange';\nimport { useStore } from 'hooks/useStore';\nimport React, { useEffect, useState } from 'react';\nimport { api } from 'shared/api/interfaces';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { RoleChangeStatusChip } from 'views/components/roleChangeStatusChip/RoleChangeStatusChip';\nimport styles from './RoleChangeSidePanel.module.scss';\n\ninterface IRoleChangeSidePanelProps {\n employee: api.EmployeeWithRoleChangeDto | undefined;\n setSelectedEmployee: (value: undefined) => void;\n}\n\nexport const RoleChangeSidePanel: React.FC = ({\n employee,\n setSelectedEmployee,\n}) => {\n const {\n loadSkills,\n getRatingDescriptionFromValue,\n approveRoleChangeForEmployee,\n downloadRoleChangeBusinessCaseAttachment,\n } = useRoleChange();\n const {\n notifications: { addError },\n } = useStore();\n const {\n canEdit,\n squads: { roleChanges },\n } = usePermissions();\n\n const [isLoadingSkills, setIsLoadingSkills] = useState(false);\n const [isSubmitting, setIsSubmitting] = useState(false);\n const [skills, setSkills] = useState([]);\n const [approverComment, setApproverComment] = useState('');\n const [confirmationState, setConfirmationState] = useState<'approving' | 'rejecting' | undefined>(\n undefined\n );\n\n const handleFileDownload = (fileName: string | undefined): void => {\n if (!employee || !fileName) {\n addError('To download the file, both the employee and file name should be present');\n return;\n }\n\n if (employee.roleChange) {\n downloadRoleChangeBusinessCaseAttachment(\n employee.idpId,\n employee.roleChange.roleChangeId,\n fileName\n )\n .then((blob: Blob) => {\n const url = window.URL.createObjectURL(new Blob([blob]));\n const a = document.createElement('a');\n a.setAttribute('style', 'display:none;');\n document.body.appendChild(a);\n a.download = fileName;\n a.href = url;\n a.target = '_blank';\n a.click();\n document.body.removeChild(a);\n })\n .catch((err) => {\n if (err?.response?.status === 404) addError('File not found');\n });\n }\n };\n\n useEffect(() => {\n if (!employee) return;\n\n setIsLoadingSkills(true);\n loadSkills(employee.department, [employee.roleChange.targetRole])\n .then((result) => setSkills(result[0].coreValues))\n .catch((err) => {\n if (err?.response?.status === 403) {\n addError('Not authorised to get role change skills.');\n } else {\n addError('Failed to retrieve role change skills');\n }\n })\n .finally(() => setIsLoadingSkills(false));\n }, [employee, loadSkills, addError]);\n\n const finalizeRoleChange = (shouldApprove: boolean) => {\n if (!employee) return;\n setConfirmationState(undefined);\n setIsSubmitting(true);\n approveRoleChangeForEmployee(employee.roleChange.roleChangeId, shouldApprove, approverComment)\n .then(() => {\n employee.roleChange.isApproved = shouldApprove;\n employee.roleChange.approverAdditionalComments = approverComment;\n })\n .catch((err) => {\n if (err?.response?.status === 409) {\n addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (err?.response?.status === 403) {\n addError('Not authorised to save changes.');\n } else {\n addError(`Failed to ${shouldApprove ? 'approve' : 'reject'} role change.`);\n }\n })\n .finally(() => setIsSubmitting(false));\n };\n\n return (\n {\n setSelectedEmployee(undefined);\n setApproverComment('');\n }}>\n
    \n setSelectedEmployee(undefined)}>\n \n \n
    \n

    {employee?.displayName}'s Role Change

    \n
    \n
    \n

    Prerequisites

    \n
      \n
    • \n Passed probation\n \n
    • \n
    • \n Completed 2 retros in past 12 months\n \n
    • \n
    • \n No performance plan in past 12 months\n \n
    • \n
    \n
    \n
    \n

    {employee?.roleChange.targetRole} Skills & Behaviours

    \n
      \n {isLoadingSkills\n ? Array.from({ length: 8 }, (_, k) => k).map((i) => (\n
    • \n \n \n
    • \n ))\n : skills.map((s, i) => (\n
    • \n {s.name}\n \n {getRatingDescriptionFromValue(\n employee?.roleChange.skillRatings\n .find((r) => r.coreValueId === s.id)\n ?.rating.toString() || '0'\n ) || 'Not Rated'}\n \n
    • \n ))}\n
    \n
    \n
    \n

    Business Case Attachment

    \n {employee?.roleChange.businessCaseAttachmentFileName ? (\n \n \n handleFileDownload(employee?.roleChange.businessCaseAttachmentFileName)\n }\n target=\"_blank\">\n \n {employee?.roleChange.businessCaseAttachmentFileName}\n \n \n \n ) : (\n 'No attachment was uploaded'\n )}\n
    \n
    \n

    Submitters Additional Comments

    \n {employee?.roleChange.submitterAdditionalComments\n ? employee?.roleChange.submitterAdditionalComments\n : 'No comments were made'}\n
    \n {canEdit(roleChanges) && (\n
    \n
    \n

    Approvers Comment

    \n {employee && employee.roleChange.isApproved !== null ? (\n employee.roleChange.approverAdditionalComments || 'No comments were made'\n ) : (\n setApproverComment(e.currentTarget.value)}\n />\n )}\n
    \n {employee && employee.roleChange.isApproved !== null ? (\n
    \n \n
    \n ) : (\n employee &&\n !isLoadingSkills && (\n
    \n {isSubmitting ? (\n
    \n \n
    \n ) : (\n <>\n setConfirmationState('approving')}>\n Approve\n \n setConfirmationState('rejecting')}>\n Reject\n \n \n )}\n
    \n )\n )}\n
    \n )}\n
    \n finalizeRoleChange(true)}\n onDisagreeClick={() => {\n setConfirmationState(undefined);\n setApproverComment('');\n }}\n agreeButtonText=\"Approve\"\n disagreeButtonText=\"Cancel\"\n />\n finalizeRoleChange(false)}\n onDisagreeClick={() => {\n setConfirmationState(undefined);\n setApproverComment('');\n }}\n agreeButtonText=\"Reject\"\n disagreeButtonText=\"Cancel\"\n />\n \n );\n};\n","import {\n Grid,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TablePagination,\n TableRow,\n} from '@material-ui/core';\nimport { useRoleChange } from 'hooks/useRoleChange';\nimport { useStore } from 'hooks/useStore';\nimport { useUser } from 'hooks/useUser';\nimport moment from 'moment';\nimport React, { useEffect, useState } from 'react';\nimport { api } from 'shared/api/interfaces';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { getComparator, Order, stableSort } from 'views/components/table/SortHelper';\nimport { HeadCell, SortTableHeader } from 'views/components/table/SortTableHeader';\nimport { TableFilterSelect } from 'views/components/table/TableFilterSelect/TableFilterSelect';\nimport { TablePaginationActions } from 'views/components/table/TablePaginationActions';\nimport { EmployeeWithRoleChangeRow } from './components/employeeWithRoleChangeRow/EmployeeWithRoleChangeRow';\nimport { RoleChangeSidePanel } from './components/roleChangeSidePanel/RoleChangeSidePanel';\nimport styles from './RoleChangeTable.module.scss';\n\nconst validRoleChangeStatuses = ['', 'Approved', 'Rejected', 'Submitted'] as const;\nconst tableCells: HeadCell[] = [\n { id: 'givenName', label: 'Name', isSortable: true },\n { id: 'role', label: 'Current Position', isSortable: true },\n { id: 'roleChange', label: 'Propose Position', isSortable: true },\n // { id: 'department', label: 'Capability', isSortable: true },\n { id: 'talentCode', label: 'Talent Code', isSortable: true },\n { id: 'changeCycle', label: 'Change Cycle', isSortable: false },\n { id: 'action', label: 'Action', isSortable: false },\n { id: 'status', label: 'Status', isSortable: false },\n];\ntype RoleChangeStatus = typeof validRoleChangeStatuses[number];\n\nexport const RoleChangeTable: React.FC = () => {\n const { selectedSquad } = useUser();\n const {\n getRoleChangeSubmissionsForSquad,\n isLoading,\n getRoleChangeCycle,\n currentRoleChangeCycle,\n } = useRoleChange();\n const {\n notifications: { addError },\n } = useStore();\n\n const [selectedCurrentPosition, setSelectedCurrentPosition] = useState('');\n const [selectedProposedPosition, setSelectedProposedPosition] = useState('');\n // const [selectedCapability, setSelectedCapability] = useState('');\n const [selectedTalentCode, setSelectedTalentCode] = useState('');\n const [selectedChangeCycle, setSelectedChangeCycle] = useState('');\n const [selectedChangeStatus, setSelectedChangeStatus] = useState('');\n\n const [employees, setEmployees] = useState([]);\n const [selectedEmployee, setSelectedEmployee] = useState<\n api.EmployeeWithRoleChangeDto | undefined\n >(undefined);\n const [order, setOrder] = useState('asc');\n const [orderBy, setOrderBy] = useState('displayName');\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(10);\n\n useEffect(() => {\n setEmployees([]);\n getRoleChangeSubmissionsForSquad(selectedSquad)\n .then((result) => {\n setEmployees(result);\n setSelectedChangeCycle(currentRoleChangeCycle);\n })\n .catch((err) => {\n if (err?.response?.status === 403) {\n addError('Not authorised to access role changes.');\n } else {\n addError(`Failed to get role changes for ${selectedSquad}`);\n }\n });\n }, [selectedSquad, getRoleChangeSubmissionsForSquad, currentRoleChangeCycle, addError]);\n\n const roleChangeMatchesSelectedStatus = (roleChange: api.RoleChangeDto) => {\n if (selectedChangeStatus === '') return true;\n if (selectedChangeStatus === 'Submitted' && roleChange.isApproved === null) return true;\n if (selectedChangeStatus === 'Approved' && roleChange.isApproved) return true;\n if (selectedChangeStatus === 'Rejected' && roleChange.isApproved === false) return true;\n return false;\n };\n\n const filteredEmployees = employees.filter(\n (e) =>\n (selectedCurrentPosition === '' || selectedCurrentPosition === e.role) &&\n (selectedProposedPosition === '' || selectedProposedPosition === e.roleChange.targetRole) &&\n // (selectedCapability === '' || selectedCapability === e.department) &&\n (selectedTalentCode === '' || selectedTalentCode === e.talentCode) &&\n selectedChangeCycle === getRoleChangeCycle(e.roleChange) &&\n roleChangeMatchesSelectedStatus(e.roleChange)\n );\n\n const handleRequestSort = (\n event: React.MouseEvent,\n property: keyof api.EmployeeWithRoleChangeDto\n ) => {\n const isAsc = orderBy === property && order === 'asc';\n setOrder(isAsc ? 'desc' : 'asc');\n setOrderBy(property);\n };\n\n return (\n <>\n \n (employees.map((e) => e.role)))}\n onChange={(event) => setSelectedCurrentPosition((event.target as HTMLInputElement).value)}\n />\n (employees.map((e) => e.roleChange.targetRole)))}\n onChange={(event) =>\n setSelectedProposedPosition((event.target as HTMLInputElement).value)\n }\n />\n {/* (employees.map((e) => e.department)))}\n onChange={(event) => setSelectedCapability((event.target as HTMLInputElement).value)}\n /> */}\n (employees.map((e) => e.talentCode)))}\n onChange={(event) => setSelectedTalentCode((event.target as HTMLInputElement).value)}\n />\n ([\n ...employees\n .map((e) => getRoleChangeCycle(e.roleChange))\n .sort((a, b) => moment(a).diff(b))\n .reverse(),\n currentRoleChangeCycle,\n ])\n )}\n onChange={(event) => setSelectedChangeCycle((event.target as HTMLInputElement).value)}\n />\n setSelectedChangeStatus(event.target.value as RoleChangeStatus)}\n />\n \n {isLoading ? (\n \n ) : (\n \n \n \n \n \n {filteredEmployees.length ? (\n stableSort(\n filteredEmployees,\n getComparator(order, orderBy)\n )\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map((e) => (\n \n ))\n ) : (\n \n \n No role changes match your current filters\n \n \n )}\n \n
    \n
    \n setPage(p)}\n ActionsComponent={TablePaginationActions}\n onChangeRowsPerPage={(e) => {\n setPage(0);\n setRowsPerPage(Number(e.target.value));\n }}\n />\n
    \n )}\n \n \n );\n};\n","import { useUser } from 'hooks/useUser';\nimport React, { ReactNode, useEffect } from 'react';\nimport { Link as RouterLink, Redirect, Route, Switch, useLocation } from 'react-router-dom';\nimport { SquadFeed } from './components/squadFeed/SquadFeed';\nimport { AppBar, Badge, Tab, Tabs } from '@material-ui/core';\nimport { NoteReview } from 'views/routes/squad/components/noteReview/NoteReview';\nimport { SquadTrends } from './components/squadTrends/SquadTrends';\nimport styles from './Squad.module.scss';\nimport { useBackToTopButton } from 'hooks/useBackToTopButton';\nimport { BackToTopButton } from 'views/routes/employeeJourney/components/employeeTimeline/components/backToTopButton/BackToTopButton';\nimport { observer } from 'mobx-react-lite';\nimport { TalentAnalysisTool } from 'views/routes/squad/components/talentAnalysisTool/talentAnalysisTool';\nimport { usePermissions } from 'hooks/usePermissions';\nimport { RoleChangeTable } from './components/roleChangeTable/RoleChangeTable';\nimport { SquadNotSelected } from 'views/components/squadNotSelected/SquadNotSelected';\n\ninterface TabItem {\n link: string;\n title: ReactNode;\n component: ReactNode;\n disabled: boolean;\n testId?: string;\n}\n\nexport const Squad = observer(() => {\n const {\n canViewSquadTab,\n squads,\n employees: { roleChanges },\n canView,\n } = usePermissions();\n\n if (!canViewSquadTab) return null;\n\n const location = useLocation();\n const { review, selectedSquad } = useUser();\n\n useEffect(() => {\n if (selectedSquad && squads.canViewNoteReview) {\n review.getNumberPendingNotes(selectedSquad);\n }\n }, [review, review.reviewState, squads.canViewNoteReview, selectedSquad]);\n\n const {\n showBackToTopButton,\n scrollToTopOfTimeline,\n scrollableContainerRef,\n } = useBackToTopButton();\n\n const tabItems: TabItem[] = [\n {\n title: 'Trends',\n testId: 'squad-trends-tab-item',\n component: selectedSquad ? : ,\n link: 'trends',\n disabled: !squads.canViewTrends,\n },\n {\n title: 'Squad Feed',\n testId: 'squad-feed-tab-item',\n component: selectedSquad ? : ,\n link: 'feed',\n disabled: !squads.canViewFeed,\n },\n {\n title: selectedSquad ? (\n \n Review\n \n ) : (\n 'Review'\n ),\n component: ,\n link: 'review',\n disabled: !squads.canViewNoteReview,\n },\n {\n title: 'Talent Analysis Tool',\n link: 'talent',\n component: selectedSquad ? : ,\n disabled: !squads.canViewTalentAnalysis,\n },\n {\n title: 'Role Change',\n link: 'rolechange',\n component: selectedSquad ? : ,\n disabled: !canView(roleChanges),\n },\n ].filter((t) => !t.disabled);\n\n const activeTab: number = tabItems.findIndex(\n (item) => location.pathname === `/squad/${item.link}`\n );\n\n return (\n
    \n \n \n {tabItems.map((item, index) => (\n \n ))}\n \n \n
    \n \n {tabItems.map(\n (item) =>\n !item.disabled && ( // prevent the user from just using updating the url\n \n {item.component}\n \n )\n )}\n \n \n {showBackToTopButton && (\n
    \n \n
    \n )}\n
    \n
    \n );\n});\n","import React from 'react';\nimport styles from './PageHeader.module.scss';\n\ninterface IPageHeaderProps {\n title: string;\n}\n\nexport const PageHeader: React.FC = (props: IPageHeaderProps) => {\n return
    {props.title}
    ;\n};\n","import React, { useState } from 'react';\nimport { ISquadUser } from 'domain/store/UserModel';\nimport { IconButton, Link, Menu, MenuItem, TableCell, TableRow } from '@material-ui/core';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport { Link as RouterLink } from 'react-router-dom';\nimport { CREATE_NOTE_ROUTE_PATH, EMPLOYEE_JOURNEYS_ROUTE_PATH } from 'views/routes/Routes';\nimport { Skeleton } from '@material-ui/lab';\nimport styles from './EmployeeJourneysRow.module.scss';\nimport { Create, MoreVert, Person } from '@material-ui/icons';\nimport { useNavigate } from 'hooks/useNavigate';\n\ninterface EmployeeJourneysRowProps {\n employee: ISquadUser | null;\n}\n\nexport const EmployeeJourneysRow: React.FC = ({ employee }) => {\n const navigate = useNavigate();\n const [menuEl, setMenuEl] = useState(null);\n const handleClose = () => setMenuEl(null);\n\n return (\n \n \n
    \n
    \n \n
    \n
    \n {employee ? (\n \n {employee.displayName}\n \n ) : (\n \n )}\n
    \n
    \n
    \n \n {employee ? <>{employee?.position} : }\n \n {/* \n {employee ? <>{employee?.capability} : }\n */}\n \n {employee ? (\n <>\n {\n setMenuEl(e.currentTarget);\n }}>\n \n \n\n \n {\n handleClose();\n navigate(`${EMPLOYEE_JOURNEYS_ROUTE_PATH}/${employee.idpId}`);\n }}>\n \n View Profile\n \n {\n handleClose();\n navigate(CREATE_NOTE_ROUTE_PATH, { employeeId: employee.idpId });\n }}>\n \n Add Note\n \n \n \n ) : (\n \n )}\n \n
    \n );\n};\n","import {\n Container,\n Grid,\n Paper,\n Table,\n TableBody,\n TableContainer,\n TablePagination,\n} from '@material-ui/core';\nimport { ISquadUser } from 'domain/store/UserModel';\nimport { useStore } from 'hooks/useStore';\nimport { useUser } from 'hooks/useUser';\nimport { observer } from 'mobx-react-lite';\nimport React, { useEffect, useState } from 'react';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { PageHeader } from 'views/components/pageHeader/PageHeader';\nimport { SquadNotSelected } from 'views/components/squadNotSelected/SquadNotSelected';\nimport { getComparator, Order, stableSort } from 'views/components/table/SortHelper';\nimport { HeadCell, SortTableHeader } from 'views/components/table/SortTableHeader';\nimport { TableFilterSelect } from 'views/components/table/TableFilterSelect/TableFilterSelect';\nimport { EmployeeJourneysRow } from 'views/routes/employeeJourneys/components/employeeJourneysRow/EmployeeJourneysRow';\nimport { DEFAULT_PAGE_NUMBER, DEFAULT_ROWS_PER_PAGE } from 'views/ViewConstants';\nimport styles from './EmployeeJourneys.module.scss';\nimport { TablePaginationActions } from 'views/components/table/TablePaginationActions';\n\nconst tableCells: HeadCell[] = [\n { id: 'displayName', label: 'Name', isSortable: true },\n { id: 'position', label: 'Position', isSortable: true },\n // { id: 'capability', label: 'Capability', isSortable: true },\n { id: 'action', label: 'Action', isSortable: false },\n];\n\nexport const EmployeeJourneys: React.FC = observer(() => {\n const { selectedSquad, getEmployeesForSquad } = useUser();\n const {\n notifications: { addError },\n } = useStore();\n\n const [isLoading, setIsLoading] = useState(false);\n\n // const [selectedCapability, setSelectedCapability] = useState('');\n const [selectedPosition, setSelectedPosition] = useState('');\n\n const [page, setPage] = useState(DEFAULT_PAGE_NUMBER);\n const [rowsPerPage, setRowsPerPage] = useState(DEFAULT_ROWS_PER_PAGE);\n const [employees, setEmployees] = useState([]);\n const [order, setOrder] = useState('asc');\n const [orderBy, setOrderBy] = useState('displayName');\n\n useEffect(() => {\n if (selectedSquad) {\n setIsLoading(true);\n getEmployeesForSquad(selectedSquad)\n .then((res) => setEmployees(res))\n .catch((e) => {\n addError(`Failed to get role changes for ${selectedSquad}`);\n })\n .finally(() => setIsLoading(false));\n }\n }, [selectedSquad, getEmployeesForSquad, addError]);\n\n const filteredEmployees = employees.filter(\n (e) => selectedPosition === '' || selectedPosition === e.position\n // && (selectedCapability === '' || selectedCapability === e.capability)\n );\n\n const handleRequestSort = (event: React.MouseEvent, property: keyof ISquadUser) => {\n const isAsc = orderBy === property && order === 'asc';\n setOrder(isAsc ? 'desc' : 'asc');\n setOrderBy(property);\n };\n\n return (\n <>\n {selectedSquad ? (\n \n \n \n \n (employees.map((e) => e.position)))}\n onChange={(e) => {\n setSelectedPosition((e.target as HTMLInputElement).value);\n setPage(0);\n }}\n />\n \n {/* \n (employees.map((e) => e.capability)))}\n onChange={(e) => {\n setSelectedCapability((e.target as HTMLInputElement).value);\n setPage(0);\n }}\n />\n */}\n \n\n {isLoading ? (\n \n ) : (\n \n \n \n \n {stableSort(filteredEmployees, getComparator(order, orderBy))\n .slice(page * rowsPerPage, page * rowsPerPage + rowsPerPage)\n .map((employee, index) => (\n \n ))}\n \n
    \n setPage(p)}\n page={page}\n rowsPerPage={rowsPerPage}\n ActionsComponent={TablePaginationActions}\n onChangeRowsPerPage={(e) => {\n setPage(0);\n setRowsPerPage(+e.target.value);\n }}\n />\n
    \n )}\n
    \n ) : (\n \n )}\n \n );\n});\n","import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Grid } from '@material-ui/core';\nimport React from 'react';\nimport styles from 'views/routes/unauthorised/Unauthorised.module.scss';\n\nexport const Unauthorised: React.FC = function () {\n return (\n
    \n \n \n \n \n \n Unauthorised\n \n You do not have permission to view the page that you were looking for.\n \n
    \n );\n};\n","import { ICatchUpsModel } from 'domain/store/catchUps/CatchUpsModel';\nimport { useStore } from './useStore';\n\nexport function useCatchUpGroups(): ICatchUpsModel {\n const { catchUpGroups } = useStore();\n\n return catchUpGroups;\n}\n","import {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n TextField,\n} from '@material-ui/core';\nimport React, { useState } from 'react';\n\nexport interface AddGroupDialogProps {\n isOpen: boolean;\n onCancelClick: () => void;\n onOkClick: (groupName: string) => void;\n}\n\nexport const AddGroupDialog: React.FunctionComponent = (props) => {\n const [newGroupName, setNewGroupName] = useState('');\n\n const onCancelClick = () => {\n props.onCancelClick();\n };\n\n const onOkClick = () => {\n props.onOkClick(newGroupName);\n };\n\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.keyCode === 13) {\n props.onOkClick(newGroupName);\n }\n\n if (e.keyCode === 27) {\n onCancelClick();\n }\n };\n\n return (\n setNewGroupName('')}\n open={props.isOpen}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\">\n \n Create new group\n \n \n setNewGroupName(event.target.value)}\n value={newGroupName}\n />\n \n \n \n \n \n \n );\n};\n","import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { CircularProgress, MenuItem, Select } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport styles from './FrequencySelector.module.scss';\nimport { faChevronCircleDown } from '@fortawesome/free-solid-svg-icons';\n\ninterface Frequency {\n value: number;\n text: string;\n}\n\nexport interface FrequencySelectorProps {\n showSelectOption?: boolean;\n value: number;\n isUpdatingFrequency?: boolean;\n onFrequencyChange: (frequencyId: number) => void;\n}\n\nexport const FrequencySelector: React.FC = ({\n showSelectOption,\n value,\n isUpdatingFrequency,\n onFrequencyChange,\n}) => {\n const [selectedFrequency, setSelectedFrequency] = useState(value);\n\n const frequencies: Frequency[] = Array.from({ length: 8 }, (_, k) => k + 1).map((i) => ({\n value: i,\n text: `${i} ${i === 1 ? 'Week' : 'Weeks'}`,\n }));\n\n const handleFrequencyChange = (frequency: number) => {\n setSelectedFrequency(frequency);\n onFrequencyChange(frequency);\n };\n\n return (\n handleFrequencyChange(event.target.value as number)}\n disabled={isUpdatingFrequency}\n className={styles.select}\n IconComponent={(props) => {\n const propsWithDropdownIcon = {\n ...props,\n className: `${props.className} ${styles.dropdownIcon} `,\n };\n return (\n
    \n {isUpdatingFrequency ? (\n \n ) : (\n \n )}\n
    \n );\n }}>\n {showSelectOption && Select}\n {frequencies.map((f) => (\n \n {f.text}\n \n ))}\n \n );\n};\n","import { faCheck, faTimes } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button, IconButton, TableCell, TableRow } from '@material-ui/core';\nimport React, { useState } from 'react';\nimport { EmployeeDropdown } from 'views/components/employeeDropdown/EmployeeDropdown';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { FrequencySelector } from '../FrequencySelector/FrequencySelector';\nimport styles from './AddMemberForm.module.scss';\n\nexport interface AddMemberFormProps {\n isAddingMember: boolean;\n onCancelClick: () => void;\n onOkClick: (idpId: string, frequencyId: number) => void;\n}\n\nexport const AddMemberForm: React.FC = ({\n isAddingMember,\n onCancelClick,\n onOkClick,\n}) => {\n const [selectedFrequency, setSelectedFrequency] = useState(0);\n const [selectedEmployee, setSelectedEmployee] = useState('');\n\n const handleFrequencyChange = (frequencyId: number) => {\n setSelectedFrequency(frequencyId);\n };\n\n const handleSaveClick = () => {\n if (selectedEmployee && selectedFrequency > 0) {\n onOkClick(selectedEmployee, selectedFrequency);\n }\n };\n\n return (\n \n \n {\n if (employee) {\n setSelectedEmployee(employee?.idpId);\n }\n }}\n />\n \n -\n -\n -\n \n handleFrequencyChange(id)}\n value={0}\n showSelectOption={true}\n />\n \n \n \n \n \n {isAddingMember ? (\n \n ) : (\n <>\n \n \n \n \n \n \n \n )}\n \n \n );\n};\n","import { faMinusCircle } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Box, Button, IconButton, TableCell, TableRow } from '@material-ui/core';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport { IGroupMemberModel } from 'domain/store/catchUps/CatchUpsModel';\nimport React, { useState } from 'react';\nimport styles from './MemberRow.module.scss';\nimport { observer } from 'mobx-react-lite';\nimport { useCatchUpGroups } from 'hooks/useCatchUpGroups';\nimport Skeleton from '@material-ui/lab/Skeleton/Skeleton';\nimport { CREATE_NOTE_ROUTE_PATH, EMPLOYEE_JOURNEYS_ROUTE_PATH } from 'views/routes/Routes';\nimport { Link } from 'react-router-dom';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\nimport { LoadingIndicator } from 'views/components/loadingIndicator/LoadingIndicator';\nimport { FrequencySelector } from '../FrequencySelector/FrequencySelector';\nimport cn from 'classnames';\nimport { useStore } from 'hooks/useStore';\n\nexport interface MemberRowProps {\n member: IGroupMemberModel | null;\n}\n\nexport const MemberRow: React.FC = observer(({ member }: MemberRowProps) => {\n const { updateCatchupFrequency, removeMemberFromGroup } = useCatchUpGroups();\n\n const store = useStore();\n\n const [isUpdatingFrequency, setIsUpdatingFrequency] = useState(false);\n const [isRemovingMember, setIsRemovingMember] = useState(false);\n const [selectedFrequency, setSelectedFrequency] = useState(\n member?.catchupFrequencyInWeeks\n );\n const [isDeleteGroupDialogOpen, setIsDeleteDialogOpen] = useState(false);\n\n const handleRemoveMember = () => {\n if (member?.catchupGroupId) {\n setIsRemovingMember(true);\n setIsDeleteDialogOpen(false);\n removeMemberFromGroup(member.catchupGroupId, member?.idpId)\n .catch((e) => {\n if (e?.response?.status === 409) {\n store.notifications.addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (e?.response?.status === 403) {\n store.notifications.addError('Not authorised to save changes.');\n } else {\n store.notifications.addError('Unable to remove user from the group, please try again.');\n }\n })\n .finally(() => {\n setIsRemovingMember(false);\n });\n }\n };\n\n const handleFrequencyChange = (frequencyId: number) => {\n setIsUpdatingFrequency(true);\n setSelectedFrequency(frequencyId);\n member &&\n updateCatchupFrequency(member?.catchupGroupId, member?.idpId, frequencyId)\n .catch(() => {\n store.notifications.addError('Unable to update frequency, please try again.');\n })\n .finally(() => setIsUpdatingFrequency(false));\n };\n\n return (\n \n \n \n \n \n {member?.displayName}\n \n \n \n \n {member ? (\n <>{member.lastCatchupDateUTC ? member.lastCatchupDateAsLocalString : '-'}\n ) : (\n \n )}\n \n \n {member ? (\n <>{member.nextCatchupDateUTC ? member.nextCatchupDateAsLocalString : '-'}\n ) : (\n \n )}\n \n \n {member ? (\n member.daysUntilNextCatchup ? (\n \n {`${member.daysUntilNextCatchup} ${\n member.daysUntilNextCatchup === 1 ? 'day' : 'days'\n }`}\n \n ) : (\n '-'\n )\n ) : (\n \n )}\n \n \n {member ? (\n handleFrequencyChange(id)}\n isUpdatingFrequency={isUpdatingFrequency}\n value={selectedFrequency ?? 0}\n />\n ) : (\n \n )}\n \n \n {member ? (\n \n Add a Note\n \n ) : (\n \n )}\n \n \n {member ? (\n !isRemovingMember ? (\n setIsDeleteDialogOpen(true)}>\n \n \n ) : (\n \n )\n ) : (\n \n )}\n \n setIsDeleteDialogOpen(false)}\n onAgreeClick={handleRemoveMember}\n />\n \n );\n});\n","import {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n TextField,\n} from '@material-ui/core';\nimport React, { useState } from 'react';\n\nexport interface IRenameGroupDialogProps {\n isOpen: boolean;\n groupName: string;\n onOkClick: (groupName: string) => void;\n onCancelClick: () => void;\n}\n\nexport const RenameGroupDialog: React.FC = (\n props: IRenameGroupDialogProps\n) => {\n const [groupName, setGroupName] = useState(props.groupName);\n\n const onCancelClick = () => {\n props.onCancelClick();\n };\n\n const onOkClick = (groupName: string) => {\n props.onOkClick(groupName);\n };\n\n return (\n \n \n Change the group name\n \n \n setGroupName(e.target.value)}\n value={groupName}\n />\n \n \n \n \n \n \n );\n};\n","import { faEdit, faPlusCircle, faTrashAlt } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n Box,\n CircularProgress,\n IconButton,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n} from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { IGroupModel } from 'domain/store/catchUps/CatchUpsModel';\nimport { useCatchUpGroups } from 'hooks/useCatchUpGroups';\nimport { useStore } from 'hooks/useStore';\nimport { observer } from 'mobx-react-lite';\nimport React, { useState } from 'react';\nimport { AlertDialog } from 'views/components/alertDialog/AlertDialog';\nimport { AddMemberForm } from '../AddMemberForm/AddMemberForm';\nimport { MemberRow } from '../MemberRow/MemberRow';\nimport { RenameGroupDialog } from '../RenameGroupDialog/RenameGroupDialog';\nimport styles from './GroupCard.module.scss';\n\nexport interface GroupCardProps {\n group: IGroupModel | null;\n}\n\nexport const GroupCard: React.FC = observer(({ group }) => {\n const { addMember, deleteGroup, renameGroup } = useCatchUpGroups();\n\n const store = useStore();\n\n const [isAddMemberFormOpen, setAddMemberFormOpen] = useState(false);\n const [isDeleteGroupDialogOpen, setIsDeleteDialogOpen] = useState(false);\n const [isRenameGroupDialogOpen, setIsRenameDialogOpen] = useState(false);\n const [isAddingMember, setIsAddingMember] = useState(false);\n const [groupName, setGroupName] = useState(group?.catchupGroupName);\n const [isUpdatingGroupName, setIsUpdatingGroupName] = useState(false);\n\n const handleGroupDelete = () => {\n if (group) {\n deleteGroup(group.catchupGroupId).catch((e) => {\n if (e?.response?.status === 409) {\n store.notifications.addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (e?.response?.status === 403) {\n store.notifications.addError('Not authorised to save changes.');\n } else {\n store.notifications.addError('Unable to delete group, please try again.');\n }\n });\n setIsDeleteDialogOpen(false);\n }\n };\n\n const handleGroupRename = (groupName: string) => {\n setIsUpdatingGroupName(true);\n setGroupName(groupName);\n group &&\n renameGroup(group.catchupGroupId, groupName)\n .catch((e) => {\n if (e?.response?.status === 409) {\n store.notifications.addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (e?.response?.status === 403) {\n store.notifications.addError('Not authorised to save changes.');\n } else {\n store.notifications.addError('Unable to rename group, please try again.');\n }\n })\n .finally(() => {\n setIsUpdatingGroupName(false);\n setIsRenameDialogOpen(false);\n });\n };\n\n const handleAddMember = (idpId: string, frequencyId: number) => {\n setIsAddingMember(true);\n group &&\n addMember(idpId, group.catchupGroupId, frequencyId)\n .then((_) => {\n setAddMemberFormOpen(false);\n })\n .catch((e) => {\n e.response.text().then((message: string) => {\n if (e.response.status === 409) {\n store.notifications.addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else {\n store.notifications.addError('Unable to add user to the group, please try again.');\n }\n });\n })\n .finally(() => {\n setIsAddingMember(false);\n });\n };\n\n return (\n \n \n \n {group && (\n
    \n setIsRenameDialogOpen(true)}>\n \n \n setIsDeleteDialogOpen(true)}>\n \n \n
    \n )}\n
    \n {group ? (\n <>\n {isUpdatingGroupName ? (\n \n ) : (\n

    {groupName}

    \n )}\n \n ) : (\n \n )}\n \n \n \n \n Name\n \n Last Catch-up\n \n \n Next Catch-up\n \n \n Days until next\n \n Frequency\n Add note\n Remove\n \n \n \n {group\n ? group.members.map((member) => )\n : Array.from({ length: 5 }, (v, k) => k).map((i) => (\n \n ))}\n {isAddMemberFormOpen && (\n setAddMemberFormOpen(false)}\n onOkClick={handleAddMember}\n />\n )}\n \n
    \n
    \n {group && (\n <>\n \n setAddMemberFormOpen(true)}>\n \n
    Add New Member
    \n
    \n
    \n setIsDeleteDialogOpen(false)}\n onAgreeClick={handleGroupDelete}\n />\n handleGroupRename(name)}\n onCancelClick={() => setIsRenameDialogOpen(false)}\n />\n \n )}\n
    \n
    \n );\n});\n","import { faPlusCircle } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Box, Button } from '@material-ui/core';\nimport { useCatchUpGroups } from 'hooks/useCatchUpGroups';\nimport { usePermissions } from 'hooks/usePermissions';\nimport { useStore } from 'hooks/useStore';\nimport { observer } from 'mobx-react-lite';\nimport React, { useEffect, useState } from 'react';\nimport { AddGroupDialog } from './components/AddGroupDialog/AddGroupDialog';\nimport { GroupCard } from './components/GroupCard/GroupCard';\nimport styles from './MyCatchUps.module.scss';\n\nexport interface MyCatchUpsProps {}\n\nexport const MyCatchUps: React.FC = observer(() => {\n const { loadGroups, createGroup, groups, state } = useCatchUpGroups();\n const {\n catchUps: { canViewMyCatchUps },\n } = usePermissions();\n const store = useStore();\n\n if (!canViewMyCatchUps) return null;\n\n const [isAddGroupDialogOpen, showAddGroupDialog] = useState(false);\n\n const handleGroupDialogOkClick = (groupName: string) => {\n if (groupName) {\n createGroup(groupName)\n .then(() => showAddGroupDialog(false))\n .catch((e) => {\n if (e?.response?.status === 409) {\n store.notifications.addError(\n 'Conflict occurred saving changes, please refresh the page, and try again after.'\n );\n } else if (e?.response?.status === 403) {\n store.notifications.addError('Not authorised to save changes.');\n } else {\n store.notifications.addError('Unable to create group, please try again.');\n }\n });\n }\n };\n\n const openDialog = (e: React.MouseEvent) => {\n showAddGroupDialog(true);\n document.activeElement && (document.activeElement as HTMLElement).blur();\n };\n\n useEffect(() => {\n loadGroups();\n }, [loadGroups]);\n\n return (\n \n \n }\n onClick={(e) => openDialog(e)}>\n Create New Group\n \n showAddGroupDialog(false)}\n />\n \n {state === 'done' ? (\n groups.map((group, index) => )\n ) : (\n \n )}\n \n );\n});\n","import React from 'react';\nimport styles from './SquadCatchUpItem.module.scss';\nimport { Box, TableCell, TableRow } from '@material-ui/core';\nimport { Avatar } from 'views/components/avatar/Avatar';\nimport { Link } from 'react-router-dom';\nimport { EMPLOYEE_JOURNEYS_ROUTE_PATH } from 'views/routes/Routes';\nimport { ISquadCatchUpItem } from 'domain/store/catchUps/SquadCatchUpsModel';\n\ninterface ISquadCatchUpItemProps {\n catchup: ISquadCatchUpItem;\n}\n\nexport const SquadCatchUpItem: React.FC = ({ catchup }) => {\n return (\n \n \n \n \n \n {catchup.employee.displayName}\n \n \n \n \n {catchup.lastCatchupDateUTC ? catchup.lastCatchupDateAsLocalString : '-'}\n \n \n {catchup.personWhoCaughtUpWithEmployee ? (\n \n \n \n {catchup.personWhoCaughtUpWithEmployee.displayName}\n \n \n ) : (\n '-'\n )}\n \n \n {catchup.daysSinceLastCatchup === undefined\n ? '-'\n : `${catchup.daysSinceLastCatchup} ${\n catchup.daysSinceLastCatchup === 1 ? 'day' : 'days'\n }`}\n \n \n );\n};\n","import React from 'react';\nimport styles from './SquadCatchUpItemSkeleton.module.scss';\nimport { Box, TableCell, TableRow } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { Avatar } from 'views/components/avatar/Avatar';\n\nexport const SquadCatchUpItemSkeleton: React.FC = () => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n","import React from 'react';\nimport styles from './SquadCatchUps.module.scss';\nimport {\n Box,\n Paper,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n} from '@material-ui/core';\nimport { useSquadCatchUps } from 'hooks/useSquadCatchUps';\nimport { useUser } from 'hooks/useUser';\nimport { observer } from 'mobx-react-lite';\nimport { SquadCatchUpItem } from './components/squadCatchUpItem/SquadCatchUpItem';\nimport { SquadCatchUpItemSkeleton } from './components/squadCatchUpItemSkeleton/SquadCatchUpItemSkeleton';\nimport { usePermissions } from 'hooks/usePermissions';\n\nexport const SquadCatchUps: React.FC = observer(() => {\n const { state, squadCatchUps, loadCatchupsForSquad } = useSquadCatchUps();\n const { selectedSquad } = useUser();\n\n const {\n catchUps: { canViewSquadCatchUps },\n } = usePermissions();\n\n if (!canViewSquadCatchUps) return null;\n\n React.useEffect(() => {\n loadCatchupsForSquad(selectedSquad);\n }, [loadCatchupsForSquad, selectedSquad]);\n\n return (\n \n \n

    {selectedSquad}

    \n \n \n \n \n Name\n Last Catch-up\n Catch-up with\n Days since last Catch-up\n \n \n \n {state === 'done'\n ? squadCatchUps.map((c, i) => )\n : Array.from({ length: 5 }, (v, k) => k).map((i) => (\n \n ))}\n \n
    \n
    \n
    \n
    \n );\n});\n","import { ISquadCatchUpsModel } from 'domain/store/catchUps/SquadCatchUpsModel';\nimport { useStore } from './useStore';\n\nexport function useSquadCatchUps(): ISquadCatchUpsModel {\n const { squadCatchUps } = useStore();\n\n return squadCatchUps;\n}\n","import { AppBar, Tab, Tabs } from '@material-ui/core';\nimport { useBackToTopButton } from 'hooks/useBackToTopButton';\nimport { usePermissions } from 'hooks/usePermissions';\nimport React, { ReactNode } from 'react';\nimport { Link, Switch, Redirect, useLocation, Route } from 'react-router-dom';\nimport { BackToTopButton } from '../employeeJourney/components/employeeTimeline/components/backToTopButton/BackToTopButton';\nimport styles from './CatchUps.module.scss';\nimport { MyCatchUps } from './components/myCatchUps/MyCatchUps';\nimport { SquadCatchUps } from './components/squadCatchUps/SquadCatchUps';\nimport { useUser } from 'hooks/useUser';\nimport { SquadNotSelected } from 'views/components/squadNotSelected/SquadNotSelected';\nimport { observer } from 'mobx-react-lite';\n\ninterface TabItem {\n link: string;\n title: ReactNode;\n component: ReactNode;\n disabled: boolean;\n}\n\nexport const CatchUps: React.FC = observer(() => {\n const { canViewCatchupGroupTab, catchUps } = usePermissions();\n const { selectedSquad } = useUser();\n const location = useLocation();\n\n const {\n showBackToTopButton,\n scrollToTopOfTimeline,\n scrollableContainerRef,\n } = useBackToTopButton();\n\n if (!canViewCatchupGroupTab) return null;\n\n const tabItems: TabItem[] = [\n {\n title: 'My Catch-Ups',\n component: ,\n link: 'my-catch-ups',\n disabled: !catchUps.canViewMyCatchUps,\n },\n {\n title: 'Squad Catch-Ups',\n component: selectedSquad ? : ,\n link: 'squad-catch-ups',\n disabled: !catchUps.canViewSquadCatchUps,\n },\n ].filter((t) => !t.disabled);\n\n const activeTab: number = tabItems.findIndex(\n (item) => location.pathname === `/catch-ups/${item.link}`\n );\n\n return (\n
    \n \n \n {tabItems.map((item, index) => (\n \n ))}\n \n \n
    \n \n {tabItems.map(\n (item) =>\n !item.disabled && (\n \n {item.component}\n \n )\n )}\n \n \n {showBackToTopButton && (\n
    \n \n
    \n )}\n
    \n
    \n );\n});\n","import { observer } from 'mobx-react-lite';\nimport React from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport { Shell } from 'views/components/shell/Shell';\nimport { EmployeeJourney } from 'views/routes/employeeJourney/EmployeeJourney';\nimport { MyNotes } from 'views/routes/myNotes/MyNotes';\nimport { Admin } from './admin/Admin';\nimport { NotFound } from './notFound/NotFound';\nimport { Squad } from './squad/Squad';\nimport { EmployeeJourneys } from 'views/routes/employeeJourneys/EmployeeJourneys';\nimport { Unauthorised } from './unauthorised/Unauthorised';\nimport { usePermissions } from 'hooks/usePermissions';\nimport { CatchUps } from './catchUps/CatchUps';\n\nexport const EMPLOYEE_JOURNEYS_ROUTE_PATH = '/employees';\nexport const CREATE_NOTE_ROUTE_PATH = '/notes/create';\nexport const EDIT_NOTE_ROUTE_PATH = '/notes/edit';\nexport const SQUAD_ROUTE_PATH = '/squad';\nexport const ADMIN_ROUTE_PATH = '/admin';\nexport const UNAUTHORISED_ROUTE_PATH = '/unauthorised';\nexport const CATCH_UPS_ROUTE_PATH = '/catch-ups';\n\nexport const Routes: React.FC = observer(() => {\n const {\n canViewSquadTab,\n canViewEmployeeTab,\n canViewNoteTab,\n canManageRoles,\n canViewCatchupGroupTab,\n canAssignSquads,\n } = usePermissions();\n\n return (\n \n \n \n {canViewSquadTab ? (\n \n ) : canViewEmployeeTab ? (\n \n ) : (\n \n )}\n \n\n {canViewNoteTab && (\n \n \n \n )}\n\n {canViewNoteTab && (\n \n \n \n )}\n\n {canViewCatchupGroupTab && (\n \n \n \n )}\n\n {canViewEmployeeTab && (\n \n \n \n )}\n\n {canViewEmployeeTab && (\n \n \n \n )}\n\n {canViewSquadTab && (\n \n \n \n )}\n\n {(canManageRoles || canAssignSquads) && (\n \n \n \n )}\n\n \n \n \n \n \n \n \n \n );\n});\n","import React, { useEffect, useState } from 'react';\n\nimport { autorun } from 'mobx';\nimport { observer } from 'mobx-react-lite';\nimport { Alert } from '@material-ui/lab';\nimport { Snackbar } from '@material-ui/core';\n\nimport { useStore } from 'hooks/useStore';\nimport { INotification } from 'domain/store/singletons/NotificationModel';\n\ninterface INotificationProps {\n isOpen: boolean;\n notification: INotification;\n onClose: () => void;\n}\n\nexport const Notifications: React.FC = observer(() => {\n const store = useStore();\n const [notifications, setNotifications] = useState([]);\n\n useEffect(() => {\n return autorun(() => {\n setNotifications(store.notifications.notificationsToShow);\n });\n }, [store, notifications, setNotifications]);\n\n return (\n <>\n {notifications.map((n, i) => (\n {\n store.notifications.closeNotification(n);\n }}\n />\n ))}\n \n );\n});\n\nconst Notification: React.FC = observer(\n ({ isOpen, notification: { message, severity }, onClose }) => {\n return (\n \n \n {message}\n \n \n );\n }\n);\n","import { faExclamationCircle } from '@fortawesome/free-solid-svg-icons';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Grid } from '@material-ui/core';\nimport React from 'react';\nimport styles from './NoAccessToApp.module.scss';\n\nexport const NoAccessToApp: React.FC = function () {\n return (\n
    \n \n \n \n \n \n Oops\n \n \n You don't currently have access to this app. If you believe you should have access,\n please contact your local People Partner.\n \n \n
    \n );\n};\n","import { createMuiTheme } from '@material-ui/core';\nimport { siteDefault } from './views/themes';\n\nexport const theme = createMuiTheme({\n palette: {\n primary: {\n main: siteDefault['--primary-one'],\n },\n },\n});\n","import React from 'react';\nimport { History } from 'history';\nimport { Router } from 'react-router-dom';\n\nimport { siteDefault } from './themes';\nimport styles from './App.module.scss';\nimport { Routes } from 'views/routes/Routes';\nimport { IRootStoreModel } from 'domain/store/RootStoreModel';\nimport { useAuthentication } from 'hooks/useAuthentication';\nimport { IAuthenticationProvider } from 'auth/AuthenticationTypes';\nimport { Notifications } from 'views/components/notification/Notifications';\n\nimport { LocalizationProvider } from '@material-ui/pickers';\nimport MomentUtils from '@material-ui/pickers/adapter/moment';\nimport { observer } from 'mobx-react-lite';\nimport { Unauthorised } from './routes/unauthorised/Unauthorised';\nimport { NoAccessToApp } from './components/noAccessToApp/NoAccessToApp';\nimport { Box, Button } from '@material-ui/core';\n\nimport { ThemeProvider } from '@material-ui/core';\nimport { theme } from 'theme';\n\ninterface IAppProps {\n history: History;\n store: IRootStoreModel;\n auth: IAuthenticationProvider;\n}\n\nexport const StoreContext = React.createContext(undefined);\n\nexport const App: React.FC = observer(({ history, store, auth }) => {\n const authState = useAuthentication(auth);\n\n if (authState === 'login-error') {\n return (\n \n \n \n );\n }\n\n if (authState === 'signed-in' && store.state === 'unauthorized') {\n return (\n \n \n \n \n \n \n );\n }\n\n if (authState === 'loading' || store.isLoading) {\n return (\n \n

    Loading {store.isLoading && your account} please wait...

    \n
    \n );\n }\n\n if (authState === 'signed-in') {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n }\n\n return (\n \n

    \n Please{' '}\n \n

    \n
    \n );\n});\n","import { useCallback, useEffect, useState } from 'react';\n\nimport { AuthenticationProviderState, IAuthenticationProvider } from 'auth/AuthenticationTypes';\n\nexport function useAuthentication(provider: IAuthenticationProvider): AuthenticationProviderState {\n const [state, setState] = useState(provider.initialState);\n const updateState = useCallback(async () => {\n return await provider.signIn();\n }, [provider]);\n\n useEffect(() => {\n updateState().then(setState);\n }, [updateState]);\n\n return state;\n}\n","import { errorLog } from 'index';\nimport { Instance, types } from 'mobx-state-tree';\nimport { api } from 'shared/api/interfaces';\n\nimport { flow, getEnv, LoadingStateModel } from './util';\n\nexport const TagModel = types.model('Tag', {\n tagId: types.identifierNumber,\n name: types.string,\n description: types.maybeNull(types.string),\n isSensitive: types.boolean,\n reviewRequired: types.boolean,\n});\n\nexport const TagsModel = types\n .model('TagsModel', {\n state: LoadingStateModel,\n tags: types.map(TagModel),\n })\n .views((self) => ({\n get all() {\n return Array.from(self.tags.values());\n },\n }))\n .actions((self) => ({\n afterAttach: flow(function* (): Generator, void, ITag[]> {\n if (self.state === 'done') return;\n\n const { ajax } = getEnv(self);\n try {\n const data = yield ajax\n .get('Tags', {})\n .json()\n .then((tags) => tags.map((tag) => TagModel.create(tag)));\n data.forEach((tag) => self.tags.put(tag));\n self.state = 'done';\n } catch (e) {\n errorLog('GET tags failed.', e);\n self.state = 'error';\n }\n }),\n }));\n\nexport interface ITag extends Instance {}\n\nexport interface ITags extends Instance {}\n","import { Instance, types } from 'mobx-state-tree';\n\nimport { TagModel } from './TagsModel';\nimport { utc } from 'moment';\nimport { api } from 'shared/api/interfaces';\n\nexport const NotePersonNameModel = types\n .model('NotePersonName', {\n idpId: types.string,\n givenName: types.string,\n familyName: types.string,\n })\n .views((self) => ({\n get displayName(): string {\n return `${self.givenName} ${self.familyName}`.trim();\n },\n }));\n\nexport type NoteStatus = 'draft' | 'pending' | 'published';\nexport type NoteSensitivity = 'sensitive' | 'non-sensitive' | 'none';\n\nexport const NoteModel = types\n .model('Note', {\n noteId: types.identifierNumber,\n employee: NotePersonNameModel,\n content: types.string,\n tags: types.array(TagModel),\n eventDate: types.maybeNull(types.string),\n createdDate: types.string,\n modifiedDate: types.maybeNull(types.string),\n author: NotePersonNameModel,\n modifier: NotePersonNameModel,\n subject: types.string,\n isPeopleLeaderConversation: types.boolean,\n status: types.optional(\n types.enumeration(['draft', 'pending', 'published']),\n 'draft'\n ),\n isFaceToFaceDiscussion: types.maybe(types.boolean),\n canDelete: types.boolean,\n canEdit: types.boolean,\n sensitivity: types.optional(\n types.enumeration(['sensitive', 'non-sensitive', 'none']),\n 'none'\n ),\n })\n .views((self) => ({\n get eventDateMoment() {\n return self.eventDate && self.eventDate.trim().length > 0 ? utc(self.eventDate) : null;\n },\n get createdDateMoment() {\n return utc(self.createdDate);\n },\n get modifiedDateMoment() {\n return self.modifiedDate && self.modifiedDate.trim().length > 0\n ? utc(self.modifiedDate)\n : null;\n },\n }));\n\nexport interface INoteRequest {\n employeeIdpId: string;\n content: string;\n tags: number[];\n eventDate: string;\n subject: string;\n isPeopleLeaderConversation: boolean;\n noteStatus: NoteStatus | undefined;\n sensitivity: NoteSensitivity | undefined;\n isFaceToFaceDiscussion: boolean | undefined;\n}\n\nexport interface INote extends Instance {}\n\nexport function createNote(note: api.NoteDto): INote {\n return NoteModel.create({\n noteId: note.noteId,\n employee: note.employee,\n status: note.status as 'draft' | 'pending' | 'published',\n content: note.content,\n tags: note.tags,\n eventDate: note.eventDate,\n createdDate: note.createdDate,\n modifiedDate: note.modifiedDate,\n author: note.author,\n modifier: note.modifier,\n subject: note.subject,\n isPeopleLeaderConversation: note.isPeopleLeaderConversation,\n canDelete: note.canDelete,\n canEdit: note.canEdit,\n sensitivity: note.sensitivity as 'non-sensitive' | 'sensitive' | 'none',\n isFaceToFaceDiscussion: note.isFaceToFaceDiscussion,\n });\n}\n\nexport interface IPaginatedNotes {\n notes: INote[];\n totalCount: number;\n}\n","import { Instance, types } from 'mobx-state-tree';\nimport { flow, getEnv } from 'domain/store/util';\nimport { IFlightRiskDto } from 'domain/store/dataTranferObjects/IFlightRiskDto';\nimport { api } from 'shared/api/interfaces';\n\nexport const FlightRiskStatusModifier = types.model('FlightRiskStatusModifier', {\n idpId: types.identifier,\n displayName: types.string,\n});\n\nexport interface IFlightRiskStatusModel extends Instance {}\n\nexport interface IFlightRiskWithMobx extends IFlightRiskDto {\n modifiedBy: Instance;\n}\n\nexport interface IFlightRiskStatusModelValue extends Instance {}\n\nexport const FlightRiskStatusModelValue = types.model('FlightRiskStatusModelValue', {\n isFlightRisk: types.boolean,\n modifiedBy: FlightRiskStatusModifier,\n modifiedDateTime: types.string,\n});\n\nexport const FlightRiskStatusModel = types\n .model('FlightRiskStatusModel', {\n value: types.maybeNull(FlightRiskStatusModelValue),\n })\n .actions((self) => {\n const toggleFlightRiskStatus = function* (\n employeeIdpId: string\n ): Generator, IFlightRiskWithMobx, IFlightRiskWithMobx> {\n const { ajax } = getEnv(self);\n\n const result = yield ajax\n .post('Employee/FlightRisk', {\n json: {\n employeeIdpId,\n flagValue: self.value ? !self.value.isFlightRisk : true,\n },\n })\n .json();\n\n self.value = FlightRiskStatusModelValue.create(result);\n return result;\n };\n\n return {\n toggleFlightRiskStatus: flow(toggleFlightRiskStatus),\n };\n });\n\nexport function createFlightRiskStatusModel(\n model: api.FlightRiskDtoValueDto\n): IFlightRiskStatusModel | null {\n if (!model) {\n return null;\n }\n\n return FlightRiskStatusModel.create(model);\n}\n","import { ILongTermLeaveDto } from 'domain/store/dataTranferObjects/ILongTermLeaveDto';\nimport { flow, getEnv } from 'domain/store/util';\nimport { Instance, types } from 'mobx-state-tree';\nimport { api } from 'shared/api/interfaces';\n\nexport const LongTermLeaveModifier = types.model('LongTermLeaveModifier', {\n idpId: types.identifier,\n displayName: types.string,\n});\n\nexport interface ILongTermLeaveModel extends Instance {}\n\nexport interface ILongTermLeaveWithMobx extends ILongTermLeaveDto {\n modifiedBy: Instance;\n}\n\nexport interface ILongTermLeaveModelValue extends Instance {}\n\nexport const LongTermLeaveModelValue = types.model('LongTermLeaveModelValue', {\n isOnLongTermLeave: types.boolean,\n modifiedBy: LongTermLeaveModifier,\n modifiedDateTime: types.string,\n expectedReturn: types.maybeNull(types.string),\n});\n\nexport const LongTermLeaveModel = types\n .model('LongTermLeaveModel', {\n value: types.maybeNull(LongTermLeaveModelValue),\n })\n .actions((self) => {\n const toggleLongTermLeaveStatus = function* (\n employeeIdpId: string,\n expectedReturn: string | null\n ): Generator, ILongTermLeaveWithMobx, ILongTermLeaveWithMobx> {\n const { ajax } = getEnv(self);\n\n const result = yield ajax\n .post('Employee/LongTermLeave', {\n json: {\n employeeIdpId,\n flagValue: !self.value || expectedReturn !== null,\n expectedReturn: expectedReturn,\n },\n })\n .json();\n\n self.value = LongTermLeaveModelValue.create(result);\n return result;\n };\n\n return {\n toggleLongTermLeaveStatus: flow(toggleLongTermLeaveStatus),\n };\n });\n\nexport interface ILongTermLeave extends Instance {}\n\nexport function createLongTermLeaveModel(ltl: api.LongTermLeaveDtoValueDto): ILongTermLeave | null {\n if (!ltl) {\n return null;\n }\n\n return LongTermLeaveModel.create(ltl);\n}\n","import { Instance, types } from 'mobx-state-tree';\nimport { flow, getEnv } from 'domain/store/util';\nimport { api } from 'shared/api/interfaces';\n\nexport const PrimaryFlagModifier = types.model('PrimaryFlagModifier', {\n idpId: types.identifier,\n displayName: types.string,\n});\n\nexport const PrimaryFlagModelValue = types.model('PrimaryFlagModelValue', {\n flagId: types.number,\n name: types.string,\n modifiedBy: PrimaryFlagModifier,\n modifiedDateTime: types.string,\n});\n\nexport const PrimaryFlagModel = types\n .model('PrimaryFlagModel', {\n value: types.maybeNull(PrimaryFlagModelValue),\n })\n .actions((self) => {\n const updatePrimaryFlag = function* (\n primaryFlagData: IUpdatePrimaryFlagRequest\n ): Generator, api.FlagDto, api.FlagDto> {\n const { ajax } = getEnv(self);\n return yield ajax.post('employee/primaryflag', { json: primaryFlagData }).json();\n };\n\n return {\n update: flow(updatePrimaryFlag),\n };\n });\n\nexport interface IPrimaryFlagModel extends Instance {}\n\nexport function createPrimaryFlagModel(pfm: api.FlagDtoValueDto): IPrimaryFlagModel | null {\n if (!pfm) {\n return null;\n }\n\n return PrimaryFlagModel.create(pfm);\n}\n\nexport interface IUpdatePrimaryFlagRequest {\n employeeIdpId: string;\n flagId: number;\n}\n","import { flow, getEnv } from 'domain/store/util';\nimport { Instance, types } from 'mobx-state-tree';\nimport { IRoleChangePathwayDto } from 'domain/store/dataTranferObjects/IRoleChangePathwayDto';\nimport { api } from 'shared/api/interfaces';\n\nexport const RoleChangePathwayModifier = types.model('RoleChangePathwayModifier', {\n idpId: types.identifier,\n displayName: types.string,\n});\n\nexport interface IRoleChangePathwayModel extends Instance {}\n\nexport interface IRoleChangePathwayWithMobx extends IRoleChangePathwayDto {\n modifiedBy: Instance;\n}\n\nexport interface IRoleChangePathwayModelValue\n extends Instance {}\n\nexport const RoleChangePathwayModelValue = types.model('RoleChangePathwayModelValue', {\n hasRoleChangePathway: types.boolean,\n modifiedBy: RoleChangePathwayModifier,\n modifiedDateTime: types.string,\n timeframe: types.number,\n});\n\nexport const RoleChangePathwayModel = types\n .model('RoleChangePathwayModel', {\n value: types.maybeNull(RoleChangePathwayModelValue),\n })\n .actions((self) => {\n const toggleRoleChangePathwayStatus = function* (\n employeeIdpId: string,\n timeframe: number\n ): Generator<\n Promise,\n IRoleChangePathwayWithMobx,\n IRoleChangePathwayWithMobx\n > {\n const { ajax } = getEnv(self);\n\n const result = yield ajax\n .post('Employee/rolechangepathway', {\n json: {\n employeeIdpId,\n flagValue: !self.value || timeframe !== 0 ? true : false,\n timeframe: timeframe,\n },\n })\n .json();\n\n self.value = RoleChangePathwayModelValue.create(result);\n return result;\n };\n\n return {\n toggleRoleChangePathwayStatus: flow(toggleRoleChangePathwayStatus),\n };\n });\n\nexport interface IRoleChangePathway extends Instance {}\n\nexport function createRoleChangePathwayModel(\n rpp: api.RoleChangePathwayDtoValueDto\n): IRoleChangePathway | null {\n if (!rpp) {\n return null;\n }\n\n return RoleChangePathwayModel.create(rpp);\n}\n","import { humanizer, Unit } from 'humanize-duration';\nimport { Instance, types } from 'mobx-state-tree';\nimport moment, { duration } from 'moment';\nimport { EmployeeStatusModel } from './EmployeeStatusModel';\nimport { api } from 'shared/api/interfaces';\nimport { createFlightRiskStatusModel, FlightRiskStatusModel } from './FlightRiskModel';\nimport { createLongTermLeaveModel, LongTermLeaveModel } from './LongTermLeaveModel';\nimport { createPrimaryFlagModel, PrimaryFlagModel } from './PrimaryFlagModel';\nimport { createRoleChangePathwayModel, RoleChangePathwayModel } from './RoleChangePathwayModel';\n\nexport const WORK_DAY_IN_HOURS = 8;\n\nexport const EmployeeFlagsModel = types.model('EmployeeFlagsModel', {\n primaryFlag: types.maybeNull(PrimaryFlagModel),\n flightRisk: types.maybeNull(FlightRiskStatusModel),\n roleChangePathway: types.maybeNull(RoleChangePathwayModel),\n longTermLeave: types.maybeNull(LongTermLeaveModel),\n status: types.maybeNull(EmployeeStatusModel),\n});\n\nexport function createEmployeeFlags(\n empFlags: api.EmployeeFlagsDto\n): Instance {\n return EmployeeFlagsModel.create({\n flightRisk: createFlightRiskStatusModel(empFlags.flightRisk),\n longTermLeave: createLongTermLeaveModel(empFlags.longTermLeave),\n primaryFlag: createPrimaryFlagModel(empFlags.primaryFlag),\n roleChangePathway: createRoleChangePathwayModel(empFlags.roleChangePathway),\n status: empFlags.status ? EmployeeStatusModel.create(empFlags.status) : null,\n });\n}\n\nexport const EmployeeLeaveModel = types.model('EmployeeLeaveModel', {\n annualLeaveInHours: types.number,\n personalLeaveInHours: types.number,\n pdTakenInHours: types.number,\n});\n\nexport const EmployeeModel = types\n .model('EmployeeModel', {\n idpId: types.optional(types.string, ''),\n telstraEmployeeNumber: types.optional(types.string, ''),\n givenName: types.optional(types.string, ''),\n familyName: types.optional(types.string, ''),\n displayName: types.optional(types.string, ''),\n squadName: types.optional(types.string, ''),\n position: types.optional(types.string, ''),\n capability: types.optional(types.string, ''),\n tenure: types.maybeNull(types.string),\n leaveDetails: types.maybeNull(EmployeeLeaveModel),\n isFormerEmployee: types.optional(types.boolean, false),\n probationEndDate: types.maybeNull(types.string),\n lastRetroDate: types.maybeNull(types.string),\n flags: EmployeeFlagsModel,\n emailAddress: types.maybeNull(types.string),\n showMinimalDetails: types.optional(types.boolean, false),\n isInCareerFramework: types.optional(types.boolean, false),\n })\n .views((self) => ({\n get annualLeaveDays(): string {\n return Math.round(self.leaveDetails!.annualLeaveInHours / WORK_DAY_IN_HOURS).toString();\n },\n get personalLeaveDays(): string {\n return Math.round(self.leaveDetails!.personalLeaveInHours! / WORK_DAY_IN_HOURS).toString();\n },\n get pdTakenDays(): string {\n return Math.round(self.leaveDetails!.pdTakenInHours! / WORK_DAY_IN_HOURS).toString();\n },\n get annualLeaveHours(): string {\n return self.leaveDetails!.annualLeaveInHours!.toFixed(2);\n },\n get personalLeaveHours(): string {\n return self.leaveDetails!.personalLeaveInHours!.toFixed(2);\n },\n get pdTakenHours(): string {\n return self.leaveDetails!.pdTakenInHours!.toFixed(2);\n },\n get tenureFormatted(): string {\n if (self.tenure === null) return 'Unknown';\n\n const difference = duration(\n moment().diff(moment(self.tenure), 'milliseconds', true),\n 'milliseconds'\n );\n const units: Unit[] = ['y', 'mo'];\n if (difference.asDays() < 30) {\n units.push('d');\n }\n const yearMonthHumaniser = humanizer({\n language: 'en',\n round: true,\n units,\n });\n return yearMonthHumaniser(difference.asMilliseconds());\n },\n get probation(): Probation {\n const probationEndDate = moment(self.probationEndDate);\n return {\n isInProbation: moment().diff(probationEndDate, 'day') <= 0,\n endDate: probationEndDate.format('DD/MM/YYYY'),\n };\n },\n get lastRetroFormatted(): string {\n if (self.lastRetroDate === null) return 'Unknown';\n const lastRetroDate = moment(self.lastRetroDate);\n return lastRetroDate.format('DD/MM/YYYY');\n },\n }));\n\nexport interface IEmployee extends Instance {}\n\nexport function createEmployee(employee: api.EmployeeDetailsDto): IEmployee {\n return EmployeeModel.create({\n ...employee,\n flags: createEmployeeFlags(employee.flags),\n probationEndDate: employee.probationEndDate,\n tenure: employee.tenure,\n });\n}\n\nexport interface Probation {\n isInProbation: boolean;\n endDate: string;\n}\n","import { flow, getEnv } from 'domain/store/util';\nimport { Instance, types } from 'mobx-state-tree';\nimport { createNote, INote, NoteModel } from 'domain/store/NoteModel';\nimport { createEmployee, EmployeeModel, IEmployee } from './EmployeeModel';\nimport { api } from 'shared/api/interfaces';\nimport { errorLog } from 'index';\n\nconst EmployeeJourneyNotesModel = types.array(NoteModel);\n\nexport const EmployeeJourneyModel = types\n .model('EmployeeJourneyModel', {\n employee: types.maybeNull(EmployeeModel),\n notes: types.maybeNull(EmployeeJourneyNotesModel),\n state: types.optional(\n types.enumeration<'pending' | 'loading' | 'done' | 'error' | 'unauthorised'>(\n 'EmployeeJourneyState',\n ['pending', 'loading', 'done', 'error', 'unauthorised']\n ),\n 'pending'\n ),\n positions: types.array(types.string),\n })\n .actions((self) => {\n const loadNotes = function* (): Generator, void, INote[]> {\n const { ajax } = getEnv(self);\n const employeeIdpId = self.employee?.idpId;\n if (employeeIdpId) {\n const response = yield ajax\n .get('Notes', { searchParams: { EmployeeIdpId: employeeIdpId } })\n .json()\n .then((notes) => notes.map((note) => createNote(note)));\n self.notes = EmployeeJourneyNotesModel.create(response);\n }\n };\n\n return {\n loadNotes: flow(loadNotes),\n };\n })\n .actions((self) => {\n const shouldUpdate = (employeeIdpId: string): boolean => {\n return self.employee?.idpId !== employeeIdpId;\n };\n\n const unloadJourney = function (): void {\n self.state = 'pending';\n self.notes = null;\n self.employee = null;\n };\n\n const loadJourney = function* (\n employeeIdpId: string\n ): Generator, void, IEmployee> {\n if (self.state === 'done' && shouldUpdate(employeeIdpId)) {\n unloadJourney();\n }\n\n if (self.state !== 'pending') return;\n\n self.state = 'loading';\n try {\n const { ajax } = getEnv(self);\n\n self.employee = yield ajax\n .get('Employee', { searchParams: { employeeIdpId } })\n .json()\n .then((r) => createEmployee(r));\n\n yield self.loadNotes();\n\n self.state = 'done';\n } catch (e) {\n self.state = 'error';\n errorLog('Failed to get employee.', e);\n if (e.response && e.response.status === 403) {\n self.state = 'unauthorised';\n }\n }\n };\n\n return {\n unloadJourney,\n loadJourney: flow(loadJourney),\n };\n })\n .actions((self) => ({\n afterAttach: flow(function* (): Generator<\n Promise,\n void,\n api.ChartMetaDataDto\n > {\n const { ajax } = getEnv(self);\n try {\n const result = yield ajax.get('RoleChanges/positions', {}).json();\n self.positions.push(...result.roleDistributionOrderedSet);\n } catch (e) {\n errorLog('Failed to get positions metadata.', e);\n }\n }),\n }))\n .views((self) => ({\n get isLoaded() {\n return self.state === 'done';\n },\n }));\n\nexport interface IEmployeeJourney extends Instance {}\n","import { errorLog } from 'index';\nimport { Instance, types } from 'mobx-state-tree';\nimport { api } from 'shared/api/interfaces';\n\nimport { flow, getEnv, LoadingStateModel } from './util';\n\nexport const FlagModel = types.model('Flag', {\n flagId: types.identifierNumber,\n name: types.string,\n description: types.maybeNull(types.string),\n});\n\nexport const FlagsModel = types\n .model('FlagsModel', {\n state: LoadingStateModel,\n flags: types.map(FlagModel),\n })\n .views((self) => ({\n get all() {\n return Array.from(self.flags.values());\n },\n getFlag(flagId?: number): IFlag | undefined {\n if (flagId) {\n return Array.from(self.flags.values()).find((flag) => {\n return flag.flagId === flagId;\n });\n }\n return undefined;\n },\n }))\n .actions((self) => ({\n afterAttach: flow(function* (): Generator, void, IFlag[]> {\n if (self.state === 'done') return;\n\n const { ajax } = getEnv(self);\n try {\n const data = yield ajax\n .get('Flags', {})\n .json()\n .then((flags) => flags.map((flag) => FlagModel.create(flag)));\n data.forEach((flag) => self.flags.put(flag));\n self.state = 'done';\n } catch (e) {\n errorLog('GET flags failed.', e);\n self.state = 'error';\n }\n }),\n }));\n\nexport interface IFlag extends Instance {}\n\nexport interface IFlags extends Instance {}\n","import { detach, Instance, types } from 'mobx-state-tree';\n\nimport { flow, getEnv, LoadingStateModel } from 'domain/store/util';\nimport { AuthenticationProvider, Client, ResponseType } from '@microsoft/microsoft-graph-client';\nimport { AuthenticationProviderOptions } from '@microsoft/microsoft-graph-client/src/IAuthenticationProviderOptions';\nimport {\n createEmployee,\n EmployeeModel,\n IEmployee,\n} from 'domain/store/employeeJourney/EmployeeModel';\nimport { api } from 'shared/api/interfaces';\nimport { errorLog } from 'index';\n\nexport interface EmployeeSearchResult {\n idpId: string;\n displayName: string;\n isFormerEmployee?: boolean;\n}\n\nconst LoadEmployeeModel = types\n .model('LoadEmployeeModel', {\n employee: types.maybeNull(EmployeeModel),\n state: LoadingStateModel,\n })\n .actions((self) => ({\n reset: function () {\n self.employee = null;\n self.state = 'loading';\n },\n searchForEmployee: flow(function* (\n employeeIdpId?: string\n ): Generator, IEmployee | null, IEmployee> {\n const { ajax } = getEnv(self);\n\n if (self.state === 'done' && self.employee?.idpId === employeeIdpId) {\n return self.employee;\n }\n\n self.state = 'loading';\n if (self.employee) {\n detach(self.employee);\n }\n self.employee = null;\n\n if (employeeIdpId) {\n try {\n const result = yield ajax\n .get('Employee', { searchParams: { employeeIdpId } })\n .json()\n .then((r) => createEmployee(r));\n\n self.employee = result;\n self.state = 'done';\n return result;\n } catch (e) {\n if (e.response && e.response.status === 403) {\n self.state = 'unauthorized';\n } else {\n errorLog('Failed to get employee.', e);\n self.state = 'error';\n }\n }\n } else {\n self.employee = null;\n }\n return null;\n }),\n }));\n\nconst PhotoModel = types.model({\n id: types.identifier,\n uri: types.maybeNull(types.string),\n});\n\nexport const GraphModel = types\n .model('GraphModel', {\n loadEmployee: types.optional(LoadEmployeeModel, {}),\n photos: types.map(PhotoModel),\n })\n .actions((self) => {\n function* searchForEmployees(\n query: string,\n includeFormerEmployees = false\n ): Generator> {\n const { ajax } = getEnv(self);\n\n return yield ajax\n .get(`Employee/${'search'}`, {\n searchParams: { query, includeFormerEmployees },\n })\n .json();\n }\n\n function* searchForEmployeePhoto(idpId: string): Generator> {\n const { auth } = getEnv(self);\n const graph = Client.initWithMiddleware({\n authProvider: new (class implements AuthenticationProvider {\n async getAccessToken(options?: AuthenticationProviderOptions): Promise {\n return await auth.getGraphAccessToken(options?.scopes);\n }\n })(),\n debugLogging: false,\n });\n\n if (self.photos.get(idpId)) return self.photos.get(idpId)!.uri;\n\n try {\n const img = yield graph\n .api(`/users/${idpId}/photos/120x120/$value`)\n .version('beta')\n .responseType(ResponseType.BLOB)\n .get();\n\n const blobUrl = (window.URL || window.webkitURL).createObjectURL(img);\n self.photos.put({ id: idpId, uri: blobUrl });\n return blobUrl;\n } catch {\n self.photos.put({ id: idpId, uri: null });\n return null;\n }\n }\n\n return {\n searchForEmployees: flow(searchForEmployees),\n searchForEmployeePhoto: flow(searchForEmployeePhoto),\n };\n });\n\nexport interface IGraphModel extends Instance {}\n","import { Color } from '@material-ui/lab/Alert';\nimport { Instance, types } from 'mobx-state-tree';\n\nexport interface INotification extends Instance {}\n\nconst Notification = types.model('Notification', {\n message: types.string,\n severity: types.enumeration(['info', 'success', 'error', 'warning']),\n});\n\nexport const NotificationModel = types\n .model('NotificationsModel', {\n notificationsToShow: types.array(Notification),\n })\n .actions((self) => {\n function addNotification(message: string, severity: INotification['severity']) {\n self.notificationsToShow.push({ message, severity });\n }\n\n const addSuccess = (msg: string) => addNotification(msg, 'success');\n\n const addError = (msg: string) => addNotification(msg, 'error');\n\n function closeNotification(notification: INotification) {\n self.notificationsToShow.remove(notification);\n }\n\n return { addSuccess, addError, closeNotification };\n });\n","import { types } from 'mobx-state-tree';\n\nimport { flow, getEnv } from 'domain/store/util';\n\nexport const SecurityModel = types.model('SecurityModel', {}).actions((self) => {\n const { auth } = getEnv(self);\n const getSignedInName = () => {\n const account = auth.account;\n return account && account.name;\n };\n const getAccountId = () => {\n const account = auth.account;\n return account && account.accountIdentifier;\n };\n const signIn = function* (): Generator, string, string> {\n return yield auth.signIn();\n };\n const getApiAccessToken = function* (): Generator, string, string> {\n return yield auth.getApiAccessToken();\n };\n return {\n signIn: flow(signIn),\n signOut: () => auth.signOut(),\n getIsSignedIn: () => auth.getIsSignedIn(),\n getApiAccessToken: flow(getApiAccessToken),\n getSignedInName,\n getAccountId,\n };\n});\n","import { types } from 'mobx-state-tree';\n\nexport const CountModel = types.model('CountModel', {\n name: types.string,\n count: types.number,\n});\n\nexport const CountByMonthModel = types.model('CountByMonthModel', {\n year: types.number,\n month: types.string,\n counts: types.array(CountModel),\n});\n\nexport const MonthlyTrendModel = types.model('MonthlyTrendModel', {\n labels: types.array(types.string),\n data: types.array(CountByMonthModel),\n});\n","import { Instance, types } from 'mobx-state-tree';\nimport { flow, getEnv, LoadingStateModel } from 'domain/store/util';\nimport { makeTrendsUrl } from './TrendsModel';\nimport { MonthlyTrendModel } from './MonthlyTrendModel';\nimport { api } from 'shared/api/interfaces';\nimport { errorLog } from 'index';\n\ninterface ITalentCodeTrendsByMonth extends Instance {}\n\nexport const TalentCodeTrendsByMonthModel = types\n .model('TalentCodeTrendsByMonth', {\n value: types.optional(MonthlyTrendModel, {}),\n state: LoadingStateModel,\n })\n .actions((self) => ({\n loadTalentCodeTrendsByMonth: flow(function* (\n selectedSquad: string | null\n ): Generator<\n Promise,\n ITalentCodeTrendsByMonth,\n ITalentCodeTrendsByMonth\n > {\n if (selectedSquad) {\n const { ajax } = getEnv(self);\n\n self.state = 'loading';\n try {\n self.value = yield ajax\n .get(makeTrendsUrl('TalentCodesByMonth'), {\n searchParams: { squadName: selectedSquad },\n })\n .json()\n .then((x) => MonthlyTrendModel.create(x));\n self.state = 'done';\n } catch (e) {\n errorLog('Failed to load talent codes by month data', e);\n self.state = 'error';\n }\n }\n return self.value;\n }),\n }));\n","import { Instance, types } from 'mobx-state-tree';\nimport { api } from 'shared/api/interfaces';\nimport { flow, getEnv, LoadingStateModel } from '../util';\nimport { MonthlyTrendModel } from './MonthlyTrendModel';\nimport { makeTrendsUrl } from './TrendsModel';\nimport moment from 'moment';\nimport { errorLog } from 'index';\n\ninterface ISupportingOpportunityByMonth extends Instance {}\n\nexport const SupportingOpportunitiesByMonthModel = types\n .model('SupportingOpportunitiesByMonth', {\n value: types.optional(MonthlyTrendModel, {}),\n state: LoadingStateModel,\n })\n .actions((self) => ({\n loadSupportingOpportunitiesByMonth: flow(function* (\n selectedSquad: string | null,\n year?: number\n ): Generator<\n Promise,\n ISupportingOpportunityByMonth,\n ISupportingOpportunityByMonth\n > {\n if (selectedSquad) {\n const { ajax } = getEnv(self);\n\n const endDate = moment();\n if (year) endDate.set({ year: year });\n\n self.state = 'loading';\n try {\n self.value = yield ajax\n .get(makeTrendsUrl('SupportingOpportunitiesByMonth'), {\n searchParams: { squadName: selectedSquad, endDate: endDate.toDate().toDateString() },\n })\n .json()\n .then((trend) => MonthlyTrendModel.create(trend));\n self.state = 'done';\n } catch (e) {\n errorLog('Failed to load supporting opportunities by month data', e);\n self.state = 'error';\n }\n }\n return self.value;\n }),\n }));\n","import { errorLog } from 'index';\nimport { Instance, types } from 'mobx-state-tree';\nimport { api } from 'shared/api/interfaces';\nimport { flow, getEnv, LoadingStateModel } from '../util';\nimport { makeTrendsUrl } from './TrendsModel';\n\nconst TrendsEmployeesItemModel = types.model('TrendsEmployeeItem', {\n employeeIdpId: types.string,\n displayName: types.string,\n jobTitle: types.string,\n talentCode: types.maybeNull(types.string),\n isFlightRisk: types.boolean,\n isRoleChangePathway: types.boolean,\n isOnProbation: types.boolean,\n isOnLongTermLeave: types.boolean,\n roleChangeTimeFrame: types.maybeNull(types.number),\n});\n\nexport interface ITrendsEmployeesItem extends Instance {}\n\nexport type IRoleCount = { role: string; count: number };\n\nexport const TrendsEmployeesModel = types\n .model('TrendsEmployees', {\n value: types.optional(types.array(TrendsEmployeesItemModel), []),\n state: LoadingStateModel,\n })\n .actions((self) => ({\n loadEmployees: flow(function* (\n selectedSquad: string | null\n ): Generator, void, ITrendsEmployeesItem[]> {\n if (selectedSquad) {\n const { ajax } = getEnv(self);\n\n self.state = 'loading';\n try {\n self.value.clear();\n const value = yield ajax\n .get(makeTrendsUrl('Employees'), {\n searchParams: { squadName: selectedSquad },\n })\n .json()\n .then((values) => values.map((item) => TrendsEmployeesItemModel.create(item)));\n value.forEach((i) => self.value.push(i));\n self.state = 'done';\n } catch (e) {\n errorLog('Failed to load trend employees', e);\n self.state = 'error';\n }\n }\n }),\n }))\n .views((self) => ({\n sortByName(employees: ITrendsEmployeesItem[]) {\n return employees.sort((a, b) => (a.displayName > b.displayName ? 1 : -1));\n },\n get flightRiskEmployees() {\n return this.sortByName(self.value.filter((e) => e.isFlightRisk));\n },\n get employeesOnLongTermLeave() {\n return this.sortByName(self.value.filter((e) => e.isOnLongTermLeave));\n },\n get employeesOnRoleChangePathways() {\n return this.sortByName(self.value.filter((e) => e.isRoleChangePathway));\n },\n get employeesOnProbation() {\n return this.sortByName(self.value.filter((e) => e.isOnProbation));\n },\n employeesWithMatchingJobTitle(jobTitle: string) {\n return this.sortByName(self.value.filter((e) => e.jobTitle === jobTitle));\n },\n employeesWithMatchingTalentCode(talentCode: string) {\n return this.sortByName(self.value.filter((e) => e.talentCode === talentCode));\n },\n get talentCodeCounts() {\n const counts = self.value.reduce>((result, item) => {\n if (item.talentCode) result[item.talentCode] = (result[item.talentCode] || 0) + 1;\n return result;\n }, {});\n\n return Object.keys(counts).map((key) => {\n return { talentCode: key, count: counts[key] };\n });\n },\n get roleCounts(): IRoleCount[] {\n const counts = self.value.reduce>((result, item) => {\n if (item.jobTitle) result[item.jobTitle] = (result[item.jobTitle] || 0) + 1;\n return result;\n }, {});\n\n return Object.keys(counts).map((key) => {\n return { role: key, count: counts[key] };\n });\n },\n }));\n","import { errorLog } from 'index';\nimport { Instance, types } from 'mobx-state-tree';\nimport { api } from 'shared/api/interfaces';\nimport { flow, getEnv, LoadingStateModel } from '../util';\nimport { makeTrendsUrl } from './TrendsModel';\n\nexport type TimeRange = 'last_fy_quarter' | 'current_fy_quarter' | 'last_fy' | 'current_fy';\n\nconst PersonModel = types.model('Person', {\n idpId: types.string,\n givenName: types.string,\n familyName: types.string,\n displayName: types.string,\n roleType: types.maybeNull(types.string),\n squadName: types.maybeNull(types.string),\n});\n\nexport interface ISupportingOpportunityEmployee extends Instance {}\n\nconst SupportingOpportunitiesWithEmployeesItemModel = types.model(\n 'SupportingOpportunitiesWithEmployees',\n {\n tag: types.string,\n people: types.optional(types.array(PersonModel), []),\n }\n);\n\ninterface ISupportingOpportunitiesWithEmployeesItem\n extends Instance {}\n\nexport const SupportingOpportunitiesWithEmployeesModel = types\n .model('SupportingOpportunitiesWithEmployees', {\n value: types.optional(types.array(SupportingOpportunitiesWithEmployeesItemModel), []),\n state: LoadingStateModel,\n selectedTimeRange: types.optional(\n types.enumeration([\n 'last_fy_quarter',\n 'current_fy_quarter',\n 'last_fy',\n 'current_fy',\n ]),\n 'current_fy_quarter'\n ),\n })\n .actions((self) => ({\n loadSupportingOpportunitiesWithEmployees: flow(function* (\n selectedSquad: string | null\n ): Generator<\n Promise,\n void,\n ISupportingOpportunitiesWithEmployeesItem[]\n > {\n if (selectedSquad) {\n const { ajax } = getEnv(self);\n\n self.state = 'loading';\n try {\n self.value.clear();\n const value = yield ajax\n .get(makeTrendsUrl('SupportingOpportunitiesWithEmployees'), {\n searchParams: { squadName: selectedSquad, timeRange: self.selectedTimeRange },\n })\n .json()\n .then((values) =>\n values.map((item) => SupportingOpportunitiesWithEmployeesItemModel.create(item))\n );\n value.forEach((i) => self.value.push(i));\n self.state = 'done';\n } catch (e) {\n errorLog('Failed to load supporting opportunities with employees', e);\n self.state = 'error';\n }\n }\n }),\n selectTimeRange(timeRage: TimeRange) {\n self.selectedTimeRange = timeRage;\n },\n }))\n .views((self) => ({\n sortByName(employees: ISupportingOpportunityEmployee[]) {\n return employees.slice().sort((a, b) => (a.displayName > b.displayName ? 1 : -1));\n },\n employeesWithMatchingTag(tag: string) {\n return this.sortByName(self.value.find((e) => e.tag === tag)?.people || []);\n },\n }));\n","import { Instance, types } from 'mobx-state-tree';\nimport { flow, getEnv, getRoot, LoadingStateModel } from 'domain/store/util';\nimport { TalentCodeTrendsByMonthModel } from './TalentCodeTrendsByMonthModel';\nimport { SupportingOpportunitiesByMonthModel } from './SupportingOpportunitiesByMonthModel';\nimport { TrendsEmployeesModel } from './TrendsEmployeesModel';\nimport { SupportingOpportunitiesWithEmployeesModel } from './SupportingOpportunitiesWithEmployeesModel';\nimport { api } from 'shared/api/interfaces';\nimport { errorLog } from 'index';\n\nexport function makeTrendsUrl(name: string): string {\n return `Trends/${name}`;\n}\n\nexport const TrendsModel = types\n .model('Trends', {\n squadsStatus: LoadingStateModel,\n selectedSquad: types.optional(types.string, ''),\n talentCodeTrendsByMonth: types.optional(TalentCodeTrendsByMonthModel, {}),\n supportingOpportunitiesByMonth: types.optional(SupportingOpportunitiesByMonthModel, {}),\n trendsEmployees: types.optional(TrendsEmployeesModel, {}),\n supportingOpportunitiesWithEmployees: types.optional(\n SupportingOpportunitiesWithEmployeesModel,\n {}\n ),\n roleDistributionOrder: types.array(types.string),\n })\n .actions((self) => ({\n afterAttach: flow(function* (): Generator<\n Promise,\n void,\n api.ChartMetaDataDto\n > {\n const { user } = getRoot(self);\n self.selectedSquad = user.squadName ?? '';\n\n const { ajax } = getEnv(self);\n try {\n const result = yield ajax.get(makeTrendsUrl('Meta'), {}).json();\n self.roleDistributionOrder.push(...result.roleDistributionOrderedSet);\n } catch (e) {\n errorLog('Failed to get chart metadata.', e);\n }\n }),\n }));\n\nexport interface ITrends extends Instance {}\n","import { types } from 'mobx-state-tree';\n\nexport enum PermissionLevel {\n None,\n View,\n Edit,\n}\n\nconst SquadsPermissionModel = types.model('Squads', {\n canViewTrends: types.optional(types.boolean, false),\n canViewFeed: types.optional(types.boolean, false),\n canViewNoteReview: types.optional(types.boolean, false),\n canViewTalentAnalysis: types.optional(types.boolean, false),\n roleChanges: types.optional(types.number, PermissionLevel.None),\n});\n\nconst EmployeePermissionModel = types.model('Employees', {\n primaryFlag: types.optional(types.number, PermissionLevel.None),\n flightRisk: types.optional(types.number, PermissionLevel.None),\n roleChangePathway: types.optional(types.number, PermissionLevel.None),\n longTermLeave: types.optional(types.number, PermissionLevel.None),\n status: types.optional(types.number, PermissionLevel.None),\n roleChanges: types.optional(types.number, PermissionLevel.None),\n canViewLeaveBalances: types.optional(types.boolean, false),\n canViewPurpleMeLink: types.optional(types.boolean, false),\n canViewPurpleMeRetroDate: types.optional(types.boolean, false),\n canSearchForFormerEmployees: types.optional(types.boolean, false),\n canViewNoneSquadEmployees: types.optional(types.boolean, false),\n});\n\nconst NotesPermissionModel = types.model('Notes', {\n canViewPreviousSquadNotes: types.optional(types.boolean, false),\n canViewSensitive: types.optional(types.boolean, false),\n canBypassReview: types.optional(types.boolean, false),\n canDeleteSubmitted: types.optional(types.boolean, false),\n});\n\nconst CatchUpsPermissionModel = types.model('CatchUps', {\n canViewMyCatchUps: types.optional(types.boolean, false),\n canViewSquadCatchUps: types.optional(types.boolean, false),\n});\n\nexport const PermissionsModel = types\n .model('Permissions', {\n canViewAllSquads: types.optional(types.boolean, false),\n\n canViewSquadTab: types.optional(types.boolean, false),\n canViewEmployeeTab: types.optional(types.boolean, false),\n canViewNoteTab: types.optional(types.boolean, false),\n canViewCatchupGroupTab: types.optional(types.boolean, false),\n\n canManageRoles: types.optional(types.boolean, false),\n canAssignSquads: types.optional(types.boolean, false),\n\n squads: types.optional(SquadsPermissionModel, {}),\n employees: types.optional(EmployeePermissionModel, {}),\n notes: types.optional(NotesPermissionModel, {}),\n catchUps: types.optional(CatchUpsPermissionModel, {}),\n })\n .views(() => {\n return {\n canView(permission: PermissionLevel): boolean {\n return permission === PermissionLevel.View || permission === PermissionLevel.Edit;\n },\n canEdit(permission: PermissionLevel): boolean {\n return permission === PermissionLevel.Edit;\n },\n };\n });\n","import { types } from 'mobx-state-tree';\nimport { flow, getEnv, LoadingStateModel } from 'domain/store/util';\nimport {\n createNote,\n INote,\n IPaginatedNotes,\n NoteModel,\n NoteSensitivity,\n} from 'domain/store/NoteModel';\nimport { api } from 'shared/api/interfaces';\n\nexport type ReviewState = 'in-progress' | 'reviewed' | 'unknown';\n\nexport const NotesModelMap = types.map(NoteModel);\n\nexport const ReviewModel = types\n .model('ForReview', {\n status: LoadingStateModel,\n reviewState: types.optional(\n types.enumeration(['in-progress', 'reviewed', 'unknown']),\n 'unknown'\n ),\n numberOfPendingNotes: types.integer,\n })\n .actions((self) => ({\n getNote: flow(function* (noteId: number): Generator, INote | null, INote> {\n try {\n const { ajax } = getEnv(self);\n self.status = 'loading';\n\n const note = yield ajax\n .get('Notes/noteId', { searchParams: { noteId } })\n .json()\n .then((n) => createNote(n));\n\n self.reviewState = note.status === 'pending' ? 'in-progress' : 'reviewed';\n return note;\n } catch (e) {\n if (e.response && e.response.status === 403) {\n self.status = 'unauthorized';\n } else {\n self.status = 'error';\n }\n } finally {\n self.status = 'done';\n }\n\n return null;\n }),\n\n getNotes: flow(function* (\n selectedSquad: string,\n page: number,\n size: number\n ): Generator, IPaginatedNotes, IPaginatedNotes> {\n const { ajax } = getEnv(self);\n self.status = 'loading';\n\n let notes: IPaginatedNotes = {\n notes: [],\n totalCount: 0,\n };\n\n try {\n if (self.reviewState === 'reviewed') {\n notes = yield ajax\n .get('Notes/reviewed/me', { searchParams: { page, size } })\n .json()\n .then((result) => {\n return {\n notes: result.notes.map((note) => createNote(note)),\n totalCount: result.totalCount,\n };\n });\n } else {\n self.reviewState = 'in-progress';\n notes = yield ajax\n .get('Notes/to-review', {\n searchParams: { squadName: selectedSquad, page, size },\n })\n .json()\n .then((result) => {\n return {\n notes: result.notes.map((note) => createNote(note)),\n totalCount: result.totalCount,\n };\n });\n }\n\n self.status = 'done';\n } catch (e) {\n if (e.response && e.response.status === 403) {\n self.status = 'unauthorized';\n } else {\n self.status = 'error';\n }\n }\n\n return notes;\n }),\n getNumberPendingNotes: flow(function* (\n selectedSquad: string\n ): Generator, void, number> {\n const { ajax } = getEnv(self);\n const numberOfNotes = yield ajax\n .get('Notes/to-review/count', { searchParams: { squadName: selectedSquad } })\n .json();\n\n self.numberOfPendingNotes = numberOfNotes;\n }),\n updateNoteSensitivity: flow(function* (sensitivity: NoteSensitivity, noteId: number) {\n const { ajax } = getEnv(self);\n yield ajax('Notes/updatenotesensitivity', {\n json: { sensitivity, noteId } as api.UpdateNoteSensitivityRequest,\n method: 'post',\n }).json();\n\n self.numberOfPendingNotes -= 1;\n }),\n updateReviewState: function (state: ReviewState): void {\n self.reviewState = state;\n },\n }));\n","import { ResponsePromise } from 'ky';\nimport { Instance, types } from 'mobx-state-tree';\nimport { createNote, INote, INoteRequest, IPaginatedNotes, NoteModel } from './NoteModel';\nimport { flow, getEnv } from './util';\nimport { ReviewModel } from './ReviewModel';\nimport { PermissionsModel } from './PermissionsModel';\nimport { api } from 'shared/api/interfaces';\n\nexport const NotesModelMap = types.map(NoteModel);\n\nexport interface ISquadUser extends api.PersonDto {}\n\nconst selectedSquadStorageKey = 'YOUtopia.User.SquadName';\n\nexport const UserModel = types\n .model('User', {\n idpId: types.maybe(types.string),\n familyName: types.maybe(types.string),\n givenName: types.maybe(types.string),\n squadName: types.maybe(types.string),\n permissions: types.optional(PermissionsModel, {}),\n draftNotes: NotesModelMap,\n submittedNotes: NotesModelMap,\n review: types.optional(ReviewModel, { numberOfPendingNotes: 0 }),\n selectedSquad: types.optional(types.string, ''),\n accessLevel: types.maybe(types.string),\n accessLevelDisplayName: types.maybe(types.string),\n assignedSquads: types.optional(types.array(types.string), []),\n })\n .actions((self) => {\n const loadEditNote = function* (noteId: number): Generator, INote, INote> {\n const { ajax } = getEnv(self);\n return yield ajax\n .get('Notes/noteId', { searchParams: { noteId } })\n .json()\n .then((note) => createNote(note));\n };\n\n return {\n loadEditNote: flow(loadEditNote),\n };\n })\n .actions((self) => ({\n loadSquadNotes: flow(function* (\n squad: string,\n page: number,\n size: number\n ): Generator, IPaginatedNotes, IPaginatedNotes> {\n const { ajax } = getEnv(self);\n return yield ajax\n .get('Notes/squad', { searchParams: { squadName: squad, page, size } })\n .json()\n .then((result) => {\n return {\n notes: result.notes.map((note) => createNote(note)),\n totalCount: result.totalCount,\n };\n });\n }),\n }))\n .actions((self) => {\n const saveNote = function* (\n formData: INoteRequest,\n noteId?: number\n ): Generator, Response, Response> {\n const { ajax } = getEnv(self);\n return yield ajax('Notes', {\n json: {\n ...formData,\n noteId: noteId || undefined /* just in case NaN is provided here */,\n },\n method: noteId ? 'put' : 'post',\n }).json();\n };\n\n const deleteNote = function* (noteId: number): Generator {\n const { ajax } = getEnv(self);\n yield ajax.delete('Notes', { searchParams: { noteId } });\n };\n\n return {\n saveNote: flow(saveNote),\n deleteNote: flow(deleteNote),\n };\n })\n .actions((self) => {\n const loadDraftNotes = function* (): Generator, void, INote[]> {\n const { ajax } = getEnv(self);\n const response = yield ajax\n .get('Notes/drafts/me')\n .json()\n .then((notes) => notes.map((note) => createNote(note)));\n self.draftNotes.clear();\n response.forEach((note: INote) => self.draftNotes.put(note));\n };\n\n const loadSubmittedNotes = function* (): Generator, void, INote[]> {\n const { ajax } = getEnv(self);\n const response = yield ajax\n .get('Notes/submitted_notes/me')\n .json()\n .then((notes) => notes.map((note) => createNote(note)));\n self.submittedNotes.clear();\n response.forEach((note: INote) => self.submittedNotes.put(note));\n };\n\n return {\n loadDraftNotes: flow(loadDraftNotes),\n loadSubmittedNotes: flow(loadSubmittedNotes),\n };\n })\n .actions((self) => ({\n getEmployeesForSquad: flow(function* (\n squadName: string\n ): Generator, ISquadUser[], ISquadUser[]> {\n const { ajax } = getEnv(self);\n return yield ajax\n .get('Employee/List', { searchParams: { squadName } })\n .json();\n }),\n getAllSquads: flow(function* (): Generator, string[], string[]> {\n const { ajax } = getEnv(self);\n return yield ajax.get('Squads').json();\n }),\n }))\n .actions((self) => ({\n setSquad: (squad: string) => {\n if (!self.permissions.canViewAllSquads && self.assignedSquads.length <= 0) return;\n\n self.selectedSquad = squad;\n sessionStorage.setItem(selectedSquadStorageKey, squad);\n },\n }))\n .views((self) => {\n const sortNotes = (a: INote, b: INote): number => {\n const aDate = a.modifiedDateMoment ?? a.createdDateMoment;\n const bDate = b.modifiedDateMoment ?? b.createdDateMoment;\n return bDate.diff(aDate);\n };\n\n return {\n get drafts() {\n return Array.from(self.draftNotes?.values() || []).sort(sortNotes);\n },\n get previous() {\n return Array.from(self.submittedNotes?.values() || []).sort(sortNotes);\n },\n };\n });\n\nexport interface IUser extends Instance {}\n\nexport interface IPermissions extends Instance {}\n\nexport const createUser = (user: api.LoggedInUserDto): IUser => {\n const getUserSquad = () => {\n const selectedSquad = sessionStorage.getItem(selectedSquadStorageKey);\n if (selectedSquad) {\n if (user.permissions.canViewAllSquads) {\n return selectedSquad;\n } else if (user.assignedSquads && user.assignedSquads.length > 0) {\n if (user.assignedSquads.includes(selectedSquad)) return selectedSquad;\n }\n }\n return user.squadName;\n };\n\n return UserModel.create({\n idpId: user.idpId,\n familyName: user.familyName,\n givenName: user.givenName,\n squadName: user.squadName,\n selectedSquad: getUserSquad(),\n permissions: user.permissions,\n draftNotes: {},\n submittedNotes: {},\n accessLevel: user.accessLevel,\n accessLevelDisplayName: user.accessLevelDisplayName,\n assignedSquads: user.assignedSquads,\n });\n};\n","import { errorLog } from 'index';\nimport { Instance, types } from 'mobx-state-tree';\nimport { api } from 'shared/api/interfaces';\nimport { flow, getEnv, LoadingStateModel } from '../util';\n\nexport const TalentAnalysisEmployeeModel = types.model('TalentAnalysisEmployee', {\n idpId: types.string,\n givenName: types.string,\n familyName: types.string,\n role: types.string,\n department: types.string,\n talentCode: types.string,\n statusType: types.number,\n roleChangePathwayTimeframeInMonths: types.number,\n isFlightRisk: types.optional(types.boolean, false),\n isRoleChangePathway: types.optional(types.boolean, false),\n isOnProbation: types.optional(types.boolean, false),\n isOnLongTermLeave: types.optional(types.boolean, false),\n longTermLeaveExpectedReturn: types.maybeNull(types.string),\n});\n\nexport interface IEmployeeTalentModel extends Instance {}\n\nexport const TalentAnalysisToolModel = types\n .model('TalentAnalysisTool', {\n state: LoadingStateModel,\n employees: types.optional(types.array(TalentAnalysisEmployeeModel), []),\n })\n .actions((self) => ({\n loadEmployees: flow(function* (\n squadName: string\n ): Generator, void, IEmployeeTalentModel[]> {\n const { ajax } = getEnv(self);\n self.state = 'loading';\n try {\n const result = yield ajax\n .get('TalentAnalysisTool', { searchParams: { squadName }, timeout: 600000 })\n .json()\n .then((values) => values.map((item) => TalentAnalysisEmployeeModel.create(item)));\n self.employees.clear();\n result.forEach((i) => self.employees.push(i));\n self.state = 'done';\n } catch (e) {\n errorLog('Unable to get all employees for squad: ' + squadName, e);\n self.state = 'error';\n }\n }),\n updateTalentCode: flow(function* (\n employeeIdpId: string,\n talentCode: number\n ): Generator, void, void> {\n const { ajax } = getEnv(self);\n\n yield ajax\n .post('employee/primaryflag', {\n json: {\n employeeIdpId,\n flagId: talentCode,\n reason: '',\n },\n })\n .json();\n }),\n }));\n\nexport interface ITalentAnalysisTool extends Instance {}\n","import { errorLog } from 'index';\nimport { flow, Instance, types } from 'mobx-state-tree';\nimport { api } from 'shared/api/interfaces';\nimport { LoadingStateModel, getEnv, ModelLoadingState } from '../util';\nimport { makeAdminUrl } from './AdminModel';\n\nexport const EmployeeModel = types.model('EmployeeModel', {\n idpId: types.string,\n name: types.string,\n givenName: types.string,\n familyName: types.string,\n position: types.string,\n capability: types.string,\n accessLevel: types.string,\n accessLevelDisplayName: types.string,\n noAccessRequested: types.boolean,\n assignedSquads: types.maybeNull(types.array(types.string)),\n});\n\nexport interface IEmployeeItem extends Instance {}\n\nexport const EmployeeListModel = types\n .model('EmployeeListModel', {\n employees: types.optional(types.array(EmployeeModel), []),\n squadEmployees: types.optional(types.array(EmployeeModel), []),\n state: LoadingStateModel,\n squadEmployeesState: LoadingStateModel,\n sendingRoleInvitationState: types.optional(\n types.enumeration(['loading', 'done', 'error', 'unauthorized']),\n 'done'\n ),\n })\n .actions((self) => ({\n loadSquadEmployees: flow(function* (\n squadNames: string[],\n includeUnknownRoles = false\n ): Generator, void, IEmployeeItem[]> {\n if (squadNames) {\n const { ajax } = getEnv(self);\n const searchParams = new URLSearchParams({ includeUnknownRoles: includeUnknownRoles });\n squadNames.forEach((squad) => {\n searchParams.append('squadName', squad);\n });\n self.squadEmployeesState = 'loading';\n\n try {\n self.squadEmployees.clear();\n const value = yield ajax\n .get(makeAdminUrl('employees'), {\n searchParams: searchParams,\n })\n .json()\n .then((values) => values.map((item) => EmployeeModel.create(item)));\n value.forEach((i) => self.squadEmployees.push(i));\n\n self.squadEmployeesState = 'done';\n } catch (e) {\n errorLog('Failed to load employees', e);\n self.state = 'error';\n }\n }\n }),\n loadEmployees: flow(function* (\n selectedSquad: string | null,\n includeUnknownRoles = false\n ): Generator, void, IEmployeeItem[]> {\n if (selectedSquad) {\n const { ajax } = getEnv(self);\n\n self.state = 'loading';\n\n try {\n self.employees.clear();\n const value = yield ajax\n .get(makeAdminUrl('employees'), {\n searchParams: { squadName: selectedSquad, includeUnknownRoles },\n })\n .json()\n .then((values) => values.map((item) => EmployeeModel.create(item)));\n value.forEach((i) => self.employees.push(i));\n\n self.state = 'done';\n } catch (e) {\n errorLog('Failed to load employees', e);\n self.state = 'error';\n }\n }\n }),\n sendChangeAccessLevelInvitation: flow(function* (\n requestForIdpId: string,\n currentRole: string,\n requestedRole: string\n ): Generator<\n Promise,\n api.ChangeAccessLevelMessageDto,\n api.ChangeAccessLevelMessageDto\n > {\n const { ajax } = getEnv(self);\n try {\n self.sendingRoleInvitationState = 'loading';\n return yield ajax\n .post(makeAdminUrl('ChangeAccessLevelRequest'), {\n json: { requestForIdpId, currentRole, requestedRole },\n })\n .json();\n } finally {\n self.sendingRoleInvitationState = 'done';\n }\n }),\n getLastChangeAccessLevelInvitationForEmployee: flow(function* (\n employeeIdpId: string\n ): Generator<\n Promise,\n api.ChangeAccessLevelMessageDto,\n api.ChangeAccessLevelMessageDto\n > {\n const { ajax } = getEnv(self);\n return yield ajax\n .get(makeAdminUrl('ChangeAccessLevelRequest'), {\n searchParams: { requestForIdpId: employeeIdpId },\n })\n .json();\n }),\n }));\n","import { errorLog } from 'index';\nimport { cast, flow, types } from 'mobx-state-tree';\nimport { api } from 'shared/api/interfaces';\nimport { LoadingStateModel, getEnv } from '../util';\nimport { makeAdminUrl } from './AdminModel';\nimport { EmployeeModel, IEmployeeItem } from './EmployeeListModel';\n\nexport const SquadAssignmentEmployeeListModel = types\n .model('EmployeeModel', {\n squadAssignmentEmployees: types.optional(types.array(EmployeeModel), []),\n state: LoadingStateModel,\n squadAssignmentEmployeesSearch: types.optional(types.array(EmployeeModel), []),\n selectedEmployee: types.maybeNull(EmployeeModel),\n searchState: LoadingStateModel,\n })\n .actions((self) => ({\n loadEmployeesEligibleForSquadAssignment: flow(function* (): Generator<\n Promise,\n void,\n IEmployeeItem[]\n > {\n const { ajax } = getEnv(self);\n\n self.state = 'loading';\n\n try {\n self.squadAssignmentEmployees.clear();\n const value = yield ajax\n .get(makeAdminUrl('MultipleSquadEmployees'))\n .json()\n .then((values) => values.map((item) => EmployeeModel.create(item)));\n value.forEach((i) => self.squadAssignmentEmployees.push(i));\n\n self.state = 'done';\n } catch (e) {\n errorLog('Failed to load employees', e);\n self.state = 'error';\n throw e;\n }\n }),\n assignSquads: flow(function* (\n assignSquadsRequest: api.AssignSquadsRequest\n ): Generator, void, void> {\n const { ajax } = getEnv(self);\n\n try {\n yield ajax.post(makeAdminUrl('AssignSquads'), { json: assignSquadsRequest }).json();\n\n const employee = self.squadAssignmentEmployees.find(\n (emp) => emp.idpId === assignSquadsRequest.employeeIdpId\n );\n\n if (employee) {\n employee.assignedSquads = cast(assignSquadsRequest.squads);\n }\n\n self.state = 'done';\n } catch (e) {\n errorLog('Failed to assign squads', e);\n self.state = 'error';\n throw e;\n }\n }),\n setSquadAssignmentEmployees(item: IEmployeeItem | null) {\n self.state = 'loading';\n self.squadAssignmentEmployees.clear();\n const employee = item as IEmployeeItem;\n if (employee) self.squadAssignmentEmployees.push(employee);\n self.selectedEmployee = employee;\n self.state = 'done';\n },\n searchEmployeesEligibleForSquadAssignment: flow(function* (\n nameFilter?: string,\n titleFiltered?: boolean\n ): Generator, void, IEmployeeItem[]> {\n const { ajax } = getEnv(self);\n self.searchState = 'loading';\n\n const searchParams = new URLSearchParams();\n if (nameFilter !== undefined) searchParams.set('nameFilter', nameFilter);\n if (titleFiltered !== undefined) searchParams.set('titleFiltered', titleFiltered.toString());\n try {\n const value = yield ajax\n .get(makeAdminUrl('MultipleSquadEmployees'), {\n searchParams: searchParams,\n })\n .json()\n .then((values) => values.map((item) => EmployeeModel.create(item)));\n self.squadAssignmentEmployeesSearch.clear();\n value.forEach((i) => self.squadAssignmentEmployeesSearch.push(i));\n self.searchState = 'done';\n } catch (e) {\n errorLog('Failed to load employees', e);\n self.searchState = 'error';\n throw e;\n }\n }),\n }));\n","import { Instance, types } from 'mobx-state-tree';\nimport { EmployeeListModel } from './EmployeeListModel';\nimport { SquadAssignmentEmployeeListModel } from './SquadAssignmentEmployeeListModel';\n\nexport function makeAdminUrl(name: string): string {\n return `Admin/${name}`;\n}\n\nexport const AdminModel = types.model('AdminModel', {\n employees: types.optional(EmployeeListModel, {}),\n SquadAssignment: types.optional(SquadAssignmentEmployeeListModel, {}),\n});\n\nexport interface IAdmin extends Instance {}\n","import { errorLog } from 'index';\nimport { Instance, types } from 'mobx-state-tree';\nimport moment, { utc } from 'moment';\nimport { api } from 'shared/api/interfaces';\nimport { flow, getEnv, LoadingStateModel } from '../util';\n\nexport const GroupMemberModel = types\n .model('GroupMemberModel', {\n idpId: types.string,\n displayName: types.string,\n givenName: types.string,\n familyName: types.string,\n lastCatchupDateUTC: types.maybeNull(types.string),\n nextCatchupDateUTC: types.maybeNull(types.string),\n catchupFrequencyInWeeks: types.number,\n catchupGroupId: types.number,\n })\n .views((self) => ({\n get lastCatchupDateAsLocalString() {\n return utc(self.lastCatchupDateUTC).local().format('DD/MM/YY');\n },\n get nextCatchupDateAsLocalString() {\n return utc(self.nextCatchupDateUTC).local().format('DD/MM/YY');\n },\n get daysUntilNextCatchup() {\n if (!self.lastCatchupDateUTC) return undefined;\n const nextCatchupDateLocal = utc(self.nextCatchupDateUTC).local().startOf('day');\n const now = moment().startOf('day');\n return nextCatchupDateLocal.diff(now, 'days');\n },\n }));\n\nexport interface IGroupMemberModel extends Instance {}\n\nexport function createCatchupGroupMember(member: api.CatchupGroupMemberDto): IGroupMemberModel {\n return GroupMemberModel.create({\n ...member,\n nextCatchupDateUTC: member.nextCatchupDateUTC,\n lastCatchupDateUTC: member.lastCatchupDateUTC,\n });\n}\n\nexport const GroupModel = types.model('GroupModel', {\n catchupGroupId: types.number,\n catchupGroupName: types.string,\n members: types.array(GroupMemberModel),\n});\n\nexport interface IGroupModel extends Instance {}\n\nexport function createCatchupGroup(cug: api.CatchupGroupDto): IGroupModel {\n return GroupModel.create({\n catchupGroupId: cug.catchupGroupId,\n catchupGroupName: cug.catchupGroupName,\n members: cug.members.map((m) => createCatchupGroupMember(m)),\n });\n}\n\nexport const CatchUpsModel = types\n .model('GroupListModel', {\n groups: types.optional(types.array(GroupModel), []),\n state: LoadingStateModel,\n })\n .actions((self) => ({\n loadGroups: flow(function* (): Generator, void, IGroupModel[]> {\n const { ajax } = getEnv(self);\n\n self.state = 'loading';\n\n try {\n self.groups.clear();\n const result = yield ajax\n .get('Catchup/groups/me')\n .json()\n .then((cugs) => cugs.map((cug) => createCatchupGroup(cug)));\n\n self.groups.clear();\n result.forEach((g: IGroupModel) => self.groups.push(g));\n self.state = 'done';\n } catch (error) {\n errorLog('Failed to load groups', error);\n self.state = 'error';\n }\n }),\n createGroup: flow(function* (\n catchupGroupName: string\n ): Generator, void, IGroupModel> {\n const { ajax } = getEnv(self);\n\n try {\n const result = yield ajax\n .post('Catchup/groups', {\n json: {\n catchupGroupName,\n },\n })\n .json()\n .then((cug) => createCatchupGroup(cug));\n\n self.groups.push(result);\n } catch (error) {\n errorLog('Failed to get catchup groups', error);\n throw error;\n }\n }),\n addMember: flow(function* (\n employeeIdpId: string,\n groupId: number,\n frequency: number\n ): Generator, void, IGroupMemberModel> {\n const { ajax } = getEnv(self);\n\n const result = yield ajax\n .post('Catchup/groups/members', {\n json: {\n groupId,\n employeeIdpId,\n frequency,\n },\n })\n .json()\n .then((cugm) => createCatchupGroupMember(cugm));\n\n self.groups.find((g) => g.catchupGroupId === groupId)?.members.push(result);\n }),\n deleteGroup: flow(function* (catchupGroupId: number): Generator, void, void> {\n const { ajax } = getEnv(self);\n yield ajax\n .delete('Catchup/groups', {\n searchParams: {\n catchupGroupId,\n },\n })\n .json();\n\n const group = self.groups.find((g) => g.catchupGroupId === catchupGroupId);\n group && self.groups.remove(group);\n }),\n renameGroup: flow(function* (\n catchupGroupId: number,\n groupName: string\n ): Generator, void, void> {\n const { ajax } = getEnv(self);\n return yield ajax\n .put('Catchup', {\n json: {\n catchupGroupId,\n groupName,\n },\n })\n .json();\n }),\n updateCatchupFrequency: flow(function* (\n catchupGroupId: number,\n catchupGroupMemberIdpId: string,\n frequency: number\n ): Generator, void, IGroupMemberModel> {\n const { ajax } = getEnv(self);\n\n const result = yield ajax\n .put('Catchup/groups/members/frequency', {\n json: {\n catchupGroupId,\n catchupGroupMemberIdpId,\n frequency,\n },\n })\n .json()\n .then((cugm) => createCatchupGroupMember(cugm));\n\n const group = self.groups.find((g) => g.catchupGroupId === catchupGroupId);\n const member = group?.members.find((m) => m.idpId === result.idpId);\n if (group && member) {\n member.nextCatchupDateUTC = result.nextCatchupDateUTC;\n }\n }),\n removeMemberFromGroup: flow(function* (\n catchupGroupId: number,\n catchupGroupMemberIdpId: string\n ): Generator, void, void> {\n const { ajax } = getEnv(self);\n yield ajax\n .delete('Catchup/groups/members', {\n searchParams: {\n catchupGroupId,\n catchupGroupMemberIdpId,\n },\n })\n .json();\n\n const group = self.groups.find((g) => g.catchupGroupId === catchupGroupId);\n const member = group?.members.find((m) => m.idpId === catchupGroupMemberIdpId);\n\n if (group && member) {\n group.members.remove(member);\n }\n }),\n }));\n\nexport interface ICatchUpsModel extends Instance {}\n","import { Instance, types } from 'mobx-state-tree';\n\nexport const PagingCacheModel = types\n .model('PagingCacheModel', {\n currentPageCache: types.integer,\n rowsPerPageCache: types.integer,\n })\n .actions((self) => ({\n setCurrentPageCache: (page: number) => (self.currentPageCache = page),\n setRowsPerPageCache: (rowsPerPage: number) => (self.rowsPerPageCache = rowsPerPage),\n }));\n\nexport interface IPagingCache extends Instance {}\n","import { Instance, types } from 'mobx-state-tree';\nimport { flow, getEnv, LoadingStateModel } from '../util';\nimport moment, { utc } from 'moment';\nimport { api } from 'shared/api/interfaces';\nimport { errorLog } from 'index';\n\nconst PersonModel = types.model('Person', {\n idpId: types.string,\n givenName: types.string,\n familyName: types.string,\n displayName: types.string,\n roleType: types.maybeNull(types.string),\n squadName: types.maybeNull(types.string),\n});\n\nexport interface IPerson extends Instance {}\n\nconst SquadCatchUpItemModel = types\n .model('SquadCatchUpItem', {\n employee: PersonModel,\n personWhoCaughtUpWithEmployee: types.maybeNull(PersonModel),\n lastCatchupDateUTC: types.maybeNull(types.string),\n })\n .views((self) => ({\n get lastCatchupDateAsLocalString() {\n return utc(self.lastCatchupDateUTC).local().format('DD/MM/YY');\n },\n get daysSinceLastCatchup() {\n if (!self.lastCatchupDateUTC) return undefined;\n const lastCatchupDateLocal = utc(self.lastCatchupDateUTC).local().startOf('day');\n const now = moment().startOf('day');\n return now.diff(lastCatchupDateLocal, 'days');\n },\n }));\n\nexport interface ISquadCatchUpItem extends Instance {}\n\nexport function createSquadCatchUpItem(item: api.SquadCatchupDto): ISquadCatchUpItem {\n return SquadCatchUpItemModel.create({\n employee: item.employee,\n lastCatchupDateUTC: item.lastCatchupDateUTC,\n personWhoCaughtUpWithEmployee: item.personWhoCaughtUpWithEmployee,\n });\n}\n\nexport const SquadCatchUpsModel = types\n .model('SquadCatchUpsModel', {\n squadCatchUps: types.array(SquadCatchUpItemModel),\n state: LoadingStateModel,\n })\n .actions((self) => ({\n loadCatchupsForSquad: flow(function* (\n squadName: string\n ): Generator, void, ISquadCatchUpItem[]> {\n const { ajax } = getEnv(self);\n\n try {\n self.state = 'loading';\n self.squadCatchUps.clear();\n const result = yield ajax\n .get('Catchup/squad', { searchParams: { squadName } })\n .json()\n .then((scus) => scus.map((scu) => createSquadCatchUpItem(scu)));\n\n result.map((s) => self.squadCatchUps.push(s));\n self.state = 'done';\n } catch (error) {\n errorLog('Failed to load squad catch-ups', error);\n self.state = 'error';\n }\n }),\n }));\n\nexport interface ISquadCatchUpsModel extends Instance {}\n","import { IAuthenticationProvider } from 'auth/AuthenticationTypes';\nimport ky from 'ky';\nimport { Instance, types } from 'mobx-state-tree';\nimport { EmployeeJourneyModel } from './employeeJourney/EmployeeJourneyModel';\nimport { FlagsModel } from './FlagsModel';\nimport { GraphModel } from './singletons/GraphModel';\nimport { NotificationModel } from './singletons/NotificationModel';\nimport { SecurityModel } from './singletons/SecurityModel';\nimport { TagsModel } from './TagsModel';\nimport { TrendsModel } from './trends/TrendsModel';\nimport { createUser, IUser, UserModel } from './UserModel';\nimport { flow, getDefaultAjaxInstance, getEnv, LoadingStateModel } from './util';\nimport { TalentAnalysisToolModel } from './talentAnalysisTool/TalentAnalysisToolModel';\nimport { AdminModel } from './admin/AdminModel';\nimport { CatchUpsModel } from './catchUps/CatchUpsModel';\nimport { PagingCacheModel } from './PagingCacheModel';\nimport { DEFAULT_PAGE_NUMBER, DEFAULT_ROWS_PER_PAGE } from 'views/ViewConstants';\nimport { SquadCatchUpsModel } from './catchUps/SquadCatchUpsModel';\nimport { api } from 'shared/api/interfaces';\nimport { errorLog } from 'index';\nimport { RoleChangeModel } from './employeeJourney/RoleChangeModel';\n\nconst RootStoreModel = types\n .model(`RootStoreModel`, {\n graph: types.optional(GraphModel, {}),\n security: types.optional(SecurityModel, {}),\n notifications: types.optional(NotificationModel, {}),\n tags: types.optional(TagsModel, {}),\n flags: types.optional(FlagsModel, {}),\n user: types.optional(UserModel, {}),\n employeeJourney: types.optional(EmployeeJourneyModel, {}),\n state: LoadingStateModel,\n trends: types.optional(TrendsModel, {}),\n talentAnalysis: types.optional(TalentAnalysisToolModel, {}),\n admin: types.optional(AdminModel, {}),\n catchUpGroups: types.optional(CatchUpsModel, {}),\n squadCatchUps: types.optional(SquadCatchUpsModel, {}),\n pagingCache: types.optional(PagingCacheModel, {\n currentPageCache: DEFAULT_PAGE_NUMBER,\n rowsPerPageCache: DEFAULT_ROWS_PER_PAGE,\n }),\n roleChange: types.optional(RoleChangeModel, {}),\n })\n .actions((self) => ({\n afterCreate: flow(function* (): Generator, void, IUser> {\n const { ajax } = getEnv(self);\n\n try {\n self.user = yield ajax\n .get('User')\n .json()\n .then((user) => createUser(user));\n self.state = 'done';\n } catch (e) {\n errorLog('GET user failed.', e);\n const k = e as ky.HTTPError;\n if (k.response && k.response.status === 403) {\n self.state = 'unauthorized';\n } else {\n self.state = 'error';\n }\n }\n }),\n }))\n .views((self) => ({\n get isLoading() {\n return self.state === 'loading';\n },\n }));\n\nexport interface IRootStoreModel extends Instance {}\n\nexport interface IRootStoreEnvironment {\n ajax: typeof ky;\n auth: IAuthenticationProvider;\n}\n\nexport function getDefaultStore(auth: IAuthenticationProvider): IRootStoreModel {\n const ajax = getDefaultAjaxInstance(auth);\n\n return RootStoreModel.create({ state: 'loading' }, { auth, ajax });\n}\n","export const CLIENT_ID = process.env.REACT_APP_CLIENT_ID || 'client-id-not-set';\nexport const TENANT_ID = process.env.REACT_APP_TENANT_ID || 'tenant-id-not-set';\nexport const AUTHORITY = `https://login.microsoftonline.com/${TENANT_ID}`;\n\nconst NODE_ENV = process.env.NODE_ENV;\nexport const isDevelopment = NODE_ENV === 'development';\n","import { Account } from 'msal';\n\nexport class AuthenticationAccount extends Account {}\n\nexport type AuthenticationProviderState =\n | 'signing-in'\n | 'signed-in'\n | 'redirecting'\n | 'signed-out'\n | 'loading'\n | 'login-error';\n\nexport interface IAuthenticationProvider {\n readonly initialState: AuthenticationProviderState;\n readonly account: AuthenticationAccount | null;\n\n signIn(): Promise;\n\n signOut(): void;\n\n getIsSignedIn(): Promise;\n\n getApiAccessToken(): Promise;\n\n getGraphAccessToken(scopes?: string[]): Promise;\n}\n\nexport class AuthenticationError extends Error {\n constructor() {\n super('Not Authenticated');\n }\n}\n","import {\n AuthenticationParameters,\n AuthError,\n AuthResponse,\n Configuration,\n UserAgentApplication,\n} from 'msal';\n\nimport {\n AuthenticationAccount,\n AuthenticationError,\n AuthenticationProviderState,\n IAuthenticationProvider,\n} from './AuthenticationTypes';\n\nexport class AuthenticationProvider implements IAuthenticationProvider {\n private readonly application: UserAgentApplication;\n\n constructor(config: Configuration, private readonly authParams: AuthenticationParameters) {\n this.application = new UserAgentApplication(config);\n }\n\n public get initialState(): AuthenticationProviderState {\n return 'loading';\n }\n\n public get account(): AuthenticationAccount | null {\n return this.application.getAccount();\n }\n\n public async signIn(): Promise {\n if (this.getIsSigningIn()) return 'signing-in';\n if (this.getIsLoginError()) return 'login-error';\n if (await this.getIsSignedIn()) return 'signed-in';\n\n this.signInRedirect();\n return 'redirecting';\n }\n\n public signOut(): void {\n sessionStorage.clear();\n this.application.logout();\n }\n\n public async getIsSignedIn(): Promise {\n const local = !this.getIsSigningIn() && !!this.account;\n return local && (await this.canAcquireTokenSilent());\n }\n\n public async getApiAccessToken(): Promise {\n if (await this.getIsSignedIn()) {\n const response = await this.application.acquireTokenSilent(this.authParams);\n return response.accessToken;\n }\n throw new AuthenticationError();\n }\n\n public async getGraphAccessToken(scopes?: string[]): Promise {\n const accessTokenRequest: AuthenticationParameters = {\n scopes: scopes || ['user.read'],\n };\n if (await this.getIsSignedIn()) {\n const response = await this.application.acquireTokenSilent(accessTokenRequest);\n return response.accessToken;\n }\n throw new AuthenticationError();\n }\n\n private signInRedirect() {\n this.application.loginRedirect(this.authParams);\n }\n\n private getIsLoginError(): boolean {\n let isLoginError = false;\n\n //\n // The callback is invoked immediately by MSAL.js\n //\n this.application.handleRedirectCallback((authErr: AuthError, response?: AuthResponse) => {\n isLoginError = !!authErr;\n });\n\n return isLoginError;\n }\n\n private getIsSigningIn(): boolean {\n return (\n this.application.getLoginInProgress() ||\n this.application.urlContainsHash(window.location.hash)\n );\n }\n\n private async canAcquireTokenSilent(): Promise {\n try {\n await this.application.acquireTokenSilent(this.authParams);\n return true;\n } catch {\n return false;\n }\n }\n}\n","import React from 'react';\n\nimport ReactDOM from 'react-dom';\nimport { createBrowserHistory } from 'history';\n\nimport 'typeface-roboto';\nimport 'typeface-open-sans';\n\nimport 'index.scss';\nimport { App } from 'views/App';\nimport { getDefaultStore } from 'domain/store/RootStoreModel';\nimport { AUTHORITY, CLIENT_ID, isDevelopment } from 'appSettings';\nimport { AuthenticationProvider } from 'auth/AuthenticationProvider';\nimport { IAuthenticationProvider } from 'auth/AuthenticationTypes';\n\n//\n// Make the FontAwesome CSS part of the bundle instead of\n// having a