{"version":3,"sources":["MyProfile/enum/RoleType.ts","featureToggles.ts","route/index.ts","service/authProvider.ts","service/apiClient.ts","service/queryClient.ts","components/MediaQuery/DesktopSection.tsx","components/MediaQuery/MobileSection.tsx","components/AbbLogo/AbbLogo.tsx","components/ToastProvider/ToastProvider.style.tsx","components/ToastProvider/MultipleMessagesSnackbar.tsx","components/ToastProvider/ToastProvider.tsx","components/ToastProvider/hooks.tsx","components/Button/PrintButton.tsx","components/Button/Button.tsx","components/Button/RoundButton.style.tsx","components/Button/RoundButton.tsx","components/Loader/Loader.style.tsx","components/Loader/Loader.tsx","components/Button/SyncButton.tsx","components/Link/Link.style.tsx","model/ApiError.ts","model/Pagination.ts","model/PaginatedList.ts","utils/formatDate.ts","utils/formatValue.ts","utils/helpers.ts","MyProfile/service/myProfile.api.ts","MyProfile/query/myProfile.query.tsx","MyProfile/model/MyProfile.ts","components/Avatar/Avatar.style.tsx","components/Avatar/Avatar.tsx","MyProfile/component/UserAvatar/UserAvatar.style.tsx","MyProfile/component/UserAvatar/UserAvatar.tsx","components/AppShell/Menu/Menu.style.tsx","components/AppShell/Menu/Menu.tsx","components/Page/Anchor/Anchor.style.tsx","components/Page/Anchor/Anchor.tsx","components/List/List.style.tsx","components/List/List.tsx","components/List/ListItem/ListItem.style.tsx","components/List/ListItem/ListItem.tsx","components/List/CollapseListItem/CollapseListItem.tsx","components/SearchBar/SearchBar.tsx","components/SearchBar/SearchBarBase.tsx","components/ExternalLink.tsx","components/DataField/DataField.style.tsx","components/DataField/DataField.tsx","components/Page/Card/Card.style.tsx","components/Page/Card/Card.tsx","components/DataObjectView/DataObjectView.style.tsx","components/DataObjectView/DataObjectView.tsx","components/Accordion/Accordion.style.tsx","components/Accordion/Accordion.tsx","components/Accordion/AccordionList.style.tsx","components/Accordion/AccordionList.tsx","components/Trivial/UsedIcons.tsx","components/Trivial/ChipButton.tsx","components/Trivial/ChipButtonList.tsx","components/SearchFiltersForm/UserFilersList.tsx","components/SearchFiltersForm/SearchFiltersForm.style.ts","components/SearchFiltersForm/SearchFiltersForm.tsx","components/QueryErrorResetBoundary/svg/NoInternetConnection.svg","components/TabsView/TabsView.style.tsx","components/TabsView/TabsView.tsx","components/AppShell/AppShell.style.tsx","components/AppShell/DetailsAppShell.tsx","components/QueryErrorResetBoundary/svg/Unathorized.svg","components/QueryErrorResetBoundary/svg/InternalServerError.svg","components/QueryErrorResetBoundary/svg/NotFound.svg","components/QueryErrorResetBoundary/svg/Forbidden.svg","components/QueryErrorResetBoundary/QueryErrorResetBoundary.style.tsx","components/QueryErrorResetBoundary/ErrorDetailsAppShell.tsx","components/QueryErrorResetBoundary/QueryErrorResetBoundary.tsx","components/Page/Content/Content.style.tsx","components/OverlayLoader/OverlayLoader.style.ts","components/OverlayLoader/OverlayLoader.tsx","components/Page/Content/Content.tsx","components/Page/ModalContent/ModalContent.style.tsx","components/Page/ModalContent/ModalContent.tsx","components/Page/Typography.tsx","components/Trivial/Common.style.tsx","components/Page/Editor/EditorFormActions.tsx","components/Table/Table.style.tsx","components/Table/Table.tsx","components/Table/TablePagination.tsx","components/DataTable/DataTable.style.tsx","components/DataTable/DataTable.tsx","components/DataTable/SearchResults/SearchResults.style.tsx","components/DataTable/SearchResults/SearchResults.tsx","components/Trivial/Stack.tsx","components/Modal/Modal.tsx","hooks/useModal.tsx","hooks/useMutating.tsx","hooks/useCollapseRowActions.tsx","components/FormikField/FormikTextField/FormikTextField.tsx","components/FormikField/FormikCheckboxField.tsx","components/Field/AutocompleteField/Autocomplete.style.tsx","CertificationList/service/certificationList.api.ts","Catalog/service/catalog.api.ts","Dictionary/service/dictionary.api.ts","page/ManageCertificates/Certificate/model.ts","components/FormikField/DictionaryField.tsx","components/FormikField/EditorBase.tsx","components/Field/AutocompleteField/AutocompleteField.tsx","components/FormikField/FormikAutocompleteField/FormikAutocompleteField.tsx","components/FormikField/index.tsx","components/List/NavListItem/NavListItem.tsx","components/AppShell/DrawerList/DrawerList.style.tsx","components/AppShell/DrawerList/menuList.tsx","components/AppShell/DrawerList/DrawerList.tsx","components/AppShell/AppShell.tsx","components/Login/Login.tsx","components/Login/LoginMock.tsx","MyProfile/component/RolesList/RolesList.style.tsx","MyProfile/component/RolesList/RolesList.tsx","MyProfile/component/MyRolesList/MyRolesList.tsx","Dictionary/query/dictionaryQuery.tsx","Dictionary/model/Company.ts","Dictionary/component/CompanySelectField/CompanySelectField.tsx","Dictionary/component/DivisionSelectField/DivisionSelectField.tsx","Dictionary/model/BusinessUnit.ts","Dictionary/component/BusinessUnitSelectField/BusinessUnitSelectField.tsx","Dictionary/model/PGUnit.ts","Dictionary/component/PGUnitSelectField/PGUnitSelectField.tsx","Dictionary/model/Language.ts","Dictionary/component/PreferredLanguagesSelectField/PreferredLanguagesSelectField.tsx","Dictionary/component/EmployeeJobSelectField/EmployeeJobSelectField.tsx","Dictionary/component/EmployeeJobFamilySelectField/EmployeeJobFamilySelectField.tsx","Dictionary/component/ManagerSelectField/ManagerSelectField.tsx","Dictionary/component/FunctionalManagerSelectField/FunctionalManagerSelectField.tsx","enums/CertificationPlanLevelType.ts","Dictionary/component/LevelSelectField/LevelSelectField.tsx","Dictionary/component/ValiditySelectField/ValiditySelectField.tsx","Dictionary/component/DateRangeSelectField/DateRangeSelectField.tsx","Dictionary/component/CertificateFunctionSelectField/CertificateFunctionSelectField.tsx","Dictionary/component/WorkTypeSelectField/WorkTypeSelectField.tsx","Dictionary/component/ActiveBusinessUnitSelectField/ActiveBusinessUnitSelectField.tsx","enums/CertificationPlanScopeType.ts","Dictionary/component/ScopeSelectField/ScopeSelectField.tsx","Dictionary/component/IsExternalSelectField/IsExternalSelectField.tsx","Dictionary/component/CompanyChannelSelectField/CompanyChannelSelectField.tsx","Dictionary/model/CompanyChannel.ts","Dictionary/component/CountriesSelectField/CountriesSelectField.tsx","Dictionary/component/CountriesSelectWithAllField/CountriesSelectWithAllField.tsx","Dictionary/component/CompanyWithFiltersField/CompanyWithFiltersField.tsx","Dictionary/component/TrainingManagerField/TrainingManagerField.tsx","Dictionary/model/Approver.ts","Dictionary/component/ApproverSelectField/ApproverSelectField.tsx","Dictionary/model/TaskType.ts","Dictionary/component/TaskTypeSelectField/TaskTypeSelectField.tsx","Dictionary/model/TaskStatus.ts","Dictionary/component/TaskStatusSelectField/TaskStatusSelectField.tsx","Dictionary/component/ScopeDetailsField/ScopeDetailsField.tsx","Dictionary/model/ScopeDetail.ts","MyProfile/component/EditUserForm/EditUserForm.style.tsx","MyProfile/component/EditUserForm/EditUserForm.tsx","MyProfile/component/ProfileInformationForm/ProfileInformationForm.tsx","Attachment/service/attachment.api.ts","Attachment/query/attachment.query.tsx","Attachment/component/AttachmentListItem/AttachmentListItem.style.tsx","Attachment/component/AttachmentListItem/AttachmentListItem.tsx","Attachment/component/AttachmentList/AttachmentList.style.tsx","Attachment/component/AttachmentList/AttachmentList.tsx","Attachment/component/MyAttachmentList/MyAttachmentList.tsx","page/MyProfilePage/MyProfilePage.style.tsx","page/MyProfilePage/MyProfilePage.tsx","HelpAndSupport/component/TrainingMoviesList/TrainingMoviesList.tsx","components/DataObjectView/DataObjectList.tsx","HelpAndSupport/component/RolesInPcsTable/RolesInPcsTable.tsx","utils/formatUserName.ts","theme/themeBase.ts","theme/createAbbTheme.ts","HelpAndSupport/component/BusinessUnitContacts/BusinessUnitContacts.style.tsx","HelpAndSupport/component/BusinessUnitContacts/BusinessUnitContacts.tsx","page/HelpAndSupportPage/HelpAndSupportPage.style.tsx","page/HelpAndSupportPage/HelpAndSupportPage.tsx","Certificate/service/certificate.api.ts","Certificate/query/certificateQuery.tsx","enums/CPStatusType.ts","components/StatusChip/StatusChip.tsx","components/StatusChip/CPStatusChip.tsx","enums/EnrollmentRequestStatus.ts","components/StatusChip/EnrollmentRequestStatusChip.tsx","enums/RequirementWorkFlowActions.ts","Requirement/model/Requirement.ts","Requirement/service/requirement.api.ts","Requirement/query/requirementQuery.tsx","enums/CertificateApproverType.ts","CertificationPlansPage/service/certificationPlans.api.ts","CertificationPlansPage/query/certificationPlansQuery.ts","CertificationPlansPage/service/certificationPlanWorkflow.api.ts","CertificationPlansPage/components/EditDatesModal/EditDatesModal.style.tsx","CertificationPlansPage/components/EditDatesModal/EditDatesModal.tsx","Requirement/component/RequirementPlanActions/RequirementPlanActions.tsx","Requirement/component/PlanRequirementsTable/PlanRequirementsTable.style.tsx","Requirement/component/PlanRequirementsTable/PlanRequirementsTable.tsx","Certificate/component/UserCertificateTable/UserCertificateTable.style.tsx","Certificate/component/UserCertificateTable/UserCertificateTable.tsx","Certificate/component/EnrollmentRequestTable/EnrollmentRequestTable.style.tsx","Certificate/component/EnrollmentRequestTable/EnrollmentRequestTable.tsx","Certificate/component/UserCertificationsView/UserCertificationsView.tsx","page/MyCertificationsPage/MyCertificationsPage.tsx","ByPerson/service/byPerson.api.ts","ByPerson/query/byPersonQuery.tsx","ByPerson/component/ByPersonFiltersForm/ByPersonFiltersForm.tsx","ByPerson/component/ByPersonTable/ByPersonTable.style.tsx","ByPerson/component/ByPersonTable/ByPersonTable.tsx","ByPerson/model/ByPersonSearchFilters.ts","page/CertificationsByPersonPage/CertificationsByPersonPage.tsx","Requirement/component/PlanRequirementsTable/CertificationPlansRequirementsTable.tsx","CertificationPlansPage/components/PrerequisitesTable.tsx","CertificationPlansPage/components/CertificationRequirementCommentsTable/CertificationRequirementCommentsTable.tsx","CertificationPlansPage/components/RecommendedCertificatesTable.tsx","enums/CertificationPlanWorkFlowActions.ts","PendingApprovalsPage/components/CertificateReleatedTableActions.tsx","CertificationPlansPage/components/CertificationPlanActions.tsx","CertificationPlansPage/components/HistoryTable.tsx","CertificationPlansPage/components/AlternativesCertificatesTable.tsx","CertificationPlansPage/components/CertificationRequirementCommentForm/CertificationRequirementCommentForm.style.ts","CertificationPlansPage/components/CertificationRequirementCommentForm/CertificationRequirementCommentForm.tsx","Attachment/component/RequirementAttachmentList/RequirementAttachmentList.tsx","CertificationPlansPage/components/CertificationRequirementAttachments/CertificationRequirementAttachments.style.ts","CertificationPlansPage/components/CertificationRequirementAttachments/CertificationRequirementAttachments.tsx","CertificationPlansPage/model/QuestionnarieDetails.ts","CertificationPlansPage/components/QuestionnarieSection.tsx","page/CertificationPlansDetailsPage/CertificationPlansDetailsPage.style.ts","page/CertificationPlansDetailsPage/CertificationPlansDetailsPage.tsx","CertificationPlansPage/query/certificationPlansHistoryQuery.ts","PendingApprovalsPage/service/pendingApprovals.api.ts","PendingApprovalsPage/query/pendingApprovals.query.ts","PendingApprovalsPage/components/ObjectTypeChip.tsx","PendingApprovalsPage/components/TaskStatusChip.tsx","PendingApprovalsPage/components/CertificateReleatedTable.tsx","PendingApprovalsPage/components/UserReleatedTable.tsx","PendingApprovalsPage/components/PendingApprovalsTabs.tsx","PendingApprovalsPage/components/PendingApprovalsSearchBar.tsx","PendingApprovalsPage/model/PendingApprovalsMapper.ts","page/PendingApprovalsPage/PendingApprovalsPage.tsx","Catalog/query/catalogQuery.tsx","TrainingSet/model/TrainingSet.ts","TrainingSet/service/trainingSet.api.ts","TrainingSet/component/TrainingSetsSelectField/TrainingSetsSelectField.tsx","TrainingSet/query/trainingSetQuery.tsx","Catalog/component/CatalogSearchFiltersForm/CatalogSearchFiltersForm.tsx","Catalog/component/CatalogCertificateTable/CatalogCertificateTable.style.tsx","Catalog/component/CatalogCertificateTable/CatalogCertificateTable.tsx","Catalog/component/SearchCertificates/SearchCertificates.tsx","page/CatalogPage/CatalogPage.tsx","Print/component/PrintOutForm/PrintOutForm.style.tsx","Dictionary/component/LanguagesByBusinessUnitSelectField/LanguagesByBusinessUnitSelectField.tsx","Print/model/Print.ts","Print/service/print.api.ts","Print/component/PrintOutForm/PrintOutForm.tsx","page/PrintOutCertificatesPage/PrintOutCertificatesPage.tsx","Print/query/printQuery.tsx","page/PrintOutCertificatesPage/PrintOutMyCertificatesPage.tsx","page/PrintOutCertificatesPage/PrintOutUserCertificatesPage.tsx","CertificationList/component/UserDetailsDataObjectView/UserDetailsDataObjectView.tsx","CertificationList/query/certificationListQuery.tsx","page/CatalogDetailsPage/CatalogDetailsPage.tsx","page/CertificationPlansEnrollRequestDetailsPage/CertificationPlansEnrollRequestDetailsPage.tsx","Certificate/component/TraningSetsTable/TraningSetsTable.tsx","Attachment/component/UserAttachmentList/UserAttachmentList.tsx","page/CertificationsByPersonDetailsPage/CertificationsByPersonDetailsPage.tsx","Certificate/component/MyLearningCourseHistoryTable/MyLearningCourseHistoryTable.tsx","page/CertificationsByPersonMyLearningPage/CertificationsByPersonMyLearningPage.tsx","Reports/model/ReportPageTypes.ts","Reports/service/reports.api.ts","Dictionary/component/HrgtUserSelectField/utils.ts","MassEnrollment/component/SearchUserForMassEnrollment.tsx","MassEnrollment/component/MassEnrollmentDialog.tsx","Reports/hooks/useColumnDefinition.tsx","Reports/hooks/useReportingFieldDisabled.tsx","Reports/hooks/useReportGridColumns.tsx","Reports/components/ReportingAutocomplate.tsx","Reports/components/ReportingDatePicker.tsx","Reports/components/ReportingTextField.tsx","Reports/components/FilterFieldFactory.tsx","Reports/components/AdvancedFiltersScope.tsx","Reports/components/FiltersScope.tsx","Reports/components/ReportDataGrid/GridContext.tsx","Reports/components/ReportDataGrid/ColumnsPanel.tsx","Reports/components/ReportDataGrid/GridPanel.tsx","Reports/components/ReportDataGrid/CustomColumnMenu.tsx","Reports/components/ReportDataGrid/ReportDataGrid.tsx","Reports/components/Settings/ActionsPanel.tsx","Reports/components/Settings/ReportSettingsList.tsx","Reports/components/Settings/ReportSettingsDetails.tsx","components/UserSearch/UserSearch.tsx","Reports/components/Settings/ScheduleSettings.tsx","Reports/components/Settings/ReportSettingsPanel.tsx","Reports/query/report.query.ts","Reports/query/report.mutation.ts","Reports/components/ReportDataGrid/GroupByDialog.tsx","Reports/components/ReportBasePage.tsx","page/StatusOfCertificationsPage/StatusOfCertificationsPage.tsx","page/UncompletedRequirementsPage/UncompletedRequirementsPage.tsx","MyProfile/component/UserTable/UserTable.tsx","MyProfile/component/RoleDetailsForm/RoleDetailsForm.tsx","MyProfile/component/AddUserRole/AddUserRole.tsx","MyProfile/component/UserSearchFiltersForm/UserSearchFiltersForm.tsx","MyProfile/model/UserSearchFilters.ts","MyProfile/component/SearchUsers/SearchUsers.style.tsx","MyProfile/component/SearchUsers/SearchUsers.tsx","page/MassEnrollmentPage/MassEnrollmentPage.style.tsx","page/MassEnrollmentPage/MassEnrollmentPage.tsx","page/BulkUploadPage/BulkUploadPage.style.tsx","page/BulkUploadPage/BulkUploadPage.tsx","MyProfile/component/EditExternalUserForm/EditExternalUserForm.tsx","MyProfile/component/UserRolesList/UserRolesList.tsx","MyProfile/model/UserAuthorization.ts","MyProfile/component/ManageUserRole/ManageUserRole.tsx","MyProfile/component/EditInternalUserForm/EditInternalUserForm.tsx","MyProfile/component/ManageUserTabs/ManageUserTabs.tsx","page/ExternalUsersPage/ExternalUsersPage.tsx","page/InternalUsersPage/InternalUsersPage.tsx","MyProfile/model/UserDeactivatedSearchFilters.ts","MyProfile/component/UserDeactivatedSearchFiltersForm/UserDeactivatedSearchFiltersForm.tsx","page/ArchivedUsersPage/ArchivedUsersPage.tsx","MyProfile/model/UserHrgtSearchFilters.ts","MyProfile/component/AddUsers/AddUsers.tsx","page/AddInternalUsersPage/AddInternalUsersPage.tsx","MyProfile/model/AddInternalDto.ts","page/AddExternalUsersPage/AddExternalUsersPage.tsx","MyProfile/model/AddExternalDto.ts","ApprovalGroupsPage/service/approvalGroup.api.ts","ApprovalGroupsPage/query/approvalGroup.query.ts","ApprovalGroupsPage/components/ApprovalGroupEdit.tsx","ApprovalGroupsPage/components/ApprovalGroupsTable.tsx","ApprovalGroupsPage/components/BusinessUnitSearchBar.tsx","ApprovalGroupsPage/components/ApprovalGroupUserList.tsx","Dictionary/component/HrgtUserSelectField/HrgtUserSelectField.tsx","ApprovalGroupsPage/components/ApprovalGroupUserAddForm.tsx","page/ApprovalGroupsPage/ApprovalGroupsPage.tsx","page/ApprovalGroupsDetailsPage/ApprovalGroupsDetailsPage.tsx","components/Page/PageBase.tsx","page/ManageCompanies/Editor.tsx","page/ManageCompanies/Filters.tsx","page/ManageCompanies/Page.tsx","page/ManageScopeDetails/Editor.tsx","page/ManageScopeDetails/Filters.tsx","page/ManageScopeDetails/Page.tsx","page/ManageCertificates/TrainingSet/model.ts","page/ManageCertificates/TrainingSet/Filters.tsx","page/ManageCertificates/Certificate/Filters.tsx","page/ManageCertificates/Certificate/Page.tsx","Router/PCSContext.tsx","page/ManageCertificates/Certificate/AlternativesCardPart.tsx","page/ManageCertificates/Certificate/RequirementsCardPart.tsx","page/ManageCertificates/Certificate/PrintOptionsCardPart.tsx","page/ManageCertificates/Certificate/CertificationListForSelectionPart.tsx","page/ManageCertificates/Certificate/CertificateLookupForField.tsx","page/ManageCertificates/Certificate/RecommendedCardPart.tsx","page/ManageCertificates/Certificate/PrerequisitesCardPart.tsx","page/ManageCertificates/Certificate/AvailabilityCardPart.tsx","page/ManageCertificates/Certificate/HeaderDataCardPart.tsx","page/ManageCertificates/Certificate/LifecycleCardPart.tsx","page/ManageCertificates/Certificate/AutomaticEnrollmentCardPart.tsx","page/ManageCertificates/Certificate/EditorPage.tsx","page/ManageCertificates/TrainingSet/Editor.tsx","page/ManageCertificates/TrainingSet/EditorPage.tsx","page/ManageCertificates/TrainingSet/PageRowView.tsx","page/ManageCertificates/TrainingSet/Page.tsx","page/PrintingCertificates/DigitalSignature/SignerSelectField.tsx","components/Alert/Alert.style.tsx","components/Alert/Alert.tsx","page/PrintingCertificates/DigitalSignature/ImageField.tsx","page/PrintingCertificates/DigitalSignature/Editor.tsx","page/PrintingCertificates/DigitalSignature/Filters.tsx","page/PrintingCertificates/DigitalSignature/Page.tsx","page/PrintingCertificates/PrintingStandards/Editor.tsx","page/PrintingCertificates/PrintingStandards/Filters.tsx","page/PrintingCertificates/PrintingStandards/Page.tsx","page/PrintingCertificates/PrintingHeaders/PrintingConfigurationCLIdentificatorsPart.tsx","page/PrintingCertificates/PrintingHeaders/Filters.tsx","page/PrintingCertificates/PrintingHeaders/Page.tsx","OldEnrollments/component/OldEnrollmentsTable.tsx","OldEnrollments/service/oldEnrollments.api.ts","page/OldEnrollmentsPage/OldEnrollmentsPage.tsx","OldEnrollments/query/oldEnrollmentsQuery.tsx","OldEnrollments/component/OldEnrollmentsDetailsTable.tsx","page/OldEnrollmentsDetailsPage/OldEnrollmentsDetailsPage.tsx","components/ProtectedRoute/ProtectedRoute.tsx","Router/ProfileLoader.tsx","Router/Router.tsx","reportWebVitals.ts","index.tsx"],"names":["RoleType","myRoleMatchToRoles","myRoleTypes","roleTypes","some","role","includes","displayRoleType","roleType","CertificationAuthority","HierarchicalManager","ChannelPartnerManager","PartnerSupervisor","CertificateBuilder","ExternalTechnician","ABBTechnician","getFeatureToggle","featureToggleName","process","MOCK_LOGIN","NEW_ADMIN","notFoundRoute","myProfileRoute","development","myCertificationsRoute","catalogRoute","printOutMyCertificatesRoute","catalogDetailsPath","catalogDetailsRoute","path","_toConsumableArray","createRoute","params","generatePath","helpAndSupportRoute","pcsReportingRoute","Administrator","Reader","Supervisor","ABBTrainingManager","certificationsStatusRoute","certificationsByPersonRoute","certificationPlansDetailsPath","certificationPlansDetailsRoute","certificationPlansEnrollRequestDetailsPath","certificationPlansEnrollRequestDetailsRoute","certificationsByPersonDetailsPath","certificationsByPersonDetailsRoute","certificationsByPersonMyLearningPath","certificationsByPersonMyLearningRoute","certificationsByPersonPrintOutCertificatesPath","certificationsByPersonPrintOutCertificatesRoute","uncompletedRequirementsRoute","pendingApprovalsRoute","Approver","massEnrollmentRoute","bulkUploadRoute","internalUsersRoute","addInternalUsersRoute","concat","externalUsersRoute","addExternalUsersRoute","approvalGroupsRoute","approvalGroupsDetailsPath","approvalGroupsDetailsRoute","archivedUsersRoute","manageCertificatesRoute","manageCertificatesDetailsRoutePath","manageCertificatesDetailsRoute","Developer","manageCompaniesRoute","scopeKeywordsRoute","digitalSignatureRoute","printingStandardRoute","printingHeadersRoute","trainingSetsRoute","trainingSetDetailsRoutePath","managTrainingSetDetailsRoute","printingCertificatesRoute","oldEnrollmentsRoute","oldEnrollmentsDetailsRoutePath","oldEnrollmentsDetailsRoute","OVERRIDE_TOKEN_KEY","config","auth","authority","_process$env$REACT_AP","clientId","_process$env$REACT_AP2","redirectUri","window","location","origin","postLogoutRedirectUri","validateAuthority","navigateToLoginRequestUrl","cache","cacheLocation","storeAuthStateInCookie","checkTokenExpired","token","localStorage","getItem","AuthenticationState","Unauthenticated","payload","_base64Url$replace2","base64Url","split","base64","replace","jsonPayload","decodeURIComponent","atob","map","c","charCodeAt","toString","slice","join","JSON","parse","getTokenData","exp","dayjs","unix","isAfter","Authenticated","authProvider","MockMsalAuthProvider","_classCallCheck","onAuthenticationStateChanged","authenticationState","authenticationStateHandler","_createClass","key","value","_profile$unique_name","_profile$unique_name2","profile","_base64Url$replace","parseJwtPayload","String","this","Account","unique_name","_localStorage$getItem","jwtAccessToken","jwtIdToken","account","getAccount","undefined","removeItem","listener","expiresOn","Date","setFullYear","getFullYear","Promise","resolve","accessToken","scopes","state","idToken","issuer","objectId","subject","tenantId","version","preferredName","name","homeObjectId","nonce","expiration","rawIdToken","claims","sid","cloudInstance","MsalAuthProvider","loginType","LoginType","Redirect","tokenRefreshUri","apiUrl","apiClient","axios","create","baseURL","headers","Accept","interceptors","request","use","_x","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_token$idToken","wrap","_context","prev","next","getIdToken","sent","abrupt","_objectSpread","Authorization","stop","apply","arguments","queryClient","QueryClient","defaultOptions","queries","refetchOnWindowFocus","refetchOnReconnect","retry","useErrorBoundary","DesktopSection","children","useMediaQuery","theme","breakpoints","up","_jsx","_Fragment","MobileSection","down","useStyles","makeStyles","logo","display","backgroundImage","backgroundSize","backgroundRepeat","AbbLogo","props","_props$variant","variant","style","other","_objectWithoutProperties","_excluded","classes","width","height","styles","className","useToastProviderStyles","_theme$palette$blue","_theme$palette$yellow","_theme$palette$red","_theme$palette$green","root","minWidth","containerRoot","typography","caption","icon","marginRight","spacing","iconBlue","color","palette","blue","main","iconYellow","yellow","iconRed","red","iconGreen","green","cancel","StyledSnackbar","styled","MaterialDesignContent","border","backgroundColor","fontWeight","_theme$palette$red2","_theme$palette$green2","_theme$palette$red3","_theme$palette$green3","card","borderRadius","error","light","success","grey","fontWeightBold","actionRoot","justifyContent","paper","padding","borderBottom","borderRight","borderLeft","fontSize","iconExpand","transform","transition","iconExpandOpen","iconError","iconSuccess","MultipleMessagesSnackbar","forwardRef","ref","id","closeSnackbar","useSnackbar","_useState","useState","_useState2","_slicedToArray","expanded","setExpanded","handleExpandClick","useCallback","oldExpanded","handleClose","SnackbarContent","_jsxs","Card","clsx","isError","CardActions","Report","CheckCircle","Typography","message","IconButton","size","_defineProperty","onClick","ExpandMoreIcon","CloseIcon","Collapse","in","timeout","unmountOnExit","Paper","Array","isArray","messages","length","msg","i","ToastProvider","notistackRef","createRef","handleCloseToast","_notistackRef$current","current","SnackbarProvider","maxSnack","action","Close","iconVariant","default","Info","warning","Warning","info","Components","multipleMessages","useToasts","_useSnackbar","enqueueSnackbar","showToast","showError","persist","whiteSpace","showMany","details","showWarning","showInfo","showSuccess","closeAll","PrintButton","useTheme","margin","Print","Button","muiProps","MUIButton","useRoundButtonStyles","position","outlined","borderWidth","disabled","RoundButton","Root","div","_templateObject","_taggedTemplateLiteral","Loader","CircularProgress","SyncButton","_ref$loading","loading","otherProps","Sync","Link","RRDLink","ApiError","_Error","_inherits","_super","_createSuper","_o","_axiosError$response","_axiosError$response$","_axiosError$response$2","_axiosError$response2","_axiosError$response3","_axiosError$response4","_axiosError$response$3","_axiosError$response5","_axiosError$response6","_axiosError$response7","_this","call","code","referenceId","url","requestContent","Type","Message","errors","field","Error","captureStackTrace","_assertThisInitialized","axiosError","response","data","parseInt","StatusCodes","INTERNAL_SERVER_ERROR","_response$data$Refere","_response$data","_axiosError$response$4","_axiosError$response8","_axiosError$response9","_response$data$Reques","_response$data$Error","_response$data2","ReferenceId","Url","RequestContent","_wrapNativeSuper","mapPaginationDto","pagination","pageSize","currentPageIndex","getPagination","paginatedList","_paginatedList$total","_paginatedList$curren","total","formatTemplate","formatDate","date","format","getDateNow","toISOString","capitalize","s","charAt","toUpperCase","getColDefName","columnDefinition","toLowerCase","scopeId","deepCopy","obj","json","stringify","uuid","r","Math","random","domainPath","myProfileApi","get","t0","getUserProfile","_ref2","_callee2","userId","_context2","post","_x2","_ref3","_callee3","dto","_context3","updateUser","_x6","_x7","_ref6","_callee6","_context6","updateExternalUser","_x8","_x9","_ref7","_callee7","_context7","askRemoval","_x10","_ref8","_callee8","_context8","delete","search","_x11","_x12","_x13","_ref9","_callee9","sort","filters","_context9","searchDeactivated","_x14","_x15","_ref10","_callee10","_context10","searchHrgt","_x16","_x17","_x18","_ref11","_callee11","_context11","archiveUsers","_x20","_ref13","_callee13","usersIds","_context13","withCertificateList","mergeUsers","_x21","_ref14","_callee14","_context14","reactiveUsers","_x19","_ref12","_callee12","_context12","addExternals","_x23","_ref16","_callee16","_context16","put","addInternals","_x22","_ref15","_callee15","_context15","getAuthorizations","_x24","_ref17","_callee17","_context17","updateAuthorizations","_x25","_ref18","_callee18","_context18","deleteAuthorizations","_x26","_ref19","_callee19","_context19","exportToExcel","_x27","_ref20","_callee20","_context20","responseType","fileDownload","exportToExcelDeactivated","_x28","_ref21","_callee21","_context21","getSettings","_x3","_ref4","_callee4","_context4","saveSettings","_x4","_x5","_ref5","_callee5","_context5","useMyProfileQuery","useQuery","refetchOnMount","staleTime","useUserProfileQuery","userKey","userDeactivatedKey","useUserHrgtQuery","options","userAuthorizationsKey","getFullName","user","firstName","lastName","getFullNameWithGeid","geid","getFullNameWithGeidAndEmail","email","getRoles","roles","type","mapToAutocompleteFieldItems","users","group","StyledAvatar","Avatar","StyledInitials","span","_templateObject2","getNameInitials","fullName","_ref$size","avatarProps","src","alt","Details","NameTypography","_templateObject3","EmailTypography","_templateObject4","UserAvatar","React","_ref$showDetails","showDetails","_useMyProfileQuery","isLoading","anchorOriginStyles","vertical","horizontal","transformOriginStyles","StyledDivider","Divider","Menu","logout","anchorEl","setAnchorEl","handleSetAnchorEl","event","currentTarget","component","ExpandMore","MUIMenu","open","anchorOrigin","transformOrigin","onClose","to","routes","MenuItem","ListItemIcon","MyProfileIcon","ListItemText","primary","LogOutIcon","StyledA","a","$hover","secondary","Anchor","href","_ref$hover","hover","target","rel","StyledListSubheader","ListSubheader","fontWeightRegular","List","items","renderItem","header","listProps","MUIList","subheader","item","index","Fragment","ListItemTextRoot","ListItemTextTitle","StyledSecondaryText","StyledListItem","ListItem","$tinyLeftPadding","selected","_theme$palette$shades","shades","red05_t","StyledListItemText","_templateObject5","StyledListItemIcon","_templateObject6","marginLeft","primaryText","secondaryText","iconPlaceholder","Icon","RightIcon","iconAsText","_ref$leftPadding","leftPadding","listItemProps","CollapseListItem","renderCollapseList","setOpen","ExpandLess","button","placeholderStyle","fontWeightLight","opacity","flexDirection","common","white","divider","searchBar","boxSizing","alignItems","contrastText","input","flexGrow","paddingBottom","filtersBadge","marginTop","actionsRoot","actions","SearchBar","_props$searchText","searchText","_props$placeholder","placeholder","_props$disabled","_props$InputBaseProps","InputBaseProps","_props$error","onEnter","onChange","onClearText","renderActions","_props$selectedFilter","selectedFiltersCount","Boolean","Clear","Search","InputBase","e","inputProps","onKeyUp","Badge","badgeContent","badge","FilterAltIcon","shape","dense","leftIcon","close","SearchBarBase","_props$loading","_props$margin","textDecoration","body2","fontWeightMedium","ExternalLink","_props$showIcon","showIcon","OpenInNewOutlined","TypographyWrapper","DataField","label","FormControl","fullWidth","InputLabel","StyledCard","$transparent","HeaderWrapper","listContent","elevation","_ref$transparent","transparent","cardProps","Header","$rightGap","Actions","StyledAccordion","Accordion","StyledAccordionSummary","AccordionSummary","StyledAccordionDetails","AccordionDetails","StyledAccordionActions","AccordionActions","_templateObject7","inputButtonStyles","top","right","camelCaseToText","camel","result","letter","DataObjectView","title","_props$dataSetMaps","dataSetMaps","renderExtraContent","_props$lg","lg","_props$md","md","_props$sm","sm","_props$xl","xl","_props$xs","xs","useMemo","Object","keys","headerName","CardContent","Grid","container","_s$field","_s$renderField","_s$headerName","renderField","memo","SummaryWrapper","summaryHeader","summaryIcon","summaryCaption","accordionProps","MUIAccordion","TransitionProps","square","expandIcon","SpaceTop","$marginTop","AccordionList","accordions","_ref$spaceBetween","spaceBetween","_ref$defaultExpandedF","defaultExpandedFirst","isExpanded","accordion","defaultExpanded","UsedIcons","DefaultFilter","MUI","Edit","Delete","Add","NavigateNext","NavigateBefore","Settings","HelperIcon","StyledChipButton","withStyles","paddingTop","Chip","ChipButton","p","ChipButtonList","idx","onSelected","onDelete","onDeleted","formatIcon","userFilterLogic","add","settings","filterValues","newItem","filter","push","indexOf","splice","defaultFilter","settingKey","getDefault","_settings$defaultFilt","_settings$filters","find","setDefault","load","UserFilterList","savingCurrent","Icons","UserFilterSaver","dirty","onSaved","onCancel","onEdit","UserFilterNameEditor","_props$items$filters","newTitle","isDefault","setState","edit","Box","TextField","defaultValue","required","Checkbox","defaultChecked","checked","PageActionsRoot","FieldRoot","$hintMargin","$topbottomPadding","marginBottom","getFormmikFormCounter","values","reduce","counter","_values$key","currentValue","SearchFiltersForm","SearchFiltersFormSmart","renderPageActions","_ref$searchBarField","searchBarField","initialValues","withFilterSaveKey","disableFilterSave","valuesToUse","_useToasts","useEffect","defaultValues","onSubmit","selectedFilter","fetchData","catch","console","_state$filters","_state$filters$filter","divisionFilter","formikProps","prevInfo","onUserFilterEdit","_state$filters2","_state$filters2$filte","assign","resetForm","onUserFilterSave","onFiltersReset","Formik","enableReinitialize","Form","setFieldValue","submitForm","text","onUserFilterDelete","onUserFilterSelected","_defs","_g","_rect","useTabsViewStyles","tabs","content","TabsView","tabIndexProp","tabIndex","labels","renderTabs","_props$animateHeight","animateHeight","setTabIndex","handleChangeIndex","Tabs","newValue","Tab","SwipeableViews","minHeight","onChangeIndex","containerStyle","WebkitOverflowScrolling","Grow","StyledTypography","LogoWrapper","StyledDrawer","Drawer","ContentRoot","DetailsContentRoot","DetailsTitleRoot","_templateObject8","defaultAppBackPath","DetailsAppShell","subtitle","goBack","_props$defaultGoBackP","defaultGoBackPath","history","useHistory","AppBar","Toolbar","ArrowBack","Skeleton","_extends","bind","source","prototype","hasOwnProperty","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgNoInternetConnection","svgRef","titleId","xmlns","xmlnsXlink","viewBox","x1","y1","x2","y2","gradientUnits","offset","stopColor","stopOpacity","d","fill","fillRule","ForwardRef","SvgUnathorized","rx","SvgInternalServerError","SvgNotFound","xlinkHref","cx","cy","ry","SvgForbidden","MessageRoot","handleGoBack","getErrorSvg","errorCode","UNAUTHORIZED","UnathorizedSvg","FORBIDDEN","ForbiddenSvg","NOT_FOUND","NotFoundSvg","InternalServerErrorSvg","ErrorDetailsAppShell","errorMsg","handleOnTryAgain","getErrorMessage","IsBrowserOnline","navigator","onLine","NoInternetConnectionSvg","QueryErrorResetBoundary","ReactQueryErrorResetBoundary","reset","ErrorBoundary","onReset","fallbackRender","resetErrorBoundary","mobileQuery","useContentStyles","headerContent","maxWidth","subHeader","grow","useOverlayLoaderStyles","overlay","zIndex","speedDial","OverlayLoader","_props$mutating","mutating","Content","renderSubheader","_ref$mutating","mutatingLabel","Helmet","HeaderRoot","ActionsRoot","HeaderTypography","ModalContent","BoldTypography","EditorFormActions","formik","isNew","onCancelAdd","showDiscard","StyledTable","Table","rows","renderRow","renderHeaderRow","tableProps","TableContainer","TableHead","TableBody","row","TablePagination","tablePaginationProps","selectIcon","MUITablePagination","rowsPerPageOptions","page","count","rowsPerPage","StyledToolbar","$isSelected","background","$outerBorder","ToolbarActionsRoot","StyledTableRow","TableRow","DataTableRow","_theme$palette$shades2","$isExpanded","HeaderTableRow","$headerOnTop","RowActionsRoot","CollapseTableCell","TableCell","DataTableCell","CollapseTableRow","_templateObject9","ToolbarTypography","_templateObject10","NoDataMessageWrapper","_templateObject11","DataTable","_defaultSort$sortExpr","columns","rowSelector","selectIsRowSelectable","onSortRequest","renderRowCells","renderSelectedActions","renderRowActions","renderCollapseRow","noDataMessage","defaultSort","onCheckboxChange","onRowsSelection","outerSelectedRows","_ref$outerBorder","outerSelectedRowsRaw","outerBorder","_ref$enableSort","enableSort","_ref$checkboxSelectio","checkboxSelection","_ref$showRowActionsOn","showRowActionsOnHover","_ref$hideCollapseColu","hideCollapseColumn","_ref$headerRowAlwaysO","headerRowAlwaysOnTop","selectedRowsData","setselectedRowsData","_useState3","_useState4","selectedRows","setSelectedRows","_useState5","_useState6","openedRows","setOpenedRows","_useState7","sortDescending","_useState8","direction","setDirection","_useState9","sortExpression","_useState10","orderByField","setOrderByField","_useState11","_useState12","fadeInRow","setFadeInRow","properSelectedRows","getRowSelector","handleSetSelectedRows","newSelectedRows","handleSelectedRow","rowId","rawrows","handleOnCheckboxChange","selectedRow","handleOnHeaderCheckboxChange","newSelectedRowsRow","handleOnCollapseRow","handleOnShowRowActions","handleOnHideRowActions","getHeaderCheckbox","isChecked","indeterminate","columnsCount","isRowSelected","onMouseEnter","onMouseLeave","column","align","Fade","KeyboardArrowUpIcon","KeyboardArrowDownIcon","colSpan","_column$width","notSortable","TableSortLabel","active","newDirection","SearchResults","Stack","_p$direction","Children","gap","child","FluidForEditors","_p$inRow","itemSize","max","round","inRow","noSpacing","modalRoot","document","getElementById","Modal","modalProps","createPortal","MUIModal","disableAutoFocus","disableEnforceFocus","useModal","openModal","closeModal","useMutating","mutationKeys","mutationCount","useIsMutating","predicate","m","k","_m$options","mutationKey","useCollapseRowActions","collapseRecords","setCollapseRecords","closeRow","prevCollapseRecords","record","Number","openRow","prevState","FormikTextField","_useField","useField","_useField2","meta","helpers","helperText","setValue","FormikCheckboxField","_meta$error","FormControlLabel","control","Tooltip","labelPlacement","HelperTypography","HelperTextRoot","getRootPath","certificationId","certificationListApi","getShort","certificateId","getHistory","getRequirements","getEnrollRequest","enroll","enrollDto","_args8","massEnroll","massEnrollDto","sendReminder","publish","rejectPublish","catalogApi","dictionaryApi","getCompanies","getManagers","query","getTrainingManagers","getEmployeeJobs","getEmployeeJobFamilies","getBusinessUnits","divisionid","getActiveBusinessUnits","getPgUnits","businessUnitId","getDivisions","getPreferredLanguages","getLanguagesByBusinessUnit","buId","getBusinessUnitContacts","getCertificateFunctions","getWorkTypes","getCompanyChannels","getCountries","getCompaniesWithFilter","companyFind","getApprovers","_ref24","_callee24","_context24","getScopeDetails","_ref23","_callee23","_context23","company","makeDefaultApi","basePath","deleteBatch","_deleteBatch","_callee25","ids","prms","fullUrl","_context25","URLSearchParams","validateCompanyName","_validateCompanyName","_callee26","command","_context26","scopeKeyword","findDateFormats","_findDateFormats","_callee27","_context27","digitalSignature","findSigner","_findSigner","_callee28","_context28","IPrintingCertificatesContract","preview","_preview","_callee29","_context29","standard","forExternal","_getSettings","_callee30","_context30","division","updateSettings","_updateSettings","_callee31","_command$division","_context31","defaultApiClient","_get","_find","_add","_update","_delete2","_callee32","_context32","_callee33","_context33","_callee34","_context34","update","_callee35","_context35","_callee36","itemId","_context36","KnownCertificateListStatus","API","certificationList","catalog","ICertificateListContract","Withdraw","_Withdraw","RemoveDraft","_RemoveDraft","Copy","_Copy","NewVersion","_NewVersion","NewSubVersion","_NewSubVersion","findOwner","_findOwner","findOwnerQuery","_query$searchFor","callquery","searchFor","byText","enabled","internal_dictionary","_internal_dictionary","dictionaryQuery","_query$businessArea$i","_query$businessArea","_query$division$id","_query$division","_query$scope$id","_query$scope","_query$regions$map","_query$regions","_query$divisions$map","_query$divisions","businessArea","scope","regions","reg","divisions","_query$regions$map2","_query$regions2","_query$businessArea$c","_query$businessArea2","_query$division$id2","_query$division2","_query$divisions$map2","_query$divisions2","_query$scope$code","_query$scope2","DictionaryFieldByCode","DictionaryField","CAPI","_p$query","refetch","_ref$data","Field","helper","_helper$field$value","Autocomplete","hidden","disableClearable","blockSort","b","localeCompare","multiple","onOpen","v","form","dependandFieldName","forEach","x","setFieldLogic","getOptionLabel","option","_option$display","getOptionSelected","noOptionsText","renderInput","touched","InputLabelProps","DictionaryFieldAdvanced","_meta$error2","getId","_useField3","_useField4","setSearchFor","_p$query2","_p$query2$data","timer","setTimeout","clearTimeout","_helper$field$value2","displayProperty","FEditorBase","onUpdateRow","getHelper","inner","onCommit","_p$label","CheckboxField","_p$label2","DropDownField","_DictionaryFieldByCode","cancelEdit","devActions","EditorBase","AutocompleteField","_ref$error","_ref$required","_ref$InputProps","InputProps","autocompleteFieldProps","endAdornment","_option$name","FormikAutocompleteField","_ref$multiple","onFieldChange","reason","FormikForApp","setYupLocale","mixed","NavListItem","collapseListItems","_ref$externalLink","externalLink","match","useRouteMatch","myRoles","disablePadding","isExact","certificationsList","CertificationsIcon","CatalogIcon","HelpAndSupportIcon","managementList","ReportingIcon","PendingApprovalsIcon","MassEnrollmentIcon","UserManagementIcon","AdministrationIcon","PrintIcon","relatedAppsList","MyLearningIcon","DrawerList","managementRoles","flat","_item$path2","AppShell","userNeedToUpdateProfile","mobileDrawerOpen","setMobileDrawerOpen","userCanNavigate","listen","MenuIcon","noWrap","boxShadow","shadows","backgroundPosition","left","rights","bottom","login","Login","warn","REACT_APP_VERSION","currentYear","getUTCFullYear","defaultProps","textAlign","subHeadline","Axios","REACT_APP_BASEURL","PASSWORD_KEY","LoginMock","emailError","password","passwordError","isValid","_yield$axios$post","setItem","finish","DeleteIconButton","AdminListItemRoot","getRolesListItems","PersonIcon","PeopleIcon","RolesList","_onSuccess","removable","myProfileRole","setMyProfileRole","handleOnItemClick","_useMutation","useMutation","userAuthorizationId","onSuccess","invalidateQueries","onError","removeUserRole","mutate","_useModal","_myProfileRole$detail","isRemovable","authorizationId","description1","description2","DeleteIcon","renderAdminListItem","MyRolesList","_data$roles","useActiveBusinessUnitsQuery","useCountriesQuery","useCompaniesWithFilterQuery","trainingManagersKey","getCompanyName","description","companies","CompanySelectField","_ref$disabled","_useCompaniesQuery","_useCompaniesQuery$da","DivisionSelectField","_ref$defaultOptions","_useDivisionsQuery","_useDivisionsQuery$da","businessUnits","toAutocomplateField","businessUnit","_businessUnit$id","_businessUnit$descrip","BusinessUnitSelectField","removePgUnitValue","divisionID","_useBusinessUnitsQuer","_useBusinessUnitsQuer2","getPgUnitFullName","pgUnit","PGUnitSelectField","buid","pgUnits","businessUnitID","_usePGUnitsQuery","_usePGUnitsQuery$data","unit","language","PreferredLanguagesSelectField","_usePreferredLanguage","EmployeeJobSelectField","_useEmployeeJobQuery","_useEmployeeJobQuery$","EmployeeJobFamilySelectField","_useEmployeeJobFamily","_useEmployeeJobFamily2","ManagerSelectField","initialValue","_useManagerQuery","_useManagerQuery$data","isFetching","onInputChange","eventValue","filterOptions","FunctionalManagerSelectField","_useFunctionalManager","_useFunctionalManager2","CertificationPlanLevelType","LevelSelectField","_ref3$disabled","entries","isNaN","ValiditySelectField","DateRangeOption","DateRangeSelectField","Custom","Today","Yesterday","Last7Days","CurrentMonth","PreviousMonth","Last90Days","CertificateFunctionSelectField","_useCertificateFuncti","_useCertificateFuncti2","WorkTypeSelectField","_useWorkTypesQuery","_useWorkTypesQuery$da","allBusinessUnitField","ActiveBusinessUnitSelectField","_useActiveBusinessUni","_useActiveBusinessUni2","CertificationPlanScopeType","ScopeSelectField","_ref$forNewItem","forNewItem","AllScopes","Application","General","Product","Process","HealthAndSafety","Sustainability","IsExternalType","getIsExternal","isExternal","Abb","External","All","IsExternalSelectField","CompanyChannelSelectField","companyChannels","_useCompanyChannelQue","_useCompanyChannelQue2","channel","CountriesSelectField","_props$label","_useCountriesQuery","_useCountriesQuery$da","CountriesSelectWithAllField","mapCompanyFilterParams","countryList","countryIds","country","CompanyWithFiltersField","filterParams","_ref$addAlloption","addAlloption","_useCompaniesWithFilt","_useCompaniesWithFilt2","TrainingManagerField","_useTrainingManagersQ","_useTrainingManagersQ2","ApproverSelectField","_useApproversQuery","_useApproversQuery$da","ObjectType","getTaskTypeItems","CertificateList","CertificationPlan","CPRequirement","CPEnrollmentRequest","Questionnaire","User","TaskTypeSelectField","TaskStatus","getTaskStatusItems","Open","TaskStatusSelectField","mapScopeDetailsFilterParams","ScopeDetailsField","scopeDetails","_useScopeDetailsQuery","_useScopeDetailsQuery2","mapEditUserDto","profileInformationForm","_profileInformationFo","_profileInformationFo2","_profileInformationFo3","_profileInformationFo4","_profileInformationFo5","_profileInformationFo6","_profileInformationFo7","_profileInformationFo8","_profileInformationFo9","_profileInformationFo10","_profileInformationFo11","_profileInformationFo12","_profileInformationFo13","_profileInformationFo14","managerGeid","manager","managerEmail","functionalmanagerGeid","functionalmanager","functionalmanagerEmail","companyId","divisionId","pgUnitId","employeeJobsIds","employeeJobs","job","employeeJobFamiliesIds","jobFamilies","preferredLanguagesIds","preferredLanguages","notes","city","EditUserForm","countryId","validationSchema","_ref$showUserCompanie","showUserCompanies","_ref$isExternalType","isExternalType","fillCompany","_user$manager","_user$functionalManag","_user$company","functionalManager","employeeJobFamilies","getInitialFormData","disableField","enableExternalFields","renderCompanyField","_hasError","_formikProps$values$d","_formikProps$values$d2","_formikProps$values$b","_formikProps$values$b2","_formikProps$values$b3","_formikProps$values$c","_initialValues$manage","_initialValues$functi","hasError","fieldName","disableSubmit","fields","multiline","formValidationSchema","Yup","typeError","min","ProfileInformationForm","_myProfile$country","myProfile","formData","attachmentApi","fileName","list","canCurrentUserRemoveAttachments","listByUserId","listByUserAndRequirementId","requirementId","uploadFiles","files","all","file","FormData","append","uploadFilesByUserId","uploadFilesByUserAndRequirementId","remove","getHelpFile","getHelpFiles","getBulkTemplate","uploadBulk","attachmentsKey","userAttachmentsKey","userRequirementsAttachmentsKey","ListItemRoot","li","IconButtonRoot","AttachmentListItem","attachmentOwnerId","attachmentRequirementId","onRemoveRequirementAttachmentSuccess","downloadAttachment","attachment","useQueryClient","removeAttachment","isDialogOpen","setIsDialogOpen","Dialog","DialogTitle","DialogActions","autoFocus","acceptedFiles","AttachmentList","onDropzoneSave","_ref$allowRemoveAttac","allowRemoveAttachment","_ref$disableAddAttach","disableAddAttachment","_ref$filesLimit","filesLimit","isDropzoneOpen","setIsDropzoneOpen","attachments","AttachmentIcon","DropzoneDialog","dialogTitle","dropzoneText","onSave","showPreviewsInDropzone","showPreviews","showAlerts","maxFileSize","MyAttachmentList","_data$result","_data$canCurrentUserR","_useAttachmentsQuery","uploadAttachment","AttachmentsCard","MyProfilePage","ArrowForwardIcon","TrainingMoviesList","mapToDataSetMap","dataTableColumns","omitFields","DataObjectList","renderDetails","IconButtonProps","renderDataObjectView","definedFor","approveObjective","certificationPlan","clBuilder","clApprover","externalUserManagement","browseReports","RolesInPcsTable","formatUserName","userName","fontFamilyBase","greys","gray06_t","gray05_t","red10_t","red80_t","red1_10","fontWeights","mainColor","whiteBase","createBorder","fade","dark","darken","orange","hint","fontFamily","subtitle1","subtitle2","h1","lineHeight","h2","h3","h4","h5","h6","body1","overrides","MuiPickersToolbar","toolbar","MuiPickersCalendarHeader","daysHeader","dayLabel","switchHeader","MuiPickersDay","day","daySelected","MuiTypography","MuiButton","sizeLarge","sizeSmall","MuiIconButton","MuiSvgIcon","colorPrimary","colorSecondary","fontSizeSmall","MuiDialogTitle","paddingLeft","paddingRight","MuiDialogContent","MuiDialogContentText","MuiTableSortLabel","MuiDialogActions","MuiSnackbar","MuiTextField","MuiInputLabel","asterisk","MuiAppBar","maxHeight","colorDefault","MuiAccordion","MuiCard","MuiChip","deleteIcon","MuiDropzoneArea","MuiDropzonePreviewList","removeButton","MuiAlert","standardSuccess","standardInfo","standardWarning","standardError","MuiAutocomplete","groupLabel","MuiCheckbox","MuiTableRow","MuiTableCell","head","MuiOutlinedInput","notchedOutline","MuiSelect","select","MuiFormLabel","MuiFormControlLabel","MuiFormHelperText","contained","MuiListItemText","MuiListItemIcon","MuiDrawer","MuiFilledInput","underline","adornedStart","adornedEnd","createMuiTheme","autocompleteInputStyles","BusinessUnitContacts","_useBusinessUnitConta","selectedBU","setSelectedBU","buContacts","buContactsToDisplay","buContact","bu","arr","findIndex","t","startAdornment","SearchIcon","_unit$phoneNumber","BusinessUnitIcon","PhoneIcon","phoneNumber","EmailIcon","StyledSubheaderTypography","HelpAndSupportPage","certificateApi","getMyCertificates","getUserCertifications","getUserHistory","updateUserHistory","getPlanRequirements","certificatePlanId","getUserTraningSets","useUserCertificationsQuery","userHistoryKey","CPStatusType","_theme$palette$blue2","_theme$palette$blue3","_theme$palette$orange","_theme$palette$orange2","_theme$palette$orange3","_theme$palette$yellow2","StatusChip","_props$color","CPStatusChip","status","InProcess","WaitingApproval","Approved","Expiring","ExpiringNoRenewal","WaitingRenewal","Expired","ExpiredNoRenewal","WaitingRenewalExpired","PendingQuestionnaire","PendingQuestionnaireExpired","RenewalEnrollment","RenewalEnrollmentExpired","Rejected","Removed","NotEnrolled","mapCPStatusType","EnrollmentRequestStatus","EnrollmentRequestStatusChip","Pending","RequirementWorkFlowActions","requirementWorFlowActionsArray","Submit","Approve","Reject","Reset","BackToWaitingApproval","Renew","EditDates","parseSelectedRequirementIds","selectedRequirementIds","getSelectedRequirements","requirements","requirementIds","requirement","getRequirementWorkflowActions","workflowActionsAcc","currentRequirement","workflowAction","userActions","requirementApi","addComment","comment","submit","renew","approve","reject","rejectReason","resetToApproval","updateDates","updateDto","patch","usePlanRequirementsQuery","CertificateApproverType","getCertificateApprover","ApprovedByRules","ApproverGroup","AtomaticllyWhenAllCompleted","AutomaticallyApprovedWhenSubmitted","CertificationRequestForm","HierarchicalResponsible","CompanyCoordinator","certificationPlanId","certificationPlanApi","getCertificationPlan","getCertificationPlanHistory","getCertificationRequirementComments","submitQuestionnarie","certificationPlansKey","certificationRequirementCommentsKey","getActionPath","certificationPlanWorkflowApi","expirationDate","submitForRenew","approveRenewalEnro","rejectRenewalEnro","approveEnrollRequest","rejectEnrollRequest","submitWithDate","submitForRenewWithDate","StyledForm","formId","getPickersDate","dateOrNull","getUpdateDate","EditDatesModal","requirementsIds","initialEnrollmentDate","initialSubmitDate","initialExpirationDate","initialApprovedDate","initialRenewalDate","initialDueDate","getUpdateRequirementsDateDto","getUpdateDateDto","enrollmentDate","setEnrollmentDate","submitDate","setSubmitDate","setExpirationDate","approvedDate","setApprovedDate","renewalDate","setRenewalDate","dueDate","setDueDate","preventDefault","KeyboardDatePicker","inputVariant","set","autoOk","submitKey","approveKey","rejectKey","resetKey","backToWaitingApprovalKey","renewKey","mutatingFilterKeys","getSuccessMessage","actionKey","getButtonContent","RequirementPlanActions","_onSuccess2","workflowActions","_ref$displayDisabledA","displayDisabledActions","onActionSuccess","setReason","isMutating","submitLoading","_useMutation2","renewLoading","_useMutation3","approveLoading","_useMutation4","rejectLoading","_useMutation5","resetLoading","_useMutation6","resetToApprovalLoading","closeDialog","getIsDisabled","displayButton","_requirements$map$fin","_requirements$map$fin2","_requirements$map$fin3","approvalDate","DialogContent","ev","RequirementsBar","DescriptionTypography","DescriptionCaptionTypography","_row$externalLinkName","listDescription","myLearningLink","myLearningLinkDescription","dangerouslySetInnerHTML","__html","listExtendedDescription","externalLinkName","approverType","_row$renewalDate","PlanRequirementsTable","_data$requirementsDon","_data$requirementsCou","_data$requirements","_data$requirements4","DataTableProps","useParams","_usePlanRequirementsQ","refetchUserCertifications","requirementsDone","requirementsCount","clearSelected","_data$requirements2","_data$requirements3","listCode","_data$requirements5","_data$requirements6","TitleTypography","expiredColumns","pendingColumns","enrollDate","completedColumns","UserCertificateTable","handleOpenDetails","collapseRow","ListIcon","NavigateNextIcon","certificate","enrollmentRequestsColumns","requestDate","EnrollmentRequestTable","UserCertificationsView","_userCertifications$c","_userCertifications$c2","_userCertifications$c3","_userCertifications$e","_userCertifications$e2","_userCertifications$e3","_userCertifications$e4","_userCertifications$e5","_userCertifications$e6","_userCertifications$p","_userCertifications$p2","_userCertifications$p3","_userCertifications$e7","_userCertifications$e8","_userCertifications$e9","userCertifications","completedCertificates","expiredCertificates","expiredNoRenewalCertificates","pendingCertificates","enrollmentRequests","MyCertificationsPage","_myProfile$id","_useUserCertification","handleOpenStatusPdfDetails","byPersonApi","byPersonKey","productGroups","companyList","ByPersonFiltersForm","onFiltersSubmit","fetchingKeys","useIsFetching","byPersonFiltersFormData","_byPersonFiltersFormD","_byPersonFiltersFormD2","_byPersonFiltersFormD3","_byPersonFiltersFormD4","_byPersonFiltersFormD5","_byPersonFiltersFormD6","personName","productGroupList","pg","userJobList","userJobFamilyList","mapByPersonSearchFilters","_values$division$id","_values$division","NameTableCellWrapper","displayName","enrollCount","completedCount","expiredCount","expiredNoRenewalCount","inProcessCount","trainingSetsInfo","completed","inProcess","percentageCompleted","ByPersonTable","getDetailsRoute","defaultSearchFilters","initialPagination","initialSort","CertificationsByPersonPage","setPagination","setSort","setFilters","_useByPersonQuery","useByPersonQuery","newData","isExportToExcelLoading","ExportIcon","searchFilters","onChangePage","prevPagination","basicColumns","approverTypeLabel","approverTypeDescription","fontStyle","catalogDetailsColumns","CertificationPlansRequirementsTable","displayRowActions","onRequirementActionSuccess","_row$additionalNotesC","additionalNotesCount","level","certificationListColumns","PrerequisitesTable","prerequisites","_ref8$title","isCatalog","_ref8$DataTableProps","commentAuthor","commentDateTime","CertificationRequirementCommentsTable","_useCertificationRequ","useCertificationRequirementCommentsQuery","provider","RecommendedCertificatesTable","recommendedCertificates","CertificationPlanWorkFlowActions","RenderSubmitWithDateDialog","submitAction","resetToApprovalKey","submitForRenewKey","renewalEnroApproveKey","renewalEnroRejectKey","removeKey","enrollKey","clApproveKey","clRejectKey","clRejectDisabledKey","clPublishKey","clRejectPublishKey","submitWithDateKey","submitForRenewWithDateKey","CertificationPlanActions","_actionsMap","isDialogForApproveOpen","setIsDialogForApproveOpen","isDialogForRenewOpen","setIsDialogForRenewOpen","userCertificationPlan","userEnrollmentRequest","_props$workflowAction","setQueryData","_useMutation8","_useMutation9","approveRenewalEnrollment","rejectRenewalEnrollment","handleNavigate","clApprove","_useMutation15","clReject","clRejectPublish","clPublish","openDialog","closeDialogForApprove","renderRejectDialog","rejectAction","renderSubmitWithDateDialog","actionsMap","ApproveWithDate","ResetToApproval","SubmitWithDate","SubmitForRenewWithDate","SubmitForRenew","ApproveRenewalEnrollment","RejectRenewalEnrollment","RenewWithDate","Remove","Enroll","AlreadyEnrolled","AlreadyEnrolledOtherRelease","NoLongerAvailable","ClApprove","ClReject","ClApproveDisabled","ClRejectDisabled","ClPublish","ClRejectPublish","userDetail","eventDate","HistoryTable","ArrowForward","alternative","AlternativesCertificatesTable","alternativesCertificates","commentHeader","commentField","CertificationRequirementCommentForm","onAdded","setComment","isAddCommentLoading","RequirementAttachmentList","_data$result2","onAttachmentSuccess","_useUserRequirementAt","useUserRequirementAttachmentsQuery","CertificationRequirementAttachments","PeriodQuestionnaireQuestionAnswer","Question2Choices","Question3Choices","space","question","radio","QuestionnarieSection","_props$questionnarie","questionnarie","submittedBy","submittedDate","question1","NotSelected","question2","question3","questionnarieState","setQuestionnarieState","updateQuestionnarie","stateChunk","RadioGroup","Never","Radio","Occasionally","OnContinuousBasis","Yes","No","attachmentsArea","commentsArea","submitQuestionnarieKey","CertificationPlansDetailsPage","_data$userActions$inc","_data$userActions","_data$userActions$inc2","_data$userActions2","_data$title","_data$user","_data$user2","_data$user3","_data$title2","_data$purpose","_data$prerequisites","_requirementsData$req","_data$alternatives","_data$recommended","_data$automaticEnroll","nextQuestionnarie","setNextQuestionnarie","_useCertificationPlan","_useCertificationPlan2","useCertificationPlansHistoryQuery","historyLoading","historyData","requirementsLoading","requirementsData","requirementsRefetch","_data$expirationDate","_data$enrollmentDate","_data$approvedDate","_data$renewalDate","_data$dueDate","canEditDates","canSubmitQuestionnarie","FillinQuestionnaire","allQuestionsFilled","handleSubmitQuestionnarie","_nextQuestionnarie$id","_nextQuestionnarie$qu","_nextQuestionnarie$qu2","_nextQuestionnarie$qu3","submitData","questionnaireId","question1AnswerId","question2AnswerId","question3AnswerId","purpose","_data$userActions4","_division$name","_item$businessUnit","productGroup","sd","approvers","approver","workType","work","_enrollmentApproverTy","enrollmentApproverType","enrollmentApprovers","enrollmentApprover","availableFor","availableForItem","_data$userActions3","questionnaire","q","isAttachmentMandatory","alternatives","recommended","automaticEnrollment","approvePendingApprovals","taskIds","rejectPendingApprovals","taskId","pendingApprovalKey","usePendingApprovalQuery","pendingApprovalApi","ObjectTypeChip","_getTaskTypeItems$fin","_getTaskTypeItems$fin2","TaskStatusChip","taskStatus","chipProps","userCertificateReleatedColumns","certificateTitle","createDate","CertificateReleatedTable","onApprove","onApproveDone","onMutate","navigateTo","uqActions","_x$userAction","userAction","self","canExecute","log","da","userUserReleatedColumns","UserReleatedTable","onReject","onRejectDone","Done","PendingApprovalsTabs","_data$certificateRela3","_data$userRelated2","onMutating","_usePendingApprovalQu","_usePendingApprovalQu2","certificateRelated","totalCount","userRelated","_data$certificateRela","_data$certificateRela2","_data$userRelated$len","_data$userRelated","mutation","SubHeaderTitle","PendingApprovalsSearchBar","createDateAfter","setCreateDateAfter","createDateBefore","setCreateDateBefore","customDateRangeSelected","setCustomDateRangeSelected","_profile$email","_getTaskStatusItems$f","impersonateUserName","taskType","createdDateAfter","createdDateBefore","peopleBusinessUnit","peopleDivision","peopleProductGroups","peopleCountries","peopleJobList","peopleJobFamilyList","peopleCompanies","isExternalPeople","levels","Basic","Expert","Master","Trainer","certificateFunction","dateRange","getInitialValues","_formData$businessUni","_formData$scope","_formData$isExternalP","_formData$searchText","_formData$isExternal","_formData$certificate","peopleFilter","certificateFilter","scopeID","channelTypeID","countries","jobRoles","certificateList","getPendingApprovalsQuery","_values$peopleDivisio","_values$peopleDivisio2","handleCreateDateAfterChange","handleCreateDateBeforeChange","range","today","subtract","startOf","endOf","handleOnDateRangeChange","PendingApprovalsPage","tab","setTab","setMutating","fetching","queryKey","_authProvider$getAcco","_authProvider$getAcco2","getEmptyPendingApprovalsQuery","setQuery","catalogKey","trainingSetApi","getList","TrainingSetsSelectField","_useTrainingSetsQuery","useTrainingSetsQuery","validity","channelType","trainingSets","mapCatalogSearchFilters","catalogFiltersFormData","_catalogFiltersFormDa","_catalogFiltersFormDa2","_catalogFiltersFormDa3","_catalogFiltersFormDa4","_catalogFiltersFormDa5","_catalogFiltersFormDa6","_catalogFiltersFormDa7","_catalogFiltersFormDa8","_catalogFiltersFormDa9","_catalogFiltersFormDa10","_catalogFiltersFormDa11","_catalogFiltersFormDa12","eachLevel","eachValidity","eachFunction","excludePrerequisites","CatalogSearchFiltersForm","_ref$fullScreenList","fullScreenList","_ref$displayTrainingS","displayTrainingSets","lgValue","catalogColumns","publishDate","massEnrollmentColumns","CatalogCertificateTable","SearchCertificates","initialPageSize","_ref$SearchFiltersFor","SearchFiltersFormProps","_ref$enableExcelExpor","enableExcelExport","_ref$mobileView","mobileView","setPageSize","_useCatalogQuery","useCatalogQuery","renderCertificateTable","catalogSearchFilters","onChangeRowsPerPage","CatalogPage","renderSearchFilters","renderTable","_data$total","ActionsWrapper","LanguagesByBusinessUnitSelectField","_useLanguagesByBusine","useLanguagesByBusinessUnitQuery","getSigners","print","defaultSigner","signers","signer","printApi","languageId","mapOtherSigners","singers","printingLanguage","firstSigner","secondSigner","PrintOutForm","selectedCertificates","setSelectedCertificates","singlePrint","setSinglePrint","fetchSigners","signersLoading","printPdf","printPdfLoading","firstSignerOptions","getFirstSignersAutocompleteFields","secondSignerOptions","getSecondSignersAutocompleteFields","formikHelpers","_ref2$firstSigner","_ref2$printingLanguag","_ref2$secondSigner","selectedSigners","firstSignerDisabled","signerOrUndefined","printItems","certificates","certificateListId","_values$printingLangu","_values$printingLangu2","_values$firstSigner","_values$printingLangu3","signersHelperText","isPrintDisabled","isSignerDisabled","showSinglePrint","inputValue","groupBy","mapPrintToAccordions","prints","PrintOutCertificatesPage","_usePrintQuery","usePrintQuery","_useUserProfileQuery","userProfile","isUserProfileLoading","PrintOutMyCertificatesPage","_myProfileData$id","myProfileData","PrintOutUserCertificatesPage","basicDataSetMap","catalogDataSetMap","validateFields","UserDetailsDataObjectView","_ref13$title","_ref13$dataSetMap","dataSetMap","useCertificationListDetailsQuery","useCertificationListHistoryQuery","useCertificationEnrollRequestQuery","CatalogDetailsPage","_data$prerequisitesTo","planDetails","_useCertificationList","_useCertificationList2","isHistoryLoading","_useCertificationList3","useCertificationListRequirementsQuery","renderGoToNewVersionButton","NewerReleaseAvailable","newVersionCertificateListId","handleOpenNewerRelease","dataSet","prerequisitesTo","CertificationPlansEnrollRequestDetailsPage","requestDetails","_useCertificationEnro","historyRefetch","enrollRequest","completeWithin","userTrainingSetsColumns","formatExternalFlag","completionPercentage","userCertificateColumns","TraningSetsTable","_rows$length","_row$certificates$len","_row$certificates","_row$certificates2","handleOpenCertificateDetails","UserAttachmentList","_useUserAttachmentsQu","useUserAttachmentsQuery","CertificationsByPersonDetailsPage","_userProfile$business","_userProfile$company","_userProfile$channelM","_userProfile$country","_userProfile$division","_userProfile$partnerC","refetchUserProfile","areCertificationsLoading","_useUserTraningSetsQu","userTraningSets","areTraningSetsLoading","refetchTraningSets","removeQueries","syncUserHistory","isSyncHistoryLoading","isAskRemovalLoading","handleOpenMyLearningDetails","businessUnitName","hierarchicalManager","channelManager","employeeJobFamily","preferredLanguage","partnerCompanySupervisor","_item$employeeJobFami","_item$employeeJobs","_item$preferredLangua","line","updateDate","MyLearningCourseHistoryTable","empty","CertificationsByPersonMyLearningPage","_useUserHistoryQuery","useUserHistoryQuery","_data$unCompleted","_data$completed","unCompleted","ReportPageTypes","reportsApi","getFilterScopes","pageId","getColumns","getValues","columnId","qs","_args5","u","AdditionalData","Label","vid","ValueId","getFilters","saveFilters","variables","getFilterCertificationPlans","_x$values$k","_x$values$k$count","_x$values$k2","_x$values$k$label","_x$values$k3","guid","getFilterCertificationPlansToFile","exportFileType","StatusOfCertifications","getUncompletedRequirements","_x$values$k4","_x$values$k$count2","_x$values$k5","_x$values$k$label2","_x$values$k6","getUncompletedRequirementsToFile","UncompletedRequirements","_data$result$map","SearchUserForMassEnrollment","onChanged","_props$multiple","selectedValues","_useUserHrgtQuery","personNameOrEmail","_useUserHrgtQuery$dat","xxvalues","toSend","_x$id","_x$email","_x$name","handleItemsChange","initialState","from","recipients","MassEnrollmentDialog","selectedProfiles","onDoSend","isReminder","FieldType","getFieldType","colType","dateTime","unknown","useReportingFieldDisabled","dependsOn","cid","_step","_iterator","_createForOfIteratorHelper","_ret","_loop","dep","n","done","err","f","uncompletedRequirementsColumnsDefOverridesLookup","CwQMDwcPBgYFDQwMBAYEAg","hide","BQ4IBQQPDgwOCQgGBAgDBQ","AA0GBAMEAgIPCg2137sFBQ","AA0GBAMEAgIPCgICBAsFBQ","AA0GIMBAAgIPCg2137sFBQ","DgUACgQPCgsLAgYGBAsNDA","CAgOCg0KAQQLDQUIBAQIDg","CAgOCg0KAKAODQUIBAQIDg","AgAODQYODwkICwYKBAgHBA","AgEHBAIFDAQJDgsOBA4HDA","CwoFAwMKCQEHAgFOKAcNDw","CAoKBQkGAwMEAAIPBAsGDQ","BQ4IBwtskgwOCQgGBAgDBQ","BENIBwtskgwOCQgGBAgDBQ","uWuGDQAMBgIIDAoJBAYIAg","BQYGDQAMBgIIDAoJBAYIAg","BYqGDAqMBgIIDAoJBAYIAg","CgACAQYDDAMEDQkGBAwTSK","Bw4BAg0ECgALDAINBAAOAw","AwUDAQsMAgULCw0MBAYCBA","DwQHAQUIAgAAAw8KBAYPDQ","DQoNAAwJAAMBDQsOBAkODw","Cg8HAQIADgcFAgkEBAEEBQ","Bg8KCg8CAQADDwAEBAkJCw","BQ0CBQsHAQ4OABMEBAcLCK","BQ0CBQsHAQ4OABMEBAwtsK","CAgOCg0KAQQLDQUIBAQIwK","EA6xEbEHxJz9SNf0un2PIU","certificationsStatusColumnsDefOverridesLookup","wTSKAQ4MAQwCBAAABAYHBg","CgACAQYDDAMEDQkGBAkJBw","DgwJAQoHDgwHDAACBAkGCA","XgACAQYDDAMEDQkGBAkJBw","AwwTSKsMAgULCw0MBAPASY","AwwTSKs1ligaCw0MBAPASY","AQ0CAQsHAQ4OAAMEBAcLCg","DwcFAQ0PBw0ODg0IBAUGBw","DwcFAQ0PBw0ODg0IBAUGBz","DA8BAQ4MAQwCBAAABAYHBg","CwoFAwMKCQEHAgsOBAcNDw","AA8ODgMJDgsNCAsLBA8JAg","BQIDAAkCDAANDgcKBA4FDA","CgACAQYDejMEDQkGBAkJBw","CgACAQYDejMiTokGBAkJBw","ReportingAutocomplate","_columnDefinition$typ","fieldProps","onFilterChange","reportType","setLoading","setValues","setOptions","o","loadValues","_columnDefinition$dep","_values","valuesApi","_option$label","ReportingDatePicker","before","setBefore","after","setAfter","start","end","handleDatesChange","results","ReportingTextField","onBlur","FilterFieldFactory","_useColumnDefinition","_columnDefinition$too","tooltip","useColumnDefinition","_useColumnDefinition2","fieldType","AdvancedFiltersScope","columnsDefinition","columnsScoped","FiltersScope","filterScope","visible","GridContext","createContext","columnsDefinitions","onGroupByChange","onVisibleColumnsChange","topMenu","scroll","ColumnsPanel","apiRef","useGridSlotComponentProps","useContext","api","GridPanelWrapper","getAllColumns","updateColumns","hideFilterPanel","updateColumn","VisibilityOff","Visibility","ListItemSecondaryAction","setColumnIndex","GridPanel","CustomColumnMenu","_sortModel$find$sort","_sortModel$find","_useGridSlotComponent","_useContext","columnMenu","col","lookup","sortable","groupable","def","sortModel","getSortModel","sortDirection","menuItems","setSortModel","hideColumnMenu","setColumnHeaderFocus","colIndex","MenuList","ReportDataGrid","_report$total","_report$data","report","onPageChange","onPageSizeChange","onSortModelChange","pageSizeSafe","Provider","DataGrid","getRowId","autoHeight","rowHeight","rowCount","paginationMode","disableSelectionOnClick","disableColumnFilter","disableColumnSelector","disableMultipleColumnsSorting","editMode","sortingMode","onRowClick","param","certId","getValue","pathName","components","Panel","ColumnMenu","ActionsPanel","classNameProp","ReportSettingsList","inEditMode","selectedSetting","onSelect","onAccept","onAddNewSetting","deleting","setDeleting","setting","isSelected","settingName","handleSelect","schedule","DateRange","newName","ReportSettingsDetails","selectedIndex","columnDefinitions","chosenFilters","onSettingsChange","onFiltersRestore","onColumnsRestore","onSettingNameChange","selectedColDef","setSelectedColDef","setSettingName","_selected$filters","_columnDefinitions$fi","_colDef$type","_tooltip$trim","_tooltip","_tooltip$replace","_tooltip2","_colDef$cid","colDef","_v$start","_v$start2","_colDef$values","_colDef$values$find","trim","_selected$name","colDefFiltred","_selected$columns$len","_selected$columns","_e$target","_f$tooltip","handleDeleteFilter","_selected$columns2","currentCols","DragDropContext","onDragEnd","_results$destination","isInteger","destination","element","Droppable","droppableId","provided","_selected$columns3","droppableProps","innerRef","_columnDefinitions$fi2","Draggable","draggableId","isDragDisabled","draggableProps","dragHandleProps","handleRemoveColumn","UserSearch","inv","frequencyOptions","ScheduleSettings","_props$setting","_schedule$startDate","_schedule$endDate","forceUpdate","useForceUpdate","currentUser","Switch","onActiveChange","frequency","_v$id","setFrequency","startDate","endDate","sendTo","setsendTo","ReportSettingsPanel","_selectedSetting$name2","setSelectedSetting","setInEditMode","setSettings","setSelectedIndex","_useFilterSettingsQue","useFilterSettingsQuery","dataUpdatedAt","settingsSet","_useFilterSettingsMut","useFilterSettingsMutation","saving","handleSaveSettings","_selectedSetting$name","settingNames","_selectedSetting$sche","doPersist","toSave","doRunsetting","newSetting","array","_settings$index","newSet","isActive","_selectedSetting$sche2","_selectedSetting$sche3","Transition","Slide","appBar","flex","groupsList","overflowY","overflowX","dataGrid","resultsTitle","GroupByDialog","_groups$total","_groups$total2","groupByCid","reportApi","gridColDef","pageGroups","setPageGroups","selectedValue","setSelectedValue","pageSizeGroups","groupSort","setGroupSort","setPage","_useQuery","grouping","groupings","isChosen","limit","keepPreviousData","reportLoading","getReport","_useQuery2","groupsLoading","groups","getGroups","fullScreen","TransitionComponent","edge","sortSettings","filterIcon","ReportBasePage","reportToFileApi","_useFilterScopesQuery","filterScopesLoading","filterScopes","exportingReport","setExportReport","setGroupBy","customColumns","setCustomColumns","pageNumber","setPageNumber","_useState13","_useState14","pageNumberLoaded","setPageNumberLoaded","_useState15","_useState16","_useReportColumnDefin","useReportColumnDefinitionsQuery","columnDefinitionsLoading","_useReportGridColumns","selectedColumns","colDefSettings","_colDefBase$headerNam","_colDefBase$width","_x$hide","colDefBase","useReportGridColumns","_useReportGridColumns2","allColumns","then","CertificationsByPerson","KpiReports","handleFilterChange","_useState17","_useState18","setSelectedProfiles","_useState19","_useState20","_report$data$map$filt","emails","UserGreeting","reportExportType","handleExportReport","_report$data$map$filt2","planIds","notificationSubject","notificationMessage","additionalRecipients","StatusOfCertificationsPage","UncompletedRequirementsPage","enrollmentColumns","managementColumns","_country$name","archivedUsersColumns","_businessUnit$descrip2","_country$name2","getIsExternalLabel","_user$deactivatedByUs","_user$deactivatedByUs2","deactivatedByUser","deactivateDate","UserTable","buRoles","Contact","countryRoles","companyRoles","scopeRoles","isValueCorrect","fieldRoles","isAddRoleEnabled","RoleDetailsForm","_values$country","_values$businessUnit","addInternalUserRoleOptions","addExternalUserRoleOptions","AddUserRole","roleOptions","selectedRole","setRole","_formData$businessUni2","_formData$businessUni3","_formData$country","_formData$businessUni4","_formData$country2","_formData$scope2","_formData$businessUni5","_formData$company","_formData$country3","partialUpdateDto","mapUpdateAuthorizationsDto","addUserRole","roleBusinessUnit","roleCountry","roleCompany","roleScope","mapFiltersFormData","_formData$division","_formData$role$id","_formData$role","_formData$roleBusines","_formData$roleBusines2","_formData$roleCountry","_formData$roleCountry2","_formData$roleCompany","_formData$roleCompany2","_formData$roleScope$i","_formData$roleScope","isForAction","UserSearchFiltersForm","_ref$displayRoleFilte","displayRoleFilters","mapAbbFiltersFormData","_values$roleBusinessU","_values$roleCountry","TableRoot","SearchUsersRowActions","SearchUsers","_ref$hideExcelExport","hideExcelExport","_ref$displaySearchRes","displaySearchResults","_ref$displaySelectedA","displaySelectedActions","_ref$DataObjectListPr","DataObjectListProps","isMergeDialogOpen","setIsMergeDialogOpen","_useUserQuery","useUserQuery","userIds","isArchivingUsers","isMergingUsers","getSelectedUserProfiles","usersCache","getQueryCache","findAll","acc","_result","_query$state$data","stringId","renderUserTable","destinationUserId","sourceUsersIds","MassEnrollmentPage","selectedUsers","setSelectedUsers","certificationIds","failed","userEmail","handleOnEnroll","disableEnroll","BulkUploadPage","downloadBulkTemplateFile","isTemplateLoading","EditExternalUserForm","trainingManagerEmail","trainingManagerGeid","UserRolesList","_useUserAuthorization","useUserAuthorizationsQuery","userAuthorizations","authorization","renderList","ManageUserRole","EditInternalUserForm","adminLabels","ManageUserTabs","isAdmin","tabViewProps","ExternalUsersPage","handleOpenAddUsers","_useCollapseRowAction","RoleList","RoleListIcon","ManageRole","ManageRoleIcon","EditIcon","_myProfile$isAdmin","InternalUsersPage","deactivatedBy","UserDeactivatedSearchFiltersForm","setDeactivateDate","_formData$productGrou","_formData$company$id","deactivatedByName","ArchivedUsersPage","_useUserDeactivatedQu","useUserDeactivatedQuery","reactivateUsers","isReactivateLoading","getDefaultSearchFilters","boostUser","_formData$firstName","_formData$lastName","_formData$notes","_formData$city","_formData$state","_formData$manager","_formData$manager2","_formData$functionalm","_formData$functionalm2","AddUsers","setPersonNameOrEmail","userToEdit","setUserToEdit","handleCloseDialog","renderHrgtActions","isUserSelected","CheckIcon","AddIcon","RemoveIcon","isExternalTitle","_userToEdit$country","externalFormValidationSchema","internalFormValidationSchema","renderEditUserDialog","AddInternalUsersPage","usersToAdd","addedUserEmails","userResponse","addUsersToPcs","addingUsersLoading","handleOnAddUsers","_user$division","_user$pgUnit$id","_user$pgUnit","_user$company$id","_user$employeeJobs","_user$employeeJobFami","_user$preferredLangua","lang","AddExternalUsersPage","addApprovalGroup","updateApprovalGroup","deleteApprovalGroup","updateApprovalGroupUsers","useApprovalGroupsQuery","getApprovalGroups","useApprovalGroupsDetailsQuery","groupId","getApprovalGroupDetails","ApprovalGroupEdit","_props$actionLabel","actionLabel","_formikProps$initialV","_formikProps$initialV2","addGroup","approvalGroupsColumns","editApprovalGroupMutationKey","mapFormDataToApprovalGroup","_values$businessUnit$","_values$businessUnit$2","_values$businessUnit2","_values$description","approvalGroup","isUsed","sequence","ApprovalGroupsTable","_approvalGroups$lengt","_props$businessUnit","addMode","setAddMode","rowToDelete","setRowToDelete","_useApprovalGroupsQue","_useApprovalGroupsQue2","approvalGroups","addApprovalGroupMutation","mutationFn","updateApprovalGroupMutation","deleteApprovalGroupMutation","isDeleteLoading","handleOpenGroup","_row$businessUnit","Group","_item$businessUnit$de","_item$businessUnit2","borderTop","listStyle","overflow","cursor","BusinessUnitSearchBar","onBuChange","_useAutocomplete","useAutocomplete","getRootProps","getInputProps","popupOpen","groupedOptions","getListboxProps","getOptionProps","ApprovalGroupUserList","HrgtUserSelectField","useApprovalGroupUserAddFormInitialValues","ApprovalGroupUserAddForm","onAddUser","_values$country2","_values$user","_values$user2","_values$user3","_values$user4","_values$user5","_values$user$email","_values$user6","countryName","userID","userGeid","ApprovalGroupsPage","setBusinessUnit","subTitle","ApprovalGroupDetailsPage","_data$description","_data$description2","_approvalGroupUsers$l","approvalGroupUsers","setApprovalGroupUsers","_useApprovalGroupsDet","updateUsers","handleUpdateUsers","approvalGroupId","_approvalGroupUsers$f","nextArr","PageBase","_p$pageSettings$inRow","inRowAction","pageSettings","defaultQuery","contract","_useConfirmationModal","_p$confirmTitle","_p$confirmDescription","_p$confirmButton","confirmTitle","confirmDescription","confirmButton","onConfirmed","useConfirmationModal","deleteItem","getIdFor","loadDataBase","_React$useState","loadedOn","adding","_React$useState2","getTime","onQuery","onGoToDetails","onNewWindow","route","doUpdate","onDeleteRow","onBeginAdd","getRowActions","rowActionComponent","ctx","ports","doDelete","doEdit","doGoToDetails","newWindow","doRefreshList","editDetails","deletePart","gotToDetails","ctrlKey","closePart","getRowView","cancelHandler","_p$pageSettings$addTi","_p$pageSettings$editT","editAdd","addTitle","editTitle","getRowViewBase","editorWithPrefetch","EditorWithPrefetch","inPageAsRowView","getSearchResultActiona","_p$pageSettings$newIt","_p$pageSettings$newIt2","actionCaption","_state$data$total","_state$data","_state$data$result","_state$data2","_state$data3","onChangeSort","selectedActionComponent","y","pagePorts","reloadData","collapse","getSearchFiltersForm","renderHandlers","_React$useState3","_React$useState4","fetched","toEdit","Editor","similarNameError","object","nullable","string","when","is","test","context","parent","res","channels","isAbb","handleChange","renderForm","SearchForm","fp","autoComplete","ContractAPI","defaulQuery","defaultNewItem","Page","_p$contract","updateHandler","EditorPart","FiltersPart","_x$division","_x$scope","sc","Filter","targetQuery","_r$scope","_r$division","ITrainingSetContract","StatusColors","cols","owner","_r$level","ContextMenu","itemID","Draft","menu","keepMounted","PCSContext","usePCSContext","PCSContextProvider","opened","_state$confirmTitle","_state$cancelButton","_state$confirmButton","cancelButton","showQuestion","useConfirmationModal2","contextValue","onLogout","AlternativesCardPart","show","setShow","togleShow","AlternativeList","AlternativePart","onEnd","pcsContext","FieldArray","arrayHelpers","_p$item","getData","currentIndex","RequirementsFormPart","_p$helper$values$stat","_p$helper$values$stat2","editable","Temporary","RequirementsList","hideDelete","RequirementEditor","extendedDescription","canExpire","canRenew","renewal","externalLinkDescription","showLinks","setShowLinks","linkValidation","codes","otherCodes","matches","approverGroup","number","valuesToSubmit","_formikProps$values$c2","_formikProps$values$a","_formikProps$values$a2","_formikProps$values$a3","_formikProps$values$a4","_formikProps$values$a5","_formikProps$values$r","_formikProps$values$r2","_formikProps$values$r3","maxLength","rule","PrintOptionsCardPart","_p$helper$values$divi","_p$helper$values$divi2","disablePreviews","showAddPurpose","doPreview","printPurposeOnPdf","CapabilityPart","IdentificatorsList","FormikDataTableField","deleteConfirmation","rowEditor","_x$subheader$code","_x$subheader","_r$subheader$display","_r$subheader","_r$identifiers","identifiers","_data$header","_c$subheader","_data$subheader","newIdentificator","CertificationListForSelectionPart","newPageIndex","newPageSize","CertificateLookupForField","_p$noDataMessage","RecommendedCardPart","PrerequisitesCardPart","AvailabilityCardPart","forRegions","HeaderDataCardPart","LifecycleCardPart","_data$enrollmentAppro","_data$enrollmentAppro2","_data$completionAppro","_data$completionAppro2","_data$renewalApprover","_data$renewalApprover2","_data$renewalApprover3","_data$renewalApprover4","_data$renewalEnrollme","_data$renewalEnrollme2","_data$renewalApprover5","_data$customExpiratio","_data$renewalApprover6","_data$renewalApprover7","_data$renewalApprover8","_data$renewalApprover9","_data$renewalApprover10","_data$history","completionApproverType","renewalApproverType","renewalEnrollmentApproverType","customExpirationDate","AutomaticEnrollmentCardPart","EditorPage","itemIdParsed","EditorPagePart","_doUpdate","feedback","release","forChannels","forCountries","forDivisions","forUserType","behavior","validFor","fullDisplayName","scopeDetail","identificators","ownerCountry","expirationPeriod","renewalPeriod","completePeriod","renewalSurvey","mainFunction","duration","routeToNew","updateResult","targetRoute","reload","doRemoveDraft","Imported","doSaveAsDraft","doSubmitForApproval","Published","Withdrawn","doRePublish","doSave","handleBlur","Helper","isAddingCertificate","onStartAddingCertificates","_p$helper$values$cert","Model","forDivision","render","_settings$handlers$do","_settings$handlers","blockButtons","setBlockButtons","createdOn","editedOn","forCountry","forFunctionalJob","forFunctionalJobFamily","forProductGroup","automaticRenewal","reagisterAllUsers","handlers","enrollmentResult","resp","PageRowView","CertificatesColumn","toRender","certificateDetails","divisionDetails","SignerSelectField","_useQuery$data","selectedSigner","signersMapper","Alert","alertProps","MUIAlert","severity","SuccessIcon","WarningIcon","InfoIcon","ErrorIcon","ImageField","_field$value","imageRef","useRef","fileRef","click","accept","FR","FileReader","addEventListener","evt","readAsDataURL","FRBinary","bytes","Uint8Array","len","byteLength","binary","fromCharCode","btoa","readAsArrayBuffer","onFileSelected","signature","labelSignature","getFieldMeta","editing","toEditDivision","firstSignature_ABB","secondSignature_ABB","firstSignature_External","secondSignature_External","dateFormat","DateFormatField","_signersMapper$find","_useQuery2$data","validate","selectedDivision","getNewItem","_state$selectedDivisi","_state$selectedDivisi2","PrintingConfigurationCLIdentificatorsPart","capabilityHeaders","capabilityHeadersRef","groupHeaders","groupHeadersRef","clIdentificators","clIdentificatorsRef","port","OrderableListEditor","desc","useImperativeHandle","_React$useState5","_React$useState6","setSelected","addingNew","onRemoveItem","toLocaleLowerCase","newArray","order","onUpdateOrAddNew","renderEditRow","resultColumns","OldEnrollmentsTable","_row$previousReleases","previousReleases","oldEnrollmentsApi","searchDetails","exportToExcelDetails","actionDto","OldEnrollmentsPage","_useOldEnrollmentsQue","useOldEnrollmentsQuery","detailsColumns","certificateStatus","OldEnrollmentsDetailsTable","_DataTableProps$rows$","_DataTableProps$rows","inProcessOnly","setInProcessOnly","skipEnrollment","setSkipEnrollment","noNotifications","setNoNotifications","enrollmentId","certificateIds","OldEnrollmentsDetailsPage","_enrollmentsData$user","_useCertificateShortD","useCertificateShortDetailsQuery","_useOldEnrollmentsDet","useOldEnrollmentsDetailsQuery","enrollmentsLoading","enrollmentsData","enrollmentsRefetch","ProtectedRoute","routeProps","Route","ProfileLoader","_profile$userNeedToUp","renderContent","Router","AzureAD","accountInfo","handleLogout","clear","QueryClientProvider","client","BrowserRouter","exact","ManageCompaniesPage","ManageScopeDetailsPage","DigitalSignaturePage","ManageCertificatesPage","ManageTrainingSetPage","PrintingStandardsPage","PrintingHeadersPage","ManageCertificatesDetailsPage","TrainingSetDetailsPage","InProgress","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactGA","initialize","pageview","pathname","ReactDOM","MUIThemeProvider","ThemeProvider","MuiPickersUtilsProvider","utils","DayJsUtils"],"mappings":"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","file":"static/js/main.f7f537ba.chunk.js","sourcesContent":["export enum RoleType {\r\n Administrator = 'Administrator',\r\n CertificationAuthority = 'CertificationAuthority',\r\n Reader = 'Reader',\r\n Contact = 'Contact',\r\n Supervisor = 'Supervisor',\r\n HierarchicalManager = 'HierarchicalManager',\r\n ABBTrainingManager = 'ABBTrainingManager',\r\n ChannelPartnerManager = 'ChannelPartnerManager',\r\n PartnerSupervisor = 'PartnerSupervisor',\r\n CertificateBuilder = 'CertificateBuilder',\r\n ExternalTechnician = 'ExternalTechnician',\r\n ABBTechnician = 'ABBTechnician',\r\n Approver = 'Approver',\r\n Developer = 'Developer',\r\n}\r\n\r\nexport const myRoleMatchToRoles = (\r\n myRoleTypes: RoleType[],\r\n roleTypes: RoleType[]\r\n): boolean => myRoleTypes.some((role) => roleTypes.includes(role));\r\n\r\nexport const hasRole = (roleType: RoleType, roles: RoleType[]): boolean =>\r\n roles.includes(roleType);\r\n\r\nexport const displayRoleType = (roleType: RoleType): string => {\r\n switch (roleType) {\r\n case RoleType.CertificationAuthority:\r\n return 'Certification Authority';\r\n case RoleType.HierarchicalManager:\r\n return 'Hierarchical Manager';\r\n case RoleType.ChannelPartnerManager:\r\n return 'Int/Ext Company Coordinator';\r\n case RoleType.PartnerSupervisor:\r\n return 'External Company Responsible';\r\n case RoleType.CertificateBuilder:\r\n return 'Certificate Builder';\r\n case RoleType.ExternalTechnician:\r\n return 'External Technician';\r\n case RoleType.ABBTechnician:\r\n return 'ABB Technician';\r\n default:\r\n return roleType;\r\n }\r\n};\r\n","const getFeatureToggle = (featureToggleName: string): boolean =>\r\n process.env[featureToggleName] === 'true';\r\n\r\nexport const MOCK_LOGIN = getFeatureToggle('REACT_APP_MOCK_LOGIN');\r\nexport const NEW_ADMIN = getFeatureToggle('REACT_APP_NEW_ADMIN');\r\n","import { RoleType } from 'MyProfile/enum/RoleType';\r\nimport { NEW_ADMIN } from 'featureToggles';\r\nimport { generatePath } from 'react-router-dom';\r\nimport { RouteMeta, RouteMetaBase } from './@types';\r\n\r\nexport const notFoundRoute = '/not-found';\r\n\r\nexport const myProfileRoute: RouteMetaBase = {\r\n path: '/my-profile',\r\n role: [],\r\n};\r\n\r\nexport const development: RouteMetaBase = {\r\n path: '/development',\r\n role: [],\r\n};\r\n\r\nexport const myCertificationsRoute: RouteMetaBase = {\r\n path: '/',\r\n role: [],\r\n};\r\n\r\nexport const catalogRoute: RouteMetaBase = {\r\n path: '/catalog',\r\n role: [],\r\n};\r\n\r\nexport const printOutMyCertificatesRoute: RouteMetaBase = {\r\n path: '/print-out-certificates',\r\n role: [],\r\n};\r\n\r\nexport interface CatalogDetailsParams {\r\n certificationId: string;\r\n}\r\n\r\nexport const catalogDetailsPath = '/catalog/:certificationId/details';\r\n\r\n// eslint-disable-next-line max-len\r\nexport const catalogDetailsRoute: RouteMeta = {\r\n path: catalogDetailsPath,\r\n role: [...catalogRoute.role],\r\n createRoute: (params: CatalogDetailsParams) =>\r\n generatePath(catalogDetailsPath, params),\r\n};\r\n\r\nexport const helpAndSupportRoute: RouteMetaBase = {\r\n path: '/help-and-support',\r\n role: [],\r\n};\r\n\r\nexport const pcsReportingRoute: RouteMetaBase = {\r\n path: '/pcs-reporting',\r\n role: [\r\n RoleType.Administrator,\r\n RoleType.CertificationAuthority,\r\n RoleType.Reader,\r\n RoleType.Supervisor,\r\n RoleType.HierarchicalManager,\r\n RoleType.ABBTrainingManager,\r\n RoleType.ChannelPartnerManager,\r\n RoleType.PartnerSupervisor,\r\n ],\r\n};\r\nexport const certificationsStatusRoute: RouteMetaBase = {\r\n path: '/certifications-status',\r\n role: [\r\n RoleType.Administrator,\r\n RoleType.CertificationAuthority,\r\n RoleType.Reader,\r\n RoleType.Supervisor,\r\n RoleType.HierarchicalManager,\r\n RoleType.ABBTrainingManager,\r\n RoleType.ChannelPartnerManager,\r\n RoleType.PartnerSupervisor,\r\n ],\r\n};\r\nexport const certificationsByPersonRoute: RouteMetaBase = {\r\n path: '/certifications-by-person',\r\n role: [\r\n RoleType.Administrator,\r\n RoleType.CertificationAuthority,\r\n RoleType.Reader,\r\n RoleType.Supervisor,\r\n RoleType.HierarchicalManager,\r\n RoleType.ABBTrainingManager,\r\n RoleType.ChannelPartnerManager,\r\n RoleType.PartnerSupervisor,\r\n ],\r\n};\r\n\r\nexport interface CertificationPlansDetailsParams {\r\n certificationPlanId: string;\r\n}\r\n\r\nexport const certificationPlansDetailsPath =\r\n '/certification-plans/:certificationPlanId/details';\r\n\r\n// eslint-disable-next-line max-len\r\nexport const certificationPlansDetailsRoute: RouteMeta = {\r\n path: certificationPlansDetailsPath,\r\n role: [...certificationsByPersonRoute.role],\r\n createRoute: (params: CertificationPlansDetailsParams) =>\r\n generatePath(certificationPlansDetailsPath, params),\r\n};\r\n\r\nexport const certificationPlansEnrollRequestDetailsPath =\r\n '/certification-plans/:certificationPlanId/enroll-request-details';\r\n\r\n// eslint-disable-next-line max-len\r\nexport const certificationPlansEnrollRequestDetailsRoute: RouteMeta = {\r\n path: certificationPlansEnrollRequestDetailsPath,\r\n role: [...myCertificationsRoute.role],\r\n createRoute: (params: CertificationPlansDetailsParams) =>\r\n generatePath(certificationPlansEnrollRequestDetailsPath, params),\r\n};\r\n\r\nexport interface CertificationsByPersonDetailsParams {\r\n userId: string;\r\n}\r\n\r\nexport const certificationsByPersonDetailsPath =\r\n '/certifications-by-person/:userId/details';\r\n\r\n// eslint-disable-next-line max-len\r\nexport const certificationsByPersonDetailsRoute: RouteMeta = {\r\n path: certificationsByPersonDetailsPath,\r\n role: [...certificationsByPersonRoute.role],\r\n createRoute: (params: CertificationsByPersonDetailsParams) =>\r\n generatePath(certificationsByPersonDetailsPath, params),\r\n};\r\n\r\nexport const certificationsByPersonMyLearningPath =\r\n '/certifications-by-person/:userId/details/my-learning';\r\n\r\n// eslint-disable-next-line max-len\r\nexport const certificationsByPersonMyLearningRoute: RouteMeta = {\r\n path: certificationsByPersonMyLearningPath,\r\n role: [...certificationsByPersonRoute.role],\r\n createRoute: (params: CertificationsByPersonDetailsParams) =>\r\n generatePath(certificationsByPersonMyLearningPath, params),\r\n};\r\n\r\nexport const certificationsByPersonPrintOutCertificatesPath =\r\n '/certifications-by-person/:userId/details/print-out-certificates';\r\n\r\n// eslint-disable-next-line max-len\r\nexport const certificationsByPersonPrintOutCertificatesRoute: RouteMeta = {\r\n path: certificationsByPersonPrintOutCertificatesPath,\r\n role: [...certificationsByPersonRoute.role],\r\n createRoute: (params: CertificationsByPersonDetailsParams) =>\r\n generatePath(certificationsByPersonPrintOutCertificatesPath, params),\r\n};\r\n\r\nexport const uncompletedRequirementsRoute: RouteMetaBase = {\r\n path: '/uncompleted-requirements',\r\n role: [\r\n RoleType.Administrator,\r\n RoleType.CertificationAuthority,\r\n RoleType.Reader,\r\n RoleType.Supervisor,\r\n RoleType.HierarchicalManager,\r\n RoleType.ABBTrainingManager,\r\n RoleType.ChannelPartnerManager,\r\n RoleType.PartnerSupervisor,\r\n ],\r\n};\r\nexport const pendingApprovalsRoute: RouteMetaBase = {\r\n path: '/pending-approvals',\r\n role: [\r\n RoleType.Administrator,\r\n RoleType.CertificationAuthority,\r\n RoleType.Supervisor,\r\n RoleType.HierarchicalManager,\r\n RoleType.ABBTrainingManager,\r\n RoleType.ChannelPartnerManager,\r\n RoleType.PartnerSupervisor,\r\n RoleType.Approver,\r\n ],\r\n};\r\nexport const massEnrollmentRoute: RouteMetaBase = {\r\n path: '/mass-enrollment',\r\n role: [\r\n RoleType.Administrator,\r\n RoleType.Supervisor,\r\n RoleType.HierarchicalManager,\r\n RoleType.ABBTrainingManager,\r\n RoleType.ChannelPartnerManager,\r\n RoleType.PartnerSupervisor,\r\n ],\r\n};\r\nexport const bulkUploadRoute: RouteMetaBase = {\r\n path: '/bulk-upload',\r\n role: [\r\n RoleType.Administrator,\r\n RoleType.Supervisor,\r\n RoleType.HierarchicalManager,\r\n RoleType.ABBTrainingManager,\r\n RoleType.ChannelPartnerManager,\r\n RoleType.PartnerSupervisor,\r\n ],\r\n};\r\nexport const internalUsersRoute: RouteMetaBase = {\r\n path: '/internal-users',\r\n role: [\r\n RoleType.Administrator,\r\n RoleType.HierarchicalManager,\r\n RoleType.Supervisor,\r\n RoleType.ChannelPartnerManager,\r\n ],\r\n};\r\nexport const addInternalUsersRoute: RouteMetaBase = {\r\n path: `${internalUsersRoute.path}/add-users`,\r\n role: [\r\n RoleType.Administrator,\r\n RoleType.HierarchicalManager,\r\n RoleType.Supervisor,\r\n RoleType.ChannelPartnerManager,\r\n ],\r\n};\r\nexport const externalUsersRoute: RouteMetaBase = {\r\n path: '/external-users',\r\n role: [\r\n RoleType.Administrator,\r\n RoleType.ABBTrainingManager,\r\n RoleType.ChannelPartnerManager,\r\n RoleType.Supervisor,\r\n RoleType.PartnerSupervisor,\r\n ],\r\n};\r\nexport const addExternalUsersRoute: RouteMetaBase = {\r\n path: `${externalUsersRoute.path}/add-users`,\r\n role: externalUsersRoute.role,\r\n};\r\nexport const approvalGroupsRoute: RouteMetaBase = {\r\n path: '/approval-groups',\r\n role: [RoleType.Administrator],\r\n};\r\n\r\nexport interface ApprovalGroupsDetailsParams {\r\n groupId: string;\r\n}\r\n\r\nexport const approvalGroupsDetailsPath = '/approval-groups/:groupId/details';\r\n\r\n// eslint-disable-next-line max-len\r\nexport const approvalGroupsDetailsRoute: RouteMeta = {\r\n path: approvalGroupsDetailsPath,\r\n role: [RoleType.Administrator],\r\n createRoute: (params: ApprovalGroupsDetailsParams) =>\r\n generatePath(approvalGroupsDetailsPath, params),\r\n};\r\n\r\nexport const archivedUsersRoute: RouteMetaBase = {\r\n path: '/archived-users',\r\n role: [RoleType.Administrator],\r\n};\r\n\r\nexport const manageCertificatesRoute: RouteMetaBase = {\r\n path: '/manage-certificates',\r\n role: [\r\n RoleType.Administrator,\r\n RoleType.CertificationAuthority,\r\n RoleType.CertificateBuilder,\r\n ],\r\n};\r\n\r\nconst manageCertificatesDetailsRoutePath = '/manage-certificates/:itemId/details'\r\nexport const manageCertificatesDetailsRoute: RouteMeta<{ itemId: string }> = {\r\n path: manageCertificatesDetailsRoutePath,\r\n role: !NEW_ADMIN ? [RoleType.Developer] : [\r\n RoleType.Administrator,\r\n RoleType.CertificationAuthority,\r\n RoleType.CertificateBuilder\r\n ],\r\n\r\n createRoute: (params: { itemId: string }) =>\r\n generatePath(manageCertificatesDetailsRoutePath, params)\r\n};\r\n\r\n\r\nexport const manageCompaniesRoute: RouteMetaBase = {\r\n path: '/manage-companies',\r\n role: [RoleType.Administrator],\r\n};\r\nexport const scopeKeywordsRoute: RouteMetaBase = {\r\n path: '/scope-keywords',\r\n role: [RoleType.Administrator],\r\n};\r\nexport const digitalSignatureRoute: RouteMetaBase = {\r\n path: '/digitalSignature',\r\n role: [RoleType.Administrator],\r\n};\r\nexport const printingStandardRoute: RouteMetaBase = {\r\n path: '/printing-standard',\r\n role: [RoleType.Administrator],\r\n};\r\nexport const printingHeadersRoute: RouteMetaBase = {\r\n path: '/printing-headers',\r\n role: [RoleType.Administrator],\r\n};\r\n\r\nexport const trainingSetsRoute: RouteMetaBase = {\r\n path: '/training-sets',\r\n role: [\r\n RoleType.Administrator\r\n ],\r\n};\r\n\r\nconst trainingSetDetailsRoutePath = `${trainingSetsRoute.path}/:itemId/details`\r\nexport const managTrainingSetDetailsRoute: RouteMeta<{\r\n itemId: number;\r\n}> = {\r\n path: trainingSetDetailsRoutePath,\r\n role: !NEW_ADMIN ? [RoleType.Developer] : [\r\n RoleType.Administrator,\r\n RoleType.CertificationAuthority,\r\n RoleType.CertificateBuilder\r\n ],\r\n // eslint-disable-next-line\r\n createRoute: (params: any) => {\r\n return generatePath(trainingSetDetailsRoutePath, params)\r\n },\r\n};\r\n\r\n\r\nexport const printingCertificatesRoute: RouteMetaBase = {\r\n path: '/printing-certificates',\r\n role: [RoleType.Administrator],\r\n};\r\nexport const oldEnrollmentsRoute: RouteMetaBase = {\r\n path: '/old-enrollments',\r\n role: [RoleType.Administrator],\r\n};\r\n\r\nexport interface OldEnrollmentsDetailsParams {\r\n certificateId: string;\r\n}\r\n\r\nconst oldEnrollmentsDetailsRoutePath = '/old-enrollments/:certificateId/details'\r\nexport const oldEnrollmentsDetailsRoute: RouteMeta<{ certificateId: string }> = {\r\n path: oldEnrollmentsDetailsRoutePath,\r\n role: [RoleType.Administrator],\r\n\r\n createRoute: (params: OldEnrollmentsDetailsParams) =>\r\n generatePath(oldEnrollmentsDetailsRoutePath, params)\r\n};\r\n","import {\r\n MsalAuthProvider,\r\n LoginType,\r\n AuthenticationState,\r\n AccessTokenResponse,\r\n IdTokenResponse,\r\n} from 'react-aad-msal';\r\nimport { Account, Configuration } from 'msal';\r\nimport {\r\n IAccountInfo,\r\n IAuthProvider,\r\n} from 'react-aad-msal/dist/typings/interfaces';\r\nimport { MOCK_LOGIN } from 'featureToggles';\r\nimport dayjs from 'dayjs';\r\n\r\nexport const OVERRIDE_TOKEN_KEY = 'override-token';\r\n\r\nexport interface TokenProfile {\r\n name: string;\r\n}\r\n\r\nconst config: Configuration = {\r\n auth: {\r\n authority: process.env.REACT_APP_AZURE_AD_AUTHORITY ?? '',\r\n clientId: process.env.REACT_APP_AZURE_AD_CLIENT_ID ?? '',\r\n redirectUri: window.location.origin,\r\n postLogoutRedirectUri: window.location.origin,\r\n validateAuthority: true,\r\n navigateToLoginRequestUrl: true,\r\n },\r\n cache: {\r\n cacheLocation: 'localStorage',\r\n storeAuthStateInCookie: true,\r\n },\r\n};\r\n\r\nconst authenticationParameters = {\r\n scopes: ['openid', 'profile', 'email', 'offline_access', 'User.Read'],\r\n};\r\n\r\nconst parseJwtPayload = (\r\n token: string\r\n): T | null => {\r\n const base64Url = token.split('.')[1];\r\n const base64 = base64Url?.replace(/-/g, '+')?.replace(/_/g, '/');\r\n if (base64) {\r\n const jsonPayload = decodeURIComponent(\r\n atob(base64)\r\n .split('')\r\n .map((c) => `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`)\r\n .join('')\r\n );\r\n\r\n return JSON.parse(jsonPayload);\r\n }\r\n\r\n return null;\r\n};\r\n\r\ninterface TokenData {\r\n unique_name: string;\r\n nbf: number;\r\n exp: number;\r\n iat: number;\r\n iss: string;\r\n}\r\n\r\nconst getTokenData = (token: string): TokenData | null => {\r\n if (!token) {\r\n return null;\r\n }\r\n const base64Url = token.split('.')[1];\r\n const base64 = base64Url?.replace(/-/g, '+')?.replace(/_/g, '/');\r\n if (base64) {\r\n const jsonPayload = decodeURIComponent(\r\n atob(base64)\r\n .split('')\r\n .map((c) => `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`)\r\n .join('')\r\n );\r\n\r\n return JSON.parse(jsonPayload);\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst checkTokenExpired = (): AuthenticationState => {\r\n const token = localStorage.getItem(OVERRIDE_TOKEN_KEY);\r\n if (!token) {\r\n return AuthenticationState.Unauthenticated;\r\n }\r\n const payload = getTokenData(token ?? '');\r\n const exp = payload?.exp;\r\n if (exp) {\r\n return dayjs.unix(exp).isAfter(dayjs())\r\n ? AuthenticationState.Authenticated\r\n : AuthenticationState.Unauthenticated;\r\n }\r\n return AuthenticationState.Unauthenticated;\r\n};\r\n\r\nexport class MockMsalAuthProvider implements IAuthProvider {\r\n onAuthenticationStateChanged?: (\r\n state: AuthenticationState,\r\n account?: IAccountInfo\r\n ) => void;\r\n\r\n authenticationState: AuthenticationState =\r\n AuthenticationState.Unauthenticated;\r\n\r\n authenticationStateHandler: (state: AuthenticationState) => void = () => {};\r\n\r\n getAccount(): Account {\r\n const token = localStorage.getItem(OVERRIDE_TOKEN_KEY);\r\n const profile = parseJwtPayload<{ unique_name: string }>(String(token));\r\n this.authenticationState = checkTokenExpired();\r\n return new Account(\r\n '',\r\n '',\r\n profile?.unique_name ?? '',\r\n profile?.unique_name ?? '',\r\n {},\r\n '',\r\n ''\r\n );\r\n }\r\n\r\n getAccountInfo(): IAccountInfo {\r\n const token = localStorage.getItem(OVERRIDE_TOKEN_KEY) ?? '';\r\n const account = this.getAccount();\r\n return {\r\n jwtAccessToken: token,\r\n jwtIdToken: token,\r\n account,\r\n };\r\n }\r\n\r\n login(): void {\r\n this.authenticationState = checkTokenExpired();\r\n this.authenticationStateHandler(this.authenticationState);\r\n this.onAuthenticationStateChanged &&\r\n this.onAuthenticationStateChanged(this.authenticationState, undefined);\r\n }\r\n\r\n logout(): void {\r\n this.authenticationState = AuthenticationState.Unauthenticated;\r\n localStorage.removeItem(OVERRIDE_TOKEN_KEY);\r\n this.authenticationStateHandler(this.authenticationState);\r\n this.onAuthenticationStateChanged &&\r\n this.onAuthenticationStateChanged(this.authenticationState, undefined);\r\n }\r\n\r\n getError(): unknown {\r\n return null;\r\n }\r\n\r\n registerAuthenticationStateHandler(listener: unknown): void {\r\n this.authenticationStateHandler = listener as (\r\n state: AuthenticationState\r\n ) => void;\r\n }\r\n\r\n unregisterAuthenticationStateHandler(): void {\r\n this.authenticationStateHandler = () => {};\r\n }\r\n\r\n registerAcountInfoHandler(): void {}\r\n\r\n unregisterAccountInfoHandler(): void {}\r\n\r\n registerErrorHandler(listener: unknown): void {}\r\n\r\n unregisterErrorHandler(listener: unknown): void {}\r\n\r\n getAccessToken(): Promise {\r\n const expiresOn = new Date();\r\n expiresOn.setFullYear(expiresOn.getFullYear() + 1);\r\n return new Promise((resolve) => {\r\n resolve({\r\n accessToken: String(localStorage.getItem(OVERRIDE_TOKEN_KEY)),\r\n scopes: [],\r\n expiresOn,\r\n state: '',\r\n });\r\n });\r\n }\r\n\r\n getIdToken(): Promise {\r\n return new Promise((resolve) =>\r\n resolve({\r\n idToken: {\r\n issuer: '',\r\n objectId: '',\r\n subject: '',\r\n tenantId: '',\r\n version: '',\r\n preferredName: '',\r\n name: '',\r\n homeObjectId: '',\r\n nonce: '',\r\n expiration: '',\r\n rawIdToken: String(localStorage.getItem(OVERRIDE_TOKEN_KEY)),\r\n claims: {},\r\n sid: '',\r\n cloudInstance: '',\r\n },\r\n state: '',\r\n })\r\n );\r\n }\r\n}\r\n\r\nexport const authProvider = MOCK_LOGIN\r\n ? new MockMsalAuthProvider()\r\n : new MsalAuthProvider(config, authenticationParameters, {\r\n loginType: LoginType.Redirect,\r\n tokenRefreshUri: `${window.location.origin}/auth.html`,\r\n });\r\n","import axios, { AxiosInstance } from 'axios';\r\nimport { authProvider } from './authProvider';\r\n\r\nconst apiUrl = `${process.env.REACT_APP_API_PROTOCOL}://${process.env.REACT_APP_API_HOST}/${process.env.REACT_APP_API_PATH}`;\r\n\r\nexport const apiClient: AxiosInstance = axios.create({\r\n baseURL: apiUrl,\r\n headers: {\r\n 'Access-Control-Allow-Origin': '*',\r\n 'Content-Type': 'application/json',\r\n Accept: 'application/json',\r\n },\r\n});\r\n\r\napiClient.interceptors.request.use(async (config) => {\r\n const token = await authProvider?.getIdToken();\r\n\r\n return {\r\n ...config,\r\n headers: {\r\n ...config.headers,\r\n Authorization: `Bearer ${token?.idToken?.rawIdToken}`,\r\n },\r\n };\r\n});\r\n","import { QueryClient } from 'react-query';\r\n\r\nexport const twentyFourHoursInMs = 1000 * 60 * 60 * 24;\r\n\r\nexport const queryClient = new QueryClient({\r\n defaultOptions: {\r\n queries: {\r\n refetchOnWindowFocus: false,\r\n refetchOnReconnect: false,\r\n retry: false,\r\n useErrorBoundary: true,\r\n },\r\n },\r\n});\r\n","import React, { FC } from 'react';\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\n\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\n\r\nexport type Props = {};\r\n\r\nexport const DesktopSection: FC = ({ children }) => {\r\n const matches = useMediaQuery((theme) =>\r\n theme.breakpoints.up('lg')\r\n );\r\n\r\n if (matches) {\r\n return <>{children};\r\n }\r\n\r\n return null;\r\n};\r\n","import React, { FC } from 'react';\r\nimport useMediaQuery from '@material-ui/core/useMediaQuery';\r\n\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\n\r\nexport type Props = {};\r\n\r\nexport const MobileSection: FC = ({ children }) => {\r\n const matches = useMediaQuery((theme) =>\r\n theme.breakpoints.down('md')\r\n );\r\n\r\n if (matches) {\r\n return <>{children};\r\n }\r\n\r\n return null;\r\n};\r\n","import React from 'react';\r\nimport { makeStyles } from '@material-ui/core';\r\n\r\nconst useStyles = makeStyles(\r\n {\r\n logo: {\r\n display: 'inline-block',\r\n backgroundImage:\r\n \"url(\\\"data:image/svg+xml,%3C%3Fxml version='1.0' encoding='UTF-8' standalone='no'%3F%3E%3Csvg xmlns:svg='http://www.w3.org/2000/svg' xmlns='http://www.w3.org/2000/svg' version='1.0' width='746.29132' height='301.14566' id='svg63282'%3E%3Cdefs id='defs63284' /%3E%3Cg transform='translate(-343.6039,-123.8941)' id='layer1'%3E%3Cpath d='M 451.08706,130.9804 L 402.03177,271.16995 L 490.91432,271.16995 L 490.91432,130.9804 L 451.08706,130.9804 z M 496.70445,130.9804 L 496.70445,271.16995 L 586.25046,271.16995 L 537.19517,130.9804 L 496.70445,130.9804 z M 400.02131,276.96008 L 350.68456,417.95382 L 422.11629,417.95382 L 442.40186,360.67574 L 490.91432,360.67574 L 490.91432,276.96008 L 400.02131,276.96008 z M 496.70445,276.96008 L 496.70445,360.67574 L 545.88037,360.67574 L 565.66332,417.95382 L 637.59767,417.95382 L 588.26092,276.96008 L 496.70445,276.96008 z M 657.38062,130.9804 L 657.38062,271.16995 L 740.95555,271.16995 L 740.95555,130.9804 L 657.38062,130.9804 z M 746.72558,130.9804 L 746.72558,271.16995 L 833.97968,271.16995 C 825.73962,262.96028 815.83676,256.41461 804.82791,252.07056 C 824.56731,241.00962 837.87998,219.88644 837.87998,195.63687 C 837.87998,159.92748 809.00157,130.9804 773.28379,130.9804 C 773.00818,130.9804 772.73432,130.97696 772.4595,130.9804 L 746.72558,130.9804 z M 657.38062,276.96008 L 657.38062,417.95382 L 740.95555,417.95382 L 740.95555,276.96008 L 657.38062,276.96008 z M 746.72558,276.96008 L 746.72558,417.95382 L 772.4595,417.95382 C 772.73542,417.95643 773.00728,417.95382 773.28379,417.95382 C 820.76834,417.95382 859.25117,379.49452 859.25117,332.02665 C 859.25117,311.06616 851.72149,291.87276 839.24703,276.96008 L 746.72558,276.96008 z M 881.02451,130.9804 L 881.02451,271.16995 L 964.09682,271.16995 L 964.09682,130.9804 L 881.02451,130.9804 z M 969.88695,130.9804 L 969.88695,271.16995 L 1057.5432,271.16995 C 1049.3064,262.96052 1039.42,256.41454 1028.4115,252.07056 C 1048.1756,241.00962 1061.5439,219.88644 1061.5439,195.63687 C 1061.5439,159.92748 1032.5851,130.9804 996.86736,130.9804 C 996.61182,130.9804 996.35809,130.97744 996.10338,130.9804 L 969.88695,130.9804 z M 881.02451,276.96008 L 881.02451,417.95382 L 964.09682,417.95382 L 964.09682,276.96008 L 881.02451,276.96008 z M 969.88695,276.96008 L 969.88695,417.95382 L 996.10338,417.95382 C 996.3568,417.95602 996.61337,417.95382 996.86736,417.95382 C 1044.352,417.95382 1082.8146,379.49452 1082.8146,332.02665 C 1082.8146,311.06621 1075.2994,291.87277 1062.8306,276.96008 L 969.88695,276.96008 z ' style='fill:%23ff000f;fill-rule:nonzero;stroke:none' id='path63519' /%3E%3C/g%3E%3C/svg%3E%0A\\\")\",\r\n backgroundSize: 'contain',\r\n backgroundRepeat: 'no-repeat',\r\n },\r\n },\r\n { name: 'AbbLogo' }\r\n);\r\n\r\nexport interface AbbLogoProps extends React.HTMLAttributes {\r\n variant?: 'small' | 'regular' | 'big';\r\n}\r\n\r\nexport const AbbLogo = (props: AbbLogoProps) => {\r\n const { variant = 'regular', style, ...other } = props;\r\n const classes = useStyles();\r\n let width = 0;\r\n let height = 0;\r\n\r\n switch (variant) {\r\n case 'small':\r\n width = 66;\r\n height = 25;\r\n break;\r\n case 'regular':\r\n width = 76;\r\n height = 29;\r\n break;\r\n default:\r\n width = 86;\r\n height = 33;\r\n break;\r\n }\r\n const styles = {\r\n width,\r\n height,\r\n ...style,\r\n };\r\n\r\n return
;\r\n};\r\n","import { makeStyles, styled } from '@material-ui/core';\r\nimport { MaterialDesignContent } from 'notistack';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\n\r\nexport const useToastProviderStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n root: {\r\n minWidth: 300,\r\n },\r\n containerRoot: {\r\n ...theme.typography.caption,\r\n },\r\n icon: {\r\n marginRight: theme.spacing(1),\r\n },\r\n iconBlue:{\r\n color: theme.palette.blue?.main\r\n },\r\n iconYellow:{\r\n color: theme.palette.yellow?.main\r\n },\r\n iconRed:{\r\n color: theme.palette.red?.main\r\n },\r\n iconGreen:{\r\n color: theme.palette.green?.main\r\n },\r\n cancel: {\r\n color: 'inherit',\r\n },\r\n }),\r\n {\r\n name: 'ToastProvider',\r\n }\r\n);\r\n\r\nexport const StyledSnackbar = styled(MaterialDesignContent)(() => ({\r\n '&.notistack-MuiContent-success': {\r\n color: `#4a4a4a !important`,\r\n border: `1px solid #007A33`,\r\n backgroundColor: `#E5F1EA !important`,\r\n fontWeight: 700,\r\n }, \r\n '&.notistack-MuiContent-error': {\r\n color: `#4a4a4a !important`,\r\n border: `1px solid #ff000f`,\r\n backgroundColor: `#FFE5E6 !important`,\r\n fontWeight: 700,\r\n },\r\n '&.notistack-MuiContent-info': {\r\n color: `#4a4a4a !important`,\r\n border: `1px solid #004C97`,\r\n backgroundColor: `#E5EDF4 !important`,\r\n fontWeight: 700,\r\n },\r\n '&.notistack-MuiContent-warning': {\r\n color: `#4a4a4a !important`,\r\n border: `1px solid #FFD100`,\r\n backgroundColor: `#FFFBE5 !important`,\r\n fontWeight: 700,\r\n },\r\n}));\r\n","import { useState, forwardRef, useCallback } from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { useSnackbar, SnackbarContent, CustomContentProps } from \"notistack\";\r\nimport { Card, CardActions, Collapse, IconButton, makeStyles, Paper, Typography } from '@material-ui/core';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport { CheckCircle, Report } from '@material-ui/icons';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\n\r\nconst useStyles = makeStyles(\r\n //@ts-ignore\r\n (theme: AbbTheme) => ({\r\n root: {\r\n minWidth: 300,\r\n },\r\n card: {\r\n width: \"100%\", \r\n borderRadius: 4,\r\n },\r\n error: {\r\n border: `1px solid ${theme.palette.red?.main}`, \r\n backgroundColor: `${theme.palette.red?.light} !important`, \r\n },\r\n success: {\r\n border: `1px solid ${theme.palette.green?.main}`, \r\n backgroundColor: `${theme.palette.green?.light} !important`, \r\n },\r\n typography: {\r\n color: `${theme.palette.grey[600]} !important`,\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n actionRoot: {\r\n justifyContent: \"space-between\"\r\n }, \r\n paper: {\r\n padding: \"8px 16px\",\r\n borderRadius: 0,\r\n borderBottom: 0,\r\n borderRight: 0,\r\n borderLeft: 0, \r\n fontSize: 14\r\n },\r\n iconExpand: {\r\n transform: \"rotate(0deg)\",\r\n transition: \"all .2s\"\r\n },\r\n iconExpandOpen: {\r\n transform: \"rotate(180deg)\"\r\n },\r\n iconError:{\r\n padding: 4,\r\n color: theme.palette.red?.main\r\n },\r\n iconSuccess:{\r\n padding: 4,\r\n color: theme.palette.green?.main\r\n },\r\n}));\r\n\r\ndeclare module \"notistack\" {\r\n interface VariantOverrides {\r\n multipleMessages: {\r\n messages: string[],\r\n isError: boolean\r\n };\r\n }\r\n}\r\n\r\ninterface MultipleMessagesSnackbarProps extends CustomContentProps {\r\n messages: string[],\r\n isError: boolean\r\n}\r\n\r\nexport const MultipleMessagesSnackbar = forwardRef(\r\n ({ id, ...props }, ref) => {\r\n const { closeSnackbar } = useSnackbar();\r\n const classes = useStyles();\r\n const [expanded, setExpanded] = useState(false);\r\n \r\n const handleExpandClick = useCallback(() => {\r\n setExpanded((oldExpanded) => !oldExpanded);\r\n }, []);\r\n\r\n const handleClose = useCallback(() => {\r\n closeSnackbar(id);\r\n }, [id, closeSnackbar]);\r\n\r\n return (\r\n \r\n \r\n \r\n {props.isError\r\n ? \r\n : \r\n }\r\n \r\n {props.message}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n { Array.isArray(props.messages) && props.messages.length ? props.messages.map((msg, i) => (\r\n
\r\n {msg}\r\n
\r\n )) : '...' } \r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n);","import { createRef, FC } from 'react';\r\nimport { SnackbarKey, SnackbarProvider } from 'notistack';\r\nimport { CheckCircle, Warning, Report, Info, Close } from '@material-ui/icons';\r\nimport { IconButton } from '@material-ui/core';\r\nimport clsx from 'clsx';\r\nimport { useToastProviderStyles, StyledSnackbar } from './ToastProvider.style';\r\nimport { MultipleMessagesSnackbar } from \"./MultipleMessagesSnackbar\";\r\n\r\nexport const ToastProvider: FC = (props) => {\r\n const { children } = props;\r\n const notistackRef = createRef();\r\n const classes = useToastProviderStyles();\r\n const handleCloseToast = (key: SnackbarKey) => () => {\r\n notistackRef?.current?.closeSnackbar(key);\r\n };\r\n return (\r\n (\r\n \r\n \r\n \r\n )}\r\n classes={{\r\n root: classes.root,\r\n containerRoot: classes.containerRoot, \r\n }}\r\n iconVariant={{\r\n default: ,\r\n error: ,\r\n warning: ,\r\n info: ,\r\n success: (\r\n \r\n ),\r\n }}\r\n Components={{\r\n success: StyledSnackbar,\r\n error: StyledSnackbar,\r\n warning: StyledSnackbar,\r\n info: StyledSnackbar,\r\n multipleMessages: MultipleMessagesSnackbar,\r\n }}\r\n >\r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default ToastProvider;\r\n","import { useSnackbar } from 'notistack';\r\n\r\nexport interface ToastsProviderResults {\r\n showToast: (message: string) => void;\r\n showError: (error: string) => void;\r\n showMany: (message: string, errors: string[], isError: boolean) => void;\r\n showWarning: (warning: string) => void;\r\n showInfo: (info: string) => void;\r\n showSuccess: (success: string) => void;\r\n closeAll: () => void;\r\n}\r\n\r\nexport const useToasts = (): ToastsProviderResults => {\r\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\r\n return {\r\n showToast: (message) => enqueueSnackbar(message),\r\n showError: (error) => enqueueSnackbar(error, { variant: 'error', persist: true, style: {whiteSpace: 'pre-line'} }),\r\n showMany: (message, details, isError) => enqueueSnackbar(message, { variant: \"multipleMessages\", messages: details, isError, persist: true, style: {whiteSpace: 'pre-line'} }),\r\n showWarning: (warning) => enqueueSnackbar(warning, { variant: 'warning', persist: true }),\r\n showInfo: (info) => enqueueSnackbar(info, { variant: 'info', persist: true }),\r\n showSuccess: (success) => enqueueSnackbar(success, { variant: 'success', persist: true }),\r\n closeAll: () => closeSnackbar(),\r\n };\r\n};\r\n","import { IconButton, IconButtonProps, useTheme } from '@material-ui/core';\r\nimport { Print } from '@material-ui/icons';\r\n\r\nexport interface PrintButtonProps extends Omit {}\r\n\r\nexport const PrintButton = (props: PrintButtonProps) => {\r\n const theme = useTheme();\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PrintButton;\r\n","import MUIButton, { ButtonProps } from '@material-ui/core/Button';\r\n\r\nexport const Button: React.FC = ({ children, ...muiProps }) => (\r\n {children}\r\n);\r\n\r\nexport default Button;\r\n","import { makeStyles } from '@material-ui/core';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\n\r\nexport const useRoundButtonStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n root: {\r\n position: 'relative',\r\n height: 40,\r\n borderRadius: 20,\r\n margin: theme.spacing(0.5),\r\n },\r\n outlined: {\r\n color: theme.palette.grey[400],\r\n border: `2px solid ${theme.palette.grey[400]}`,\r\n '&$disabled': {\r\n borderWidth: 2,\r\n },\r\n },\r\n disabled: {},\r\n }),\r\n { name: 'RoundButton' }\r\n);\r\n","import { FC } from 'react';\r\nimport { Button, ButtonProps } from '@material-ui/core';\r\nimport clsx from 'clsx';\r\nimport { useRoundButtonStyles } from './RoundButton.style';\r\n\r\nexport const RoundButton: FC = (props) => {\r\n const {\r\n className,\r\n disabled,\r\n variant = 'outlined',\r\n children,\r\n ...other\r\n } = props;\r\n const classes = useRoundButtonStyles(props);\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default RoundButton;\r\n","import styled from 'styled-components';\r\n\r\nexport const Root = styled.div`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n flex-direction: column;\r\n`;\r\n","import { FC } from 'react';\r\nimport CircularProgress, {\r\n CircularProgressProps,\r\n} from '@material-ui/core/CircularProgress';\r\n\r\nimport { Root } from './Loader.style';\r\n\r\nexport const Loader: FC = (props) => {\r\n const { children, ...other } = props;\r\n return (\r\n \r\n \r\n {children}\r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\nimport { IconButton, IconButtonProps, useTheme } from '@material-ui/core';\r\nimport { Sync } from '@material-ui/icons';\r\n\r\nimport { Loader } from 'components/Loader/Loader';\r\n\r\nexport interface SyncButtonProps extends Omit {\r\n loading?: boolean;\r\n}\r\n\r\nexport const SyncButton: FC = ({\r\n loading = false,\r\n ...otherProps\r\n}) => {\r\n const theme = useTheme();\r\n return (\r\n \r\n {loading ? : }\r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\nimport { Link as RRDLink, LinkProps } from 'react-router-dom';\r\n\r\nexport const Link = styled(RRDLink)`\r\n text-decoration: none;\r\n color: inherit;\r\n`;\r\n","import { AxiosError } from 'axios';\r\nimport { StatusCodes } from 'http-status-codes';\r\n\r\ninterface AxiosResponseData {\r\n ReferenceId: string;\r\n Url: string;\r\n RequestContent?: string;\r\n Error: {\r\n Type: string;\r\n Message: string;\r\n };\r\n errors: [\r\n {\r\n field: string;\r\n message: string;\r\n }\r\n ]\r\n}\r\n\r\nconst getDefaultAxiosResponseData: () => AxiosResponseData['Error'] = () => ({\r\n Type: '',\r\n Message: '',\r\n});\r\nconst getDefaultAxiosResponseValidationData: () => AxiosResponseData['errors'] = () => ([{\r\n field: '',\r\n message: '',\r\n}]);\r\n\r\nexport class ApiError extends Error {\r\n code: number;\r\n\r\n referenceId: string = '';\r\n\r\n url: string = '';\r\n\r\n requestContent: string = '';\r\n\r\n error: AxiosResponseData['Error'] = getDefaultAxiosResponseData();\r\n\r\n errors: AxiosResponseData['errors'] = getDefaultAxiosResponseValidationData();\r\n\r\n constructor(_o: AxiosError | unknown) {\r\n super();\r\n\r\n if (Error.captureStackTrace) {\r\n Error.captureStackTrace(this, ApiError);\r\n }\r\n this.name = 'ApiError';\r\n\r\n \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n const axiosError = _o as any\r\n\r\n if (Array.isArray(axiosError.response?.data?.errors))\r\n this.message = axiosError.response?.data?.errors[0]?.message ?? 'An error occurs';\r\n else\r\n this.message = axiosError.response?.data?.Error?.Message ?? 'An error occurs';\r\n this.code = axiosError?.code\r\n ? parseInt(axiosError?.code, 10)\r\n : StatusCodes.INTERNAL_SERVER_ERROR;\r\n if (axiosError?.response) {\r\n const response = axiosError?.response;\r\n this.referenceId = response?.data?.ReferenceId ?? '';\r\n this.url = axiosError.response?.data?.Url ?? '';\r\n this.requestContent = response?.data.RequestContent ?? '';\r\n this.error = response?.data?.Error ?? getDefaultAxiosResponseData();\r\n }\r\n }\r\n}\r\n","export interface PaginationDto {\r\n pageSize: number;\r\n currentPageIndex: number;\r\n}\r\n\r\nexport interface Pagination extends PaginationDto {\r\n total: number;\r\n}\r\n\r\nexport const mapPaginationDto = (pagination: Pagination): PaginationDto => ({\r\n pageSize: pagination.pageSize,\r\n currentPageIndex: pagination.currentPageIndex,\r\n});\r\n","import { Pagination } from 'model/Pagination';\r\n\r\nexport interface PaginatedList extends Pagination {\r\n result: Element[];\r\n}\r\n\r\nexport const getPagination = (\r\n pageSize: number,\r\n paginatedList?: PaginatedList\r\n): Pagination => ({\r\n pageSize,\r\n total: paginatedList?.total ?? 0,\r\n currentPageIndex: paginatedList?.currentPageIndex ?? 0,\r\n});\r\n","import dayjs from 'dayjs';\r\n\r\nexport const formatTemplate = 'YYYY/MM/DD';\r\n\r\nexport const formatDate = (date: string | null): string =>\r\n date ? dayjs(date).format(formatTemplate) : '...';\r\n\r\nexport const getDateNow = (): string => formatDate(dayjs().toISOString());\r\n","import { ColumnDefinition } from 'Reports/model';\r\n\r\nexport const formatBoolean = (bool: Boolean): string => (bool ? 'Yes' : 'No');\r\n\r\nexport const capitalize = (s: string): string => {\r\n if (typeof s !== 'string') return '';\r\n return s.charAt(0).toUpperCase() + s.slice(1);\r\n};\r\n\r\nexport const getColDefName = (columnDefinition: ColumnDefinition | null) => {\r\n if(columnDefinition != null)\r\n {\r\n if(columnDefinition.name.toLowerCase().includes((columnDefinition.scopeId as string).toLowerCase()))\r\n return `${columnDefinition.name}`; \r\n \r\n return `${capitalize(columnDefinition.scopeId as string)} ${columnDefinition.name}`;\r\n } \r\n \r\n return '';\r\n}\r\n\r\nexport const formatExternalFlag = (isExternal: boolean): string =>\r\n isExternal ? 'External only' : 'ABB';\r\n","/* eslint-disable no-bitwise */\r\nexport const deepCopy = (obj: T): T => {\r\n if (!obj) {\r\n return obj;\r\n }\r\n const json = JSON.stringify(obj);\r\n return JSON.parse(json);\r\n};\r\n\r\nexport const uuid = (): string =>\r\n 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {\r\n const r = Math.random() * 16 | 0;\r\n const v = c === 'x' ? r : (r & 0x3) | 0x8;\r\n return v.toString(16);\r\n });\r\n","import fileDownload from 'js-file-download';\r\nimport { apiClient } from 'service';\r\nimport { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { EditUserDto } from 'MyProfile/model/EditUserDto';\r\nimport { PaginatedList, ApiError, PaginationDto, Sort } from 'model';\r\nimport { UserSearchFilters } from 'MyProfile/model/UserSearchFilters';\r\nimport { UserDeactivatedSearchFilters } from 'MyProfile/model/UserDeactivatedSearchFilters';\r\nimport { UserHrgtSearchFilters } from 'MyProfile/model/UserHrgtSearchFilters';\r\nimport { AddInternalDto } from 'MyProfile/model/AddInternalDto';\r\nimport { AddExternalDto } from 'MyProfile/model/AddExternalDto';\r\nimport { AddUserResponse } from 'MyProfile/model/AddUserResponse';\r\nimport { EditExternalUserDto } from 'MyProfile/model/EditExternalUserDto';\r\nimport { UserAuthorization } from 'MyProfile/model/UserAuthorization';\r\nimport { UpdateAuthorizationsDto } from 'MyProfile/model/UpdateAuthorizationsDto';\r\nimport { DeleteAuthorizationsDto } from 'MyProfile/model/DeleteAuthorizationsDto';\r\nimport { getDateNow } from 'utils';\r\n\r\nconst domainPath = '/users';\r\n\r\nconst get = async (): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/my-profile`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getUserProfile = async (userId: string): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/${userId}/profile`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst post = async (dto: EditUserDto): Promise => {\r\n try {\r\n const response = await apiClient.post(`${domainPath}/my-profile`, dto);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getSettings = async (key: string)=> {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/my-profile/additional-setting/${key}`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n}\r\n const saveSettings = async (key: string, value: string) => {\r\n try {\r\n const response = await apiClient.post(`${domainPath}/my-profile/additional-setting/${key}`, value);\r\n return undefined;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst updateUser = async (\r\n userId: number,\r\n dto: EditUserDto\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/${userId}/profile`,\r\n dto\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst updateExternalUser = async (\r\n userId: number,\r\n dto: EditExternalUserDto\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/${userId}/profile/external`,\r\n dto\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst askRemoval = async (userId: string): Promise => {\r\n try {\r\n const response = await apiClient.delete(\r\n `${domainPath}/${userId}/ask-removal`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst search = async (\r\n pagination: PaginationDto,\r\n sort: Sort,\r\n filters: UserSearchFilters\r\n): Promise> => {\r\n try {\r\n const response = await apiClient.post(`${domainPath}/search`, {\r\n ...pagination,\r\n ...filters,\r\n ...sort,\r\n });\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst searchDeactivated = async (\r\n pagination: PaginationDto,\r\n filters: UserDeactivatedSearchFilters\r\n): Promise> => {\r\n try {\r\n const response = await apiClient.post(`${domainPath}/search-deactivated`, {\r\n ...pagination,\r\n ...filters,\r\n });\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst searchHrgt = async (\r\n pagination: PaginationDto,\r\n sort: Sort,\r\n filters: UserHrgtSearchFilters\r\n): Promise> => {\r\n try {\r\n const response = await apiClient.post(`${domainPath}/search/hrgt`, {\r\n ...pagination,\r\n ...filters,\r\n ...sort,\r\n });\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst reactiveUsers = async (usersIds: number[]): Promise => {\r\n try {\r\n const response = await apiClient.post(`${domainPath}/reactive-users`, {\r\n usersIds,\r\n });\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst archiveUsers = async (usersIds: number[]): Promise => {\r\n try {\r\n const response = await apiClient.post(`${domainPath}/archive-users`, {\r\n withCertificateList: true,\r\n usersIds,\r\n });\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport interface MergeUsersDto {\r\n sourceUsersIds: number[];\r\n destinationUserId: number;\r\n}\r\nconst mergeUsers = async (dto: MergeUsersDto): Promise => {\r\n try {\r\n const response = await apiClient.post(`${domainPath}/merge-users`, dto);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst addInternals = async (\r\n dto: AddInternalDto[]\r\n): Promise => {\r\n try {\r\n const response = await apiClient.put(`${domainPath}/add-internals`, dto);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst addExternals = async (\r\n dto: AddExternalDto[]\r\n): Promise => {\r\n try {\r\n const response = await apiClient.put(`${domainPath}/add-externals`, dto);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getAuthorizations = async (\r\n userId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `${domainPath}/${userId}/authorizations`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst updateAuthorizations = async (\r\n dto: UpdateAuthorizationsDto\r\n): Promise => {\r\n try {\r\n const response = await apiClient.put(\r\n `${domainPath}/${dto.userId}/authorizations`,\r\n dto\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst deleteAuthorizations = async (\r\n dto: DeleteAuthorizationsDto\r\n): Promise => {\r\n try {\r\n const response = await apiClient.delete(\r\n `${domainPath}/${dto.userId}/authorizations`,\r\n { data: dto }\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst exportToExcel = async (\r\n filters: UserSearchFilters\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/export-excel`,\r\n filters,\r\n {\r\n responseType: 'blob',\r\n }\r\n );\r\n fileDownload(response.data, `Export_search_users_${getDateNow()}.xlsx`);\r\n return [];\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst exportToExcelDeactivated = async (\r\n filters: UserDeactivatedSearchFilters\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/export-excel-archive`,\r\n filters,\r\n {\r\n responseType: 'blob',\r\n }\r\n );\r\n fileDownload(response.data, `Export_archived_users_${getDateNow()}.xlsx`);\r\n return [];\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const myProfileApi = {\r\n get,\r\n getUserProfile,\r\n post,\r\n updateUser,\r\n updateExternalUser,\r\n askRemoval,\r\n search,\r\n searchDeactivated,\r\n searchHrgt,\r\n archiveUsers,\r\n mergeUsers,\r\n reactiveUsers,\r\n addExternals,\r\n addInternals,\r\n getAuthorizations,\r\n updateAuthorizations,\r\n deleteAuthorizations,\r\n exportToExcel,\r\n exportToExcelDeactivated,\r\n\r\n getSettings,\r\n saveSettings\r\n};\r\n","import { useQuery, UseQueryOptions } from 'react-query';\r\n\r\nimport { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { myProfileApi } from 'MyProfile/service/myProfile.api';\r\nimport { mapPaginationDto, PaginatedList, Pagination, Sort } from 'model';\r\nimport { UserSearchFilters } from 'MyProfile/model/UserSearchFilters';\r\nimport { UserDeactivatedSearchFilters } from 'MyProfile/model/UserDeactivatedSearchFilters';\r\nimport { UserHrgtSearchFilters } from 'MyProfile/model/UserHrgtSearchFilters';\r\nimport { UserAuthorization } from 'MyProfile/model/UserAuthorization';\r\nimport { twentyFourHoursInMs } from 'service/queryClient';\r\n\r\nexport const myProfileKey = 'my-profile';\r\nexport const useMyProfileQuery = () =>\r\n useQuery(myProfileKey, myProfileApi.get, {\r\n refetchOnMount: false,\r\n staleTime: twentyFourHoursInMs,\r\n });\r\n\r\nexport const userProfileKey = 'user-profile';\r\nexport const useUserProfileQuery = (userId: string) =>\r\n useQuery([userProfileKey, userId], () =>\r\n myProfileApi.getUserProfile(userId)\r\n );\r\n\r\nexport const userKey = 'user';\r\nexport const useUserQuery = (\r\n pagination: Pagination,\r\n sort: Sort,\r\n filters: UserSearchFilters,\r\n options: UseQueryOptions>\r\n) =>\r\n useQuery>(\r\n [userKey, mapPaginationDto(pagination), sort, filters],\r\n () => myProfileApi.search(mapPaginationDto(pagination), sort, filters),\r\n options\r\n );\r\n\r\nexport const userDeactivatedKey = 'user-deactivated';\r\nexport const useUserDeactivatedQuery = (\r\n pagination: Pagination,\r\n filters: UserDeactivatedSearchFilters,\r\n options: UseQueryOptions>\r\n) =>\r\n useQuery>(\r\n [userDeactivatedKey, mapPaginationDto(pagination), filters],\r\n () => myProfileApi.searchDeactivated(mapPaginationDto(pagination), filters),\r\n options\r\n );\r\n\r\nexport const userHrgtKey = 'user-hrgt';\r\nexport const useUserHrgtQuery = (\r\n pagination: Pagination,\r\n sort: Sort,\r\n filters: UserHrgtSearchFilters,\r\n options: UseQueryOptions>\r\n) =>\r\n useQuery>(\r\n [userHrgtKey, mapPaginationDto(pagination), sort, filters],\r\n () => myProfileApi.searchHrgt(mapPaginationDto(pagination), sort, filters),\r\n options\r\n );\r\n\r\nexport const userAuthorizationsKey = 'user-authorizations';\r\nexport const useUserAuthorizationsQuery = (userId: number) =>\r\n useQuery([userAuthorizationsKey, userId], () =>\r\n myProfileApi.getAuthorizations(userId)\r\n );\r\n","import { Country } from 'Dictionary/model/Country';\r\nimport { EmployeeJob, EmployeeJobFamily } from 'Dictionary/model/EmployeeJob';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport { RoleType } from 'MyProfile/enum/RoleType';\r\nimport { Role } from './Role';\r\n\r\nexport interface MyProfile {\r\n id: number;\r\n geid: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n country: Country;\r\n division: {\r\n id: number;\r\n name: string;\r\n };\r\n city: string; \r\n state: string;\r\n manager: MyProfile;\r\n functionalManager: MyProfile;\r\n channelManager: MyProfile[];\r\n partnerCompanySupervisor: MyProfile[];\r\n notes: string;\r\n employeeJobs: EmployeeJob[];\r\n employeeJobFamilies: EmployeeJobFamily[];\r\n company: {\r\n id: number;\r\n description: string;\r\n location: string;\r\n };\r\n businessUnit: {\r\n id: number;\r\n description: string;\r\n };\r\n pgUnit: {\r\n id: number;\r\n code: string;\r\n name: string;\r\n };\r\n preferredLanguages: { id: number; name: string }[];\r\n roles: Role[];\r\n isExternal: boolean;\r\n isAdmin: boolean; \r\n userNeedToUpdateProfile: boolean;\r\n deactivateDate: string;\r\n deactivatedByUser: MyProfile;\r\n}\r\n\r\nexport const getFullName = (user?: Partial): string =>\r\n user ? `${user.firstName} ${user.lastName}` : '...';\r\n\r\nexport const getFullNameWithGeid = (user?: Partial): string =>\r\n user ? `${getFullName(user)} (${user.geid})` : '...'; \r\n\r\nexport const getFullNameWithGeidAndEmail = (user?: Partial): string =>\r\n user ? `${getFullName(user)} (${user.email}, ${user.geid})` : '...'; \r\n\r\nexport const getRoles = (user: MyProfile): RoleType[] =>\r\n user.roles.map((role) => role.type as RoleType);\r\n\r\nexport const getIsExternalLabel = (user: MyProfile): string =>\r\n user.isExternal ? 'External' : 'Internal';\r\n\r\nexport const mapToAutocompleteFieldItems = (\r\n users: Partial[]\r\n): AutocompleteFieldItem[] =>\r\n users.map((user) => ({\r\n id: user.geid,\r\n group: user.email,\r\n name: user.email ? getFullNameWithGeidAndEmail(user) : getFullNameWithGeid(user) ,\r\n }));\r\n","import styled from 'styled-components';\r\nimport Avatar, { AvatarProps } from '@material-ui/core/Avatar';\r\n\r\nexport type Size = 'tiny' | 'small' | 'regular' | 'large';\r\n\r\nexport const StyledAvatar = styled(Avatar)`\r\n && {\r\n background-color: ${({ theme }) => theme.palette.grey[100]};\r\n color: ${({ theme }) => theme.palette.grey[600]};\r\n font-weight: ${({ theme }) => theme.typography.fontWeightBold};\r\n width: 40px;\r\n width: ${({ size }) => size === 'tiny' && '24px'};\r\n width: ${({ size }) => size === 'small' && '32px'};\r\n width: ${({ size }) => size === 'large' && '48px'};\r\n height: 40px;\r\n height: ${({ size }) => size === 'tiny' && '24px'};\r\n height: ${({ size }) => size === 'small' && '32px'};\r\n height: ${({ size }) => size === 'large' && '48px'};\r\n }\r\n`;\r\n\r\nexport const StyledInitials = styled.span<{ size: Size }>`\r\n font-size: 0.875rem;\r\n font-size: ${({ size }) => size === 'tiny' && '.625rem'};\r\n font-size: ${({ size }) => size === 'small' && '.75rem'};\r\n font-size: ${({ size }) => size === 'large' && '1rem'};\r\n`;\r\n","import React from 'react';\r\nimport { AvatarProps } from '@material-ui/core/Avatar';\r\n\r\nimport { StyledAvatar, StyledInitials, Size } from './Avatar.style';\r\n\r\nexport type Props = AvatarProps & {\r\n fullName: string;\r\n size?: Size;\r\n};\r\n\r\nconst getNameInitials = (fullName: string) =>\r\n fullName\r\n .split(' ')\r\n .map((name) => name.charAt(0).toUpperCase())\r\n .concat('');\r\n\r\nexport const Avatar: React.FC = ({\r\n size = 'regular',\r\n fullName,\r\n ...avatarProps\r\n}) => (\r\n \r\n {!avatarProps.src && (\r\n {getNameInitials(fullName)}\r\n )}\r\n \r\n);\r\n","import styled from 'styled-components';\r\nimport Typography, { TypographyProps } from '@material-ui/core/Typography';\r\n\r\nexport const Root = styled.div`\r\n display: flex;\r\n align-items: center;\r\n padding: 0 12px;\r\n`;\r\n\r\nexport const Details = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n padding: 12px;\r\n`;\r\n\r\nexport const NameTypography = styled(Typography)`\r\n text-transform: none;\r\n && {\r\n font-weight: ${({ theme }) => theme.typography.fontWeightBold};\r\n }\r\n`;\r\n\r\nexport const EmailTypography = styled(Typography)`\r\n text-transform: none;\r\n color: ${({ theme }) => theme.palette.grey[700]};\r\n`;\r\n","import React from 'react';\r\n\r\nimport { useMyProfileQuery } from 'MyProfile/query/myProfile.query';\r\nimport { getFullName } from 'MyProfile/model/MyProfile';\r\nimport { Avatar } from 'components/Avatar';\r\nimport {\r\n EmailTypography,\r\n NameTypography,\r\n Details,\r\n Root,\r\n} from './UserAvatar.style';\r\n\r\nexport interface UserAvatarProps {\r\n showDetails?: boolean;\r\n}\r\n\r\nexport const UserAvatar: React.FC = React.forwardRef(\r\n ({ showDetails = false }, ref) => {\r\n const { isLoading, data } = useMyProfileQuery();\r\n\r\n if (isLoading || !data) {\r\n return null;\r\n }\r\n\r\n return showDetails ? (\r\n \r\n \r\n
\r\n \r\n {data.firstName} {data.lastName}\r\n \r\n {data.email}\r\n
\r\n
\r\n ) : (\r\n \r\n );\r\n }\r\n);\r\n","import styled from 'styled-components';\r\nimport Divider, { DividerProps } from '@material-ui/core/Divider';\r\n\r\nimport { PopoverOrigin } from '@material-ui/core/Popover/Popover';\r\n\r\nexport const anchorOriginStyles: PopoverOrigin = {\r\n vertical: 'top',\r\n horizontal: 'right',\r\n};\r\n\r\nexport const transformOriginStyles: PopoverOrigin = {\r\n vertical: 'top',\r\n horizontal: 'right',\r\n};\r\n\r\nexport const StyledDivider = styled(Divider)`\r\n && {\r\n margin-top: ${({ theme }) => theme.spacing(1)}px;\r\n margin-bottom: ${({ theme }) => theme.spacing(1)}px;\r\n }\r\n`;\r\n","import { useState, FC, MouseEvent } from 'react';\r\nimport MenuItem from '@material-ui/core/MenuItem';\r\nimport MyProfileIcon from '@material-ui/icons/Person';\r\nimport LogOutIcon from '@material-ui/icons/PowerSettingsNew';\r\nimport ExpandMore from '@material-ui/icons/ExpandMore';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\nimport ListItemText from '@material-ui/core/ListItemText';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport MUIMenu from '@material-ui/core/Menu';\r\n\r\nimport * as routes from 'route';\r\nimport { Button } from 'components/Button';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport { Link } from 'components/Link/Link.style';\r\nimport { UserAvatar } from 'MyProfile/component/UserAvatar';\r\nimport {\r\n StyledDivider,\r\n anchorOriginStyles,\r\n transformOriginStyles,\r\n} from './Menu.style';\r\n\r\nexport interface MenuProps {\r\n logout: () => void;\r\n}\r\n\r\nexport const Menu: FC = ({ logout }) => {\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n\r\n const handleSetAnchorEl = (event: MouseEvent) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => setAnchorEl(null);\r\n\r\n const handleLogout = () => {\r\n handleClose();\r\n logout();\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\n\r\nexport const StyledA = styled.a<{ $hover: boolean }>`\r\n display: flex;\r\n text-decoration: underline;\r\n text-decoration-thickness: 2px;\r\n text-decoration-color: ${({ theme }) => theme.palette.grey[200]}; \r\n color: ${({ theme }) => theme.palette.grey[700]};\r\n\r\n ${({ $hover, theme }) =>\r\n $hover &&\r\n `\r\n &:hover {\r\n text-decoration-color: ${theme.palette.secondary.main}; \r\n }\r\n `}\r\n`;\r\n","import React, { FC } from 'react';\r\n\r\nimport { StyledA } from './Anchor.style';\r\n\r\nexport interface SubheaderLinkProps {\r\n href: string;\r\n hover?: boolean;\r\n}\r\n\r\nexport const Anchor: FC = ({\r\n href,\r\n hover = false,\r\n children,\r\n}) => (\r\n \r\n {children}\r\n \r\n);\r\n","import styled from 'styled-components';\r\nimport ListSubheader, {\r\n ListSubheaderProps,\r\n} from '@material-ui/core/ListSubheader';\r\n\r\nexport const StyledListSubheader = styled(ListSubheader)`\r\n text-transform: uppercase;\r\n && {\r\n font-size: 0.75rem;\r\n color: ${({ theme }) => theme.palette.grey[300]};\r\n font-weight: ${({ theme }) => theme.typography.fontWeightRegular};\r\n max-height: ${({ theme }) => theme.spacing(5)}px;\r\n }\r\n`;\r\n","import React from 'react';\r\nimport MUIList, { ListProps } from '@material-ui/core/List';\r\n\r\nimport { ListItemType } from './ListItem/ListItem';\r\nimport { StyledListSubheader } from './List.style';\r\n\r\nexport interface Props extends ListProps {\r\n items: ItemType[];\r\n renderItem: (item: ItemType) => React.ReactNode;\r\n header?: string;\r\n}\r\n\r\nexport function List({\r\n items,\r\n renderItem,\r\n header,\r\n ...listProps\r\n}: Props) {\r\n return (\r\n {header} : undefined\r\n }\r\n {...listProps}\r\n >\r\n {items.map((item, index) => (\r\n {renderItem(item)}\r\n ))}\r\n \r\n );\r\n}\r\n","import styled from 'styled-components';\r\nimport Typography, { TypographyProps } from '@material-ui/core/Typography';\r\nimport ListItem, { ListItemProps } from '@material-ui/core/ListItem';\r\nimport ListItemIcon, { ListItemIconProps } from '@material-ui/core/ListItemIcon';\r\nimport ListItemText, {\r\n ListItemTextProps,\r\n} from '@material-ui/core/ListItemText';\r\n\r\nexport const ListItemTextRoot = styled.div`\r\n display: flex;\r\n`;\r\n\r\nexport const ListItemTextTitle = styled.span`\r\n margin-right: ${({ theme }) => theme.spacing(1.5)};\r\n`;\r\n\r\nexport const StyledSecondaryText = styled(Typography)`\r\n color: ${({ theme }) => theme.palette.grey[400]};\r\n`;\r\n\r\nexport const StyledListItem = styled(ListItem)<\r\n ListItemProps & { $tinyLeftPadding: boolean }\r\n>`\r\n && {\r\n ${({ theme, $tinyLeftPadding }) =>\r\n $tinyLeftPadding &&\r\n `\r\n padding-left: ${theme.spacing(0.5)}px;\r\n `}\r\n color: ${({ theme, selected }) =>\r\n selected ? theme.palette.secondary.main : theme.palette.grey[600]};\r\n background-color: ${({ theme, selected }) =>\r\n selected && theme.palette.shades?.red05_t} !important;\r\n border-right: ${({ theme, selected }) =>\r\n selected ? `3px solid ${theme.palette.secondary.main}` : 'none'};\r\n }\r\n`;\r\n\r\nexport const StyledListItemText = styled(ListItemText)`\r\n word-break: break-all;\r\n`;\r\n\r\nexport const StyledListItemIcon = styled(ListItemIcon)`\r\n ${({ theme }) => ({\r\n marginLeft: theme.spacing(1),\r\n })}\r\n`;\r\n","import { FC, ElementType } from 'react';\r\nimport { ListItemProps as MUIListItemProps } from '@material-ui/core/ListItem';\r\nimport ListItemIcon from '@material-ui/core/ListItemIcon';\r\n\r\nimport {\r\n StyledListItem,\r\n ListItemTextTitle,\r\n ListItemTextRoot,\r\n StyledSecondaryText,\r\n StyledListItemText,\r\n StyledListItemIcon,\r\n} from './ListItem.style';\r\n\r\nexport interface ListItemType {\r\n primaryText: string;\r\n secondaryText?: string;\r\n iconPlaceholder?: boolean;\r\n Icon?: ElementType;\r\n RightIcon?: ElementType;\r\n iconAsText?: boolean;\r\n}\r\n\r\nexport interface ListItemProps extends ListItemType, MUIListItemProps {\r\n leftPadding?: 'tiny' | 'default';\r\n}\r\n\r\nexport const ListItem: FC = ({\r\n primaryText,\r\n secondaryText,\r\n iconPlaceholder,\r\n Icon,\r\n RightIcon,\r\n iconAsText,\r\n leftPadding = 'tiny',\r\n ...listItemProps\r\n}) => (\r\n )}\r\n $tinyLeftPadding={leftPadding === 'tiny'}\r\n >\r\n {Icon && !iconAsText && (\r\n \r\n \r\n \r\n )}\r\n {iconPlaceholder && }\r\n {iconAsText ? (\r\n \r\n \r\n {primaryText}\r\n {Icon && }\r\n \r\n \r\n ) : (\r\n \r\n {secondaryText}\r\n \r\n }\r\n />\r\n )}\r\n {RightIcon && (\r\n \r\n \r\n \r\n )}\r\n \r\n);\r\n","import React, { FC, ReactNode, useState } from 'react';\r\nimport Collapse from '@material-ui/core/Collapse';\r\nimport ExpandLess from '@material-ui/icons/ExpandLess';\r\nimport ExpandMore from '@material-ui/icons/ExpandMore';\r\n\r\nimport { ListItem, ListItemProps } from '../ListItem/ListItem';\r\n\r\nexport interface CollapseListItemProps extends ListItemProps {\r\n renderCollapseList: () => ReactNode;\r\n}\r\n\r\nexport const CollapseListItem: FC = ({\r\n renderCollapseList,\r\n ...listItemProps\r\n}) => {\r\n const [open, setOpen] = useState(false);\r\n\r\n return (\r\n <>\r\n setOpen(!open)}\r\n />\r\n \r\n {renderCollapseList()}\r\n \r\n \r\n );\r\n};\r\n","import { KeyboardEventHandler, ReactNode, useState } from 'react';\r\nimport { makeStyles } from '@material-ui/core/styles';\r\nimport {\r\n Collapse,\r\n IconButton,\r\n InputBase,\r\n Badge,\r\n InputBaseProps,\r\n} from '@material-ui/core';\r\nimport { Search, Clear } from '@material-ui/icons';\r\nimport FilterAltIcon from '@mui/icons-material/FilterAlt';\r\nimport clsx from 'clsx';\r\nimport { AbbTheme } from '../../theme/createAbbTheme';\r\n\r\nconst useStyles = makeStyles(\r\n (theme: AbbTheme) => {\r\n const placeholderStyle = {\r\n fontSize: 16,\r\n fontWeight: theme.typography.fontWeightLight,\r\n opacity: 1,\r\n color: theme.palette.grey[600],\r\n };\r\n return {\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n backgroundColor: theme.palette.common.white,\r\n border: `1px solid ${theme.palette.divider}`,\r\n borderRadius: 2,\r\n },\r\n searchBar: {\r\n display: 'inline-flex',\r\n width: '100%',\r\n height: 56,\r\n boxSizing: 'border-box',\r\n alignItems: 'center',\r\n padding: theme.spacing(0, 1),\r\n '&$error': {\r\n backgroundColor: theme.palette.error.light,\r\n color: theme.palette.error.contrastText,\r\n },\r\n },\r\n error: {},\r\n divider: {\r\n borderBottom: `1px solid ${theme.palette.divider}`,\r\n },\r\n input: {\r\n margin: theme.spacing(0, 1),\r\n flexGrow: 1,\r\n '& input': {\r\n '&::placeholder': {\r\n ...placeholderStyle,\r\n },\r\n '&::-moz-placeholder': {\r\n ...placeholderStyle,\r\n },\r\n '&:-ms-input-placeholder': {\r\n ...placeholderStyle,\r\n },\r\n ':-moz-placeholder': {\r\n ...placeholderStyle,\r\n },\r\n },\r\n },\r\n filters: {\r\n padding: theme.spacing(2),\r\n '&$actions': {\r\n paddingBottom: 0,\r\n },\r\n },\r\n filtersBadge: {\r\n marginTop: theme.spacing(1.5),\r\n marginRight: theme.spacing(1.5),\r\n },\r\n actionsRoot: {\r\n display: 'inline-flex',\r\n justifyContent: 'flex-end',\r\n alignItems: 'center',\r\n width: '100%',\r\n height: 56,\r\n },\r\n actions: {},\r\n };\r\n },\r\n { name: 'SearchBar' }\r\n);\r\n\r\nexport interface SearchBarProps\r\n extends Partial<{\r\n searchText: string;\r\n placeholder: string;\r\n disabled: boolean;\r\n error: unknown;\r\n InputBaseProps?: Partial;\r\n onEnter: () => void;\r\n onChange: (text: string) => void;\r\n onClearText: () => void;\r\n renderActions: () => ReactNode;\r\n selectedFiltersCount: number;\r\n }> {}\r\n\r\nexport const SearchBar: React.FC = (props) => {\r\n const {\r\n children,\r\n searchText = '',\r\n placeholder = 'Search…',\r\n disabled = false,\r\n InputBaseProps = {},\r\n error = false,\r\n onEnter,\r\n onChange,\r\n onClearText,\r\n renderActions,\r\n selectedFiltersCount = 0,\r\n } = props;\r\n const classes = useStyles(props);\r\n const [open, setOpen] = useState(false);\r\n const handleSearchEnter: KeyboardEventHandler<\r\n HTMLTextAreaElement | HTMLInputElement\r\n > = (e) =>\r\n Boolean((e.target as HTMLInputElement | HTMLTextAreaElement).value) &&\r\n e.key === 'Enter' &&\r\n onEnter &&\r\n onEnter();\r\n\r\n return (\r\n
\r\n \r\n onClearText && onClearText()}\r\n disabled={!searchText || disabled}\r\n >\r\n {!searchText ? : }\r\n \r\n onChange && onChange(e.target.value)}\r\n className={classes.input}\r\n inputProps={{ onKeyUp: handleSearchEnter }}\r\n placeholder={placeholder}\r\n value={searchText}\r\n {...InputBaseProps}\r\n />\r\n {children && (\r\n \r\n setOpen((prev) => !prev)}\r\n >\r\n \r\n \r\n \r\n )}\r\n
\r\n {children && (\r\n \r\n \r\n {children}\r\n {renderActions && (\r\n
{renderActions()}
\r\n )}\r\n
\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default SearchBar;\r\n","import {\r\n InputBase,\r\n makeStyles,\r\n IconButton,\r\n CircularProgress,\r\n InputBaseProps,\r\n} from '@material-ui/core';\r\nimport { Search, Close } from '@material-ui/icons';\r\nimport clsx from 'clsx';\r\n\r\nconst useStyles = makeStyles(\r\n (theme) => ({\r\n root: {\r\n display: 'inline-flex',\r\n width: '100%',\r\n height: 56,\r\n position: 'relative',\r\n alignItems: 'center',\r\n backgroundColor: theme.palette.common.white,\r\n border: `1px solid ${theme.palette.divider}`,\r\n borderRadius: theme.shape.borderRadius,\r\n '&$dense': {\r\n height: 42,\r\n },\r\n },\r\n dense: {},\r\n leftIcon: {\r\n margin: theme.spacing(1.5),\r\n '&$dense': {\r\n margin: theme.spacing(1),\r\n },\r\n },\r\n close: {\r\n margin: theme.spacing(0, 1.5),\r\n '&$dense': {\r\n margin: theme.spacing(1),\r\n },\r\n },\r\n input: { flexGrow: 1, margin: theme.spacing(0, 1) },\r\n }),\r\n { name: 'SearchBarBase' }\r\n);\r\n\r\nexport interface SearchBarBaseProps\r\n extends React.HTMLAttributes {\r\n disabled?: boolean;\r\n loading?: boolean;\r\n InputBaseProps?: InputBaseProps;\r\n margin?: 'dense' | 'normal';\r\n onClose?: () => void;\r\n}\r\n\r\nexport const SearchBarBase: React.FC = (props) => {\r\n const {\r\n children,\r\n className,\r\n disabled = false,\r\n loading = false,\r\n onClose,\r\n margin = 'normal',\r\n InputBaseProps = {},\r\n ...other\r\n } = props;\r\n const classes = useStyles(props);\r\n return (\r\n \r\n {loading ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {onClose && (\r\n onClose && onClose()}\r\n >\r\n \r\n \r\n )}\r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default SearchBarBase;\r\n","import { FC, HTMLAttributes } from 'react';\r\nimport { OpenInNewOutlined } from '@material-ui/icons';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\nimport clsx from 'clsx';\r\n\r\nexport interface ExternalLinkProps extends HTMLAttributes {\r\n href: string;\r\n showIcon?: boolean;\r\n}\r\n\r\nconst useStyles = makeStyles(\r\n //@ts-ignore\r\n (theme: AbbTheme) => ({\r\n root: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n textDecoration: 'none',\r\n ...theme.typography.body2,\r\n fontWeight: theme.typography.fontWeightMedium,\r\n color: theme.palette.grey[400]\r\n },\r\n icon: {\r\n marginRight: theme.spacing(1),\r\n },\r\n }),\r\n { name: 'ExternalLink' }\r\n);\r\n\r\nexport const ExternalLink: FC = (props) => {\r\n const { className, showIcon = true, href, children } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n {showIcon && } {children}\r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\n\r\nexport const TypographyWrapper = styled.div`\r\n margin-top: ${({ theme }) => theme.spacing(2.5)}px;\r\n`;\r\n","import { FC, ReactNode } from 'react';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport InputLabel from '@material-ui/core/InputLabel';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport { TypographyWrapper } from './DataField.style';\r\n\r\nexport interface DataFieldProps {\r\n label: string;\r\n value?: string | number | ReactNode;\r\n}\r\n\r\nexport const DataField: FC = ({ label, value }) => (\r\n \r\n {label}\r\n \r\n {value ?? '...'}\r\n \r\n \r\n);\r\n","import styled from 'styled-components';\r\nimport Card, { CardProps } from '@material-ui/core/Card';\r\n\r\ninterface StyledCardProps extends CardProps {\r\n $transparent: boolean;\r\n}\r\n\r\nexport const StyledCard = styled(Card)`\r\n padding: ${({ theme }) => theme.spacing(2)}px;\r\n border-radius: 0;\r\n && {\r\n ${({ $transparent }) =>\r\n $transparent &&\r\n `\r\n background: transparent;\r\n `}\r\n }\r\n`;\r\n\r\nexport const HeaderWrapper = styled.div<{ listContent?: boolean }>`\r\n && {\r\n margin-bottom: ${({ listContent, theme }) =>\r\n listContent ? theme.spacing(1) : theme.spacing(3)}px;\r\n }\r\n`;\r\n","import React, { FC } from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { CardProps as MUICardProps } from '@material-ui/core/Card';\r\n\r\nimport { HeaderWrapper, StyledCard } from './Card.style';\r\n\r\nexport interface CardProps extends MUICardProps {\r\n header?: string;\r\n listContent?: boolean;\r\n transparent?: boolean;\r\n}\r\n\r\nexport const Card: FC = ({\r\n header,\r\n listContent,\r\n elevation,\r\n transparent = false,\r\n children,\r\n ...cardProps\r\n}) => (\r\n \r\n {header && (\r\n \r\n {header}\r\n \r\n )}\r\n {children}\r\n \r\n);\r\n","import { CSSProperties } from 'react';\r\nimport styled from 'styled-components';\r\nimport {\r\n Accordion,\r\n AccordionActions,\r\n AccordionActionsProps,\r\n AccordionDetails,\r\n AccordionDetailsProps,\r\n AccordionProps,\r\n AccordionSummary,\r\n AccordionSummaryProps,\r\n} from '@material-ui/core';\r\n\r\nimport { Card, CardProps } from 'components/Page/Card/Card';\r\n\r\nexport const StyledCard = styled(Card)`\r\n width: 100%;\r\n box-sizing: border-box;\r\n`;\r\n\r\nexport const Header = styled.div<{ $rightGap?: boolean }>`\r\n display: flex;\r\n flex-direction: row;\r\n align-items: center;\r\n min-height: 56px;\r\n margin: ${({ theme, $rightGap }) =>\r\n theme.spacing(0, $rightGap ? 6 : 2, 0, 2)};\r\n`;\r\n\r\nexport const Actions = styled(Header)`\r\n justify-content: flex-end;\r\n`;\r\n\r\nexport const StyledAccordion = styled(Accordion)`\r\n margin: 0;\r\n padding: 0;\r\n`;\r\n\r\nexport const StyledAccordionSummary = styled(\r\n AccordionSummary\r\n)`\r\n margin: 0;\r\n padding: 0;\r\n .MuiAccordionSummary-content {\r\n margin: 0;\r\n padding: 0;\r\n }\r\n`;\r\n\r\nexport const StyledAccordionDetails = styled(\r\n AccordionDetails\r\n)`\r\n flex-direction: column;\r\n`;\r\n\r\nexport const StyledAccordionActions = styled(\r\n AccordionActions\r\n)`\r\n padding: ${({ theme }) => theme.spacing(2)}px;\r\n`;\r\n\r\nexport const inputButtonStyles: CSSProperties = {\r\n position: 'absolute',\r\n top: 0,\r\n right: 0,\r\n margin: '12px',\r\n};\r\n","import {\r\n Typography,\r\n CardContent,\r\n Grid,\r\n GridSize,\r\n useTheme,\r\n} from '@material-ui/core';\r\nimport { DataField } from 'components/DataField';\r\nimport { CardProps } from 'components/Page/Card/Card';\r\nimport { memo, ReactNode, useMemo } from 'react';\r\nimport { StyledCard, Header, Actions } from './DataObjectView.style';\r\n\r\nexport type DataObjectGridSize = boolean | GridSize | undefined;\r\n\r\nexport interface DataObjectViewProps extends CardProps {\r\n title?: string;\r\n item: O;\r\n dataSetMaps?: DataObjectMap[];\r\n renderExtraContent?: () => ReactNode;\r\n renderActions?: () => ReactNode;\r\n lg?: DataObjectGridSize;\r\n md?: DataObjectGridSize;\r\n sm?: DataObjectGridSize;\r\n xl?: DataObjectGridSize;\r\n xs?: DataObjectGridSize;\r\n}\r\n\r\nexport interface DataObjectMap {\r\n field: keyof O;\r\n headerName?: string;\r\n width?: number;\r\n renderField?: (set: O) => ReactNode;\r\n}\r\n\r\nconst camelCaseToText = (camel: string): string => {\r\n let result = camel.replace(/[A-Z]/g, (letter) => ` ${letter.toLowerCase()}`);\r\n result = result.charAt(0).toUpperCase() + result.slice(1);\r\n return result;\r\n};\r\n\r\nexport function DataObjectView(props: DataObjectViewProps) {\r\n const {\r\n title,\r\n item,\r\n dataSetMaps = null,\r\n renderActions,\r\n renderExtraContent,\r\n lg = 4,\r\n md = 4,\r\n sm = 6,\r\n xl = 4,\r\n xs = 12,\r\n ...other\r\n } = props;\r\n const theme = useTheme();\r\n const map = useMemo[]>(\r\n () =>\r\n dataSetMaps ??\r\n //@ts-ignore\r\n Object.keys(item).map(\r\n (key) =>\r\n ({\r\n field: key,\r\n headerName: camelCaseToText(key),\r\n } as DataObjectMap)\r\n ),\r\n [dataSetMaps]\r\n );\r\n const actions = renderActions ? renderActions() : null;\r\n return (\r\n \r\n {title && (\r\n
\r\n \r\n {title}\r\n \r\n
\r\n )}\r\n \r\n \r\n {map.map((s) => {\r\n const key = String(s.field ?? s.headerName);\r\n const value = s.renderField\r\n ? s.renderField(item) ?? '...'\r\n : item[s.field];\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n {renderExtraContent && (\r\n \r\n {renderExtraContent()}\r\n \r\n )}\r\n \r\n \r\n {actions && {actions}}\r\n
\r\n );\r\n}\r\n\r\nexport default memo(DataObjectView);\r\n","import styled from 'styled-components';\r\n\r\nexport const SummaryWrapper = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n","import { FC } from 'react';\r\nimport MUIAccordion, {\r\n AccordionProps as MUIAccordionProps,\r\n} from '@material-ui/core/Accordion';\r\nimport AccordionSummary from '@material-ui/core/AccordionSummary';\r\nimport AccordionDetails from '@material-ui/core/AccordionDetails';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport { SummaryWrapper } from './Accordion.style';\r\n\r\nexport interface AccordionProps extends MUIAccordionProps {\r\n summaryIcon?: JSX.Element;\r\n summaryHeader: string;\r\n summaryCaption?: string;\r\n}\r\n\r\nexport const Accordion: FC = ({\r\n summaryHeader,\r\n summaryIcon,\r\n summaryCaption,\r\n children,\r\n ...accordionProps\r\n}) => (\r\n \r\n }>\r\n {summaryIcon}\r\n \r\n {summaryCaption && (\r\n {summaryCaption}\r\n )}\r\n {summaryHeader}\r\n \r\n \r\n {children}\r\n \r\n)\r\n\r\n","import styled from 'styled-components';\r\n\r\nexport const SpaceTop = styled.div<{ $marginTop: boolean }>`\r\n ${({ $marginTop, theme }) =>\r\n $marginTop &&\r\n `\r\n margin-top: ${theme.spacing(3)}px;\r\n `}\r\n`;\r\n","import { Accordion, AccordionProps } from './Accordion';\r\nimport { SpaceTop } from './AccordionList.style';\r\n\r\nexport interface AccordionListProps {\r\n accordions: AccordionProps[];\r\n spaceBetween?: boolean;\r\n defaultExpandedFirst?: boolean;\r\n}\r\n\r\nexport const AccordionList = ({\r\n accordions,\r\n spaceBetween = false,\r\n defaultExpandedFirst = false,\r\n}: AccordionListProps) => {\r\n const isExpanded = (index: number): boolean =>\r\n defaultExpandedFirst && index === 0;\r\n\r\n return (\r\n <>\r\n {accordions.map((accordion, i) =>\r\n spaceBetween ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n )\r\n )}\r\n \r\n );\r\n};\r\n","import * as MUI from \"@material-ui/icons\"\r\n\r\nconst UsedIcons = {\r\n DefaultFilter: MUI.Star,\r\n Edit: MUI.Edit,\r\n Delete: MUI.Delete,\r\n Close: MUI.Close,\r\n Add: MUI.Add,\r\n List: MUI.List,\r\n ExpandMore: MUI.ExpandMore,\r\n ExpandLess: MUI.ExpandLess,\r\n NavigateNext: MUI.NavigateNext,\r\n NavigateBefore: MUI.NavigateBefore,\r\n Settings: MUI.Settings,\r\n HelperIcon : MUI.Info,\r\n Menu: MUI.MoreVert,\r\n}\r\n\r\nexport default UsedIcons","import { withStyles } from '@material-ui/core/styles';\r\nimport { Chip, ChipProps } from '@material-ui/core';\r\n\r\nconst StyledChipButton = withStyles({\r\n root: {\r\n borderRadius: 5,\r\n margin: 5,\r\n paddingTop: 15,\r\n paddingBottom: 15\r\n },\r\n})(Chip);\r\n\r\nexport const ChipButton = (p: ChipProps) => ()\r\n","import { ChipButton } from \"./ChipButton\"\r\n\r\ninterface ItemRequiredField {\r\n title: string,\r\n}\r\n\r\nexport interface ChipButtonListProps {\r\n items?: T[]\r\n current?: T\r\n onSelected: React.Dispatch\r\n onDeleted?: React.Dispatch\r\n\r\n formatIcon?: (item: T) => React.ReactElement\r\n\r\n};\r\n\r\nexport function ChipButtonList(props: ChipButtonListProps) {\r\n\r\n if (!props.items) return (<>)\r\n return (\r\n <>\r\n {props.items.map((item, idx) =>\r\n ( props.onSelected(item)}\r\n onDelete={() => props.onDeleted && props.onDeleted(item)}\r\n icon={props.formatIcon ? props.formatIcon(item) : undefined}\r\n label={item.title}\r\n />)\r\n\r\n\r\n )}\r\n )\r\n}","import { Box, Checkbox, TextField, Typography } from '@material-ui/core';\r\nimport { useState } from 'react';\r\n\r\nimport { myProfileApi } from 'MyProfile/service/myProfile.api';\r\n\r\nimport Icons from '../Trivial/UsedIcons';\r\nimport { Button } from '../Button';\r\nimport { ChipButtonList } from '../Trivial/ChipButtonList';\r\n\r\n\r\nexport interface ListFiltersSettings {\r\n defaultFilter?: string\r\n filters?: FilterSetting[]\r\n}\r\n\r\nexport interface FilterSetting {\r\n title: string\r\n filter: unknown\r\n}\r\n\r\nexport const userFilterLogic = {\r\n\r\n add: (settings: ListFiltersSettings, filterValues: unknown) => {\r\n if (settings.filters == undefined) // eslint-disable-next-line\r\n settings.filters = []\r\n\r\n const newItem: FilterSetting = { title: \"New filter\", filter: filterValues }\r\n settings.filters.push(newItem)\r\n return newItem\r\n },\r\n\r\n delete: (settings: ListFiltersSettings, filter: FilterSetting) => {\r\n if (settings.filters == undefined) return;\r\n\r\n const idx = settings.filters.indexOf(filter)\r\n settings.filters.splice(idx, 1)\r\n if (settings.defaultFilter == filter.title) // eslint-disable-next-line\r\n settings.defaultFilter = undefined\r\n },\r\n\r\n persist: (settingKey: string, settings: ListFiltersSettings) => {\r\n myProfileApi.saveSettings(settingKey, JSON.stringify(settings));\r\n },\r\n\r\n getDefault: (settings: ListFiltersSettings) => {\r\n if ((settings.defaultFilter ?? \"\") == \"\") return undefined\r\n return settings.filters?.find(e => e.title == settings.defaultFilter)\r\n },\r\n setDefault: (settings: ListFiltersSettings, filter: FilterSetting | undefined) => { // eslint-disable-next-line\r\n settings.defaultFilter = filter?.title\r\n },\r\n\r\n load: (settingKey: string) =>\r\n myProfileApi.getSettings(settingKey)\r\n}\r\n\r\nexport interface UserFilerListProps {\r\n items: ListFiltersSettings\r\n current?: FilterSetting\r\n savingCurrent: boolean\r\n\r\n onSelected: React.Dispatch\r\n onDeleted?: React.Dispatch\r\n};\r\n\r\nexport function UserFilterList(props: UserFilerListProps) {\r\n const { items, ...other } = props;\r\n if (!props.items || props.savingCurrent) return (<>)\r\n return (\r\n <>\r\n i == userFilterLogic.getDefault(props.items) ? : <>} />\r\n )\r\n}\r\n\r\nexport interface UserFilerSaverProps {\r\n current?: FilterSetting\r\n dirty: boolean\r\n onSaved: React.Dispatch\r\n onEdit: React.Dispatch\r\n onCancel: React.DispatchWithoutAction\r\n savingCurrent: boolean\r\n\r\n};\r\n\r\nexport function UserFilterSaver(props: UserFilerSaverProps) {\r\n if (props.dirty && (!props.savingCurrent || props.current == undefined)) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n if (!props.dirty && props.current && !props.savingCurrent) {\r\n return (\r\n \r\n )\r\n }\r\n\r\n if (!props.current) return (<>)\r\n return (\r\n <>\r\n \r\n \r\n )\r\n\r\n}\r\n\r\nexport function UserFilterNameEditor(props: {\r\n items: ListFiltersSettings\r\n current: FilterSetting\r\n savingCurrent: boolean\r\n}) {\r\n\r\n const [state, setState] = useState({ newTitle: \"\", isDefault: false })\r\n if (!props.current || !props.savingCurrent) return (<>)\r\n\r\n const edit = props.current\r\n const seti = props.items\r\n return (\r\n <>\r\n \r\n e.title == state.newTitle && e != props.current)) != null}\r\n defaultValue={edit!.title}\r\n required={true}\r\n onChange={e => { setState({ ...state, newTitle: e.currentTarget.value }); edit!.title = e.currentTarget.value; }}\r\n />\r\n \r\n userFilterLogic.setDefault(props.items, e.target.checked ? props.current : undefined)}\r\n />\r\n Set this setting as default\r\n \r\n \r\n )\r\n}\r\n","import styled from 'styled-components';\r\n\r\nexport const PageActionsRoot = styled.div`\r\n width: 100%;\r\n display: flex;\r\n justify-content: flex-end;\r\n padding: ${({ theme }) => theme.spacing(1, 0, 0)};\r\n`;\r\n\r\nexport const FieldRoot = styled.div<{ $hintMargin?: boolean, $topbottomPadding?: number }>`\r\n ${({ theme, $hintMargin, $topbottomPadding }) => ({\r\n padding: theme.spacing($topbottomPadding ?? 0, 0.5),\r\n [theme.breakpoints.up('lg')]: {\r\n ...($hintMargin && { marginBottom: theme.spacing(2.5) }),\r\n },\r\n })}\r\n`;\r\n","import React, { ReactNode, Ref, useEffect, useRef, useState } from 'react';\r\nimport { Form, Formik, FormikConfig, FormikProps, FormikValues } from 'formik';\r\n\r\nimport { Button } from 'components/Button';\r\nimport { SearchBar } from 'components/SearchBar/SearchBar';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { UserFilterList, UserFilterSaver, ListFiltersSettings, FilterSetting, UserFilterNameEditor, userFilterLogic } from './UserFilersList';\r\nimport { PageActionsRoot } from './SearchFiltersForm.style';\r\n\r\nexport interface SearchFiltersDefaultValues {\r\n searchText: string;\r\n}\r\n\r\n\r\nexport interface SearchFiltersFormProps extends FormikConfig {\r\n loading?: boolean;\r\n placeholder?: string;\r\n renderPageActions?: () => ReactNode;\r\n children: (formikProps: FormikProps) => ReactNode;\r\n\r\n withFilterSaveKey?: string\r\n\r\n searchBarField?: keyof Values | \"searchText\"\r\n}\r\n\r\nexport const getFormmikFormCounter = (values: FormikValues): number =>\r\n Object.keys(values).reduce((counter, key) => {\r\n if(['purpose', 'sortExpression', 'sortDescending', 'currentPageIndex', 'pageSize'].includes(key)) return counter;\r\n const currentValue = values[key];\r\n if (Array.isArray(currentValue)) {\r\n return counter + currentValue.length;\r\n }\r\n if (!Object.keys(values[key] ?? {}).length || currentValue === null) {\r\n return counter;\r\n }\r\n return counter + 1;\r\n }, 0);\r\n\r\nexport function SearchFiltersForm(p: SearchFiltersFormProps) {\r\n return SearchFiltersFormSmart(p)\r\n}\r\n\r\nexport function SearchFiltersFormSmart({\r\n renderPageActions,\r\n children,\r\n placeholder,\r\n loading = false,\r\n searchBarField = \"searchText\",\r\n initialValues,\r\n withFilterSaveKey,\r\n ...otherProps\r\n}: SearchFiltersFormProps) {\r\n\r\n if (typeof searchBarField !== \"string\") throw new Error(\"Invalid searchBarField type. Expected string.\")\r\n\r\n const disableFilterSave = !withFilterSaveKey\r\n\r\n const [state, setState] = useState<{\r\n valuesToUse: Values\r\n filters: ListFiltersSettings,\r\n selectedFilter?: FilterSetting\r\n savingCurrent: boolean,\r\n prevInfo?: ListFiltersSettings\r\n }>({ valuesToUse: initialValues, filters: {}, savingCurrent: false });\r\n const { showSuccess, showError } = useToasts();\r\n\r\n\r\n useEffect(() => {\r\n if (disableFilterSave) return;\r\n const fetchData = async () => {\r\n const settings = await userFilterLogic.load(withFilterSaveKey!)\r\n const defaultValues = userFilterLogic.getDefault(settings)\r\n if (defaultValues != undefined) //@ts-ignore >>HACK?\r\n otherProps?.onSubmit(defaultValues.filter as Values, null)\r\n setState({ ...state, selectedFilter: defaultValues, valuesToUse: defaultValues?.filter as Values ?? initialValues, filters: { ...settings } })\r\n }\r\n fetchData().catch(console.error);\r\n }, [])\r\n\r\n useEffect(() => {\r\n const divisionFilter = state.filters?.filters?.find(e => e.title == 'division');\r\n if(divisionFilter){\r\n userFilterLogic.delete(state.filters, divisionFilter)\r\n userFilterLogic.persist(withFilterSaveKey!, state.filters)\r\n setState({ ...state, filters: { ...state.filters } })\r\n }\r\n }, [state.filters, state.selectedFilter]);\r\n\r\n const onUserFilterDelete = (filter: FilterSetting) => {\r\n userFilterLogic.delete(state.filters, filter)\r\n userFilterLogic.persist(withFilterSaveKey!, state.filters)\r\n setState({ ...state, filters: { ...state.filters } })\r\n }\r\n\r\n const onUserFilterEdit = (filter: FilterSetting | undefined, formikProps: FormikProps) => {\r\n const isNew = formikProps.dirty && !state.savingCurrent;\r\n const selected = isNew ? userFilterLogic.add(state.filters, formikProps.values) : state.selectedFilter!\r\n setState({ ...state, savingCurrent: true, selectedFilter: selected, prevInfo: JSON.parse(JSON.stringify(state.filters)) })\r\n }\r\n\r\n const onUserFilterSave = (filter: FilterSetting, formikProps: FormikProps) => {\r\n if (state.filters?.filters?.find((e => e.title == filter.title && e != filter)) != null) {\r\n showError('There are duplicates in the settings names. Settings names must be unique.')\r\n return\r\n }\r\n Object.assign(filter.filter, formikProps.values)\r\n formikProps.resetForm({ values: filter.filter as Values });\r\n userFilterLogic.persist(withFilterSaveKey!, state.filters);\r\n setState({ ...state, savingCurrent: false, prevInfo: undefined })\r\n }\r\n\r\n const onUserFilterCancelEdit = () => {\r\n setState({ ...state, savingCurrent: false, selectedFilter: undefined, filters: state.prevInfo!, prevInfo: undefined })\r\n }\r\n\r\n const onUserFilterSelected = (filter: FilterSetting, formikProps: FormikProps) => {\r\n setState({ ...state, selectedFilter: filter });\r\n formikProps.resetForm({ values: filter.filter as Values })\r\n }\r\n\r\n const onFiltersReset = (formikProps: FormikProps) => {\r\n setState({ ...state, savingCurrent: false, selectedFilter: undefined })\r\n formikProps.resetForm({ values: initialValues })\r\n }\r\n\r\n\r\n const renderActions = (formikProps: FormikProps): React.ReactNode =>\r\n (<>\r\n {\r\n disableFilterSave ?\r\n <> :\r\n <>\r\n onUserFilterEdit(i, formikProps)}\r\n onSaved={i => onUserFilterSave(i, formikProps)}\r\n onCancel={() => onUserFilterCancelEdit()}\r\n />\r\n \r\n }\r\n {\r\n state.savingCurrent ?\r\n <> :\r\n <>\r\n onFiltersReset(formikProps)}\r\n disabled={loading}\r\n >\r\n Clear filters\r\n \r\n \r\n \r\n }\r\n )\r\n\r\n return (\r\n \r\n {(formikProps: FormikProps) => (\r\n
\r\n )[searchBarField] as string}\r\n selectedFiltersCount={getFormmikFormCounter(formikProps.values)}\r\n renderActions={() => renderActions(formikProps)}\r\n onClearText={() => {\r\n formikProps.setFieldValue(searchBarField, '');\r\n formikProps.submitForm();\r\n }}\r\n onChange={(text) => formikProps.setFieldValue(searchBarField, text)}\r\n onEnter={() => formikProps.submitForm()}\r\n >\r\n {\r\n disableFilterSave ?\r\n <> :\r\n <>\r\n onUserFilterDelete(filter)}\r\n onSelected={filter => onUserFilterSelected(filter, formikProps)} />\r\n \r\n }\r\n {\r\n disableFilterSave || state.selectedFilter == undefined ?\r\n <> :\r\n <>\r\n \r\n \r\n }\r\n {children(formikProps)}\r\n \r\n {renderPageActions && (\r\n {renderPageActions()}\r\n )}\r\n \r\n )\r\n }\r\n
\r\n );\r\n}\r\n","var _defs, _g, _rect;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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\";\nfunction SvgNoInternetConnection(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"no-connectivity\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 256,\n height: 256,\n viewBox: \"0 0 256 256\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient\",\n x1: 1,\n y1: 0.5,\n x2: 0,\n y2: 0.5,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#3f3f3f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.025,\n stopColor: \"#393939\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.059,\n stopColor: \"#333\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.106,\n stopColor: \"#2e2e2e\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.173,\n stopColor: \"#292929\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.264,\n stopColor: \"#252525\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.387,\n stopColor: \"#232323\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.547,\n stopColor: \"#212121\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.749,\n stopColor: \"#1f1f1f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#1f1f1f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-2\",\n x1: 1,\n y1: 0.5,\n x2: 0,\n y2: 0.5,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#3f3f3f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.082,\n stopColor: \"#3b3b3b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.164,\n stopColor: \"#373737\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.248,\n stopColor: \"#333\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.339,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.439,\n stopColor: \"#2b2b2b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.552,\n stopColor: \"#272727\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.681,\n stopColor: \"#232323\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.829,\n stopColor: \"#212121\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#1f1f1f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-3\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#ff000f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.061,\n stopColor: \"#f30410\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.13,\n stopColor: \"#e90512\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.21,\n stopColor: \"#e00612\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.303,\n stopColor: \"#d90713\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.408,\n stopColor: \"#d40713\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.53,\n stopColor: \"#d00814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.668,\n stopColor: \"#ce0814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.824,\n stopColor: \"#cc0814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cc0814\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-4\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#9a5a2a\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.169,\n stopColor: \"#985929\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.311,\n stopColor: \"#965728\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.433,\n stopColor: \"#925527\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.538,\n stopColor: \"#8e5225\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"#894f22\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#834b1f\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.808,\n stopColor: \"#7c461c\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.9,\n stopColor: \"#744118\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#6c3b13\",\n stopOpacity: 0.902\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-5\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.23,\n stopColor: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.415,\n stopColor: \"#eee\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.564,\n stopColor: \"#ededed\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.68,\n stopColor: \"#ebebeb\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.771,\n stopColor: \"#e9e9e9\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.843,\n stopColor: \"#e5e5e5\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.901,\n stopColor: \"#e0e0e0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.951,\n stopColor: \"#d8d8d8\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cfcfcf\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-6\",\n x1: 0.5,\n y1: 1,\n x2: 0.5,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#cc0814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.176,\n stopColor: \"#cc0814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.332,\n stopColor: \"#ce0814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.47,\n stopColor: \"#d00814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.591,\n stopColor: \"#d40713\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.697,\n stopColor: \"#d90713\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.79,\n stopColor: \"#e00612\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.87,\n stopColor: \"#e90512\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.939,\n stopColor: \"#f30410\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#ff000f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-8\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.169,\n stopColor: \"#eee\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.311,\n stopColor: \"#ededed\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.433,\n stopColor: \"#ececec\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.538,\n stopColor: \"#eaeaea\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"#e7e7e7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#e3e3e3\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.808,\n stopColor: \"#dedede\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.9,\n stopColor: \"#d7d7d7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cfcfcf\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-10\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#9a5a2a\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.131,\n stopColor: \"#995929\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.247,\n stopColor: \"#955728\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.353,\n stopColor: \"#8f5325\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.452,\n stopColor: \"#894f22\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.548,\n stopColor: \"#814a1f\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.647,\n stopColor: \"#7a441b\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.753,\n stopColor: \"#734017\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#6e3c14\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#6c3b13\",\n stopOpacity: 0.902\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-11\",\n x1: 0.5,\n y1: 0.003,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.082,\n stopColor: \"#2d2d2d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.164,\n stopColor: \"#2b2b2b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.248,\n stopColor: \"#292929\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.339,\n stopColor: \"#262626\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.439,\n stopColor: \"#242424\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.552,\n stopColor: \"#232323\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.681,\n stopColor: \"#212121\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.829,\n stopColor: \"#202020\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#1f1f1f\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"NoInternet\",\n transform: \"translate(0 2.599)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_148\",\n \"data-name\": \"Path 148\",\n d: \"M255,132.923c6.354,28.141-18.588,64.345-46.226,82.177-27.6,17.782-57.943,17.153-84.791,16.776l-7.459-.121c-23.814-.433-45-1.577-65.6-12.025C28.2,208.2,6.283,185.253,1.2,157.32c-5.075-27.693,6.4-60.229,25.455-86.484l.58-.794c19.356-26.431,46.4-46.3,71.98-46.04s49.872,20.622,80.792,40.758l3.708,2.4C213.906,86.525,248.862,105.945,255,132.923Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_48\",\n \"data-name\": \"Group 48\",\n transform: \"translate(35.205 19.401)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_149\",\n \"data-name\": \"Path 149\",\n d: \"M106.5,153.591l.013.833.007.886v.942a216.567,216.567,0,0,1-8.56,56.333l-1.575-.013h0l-1.259-3.594-.849-3.317q-9.261-36.378-10.093-49.516Z\",\n fill: \"url(#linear-gradient)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_150\",\n \"data-name\": \"Path 150\",\n d: \"M85.1,153.964l.008.539.017.55q.532,13.778,11.932,57.524c-2.793-.023-5.556-.064-8.283-.1l-7.459-.121c-6.758-.123-13.3-.3-19.686-.737l-.31-.977a223.775,223.775,0,0,1-6.874-26.44,135.891,135.891,0,0,1-2.1-24.411Z\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_151\",\n \"data-name\": \"Path 151\",\n d: \"M133.637,130.115c1.5.844,2.573,1.313,4.021,2.155l1.761,1.032q39.772,23.449,53.771,46.152-1.178,1.214-2.384,2.391-13.431-22.5-54.113-46.345l-.953-.553h0l-1.346-.767-2.351-1.322Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-3)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_152\",\n \"data-name\": \"Path 152\",\n d: \"M111.94,64.455c9.559,4.355,22.6,54.8,23.907,59.557l.16.57c1.306,4.548,3.157,8.807.326,11.206-1,.847-5.994,2.861-7.861,1.026s-.617-5.59,1.109-5.871l.369-.066c4.055-.792-2.857-2.134-3.388-7.307l-.018-.221q-.351-5.328-4.836-12.954l-.3-.511L114,96.777c-5.484-9.764-10.982-13.3-14.78-17.8C91.608,69.959,102.382,60.1,111.94,64.455Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_153\",\n \"data-name\": \"Path 153\",\n d: \"M111.94,64.455c9.559,4.355,22.6,54.8,23.907,59.557l.16.57c1.306,4.548,3.157,8.807.326,11.206-1,.847-5.994,2.861-7.861,1.026s-.617-5.59,1.109-5.871l.369-.066c4.055-.792-2.857-2.134-3.388-7.307l-.018-.221q-.351-5.328-4.836-12.954l-.3-.511L114,96.777c-5.484-9.764-10.982-13.3-14.78-17.8C91.608,69.959,102.382,60.1,111.94,64.455Z\",\n fill: \"url(#linear-gradient-4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_154\",\n \"data-name\": \"Path 154\",\n d: \"M74.077,50.037c9.01,0,24.708,2.468,33.45,6.575s16.908,23.159,16.564,23.672q-.345.513-16.512,10.6-1.137,13.141-1.137,19.169c0,6.029,2.363,42.4,1.075,43.49s-7.835,4.83-23.4,8.544q-10.038,2.4-32.807,0,2.315-33.722.91-48.361c-1.4-14.64-9.827-46.7-3.78-54.964C52.471,53.253,65.067,50.037,74.077,50.037Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_155\",\n \"data-name\": \"Path 155\",\n d: \"M107.809,123.7a.993.993,0,0,1,.433.391,1.57,1.57,0,0,1,.19.832l.013.238,2.181-.114a.546.546,0,0,1,.057,1.09l-2.181.115.171,3.271,2.181-.114a.546.546,0,1,1,.057,1.09l-2.181.115.013.237a1.586,1.586,0,0,1-.1.848.994.994,0,0,1-.39.434,1.379,1.379,0,0,1-.682.18l-4.989.263c-.062,0-.119.006-.172.007l-.135.009a4.369,4.369,0,0,1-4.095-2.327h-.049c-44.689.279-73.883,15.262-87.878,44.911l-1.544,3.464q-2.772,6.238-6.04,13.707Q1.323,191.382,0,190.361l2.779-6.4c2.078-4.749,3.992-9.065,4.074-9.244,14.384-31.467,44.8-47.364,90.952-47.728l.052,0a4.37,4.37,0,0,1,3.96-3.118l5.145-.269A1.579,1.579,0,0,1,107.809,123.7Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-6)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_156\",\n \"data-name\": \"Path 156\",\n d: \"M42.278,73.574c-3.233,6.964-5.262,35.8-3.173,38.988S60.793,125.214,68.09,128.1s19.731,5.113,22.013,5.113A26.339,26.339,0,0,0,97,132.244l.181-.114c.421-.283.362-.439.211-1.394-.17-1.075-2.888-.479-5-.54-.919-.027-2.6-1.279-2.289-2.1s4.09-.519,4.807-1.058c.423-.318.371-1.091-.322-1.535-.481-.308-5.16-.14-7.731-.671l-.123-.033c-1.455-.43-11.241-4.364-14.245-6.864l-2.287-1.49q-12.321-8.067-13.782-10.008C55,104.557,60.554,83.22,59.7,80.908l-.159-.215C56.835,77.149,45.212,67.254,42.278,73.574Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_157\",\n \"data-name\": \"Path 157\",\n d: \"M42.278,73.574c-3.233,6.964-5.262,35.8-3.173,38.988S60.793,125.214,68.09,128.1s19.731,5.113,22.013,5.113A26.339,26.339,0,0,0,97,132.244l.181-.114c.421-.283.362-.439.211-1.394-.17-1.075-2.888-.479-5-.54-.919-.027-2.6-1.279-2.289-2.1s4.09-.519,4.807-1.058c.423-.318.371-1.091-.322-1.535-.481-.308-5.16-.14-7.731-.671l-.123-.033c-1.455-.43-11.241-4.364-14.245-6.864l-2.287-1.49q-12.321-8.067-13.782-10.008C55,104.557,60.554,83.22,59.7,80.908l-.159-.215C56.835,77.149,45.212,67.254,42.278,73.574Z\",\n fill: \"url(#linear-gradient-4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_158\",\n \"data-name\": \"Path 158\",\n d: \"M59.7,55.143l.392.186c4.2,2.07,9.009,6.92,4.87,21.18l-.407,1.382C63.149,82.757,61.7,88.952,61,92.052L60.569,94s-1.639,1.823-8.644,1.316A41.594,41.594,0,0,1,36.8,90.872l.378-2.174c1.118-6.21,4.579-23.869,8.517-28.43C50.495,54.7,55.376,53.161,59.7,55.143Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-8)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_159\",\n \"data-name\": \"Path 159\",\n d: \"M120.552,128.246c.7-2.621,2.689-4.367,4.436-3.9a2.124,2.124,0,0,1,.294.1l-.025-.006a26.8,26.8,0,0,1,5.96,2.768c1.467.882,1.652,2.654,1.266,4.186s-1.132,3.213-2.933,3.043l-6.318-.533a2.254,2.254,0,0,1-.788-.066C120.7,133.372,119.85,130.868,120.552,128.246Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-6)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_160\",\n \"data-name\": \"Path 160\",\n d: \"M93.814,50.532l-1.044,3.895h0a114.323,114.323,0,0,1-3.687,11.192,35.6,35.6,0,0,1-10.341-6.851,16.069,16.069,0,0,1-4.505-9.151,121.492,121.492,0,0,0,2.86-17.76c-3.056-7.281-1.672-11.247,1.645-13.408q11.112-7.241,33.544,2.249Q108.2,44.644,101.43,50.138,98.529,52.491,93.814,50.532Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_161\",\n \"data-name\": \"Path 161\",\n d: \"M93.814,50.532l-1.044,3.895h0a114.323,114.323,0,0,1-3.687,11.192,35.6,35.6,0,0,1-10.341-6.851,16.069,16.069,0,0,1-4.505-9.151,121.492,121.492,0,0,0,2.86-17.76c-3.056-7.281-1.672-11.247,1.645-13.408q11.112-7.241,33.544,2.249Q108.2,44.644,101.43,50.138,98.529,52.491,93.814,50.532Z\",\n fill: \"url(#linear-gradient-10)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_162\",\n \"data-name\": \"Path 162\",\n d: \"M83.432,43.4a24.107,24.107,0,0,0,9.87,6.92l.527.215a.012.012,0,0,1-.014,0l-1.09,4.062A18.717,18.717,0,0,1,83.432,43.4Z\",\n fill: \"#6c3b13\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_163\",\n \"data-name\": \"Path 163\",\n d: \"M84.895,22.555c-.787-1.161-2.525-2.255-4.142-1.11-2.51,1.778-4.124,9.718-.656,10.93l.184.057c.967.259,1.114,3.79-3.764,4.773,0-1.769-1.282-6.033-1.882-10.628a33.394,33.394,0,0,1,.726-10.628C70.69,12.611,74.066,5.17,77.63,6.125c1.343-7.292,13.68-7.936,16.977-2.664,5.914-4.2,16.456,1.586,15.884,6.448,8.874-2.092,9.737,10.291,1.227,13l-.367.112c-3.48,1.007-8.4,1.032-18.145-1.579l-.326-.08c-1.407-.311-2.741-.14-3.483,1.54-.8,1.809.332,3.68-2.108,3.677S86.054,24.992,84.895,22.555Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-11)\"\n })))), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_32\",\n \"data-name\": \"Rectangle 32\",\n width: 256,\n height: 256,\n fill: \"none\"\n })));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNoInternetConnection);\nexport default __webpack_public_path__ + \"static/media/NoInternetConnection.c1f18835.svg\";\nexport { ForwardRef as ReactComponent };","import { makeStyles } from '@material-ui/core';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\n\r\nexport const useTabsViewStyles = makeStyles((theme: AbbTheme) => ({\r\n tabs:{\r\n borderBottom: `1px solid ${theme.palette.divider}`,\r\n minWidth: '130px'\r\n },\r\n content: {\r\n margin: theme.spacing(3,0)\r\n }\r\n}), {\r\n name: 'TabsView',\r\n});\r\n","import { FC, ReactNodeArray, useState } from 'react';\r\nimport { Tabs, Tab } from '@material-ui/core';\r\nimport SwipeableViews from 'react-swipeable-views';\r\nimport { useTabsViewStyles } from './TabsView.style';\r\n\r\nexport interface TabsViewProps {\r\n disabled?: boolean;\r\n labels: string[];\r\n animateHeight?: boolean;\r\n tabIndex?: number;\r\n onChange?: (tabIndex: number) => void;\r\n renderTabs?: () => ReactNodeArray;\r\n}\r\n\r\nexport const TabsView: FC = (props) => {\r\n const {\r\n tabIndex: tabIndexProp,\r\n onChange,\r\n labels,\r\n renderTabs,\r\n disabled = false,\r\n animateHeight = true,\r\n children,\r\n } = props;\r\n const [tabIndex, setTabIndex] = useState(0);\r\n const classes = useTabsViewStyles(props);\r\n const handleChange = (event: React.ChangeEvent<{}>, newValue: number) => {\r\n handleChangeIndex(newValue);\r\n };\r\n\r\n const handleChangeIndex = (index: number) => {\r\n if (onChange) {\r\n onChange(index);\r\n } else {\r\n setTabIndex(index);\r\n }\r\n };\r\n const index = tabIndexProp ?? tabIndex;\r\n return (\r\n <>\r\n \r\n {labels.map((label, i) => (\r\n \r\n ))}\r\n \r\n
\r\n \r\n {renderTabs ? renderTabs() : children}\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default TabsView;\r\n","import styled from 'styled-components';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport Drawer, { DrawerProps } from '@material-ui/core/Drawer';\r\n\r\nexport const Grow = styled.div`\r\n flex-grow: 1;\r\n`;\r\n\r\nexport const StyledTypography = styled(Typography)`\r\n font-weight: bold;\r\n`;\r\n\r\nexport const LogoWrapper = styled.div`\r\n padding: 12px;\r\n margin-right: 12px;\r\n`;\r\n\r\nexport const StyledDrawer = styled(Drawer)`\r\n min-width: 256px;\r\n flex-shrink: 0;\r\n background-color: pink;\r\n`;\r\n\r\nexport const Root = styled.div`\r\n display: flex;\r\n`;\r\n\r\nexport const ContentRoot = styled.div`\r\n margin-top: 64px;\r\n padding: 30px;\r\n width: 100%;\r\n height: 100%;\r\n`;\r\n\r\nexport const DetailsContentRoot = styled.div`\r\n max-width: 1280px;\r\n margin: 0 auto;\r\n padding: ${({ theme }) => theme.spacing(4, 2)};\r\n`;\r\n\r\nexport const DetailsTitleRoot = styled.div`\r\n margin: ${({ theme }) => theme.spacing(0, 2)};\r\n`;\r\n","import { FC } from 'react';\r\nimport { AppBar, Toolbar, IconButton, Typography } from '@material-ui/core';\r\nimport { Skeleton } from '@material-ui/lab';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { ArrowBack } from '@material-ui/icons';\r\n\r\nimport { myCertificationsRoute } from 'route';\r\nimport { AppShellBaseProps } from './@types';\r\nimport { Menu } from './Menu/Menu';\r\nimport {\r\n DetailsContentRoot,\r\n DetailsTitleRoot,\r\n StyledTypography,\r\n Grow,\r\n} from './AppShell.style';\r\n\r\nconst defaultAppBackPath = myCertificationsRoute.path;\r\n\r\nexport interface DetailsAppShellProps extends Partial {\r\n title: string;\r\n subtitle?: string;\r\n loading?: boolean;\r\n defaultGoBackPath?: string;\r\n goBack?: () => void;\r\n}\r\n\r\nexport const DetailsAppShell: FC = (props) => {\r\n const {\r\n logout,\r\n title,\r\n subtitle,\r\n loading = false,\r\n goBack,\r\n defaultGoBackPath = defaultAppBackPath,\r\n children,\r\n } = props;\r\n const history = useHistory();\r\n const handleBack = () => {\r\n if (goBack) {\r\n goBack();\r\n return;\r\n }\r\n if (window.history.state !== null) {\r\n history.goBack();\r\n } else {\r\n history.push(defaultGoBackPath);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {loading ? (\r\n \r\n ) : (\r\n <>\r\n {title}\r\n {subtitle && (\r\n {subtitle}\r\n )}\r\n \r\n )}\r\n \r\n \r\n {logout && }\r\n \r\n \r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default DetailsAppShell;\r\n","var _defs, _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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\";\nfunction SvgUnathorized(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 256,\n height: 256,\n viewBox: \"0 0 256 256\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.145,\n stopColor: \"#eee\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.296,\n stopColor: \"#ebebeb\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.446,\n stopColor: \"#e7e7e7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.59,\n stopColor: \"#e2e2e2\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#ddd\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.834,\n stopColor: \"#d8d8d8\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.922,\n stopColor: \"#d3d3d3\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.98,\n stopColor: \"#d0d0d0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cfcfcf\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-2\",\n x1: 0.5,\n y1: 0.002,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#dfdfdf\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.14,\n stopColor: \"#dedede\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.256,\n stopColor: \"#dbdbdb\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.357,\n stopColor: \"#d7d7d7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.448,\n stopColor: \"#d2d2d2\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.537,\n stopColor: \"#cdcdcd\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.63,\n stopColor: \"#c8c8c8\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.733,\n stopColor: \"#c4c4c4\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.854,\n stopColor: \"#c1c1c1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#bfbfbf\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-3\",\n x1: 0.5,\n y1: 0.003,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.082,\n stopColor: \"#2d2d2d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.164,\n stopColor: \"#2b2b2b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.248,\n stopColor: \"#292929\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.339,\n stopColor: \"#262626\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.439,\n stopColor: \"#242424\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.552,\n stopColor: \"#232323\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.681,\n stopColor: \"#212121\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.829,\n stopColor: \"#202020\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#1f1f1f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-5\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#ff000f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.15,\n stopColor: \"#fe010f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.286,\n stopColor: \"#fb0210\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.41,\n stopColor: \"#f60410\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.525,\n stopColor: \"#f00511\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#e90511\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.73,\n stopColor: \"#e10612\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.823,\n stopColor: \"#da0713\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.913,\n stopColor: \"#d20814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cc0814\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-6\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#9a5a2a\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.131,\n stopColor: \"#995929\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.247,\n stopColor: \"#955728\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.353,\n stopColor: \"#8f5325\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.452,\n stopColor: \"#894f22\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.548,\n stopColor: \"#814a1f\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.647,\n stopColor: \"#7a441b\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.753,\n stopColor: \"#734017\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#6e3c14\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#6c3b13\",\n stopOpacity: 0.902\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-7\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#3f3f3f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.082,\n stopColor: \"#3b3b3b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.164,\n stopColor: \"#373737\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.248,\n stopColor: \"#333\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.339,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.439,\n stopColor: \"#2b2b2b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.552,\n stopColor: \"#272727\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.681,\n stopColor: \"#232323\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.829,\n stopColor: \"#212121\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#1f1f1f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-8\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#9a5a2a\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.169,\n stopColor: \"#985929\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.311,\n stopColor: \"#965728\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.433,\n stopColor: \"#925527\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.538,\n stopColor: \"#8e5225\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"#894f22\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#834b1f\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.808,\n stopColor: \"#7c461c\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.9,\n stopColor: \"#744118\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#6c3b13\",\n stopOpacity: 0.902\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-10\",\n x1: 0.5,\n y1: 0.003,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.169,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.311,\n stopColor: \"#2e2e2e\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.433,\n stopColor: \"#2e2e2e\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.538,\n stopColor: \"#2d2d2d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"#2b2b2b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#292929\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.808,\n stopColor: \"#272727\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.9,\n stopColor: \"#242424\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#1f1f1f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-11\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#9a5a2a\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.169,\n stopColor: \"#985929\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.311,\n stopColor: \"#965728\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.433,\n stopColor: \"#925527\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.538,\n stopColor: \"#8e5225\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"#894f22\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#834b1f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.808,\n stopColor: \"#7c461c\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.9,\n stopColor: \"#744118\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#6c3b13\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-12\",\n x1: 0.5,\n y1: 0.002,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#4f4f4f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.061,\n stopColor: \"#4b4b4b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.13,\n stopColor: \"#484848\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.21,\n stopColor: \"#454545\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.303,\n stopColor: \"#434343\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.408,\n stopColor: \"#414141\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.53,\n stopColor: \"#404040\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.668,\n stopColor: \"#404040\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.824,\n stopColor: \"#3f3f3f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#3f3f3f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-14\",\n x1: 0.5,\n y1: 0.002,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#4f4f4f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.261,\n stopColor: \"#4f4f4f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.453,\n stopColor: \"#4e4e4e\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.59,\n stopColor: \"#4e4e4e\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.685,\n stopColor: \"#4c4c4c\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.752,\n stopColor: \"#4b4b4b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.803,\n stopColor: \"#494949\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.852,\n stopColor: \"#464646\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.914,\n stopColor: \"#434343\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#3f3f3f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-15\",\n x1: 0.5,\n y1: 0.002,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#4f4f4f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.145,\n stopColor: \"#4f4f4f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.296,\n stopColor: \"#4d4d4d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.446,\n stopColor: \"#4b4b4b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.59,\n stopColor: \"#494949\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#464646\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.834,\n stopColor: \"#444\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.922,\n stopColor: \"#414141\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.98,\n stopColor: \"#404040\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#3f3f3f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-16\",\n x1: 0.5,\n y1: 0.002,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#4f4f4f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.082,\n stopColor: \"#4d4d4d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.164,\n stopColor: \"#4a4a4a\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.248,\n stopColor: \"#484848\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.339,\n stopColor: \"#464646\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.439,\n stopColor: \"#444\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.552,\n stopColor: \"#424242\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.681,\n stopColor: \"#414141\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.829,\n stopColor: \"#404040\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#3f3f3f\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"access-denied\",\n transform: \"translate(-666 -245)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"AccessDenied\",\n transform: \"translate(666 245)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_57\",\n \"data-name\": \"Path 57\",\n d: \"M238.513,201.049c-22.026,24.39-66.107,30.943-107.758,30.951-41.654-.056-80.94-6.524-104.283-28.478-23.413-21.95-30.8-59.261-24.113-94.291C9.055,74.265,29.9,41.575,59.3,29.622s67.344-3.171,102.355,10.7,67.089,32.836,83.072,63.434S260.608,176.655,238.513,201.049Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_37\",\n \"data-name\": \"Group 37\",\n transform: \"translate(19.998 37)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_58\",\n \"data-name\": \"Path 58\",\n d: \"M105,0V194.95c-39.493-.637-76.26-7.489-98.524-28.428A71.537,71.537,0,0,1,0,159.576L0,0Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_59\",\n \"data-name\": \"Path 59\",\n d: \"M105,0V194.95q-4.675-.075-9.293-.27V9.293H9.294V169.032q-1.444-1.22-2.816-2.51A71.41,71.41,0,0,1,0,159.577V0Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_60\",\n \"data-name\": \"Path 60\",\n d: \"M64.494,118.421a5.025,5.025,0,0,1,2.029-3.517l3.735-2.744a5.16,5.16,0,0,1,5.64-.3l2.2-1.615a5.01,5.01,0,0,1,1.314-4.619l3.239-3.3a5.148,5.148,0,0,1,5.015-1.354l1.54-1.464a5.01,5.01,0,0,1,.84-5.389l3.081-3.448a5.15,5.15,0,0,1,5.487-1.43L101.7,86.5a2,2,0,0,1,2.8.149,1.942,1.942,0,0,1-.151,2.764l-2.772,2.461a5.011,5.011,0,0,1-.8,5.481L97.694,100.8a5.151,5.151,0,0,1-5.6,1.39l-1.3,1.233a5.012,5.012,0,0,1-.818,5.926l-3.239,3.3a5.156,5.156,0,0,1-6.347.782l-2.134,1.568a5.024,5.024,0,0,1-1.912,5.255L72.612,123a5.15,5.15,0,0,1-6.953-.8l-3.367.529a1.958,1.958,0,1,1-.621-3.866Zm5.04,2.849a2.356,2.356,0,0,0,1.431-.456l3.735-2.745a2.3,2.3,0,0,0,.9-1.419,1.991,1.991,0,0,1-1.844-.774,1.939,1.939,0,0,1-.218-1.969,2.355,2.355,0,0,0-1.634.445L68.17,117.1a2.311,2.311,0,0,0-.716.86l.438-.069a1.976,1.976,0,0,1,2.265,1.626,1.944,1.944,0,0,1-.625,1.757Zm29.75-27.434a2,2,0,0,1-2.422-.41,1.939,1.939,0,0,1-.474-1.659,2.334,2.334,0,0,0-1.193.714l-3.081,3.448a2.292,2.292,0,0,0-.584,1.628,2,2,0,0,1,2.057.5,1.939,1.939,0,0,1,.521,1.709,2.342,2.342,0,0,0,1.516-.769L98.7,95.547a2.293,2.293,0,0,0,.579-1.711ZM88.616,105.422a2,2,0,0,1-2.422-.335,1.94,1.94,0,0,1-.55-1.467,2.334,2.334,0,0,0-1.013.607l-3.239,3.3a2.3,2.3,0,0,0-.658,1.532,1.977,1.977,0,0,1,1.256.762,1.935,1.935,0,0,1,.358,1.52,2.363,2.363,0,0,0,2.407-.59l3.239-3.3a2.3,2.3,0,0,0,.621-2.03Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-3)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_61\",\n \"data-name\": \"Path 61\",\n d: \"M44.418,119.278h2.159c.579,0,.553,4.05,0,4.05H43.967a5.312,5.312,0,0,1-5,2.658l-4.808-.351a5.258,5.258,0,0,1-4.9-5.131l-2.425-1.513a5.352,5.352,0,0,1-5.85.132L16.9,116.58a5.2,5.2,0,0,1-2.144-6.207l-1.612-1.927a5.331,5.331,0,0,1-4.619-1.187l-3.614-3.151a5.187,5.187,0,0,1-1.368-5.956L.659,95.511a2.007,2.007,0,0,1-.112-2.862,2.069,2.069,0,0,1,2.9-.11L6.5,95.327a5.346,5.346,0,0,1,5.42.95l3.614,3.151a5.184,5.184,0,0,1,.986,6.682l1.071,1.28a5.348,5.348,0,0,1,4.967.358l4.076,2.543a5.2,5.2,0,0,1,2.392,5.274l1.82,1.136a5.315,5.315,0,0,1,4.092-1.483l4.808.35a5.284,5.284,0,0,1,4.677,3.709Zm-3.749,3.511a2.006,2.006,0,0,1-.658-1.484,2.029,2.029,0,0,1,1.331-1.9,2.431,2.431,0,0,0-1.811-1.019l-4.808-.35a2.442,2.442,0,0,0-1.474.364,2.005,2.005,0,0,1,.038,2.222,2.033,2.033,0,0,1-.954.792,2.429,2.429,0,0,0,2.032,1.4l4.808.35a2.431,2.431,0,0,0,1.495-.378Zm-16.436-5.724a2,2,0,0,1,.069-2.048,2.059,2.059,0,0,1,1.844-.941,2.394,2.394,0,0,0-1.044-1.395l-4.076-2.543a2.44,2.44,0,0,0-1.545-.356,2.01,2.01,0,0,1-.579,2.361,2.065,2.065,0,0,1-1.559.448,2.391,2.391,0,0,0,1.091,1.6l4.076,2.543a2.439,2.439,0,0,0,1.724.331Zm-12.845-11.41a2.014,2.014,0,0,1,.744-1.6,2.073,2.073,0,0,1,2.274-.224,2.381,2.381,0,0,0-.771-2.279L10.021,98.4a2.425,2.425,0,0,0-1.213-.568,2.006,2.006,0,0,1-.462,1.951,2.07,2.07,0,0,1-2.356.467,2.378,2.378,0,0,0,.819,1.742l3.614,3.151a2.421,2.421,0,0,0,.964.515Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-3)\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_36\",\n \"data-name\": \"Group 36\",\n transform: \"translate(46.374 111.441) rotate(2)\"\n }, /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_31\",\n \"data-name\": \"Rectangle 31\",\n width: 16,\n height: 16,\n rx: 3,\n transform: \"translate(0.1 1.663) rotate(-4)\",\n fill: \"url(#linear-gradient-5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_62\",\n \"data-name\": \"Path 62\",\n d: \"M7.679,9.542a2.2,2.2,0,0,1-1.023-1.88A2.111,2.111,0,0,1,8.7,5.492a2.111,2.111,0,0,1,2.045,2.17,2.2,2.2,0,0,1-1.023,1.88V12a1.024,1.024,0,1,1-2.045,0Z\",\n transform: \"translate(-0.627 0.63) rotate(-4)\",\n fill: \"#1f1f1f\",\n fillRule: \"evenodd\"\n }))), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_38\",\n \"data-name\": \"Group 38\",\n transform: \"translate(112.155 110.934)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_63\",\n \"data-name\": \"Path 63\",\n d: \"M39.959,34.7l-1.134,2.67c-1.511,3.56-4.84,9.238-10.96,6.641q-6.12-2.6-10.127-9.551,5.82.632,7.291-2.946c1.471-3.577,2.386-5.657,4.948-11.769-1.435-5.488-.052-8.175,2.52-9.386Q41.115,6.3,56.081,15.284,50.765,31.934,45.4,35.176,43.108,36.565,39.959,34.7Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_64\",\n \"data-name\": \"Path 64\",\n d: \"M39.959,34.7l-1.134,2.67c-1.511,3.56-4.84,9.238-10.96,6.641q-6.12-2.6-10.127-9.551,5.82.632,7.291-2.946c1.471-3.577,2.386-5.657,4.948-11.769-1.435-5.488-.052-8.175,2.52-9.386Q41.115,6.3,56.081,15.284,50.765,31.934,45.4,35.176,43.108,36.565,39.959,34.7Z\",\n fill: \"url(#linear-gradient-6)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_65\",\n \"data-name\": \"Path 65\",\n d: \"M39.959,34.7l-1.134,2.67A12.574,12.574,0,0,1,33.3,28.726,17.514,17.514,0,0,0,39.959,34.7Z\",\n fill: \"#6c3b13\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_66\",\n \"data-name\": \"Path 66\",\n d: \"M35.554,14.241a2.454,2.454,0,0,0-2.619-1.567c-3.517.274-3.773,6.94-1.214,8.026.668.284.285,2.567-3.309,2.77.992-2.337-.288-9.68,1.638-15.079C30.976,3.223,36.988.354,43.324.95q6.336.6,19.72,8.149-.611,7.7-6.98,8.761c-2.62.437-7.66-1.112-14.628-4.07-1.052-.446-1.752-.435-2.01.99C38.926,17.542,36.49,20.7,35.554,14.241Z\",\n fill: \"url(#linear-gradient-7)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_67\",\n \"data-name\": \"Path 67\",\n d: \"M118.215,117.627q-13.209,1.6-13.518.85c-.173-.579-1.1-8.9,1.235-8.959,1.5-.054,14.7-.355,16.492.5C122.55,110.08,119.109,117.714,118.215,117.627Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_68\",\n \"data-name\": \"Path 68\",\n d: \"M118.215,117.627q-13.209,1.6-13.518.85c-.173-.579-1.1-8.9,1.235-8.959,1.5-.054,14.7-.355,16.492.5C122.55,110.08,119.109,117.714,118.215,117.627Z\",\n fill: \"url(#linear-gradient-8)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_69\",\n \"data-name\": \"Path 69\",\n d: \"M27.7,88.808S63.338,71.652,70.2,74.18s25.6,34.912,25.6,34.912l-12.83-.033Q66.9,91.7,62.217,91.781T45.094,106.648l-25.283-1.06Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-3)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_70\",\n \"data-name\": \"Path 70\",\n d: \"M5.633,105.781q11.633-5.659,26.751-5.282t81.543,7.99s2.135,7.035-1.949,11.293c0,0-33.894,1.354-62.236,1.812-18.5.3-34.631.215-37.432-.876Q5.217,117.956,5.633,105.781Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-10)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_71\",\n \"data-name\": \"Path 71\",\n d: \"M65.774,66.375C70.11,66.3,75.9,72.03,76.285,74.619s-1.311,2.251-1.71,2.248c-2.2.108-2.257-2.009-4.4-2.525-1.379-.332-2.79.064-4.2,0-1.709-.1-3.686-2.389-4.5-3.9-.59-1.118-1.229-1.79-1.229-3C60.245,66.688,64.3,66.292,65.774,66.375Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_72\",\n \"data-name\": \"Path 72\",\n d: \"M65.774,66.375C70.11,66.3,75.9,72.03,76.285,74.619s-1.311,2.251-1.71,2.248c-2.2.108-2.257-2.009-4.4-2.525-1.379-.332-2.79.064-4.2,0-1.709-.1-3.686-2.389-4.5-3.9-.59-1.118-1.229-1.79-1.229-3C60.245,66.688,64.3,66.292,65.774,66.375Z\",\n fill: \"url(#linear-gradient-11)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_73\",\n \"data-name\": \"Path 73\",\n d: \"M42.6,66.138a.746.746,0,0,0,.944.863l19.069-.708a18.6,18.6,0,0,1,.191,6.97,2.064,2.064,0,0,1-.387,1.054,2.271,2.271,0,0,1-1.442.578,124.512,124.512,0,0,0-23.6,5.864,4.582,4.582,0,0,1-2.462.418c-1.566-.318-2.308-2.1-2.661-3.657-1.188-5.244-.878-10.7-1.593-16.032-.351-2.591-.923-5.337.112-7.745.949-2.229,6.8-14.072,8.365-10.583,1.028,2.313,2.18,12.088,2.52,14.59Q42.259,61.926,42.6,66.138Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-12)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_74\",\n \"data-name\": \"Path 74\",\n d: \"M73.368,69.689c1.025,1.383.549,2.514-.983,3.82-1.192,1.016-2.815,1.327-4.267,1.876s-2.807,1.85-4.069,2.491c-2.675,1.358-4.992,2.086-6.247,1.732-1.308-.369-4.553-3.6-2.657-5.684.78-.857,6.448-.276,7.578-1.722a28.956,28.956,0,0,0,3.339-5.695C67.95,64.28,72.343,68.306,73.368,69.689Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_75\",\n \"data-name\": \"Path 75\",\n d: \"M73.368,69.689c1.025,1.383.549,2.514-.983,3.82-1.192,1.016-2.815,1.327-4.267,1.876s-2.807,1.85-4.069,2.491c-2.675,1.358-4.992,2.086-6.247,1.732-1.308-.369-4.553-3.6-2.657-5.684.78-.857,6.448-.276,7.578-1.722a28.956,28.956,0,0,0,3.339-5.695C67.95,64.28,72.343,68.306,73.368,69.689Z\",\n fill: \"url(#linear-gradient-8)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_76\",\n \"data-name\": \"Path 76\",\n d: \"M32.141,91.664c.387,2.956.973,5.968.244,8.885-.841,3.313-3.311,6.073-6.128,8.245a32.977,32.977,0,0,1-19.479,6.672C2.878,115.533-1.6,74.277.566,65.39S4.676,47.145,11.827,40.916a21.725,21.725,0,0,1,7.988-4.663c11.133-3.266,23.08,2.073,19.317,13.437C34.516,63.628,30.18,76.676,32.141,91.664Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-14)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_77\",\n \"data-name\": \"Path 77\",\n d: \"M14.986,53.839c-3.06-14.467-.289-13.146,9.4-14.214s12.922,6.337,11.056,14.331,1.866,19.217,1.866,19.217L63.346,71.02,64.465,78.5S28.036,90.2,25.951,87.861,21.238,80.99,14.986,53.839Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-15)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_78\",\n \"data-name\": \"Path 78\",\n d: \"M26.839,30.116c3.44,3.021,6.57,6.355,10.559,8.557,3.072,1.7,3.277,6.649-1.052,4.216-3.94-2.2-8.733-2.366-13.184-1.587S14.464,43.735,10.13,45c-1.739.5-3.865.937-5.077-.6s-.106-3.83,1.352-5.14,3.338-2.3,4.116-4.1c.314-.707.418-1.489.732-2.205a2.123,2.123,0,0,1,1.694-1.4c.552-.029,1.051.248,1.542.072.775-.28.776-1.357.95-2.18.464-2.28,3.259-3.425,5.539-2.951S25.1,28.566,26.839,30.116Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-16)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_79\",\n \"data-name\": \"Path 79\",\n d: \"M118.7,118.72a1.105,1.105,0,0,1-.811-1.686,7.621,7.621,0,0,0,1.494-3.9q-.063-1.723-2.325-4.006a.552.552,0,0,1-.03-.746c2.65-3.129,2.84-3.82,7.615-10.673s7.815-7.077,7.867-4.093-6.2,22.081-6.571,23.695-2.614,2.233-4.1,1.89A29.805,29.805,0,0,0,118.7,118.72Z\",\n fill: \"#1f1f1f\",\n fillRule: \"evenodd\"\n }))), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_34\",\n \"data-name\": \"Rectangle 34\",\n width: 256,\n height: 256,\n transform: \"translate(666 245)\",\n fill: \"none\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgUnathorized);\nexport default __webpack_public_path__ + \"static/media/Unathorized.a262b71d.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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\";\nfunction SvgInternalServerError(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 256,\n height: 256,\n viewBox: \"0 0 256 256\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.153,\n stopColor: \"#eee\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.284,\n stopColor: \"#eee\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.398,\n stopColor: \"#ececec\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.497,\n stopColor: \"#ebebeb\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.586,\n stopColor: \"#e9e9e9\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.668,\n stopColor: \"#e8e8e8\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.747,\n stopColor: \"#e6e6e6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.826,\n stopColor: \"#e4e4e4\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.909,\n stopColor: \"#e1e1e1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#dfdfdf\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-5\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#ff000f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.061,\n stopColor: \"#f30410\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.13,\n stopColor: \"#e90512\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.21,\n stopColor: \"#e00612\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.303,\n stopColor: \"#d90713\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.408,\n stopColor: \"#d40713\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.53,\n stopColor: \"#d00814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.668,\n stopColor: \"#ce0814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.824,\n stopColor: \"#cc0814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cc0814\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-7\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#ff000f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.15,\n stopColor: \"#fe010f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.286,\n stopColor: \"#fb0210\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.41,\n stopColor: \"#f60410\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.525,\n stopColor: \"#f00511\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#e90511\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.73,\n stopColor: \"#e10612\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.823,\n stopColor: \"#da0713\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.913,\n stopColor: \"#d20814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cc0814\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-8\",\n x1: 1,\n y1: 0.5,\n x2: 0,\n y2: 0.5,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#f7d4af\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.053,\n stopColor: \"#f6d0aa\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.105,\n stopColor: \"#f5cca5\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.158,\n stopColor: \"#f4c8a1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.211,\n stopColor: \"#f3c49c\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.267,\n stopColor: \"#f2c197\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.325,\n stopColor: \"#f1bd92\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.387,\n stopColor: \"#f1b98d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.454,\n stopColor: \"#f0b689\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.526,\n stopColor: \"#efb384\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.605,\n stopColor: \"#eeb081\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.691,\n stopColor: \"#eead7d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.785,\n stopColor: \"#eeab7a\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.887,\n stopColor: \"#edaa78\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#eda977\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-9\",\n x1: 0.5,\n y1: 0.003,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.169,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.311,\n stopColor: \"#2e2e2e\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.433,\n stopColor: \"#2e2e2e\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.538,\n stopColor: \"#2d2d2d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"#2b2b2b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#292929\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.808,\n stopColor: \"#272727\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.9,\n stopColor: \"#242424\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#1f1f1f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-10\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.145,\n stopColor: \"#eee\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.296,\n stopColor: \"#ebebeb\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.446,\n stopColor: \"#e7e7e7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.59,\n stopColor: \"#e2e2e2\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#ddd\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.834,\n stopColor: \"#d8d8d8\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.922,\n stopColor: \"#d3d3d3\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.98,\n stopColor: \"#d0d0d0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cfcfcf\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-11\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.23,\n stopColor: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.415,\n stopColor: \"#eee\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.564,\n stopColor: \"#ededed\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.68,\n stopColor: \"#ebebeb\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.771,\n stopColor: \"#e9e9e9\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.843,\n stopColor: \"#e5e5e5\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.901,\n stopColor: \"#e0e0e0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.951,\n stopColor: \"#d8d8d8\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cfcfcf\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-12\",\n x1: 0.447,\n y1: 0.289,\n x2: 0.5,\n y2: 0.849,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.092,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.188,\n stopColor: \"#2e2e2e\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.285,\n stopColor: \"#2d2d2d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.382,\n stopColor: \"#2c2c2c\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.478,\n stopColor: \"#2b2b2b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.57,\n stopColor: \"#292929\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.658,\n stopColor: \"#282828\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.739,\n stopColor: \"#262626\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.812,\n stopColor: \"#242424\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.875,\n stopColor: \"#232323\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.927,\n stopColor: \"#212121\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.967,\n stopColor: \"#202020\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.991,\n stopColor: \"#1f1f1f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#1f1f1f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-16\",\n x1: 0.5,\n y1: 1,\n x2: 0.5,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#f7d4af\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.169,\n stopColor: \"#f7d3ae\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.311,\n stopColor: \"#f6d2ac\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.433,\n stopColor: \"#f6d0aa\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.538,\n stopColor: \"#f5cda7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"#f4c9a2\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#f3c49b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.808,\n stopColor: \"#f2bd93\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.9,\n stopColor: \"#efb587\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#eda977\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-17\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#3f3f3f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.082,\n stopColor: \"#3b3b3b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.164,\n stopColor: \"#373737\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.248,\n stopColor: \"#333\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.339,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.439,\n stopColor: \"#2b2b2b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.552,\n stopColor: \"#272727\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.681,\n stopColor: \"#232323\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.829,\n stopColor: \"#212121\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#1f1f1f\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"server-error\",\n transform: \"translate(-526 -405)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"ServerDown\",\n transform: \"translate(526 405)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_80\",\n \"data-name\": \"Path 80\",\n d: \"M108.847,26.253c21.3-4.689,45.739-2.092,68.835,8.115a134.893,134.893,0,0,1,59.844,52.726c15.1,24.637,23.536,56.014,15.175,81.956-8.441,25.958-33.628,46.514-59.666,55.71-26.07,9.244-52.992,7.127-78.978,6.812-25.906-.329-50.893,1.063-70.209-8.965C24.484,212.546,10.87,191.05,4.329,168.272c-6.493-22.746-5.866-46.742,3.131-65.826C16.44,83.282,33.838,69.061,51.63,56,69.406,42.867,87.544,30.941,108.847,26.253Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_39\",\n \"data-name\": \"Group 39\",\n transform: \"translate(141 48.999)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_81\",\n \"data-name\": \"Path 81\",\n d: \"M96.526,38.094c15.1,24.637,23.536,56.014,15.175,81.956-8.441,25.958-33.627,46.514-59.666,55.71-12.364,4.384-24.92,6.213-37.476,6.89V21.481A4.481,4.481,0,0,1,19.04,17l61.554,0A135.415,135.415,0,0,1,96.526,38.094Z\",\n fill: \"#3f3f3f\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_82\",\n \"data-name\": \"Path 82\",\n d: \"M93.654,33.6H7.84a2.24,2.24,0,0,1-2.24-2.24V2.241A2.24,2.24,0,0,1,7.84,0H61.689A135.566,135.566,0,0,1,93.654,33.6Zm18.594,42H7.74a2.24,2.24,0,0,1-2.24-2.24V44.241A2.24,2.24,0,0,1,7.74,42H98.832A129.227,129.227,0,0,1,112.248,75.6Zm.189,42H7.74a2.24,2.24,0,0,1-2.24-2.24V86.241A2.24,2.24,0,0,1,7.74,84H113.895C115.664,95.491,115.4,106.961,112.437,117.6Zm-30.513,42H7.74a2.24,2.24,0,0,1-2.24-2.24v-29.12A2.24,2.24,0,0,1,7.74,126h101.7C103.731,139.076,93.809,150.558,81.924,159.6Z\",\n fill: \"#cfcfcf\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_83\",\n \"data-name\": \"Path 83\",\n d: \"M70.672,7.281H17.36a3.728,3.728,0,0,0-3.92,3.5,3.728,3.728,0,0,0,3.92,3.5H78.02q2.383,2.447,4.665,5.039H17.36a3.728,3.728,0,0,0-3.92,3.5,3.728,3.728,0,0,0,3.92,3.5H88.439q1.891,2.464,3.687,5.04H8.96a1.12,1.12,0,0,1-1.12-1.12V3.361a1.12,1.12,0,0,1,1.12-1.12H64.623Q67.7,4.657,70.672,7.281Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_84\",\n \"data-name\": \"Path 84\",\n d: \"M102.684,49.28H17.26a3.523,3.523,0,1,0,0,7h88.618q1.055,2.5,2,5.04H17.26a3.522,3.522,0,1,0,0,7h93q.771,2.51,1.428,5.039H8.86a1.12,1.12,0,0,1-1.12-1.12V45.361a1.12,1.12,0,0,1,1.12-1.12h91.217Q101.43,46.726,102.684,49.28Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_85\",\n \"data-name\": \"Path 85\",\n d: \"M113.018,115.362H8.86a1.12,1.12,0,0,1-1.12-1.12V87.361a1.12,1.12,0,0,1,1.12-1.12H114.214a80.578,80.578,0,0,1-1,28.273ZM49.46,103.321H17.26a3.523,3.523,0,1,0,0,7h32.2a3.523,3.523,0,1,0,0-7Zm60-12.04H17.26a3.523,3.523,0,1,0,0,7h92.2a3.522,3.522,0,1,0,0-7Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_86\",\n \"data-name\": \"Path 86\",\n d: \"M84.767,157.361H8.86a1.12,1.12,0,0,1-1.12-1.12v-26.88a1.12,1.12,0,0,1,1.12-1.12h99.551C103.083,139.347,94.721,149.234,84.767,157.361ZM49.46,145.321H17.26a3.523,3.523,0,1,0,0,7h32.2a3.523,3.523,0,1,0,0-7Zm0-12.04H17.26a3.523,3.523,0,1,0,0,7h32.2a3.523,3.523,0,1,0,0-7Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_87\",\n \"data-name\": \"Path 87\",\n d: \"M5.6,5.6V28H2.34A2.24,2.24,0,0,1,.1,25.761V7.841A2.24,2.24,0,0,1,2.34,5.6Zm-.1,42V70H2.24A2.24,2.24,0,0,1,0,67.761V49.841A2.24,2.24,0,0,1,2.24,47.6Zm0,42V112H2.24A2.24,2.24,0,0,1,0,109.761V91.841A2.24,2.24,0,0,1,2.24,89.6Zm0,42V154H2.24A2.24,2.24,0,0,1,0,151.761v-17.92a2.24,2.24,0,0,1,2.24-2.24Z\",\n fill: \"#4f4f4f\",\n fillRule: \"evenodd\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_40\",\n \"data-name\": \"Group 40\",\n transform: \"translate(162 94)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_88\",\n \"data-name\": \"Path 88\",\n d: \"M24.283,31.444l.8.285c4.054,1.49,14.664,6.177,12.4,21.83C36.806,81.17,52.827,80.67,53.17,96.1c.392,11.735-8.559,21.812-13.239,31.061-2.938,1.345-5.911,2.548-8.9,3.6a117.455,117.455,0,0,1-22.575,5.457A51.685,51.685,0,0,1,0,117.922c2.3,5.638,9.285,13.349,20.856,15.809-6.876-4.407-13.582-11.825-16.283-20.275l-.151-.488C-1.144,95.423,5,81.348,14.095,66.739l.294-.471C20.472,56.553,30.778,47.116,24.283,31.444Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_89\",\n \"data-name\": \"Path 89\",\n d: \"M78.646,0l-.273.336c-5.549,6.98-5.206,16.317-2.348,24.85l.143.419.244.688C80,36.22,87.6,47.887,93.917,56.662A70.045,70.045,0,0,1,90.7,75.049c-8.441,25.958-33.628,46.514-59.666,55.71q-3.257,1.155-6.53,2.081c-8.564-12.55-13.2-27.429-12.391-41.315l.044-.671.054-.508c.9-7.981,4.468-17.4,10.658-23.865l.407-.418-.02.349c-.325,6.432,1.389,14.316,7.557,18.83l.341.243-.423-.721C17.095,60.905,36.55,30.542,54.75,15.75A147.252,147.252,0,0,1,77.937.358Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_90\",\n \"data-name\": \"Path 90\",\n d: \"M66.48,78.144A25.551,25.551,0,0,0,70,88.23l.248.418a64.665,64.665,0,0,0,7.4,9.864,104.694,104.694,0,0,1-34.768,27.243c.691-9.174,4.192-17.823,8.964-26.329A164.94,164.94,0,0,1,66.48,78.144Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-7)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_41\",\n \"data-name\": \"Group 41\",\n transform: \"translate(2.44 65.08)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_91\",\n \"data-name\": \"Path 91\",\n d: \"M108.473,100.974a55.72,55.72,0,0,1,5.6-.557c1.515-.1,3.052,2.277,3.726,3.586-2.009,1.446-1.955.81-4.4,1.9s-3.753,2.4-5.933,2.7c-1.777.322-3.6.909-5.36.539-.979-.25-11.357-3.876-11.159-6.088.133-1.481,10.542-1.847,11.138-1.927C103.575,100.93,106.616,101.254,108.473,100.974Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-8)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_92\",\n \"data-name\": \"Path 92\",\n d: \"M61,119.441q8.278,5.919,11.6,46.084c-11.356-1-21.93-3.186-31.2-8a68.042,68.042,0,0,1-22.2-19.17C29.134,121.6,57.99,120.836,61,119.441Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-9)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_93\",\n \"data-name\": \"Path 93\",\n d: \"M50.145,51.3q10.228,3.767,13.681,7.889c3.453,4.121,6.77,12.8,7.46,15.9q3.235,16.365,4.244,17.339c1.008.973,19.881,6.416,27.937,8.118a.714.714,0,0,1,.631.727q.033,6.781.023,7.185a.928.928,0,0,1-.239.733,1,1,0,0,1-.694.151c-12.343-.464-36.734-4.852-38.485-5.37q-1.751-.519-13.811-18.469Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-10)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_94\",\n \"data-name\": \"Path 94\",\n d: \"M46.057,53.683l.153.006c2.5.063,4.736,1.094,7.091,1.757,1.9.54,4.386.3,6.142.946q3.851,1.423,7.926,19.771l.475,1.8c.864,3.369,1.279,6.158-.226,12.465-1.762,7.384-5.632,14.458-7.179,17.425A9.269,9.269,0,0,0,60,114.169c.946,4.221,6.814,12.589,6.98,14.736s-1.663,3.906-3.427,5.2a48.529,48.529,0,0,1-28.741,9.138,63.426,63.426,0,0,1-12.987-1.666q-1.842-2.156-3.553-4.463c.614-4.84,3.013-14.23,3.118-19.608.129-6.8-1.948-13.41-2.947-20.122a64.009,64.009,0,0,1,.11-19.525l.141-.842c.694-4.054,1.43-13.609,3.783-16.991l.487-.691c3.776-5.272,6.736-7.309,13.272-9.271,1.733-.6,7.776,3.445,9.825,3.623Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-11)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_95\",\n \"data-name\": \"Path 95\",\n d: \"M114.207,100.348v3.361q-9.465,1.469-15.433,2.2a93.593,93.593,0,0,1-13.619.252l.069,3.979a4,4,0,0,1-3,3.943,20.751,20.751,0,0,1-4.567.762,20.8,20.8,0,0,1-4.591-.6,4,4,0,0,1-3.138-3.836l-.095-5.427a4,4,0,0,1,3.93-4.07l7.3-.127a4,4,0,0,1,3.693,2.3,125.125,125.125,0,0,0,13.986-.591Q104.627,101.771,114.207,100.348Z\",\n fill: \"#2f2f2f\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_96\",\n \"data-name\": \"Path 96\",\n d: \"M113.271,99.8l15.067-8.629a2,2,0,0,1,2.73.742c.169.3,1.2,11.366,1.89,14.082a2,2,0,0,1-2.394,2.437l-16.595-3.87a2.586,2.586,0,0,1-.7-4.762Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-12)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_97\",\n \"data-name\": \"Path 97\",\n d: \"M92.153,119.665l.814,46.7a209.482,209.482,0,0,1-28.034-1.735l-.776-44.479a13.1,13.1,0,0,1,12.869-13.327l1.8-.031A13.1,13.1,0,0,1,92.153,119.665Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_98\",\n \"data-name\": \"Path 98\",\n d: \"M74.274,106.53c3.407-.253,5.036-.779,8.167.948s2.864,1.775,1.759,4.53-6.891,4.166-9.765,3.785a36.226,36.226,0,0,0-6.849-.324c-2.137.223-9.912,4.549-12.6,3.5-1.021-.4-6.672.09-8.29-.584-1.213-.506-5-2.081-3.8-5.885s.118-.947,10.369-1.245S72.048,106.7,74.274,106.53Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-8)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_99\",\n \"data-name\": \"Path 99\",\n d: \"M17.3,84.4A148.392,148.392,0,0,1,20.652,64.41c1.64-4.962,4.042-8.579,8.526-11.265,1.589-.915,8.374,7.459,7.21,10.99s-5.548,31-3.549,42.674l24.948,3.872a27.386,27.386,0,0,1,.527,6.624,2.4,2.4,0,0,1-.406,1.48,2.529,2.529,0,0,1-1.795.664,204.48,204.48,0,0,1-27.271.639c-2.548-.109-5.228-.323-7.25-1.826-2.613-1.948-3.4-5.458-3.854-8.682C17.127,105.237,17.079,88.6,17.3,84.4Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-10)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_100\",\n \"data-name\": \"Path 100\",\n d: \"M54.133-50.357q-8.38-8.049-11.383-7.6a4.429,4.429,0,0,0-4.086,4.433,3.989,3.989,0,0,0-.016.416l.074,5.7h0q-1.044-.031-1.76,0c-7.485.321-9.987,12.362-8.812,24.406.433,4.44,5.05,12.128,10.316,13.3,5.2,1.153,11-4.212,17.044,0-.48-9.281-1.063-10.211.7-9.09,8,3.68,5.833-17.792-2.075-16.626Z\",\n transform: \"translate(89.112) rotate(180)\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-16)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_101\",\n \"data-name\": \"Path 101\",\n d: \"M40.175-47.018q4.329.169,10.926,4.454Q47.789-49.045,40.074-49.9Z\",\n transform: \"translate(92.76 1.619) rotate(-178)\",\n fill: \"#eda977\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_102\",\n \"data-name\": \"Path 102\",\n d: \"M23.612,8.341c1.94,2.213,1.777,4.739.893,7.348C23.318,19.11,22.714,22.7,21.48,26.1c-1.376,3.7-3.753,7.235-7.4,8.672a16.134,16.134,0,0,1-3.5.86l1.747-2.666a8.96,8.96,0,0,1-2.006.921,8.6,8.6,0,0,1-6.575-.591A10.49,10.49,0,0,1,.035,29.713q3.721.258,4.54-.459A7.761,7.761,0,0,0,6.349,27.3c2-3.141,1.525-7.166,1.8-10.878A24.777,24.777,0,0,1,9.329,10.48,7.978,7.978,0,0,1,11.8,6.434,7.29,7.29,0,0,1,17,5.325,10.028,10.028,0,0,1,23.612,8.341Z\",\n fill: \"url(#linear-gradient-17)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_103\",\n \"data-name\": \"Path 103\",\n d: \"M25.658,8.031c2.365-.024,4.374-.2,3.815,2.778a12.1,12.1,0,0,1-1,2.778.883.883,0,0,1-.94.68c-.68.065-1.369.065-2.049.065a5.2,5.2,0,0,1-2.187-.381,3.054,3.054,0,0,1-1.685-2.892A3.24,3.24,0,0,1,23.6,8.346,5.581,5.581,0,0,1,25.658,8.031Z\",\n fill: \"#e12e2e\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_104\",\n \"data-name\": \"Path 104\",\n d: \"M34.49,32.957a22.532,22.532,0,0,1,.57,4.224,11.256,11.256,0,0,1-.222,3.205,24.743,24.743,0,0,1-5.333-4.994,18.709,18.709,0,0,1-3.656-9.366c-.682-4.755-1.247-9.522.293-13.833A18.05,18.05,0,0,1,36.7,2.141a24.37,24.37,0,0,1,14.848-.429c1.988.539,3.384.793,7.191,3.548s4.586,4.333,6.188,6.133a13.1,13.1,0,0,1,2.589,4.971,12.86,12.86,0,0,1-.194,6.1c-.608,2.073-.867,4.479.46,6.219a2.85,2.85,0,0,0,2.162,1.19,1.755,1.755,0,0,0,1.773-1.491,3.751,3.751,0,0,1-1.845,4.3,6.135,6.135,0,0,1-4.965.237,5.351,5.351,0,0,1-1.832-.992,6.216,6.216,0,0,1-1.295-1.76c-1.353-2.425-2.032-5.119-3.042-7.736A10.329,10.329,0,0,0,53.9,16.929a12.922,12.922,0,0,0-6.325-1.083c-2.142-.07-7.764-.708-8.36-.85a10.292,10.292,0,0,0-3.786,4.917,11.1,11.1,0,0,0-.6,2.6l0-.014C27.542,20.775,28.7,32.339,34.49,32.957Z\",\n fill: \"url(#linear-gradient-17)\"\n }))), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_36\",\n \"data-name\": \"Rectangle 36\",\n width: 256,\n height: 256,\n transform: \"translate(526 405)\",\n fill: \"none\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgInternalServerError);\nexport default __webpack_public_path__ + \"static/media/InternalServerError.4ebf966a.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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\";\nfunction SvgNotFound(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 256,\n height: 256,\n viewBox: \"0 0 256 256\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#d0d0d0\",\n stopOpacity: 0.051\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.061,\n stopColor: \"#f30410\",\n stopOpacity: 0.051\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.13,\n stopColor: \"#e90512\",\n stopOpacity: 0.051\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.21,\n stopColor: \"#e00612\",\n stopOpacity: 0.051\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.303,\n stopColor: \"#d90713\",\n stopOpacity: 0.051\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.408,\n stopColor: \"#d40713\",\n stopOpacity: 0.051\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.53,\n stopColor: \"#d00814\",\n stopOpacity: 0.051\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.668,\n stopColor: \"#ce0814\",\n stopOpacity: 0.051\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.824,\n stopColor: \"#cc0814\",\n stopOpacity: 0.051\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cc0814\",\n stopOpacity: 0.051\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-2\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#ff000f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.061,\n stopColor: \"#f30410\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.13,\n stopColor: \"#e90512\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.21,\n stopColor: \"#e00612\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.303,\n stopColor: \"#d90713\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.408,\n stopColor: \"#d40713\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.53,\n stopColor: \"#d00814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.668,\n stopColor: \"#ce0814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.824,\n stopColor: \"#cc0814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cc0814\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-9\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#ff000f\",\n stopOpacity: 0.251\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.15,\n stopColor: \"#fe010f\",\n stopOpacity: 0.251\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.286,\n stopColor: \"#fb0210\",\n stopOpacity: 0.251\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.41,\n stopColor: \"#f60410\",\n stopOpacity: 0.251\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.525,\n stopColor: \"#f00511\",\n stopOpacity: 0.251\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#e90511\",\n stopOpacity: 0.251\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.73,\n stopColor: \"#e10612\",\n stopOpacity: 0.251\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.823,\n stopColor: \"#da0713\",\n stopOpacity: 0.251\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.913,\n stopColor: \"#d20814\",\n stopOpacity: 0.251\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cc0814\",\n stopOpacity: 0.251\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-20\",\n x1: 0.5,\n y1: 0.003,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.082,\n stopColor: \"#2d2d2d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.164,\n stopColor: \"#2b2b2b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.248,\n stopColor: \"#292929\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.339,\n stopColor: \"#262626\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.439,\n stopColor: \"#242424\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.552,\n stopColor: \"#232323\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.681,\n stopColor: \"#212121\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.829,\n stopColor: \"#202020\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#1f1f1f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-21\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#9a5a2a\",\n stopOpacity: 0.851\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.131,\n stopColor: \"#995929\",\n stopOpacity: 0.851\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.247,\n stopColor: \"#955728\",\n stopOpacity: 0.851\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.353,\n stopColor: \"#8f5325\",\n stopOpacity: 0.851\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.452,\n stopColor: \"#894f22\",\n stopOpacity: 0.851\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.548,\n stopColor: \"#814a1f\",\n stopOpacity: 0.851\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.647,\n stopColor: \"#7a441b\",\n stopOpacity: 0.851\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.753,\n stopColor: \"#734017\",\n stopOpacity: 0.851\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.869,\n stopColor: \"#6e3c14\",\n stopOpacity: 0.851\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#6c3b13\",\n stopOpacity: 0.851\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-22\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.075,\n stopColor: \"#ededed\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.141,\n stopColor: \"#eaeaea\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.204,\n stopColor: \"#e6e6e6\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.273,\n stopColor: \"#e1e1e1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.357,\n stopColor: \"#dcdcdc\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.463,\n stopColor: \"#d7d7d7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.6,\n stopColor: \"#d3d3d3\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.776,\n stopColor: \"#d0d0d0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cfcfcf\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-23\",\n x1: 0.5,\n y1: 0.003,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.169,\n stopColor: \"#2f2f2f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.311,\n stopColor: \"#2e2e2e\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.433,\n stopColor: \"#2e2e2e\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.538,\n stopColor: \"#2d2d2d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"#2b2b2b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#292929\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.808,\n stopColor: \"#272727\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.9,\n stopColor: \"#242424\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#1f1f1f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-24\",\n x1: 0.5,\n y1: 0.002,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#4f4f4f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.061,\n stopColor: \"#4b4b4b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.13,\n stopColor: \"#484848\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.21,\n stopColor: \"#454545\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.303,\n stopColor: \"#434343\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.408,\n stopColor: \"#414141\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.53,\n stopColor: \"#404040\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.668,\n stopColor: \"#404040\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.824,\n stopColor: \"#3f3f3f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#3f3f3f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-25\",\n x1: 1,\n y1: 0.5,\n x2: 0,\n y2: 0.5,\n xlinkHref: \"#linear-gradient-21\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-26\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.261,\n stopColor: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.453,\n stopColor: \"#eee\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.59,\n stopColor: \"#ececec\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.685,\n stopColor: \"#eaeaea\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.752,\n stopColor: \"#e7e7e7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.803,\n stopColor: \"#e3e3e3\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.852,\n stopColor: \"#dedede\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.914,\n stopColor: \"#d7d7d7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cfcfcf\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-27\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.15,\n stopColor: \"#eee\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.286,\n stopColor: \"#ececec\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.41,\n stopColor: \"#e9e9e9\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.525,\n stopColor: \"#e5e5e5\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#e1e1e1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.73,\n stopColor: \"#dcdcdc\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.823,\n stopColor: \"#d7d7d7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.913,\n stopColor: \"#d3d3d3\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cfcfcf\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"no-results\",\n transform: \"translate(-850 -107)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"NoResults\",\n transform: \"translate(850 108)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_127\",\n \"data-name\": \"Path 127\",\n d: \"M171.877,41.473c35.741,15.992,68.943,40.034,79.916,73.3s-.236,75.735-25.3,96.9C202.23,232.191,165,232.686,128.8,231.727l-3.355-.092c-37.281-1.041-73-3.017-96.257-23.48C5.861,187.668-4.963,148.671,2.17,112.52c7.11-36.2,32.2-69.5,63.93-82.207S136.135,25.481,171.877,41.473Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_46\",\n \"data-name\": \"Group 46\",\n transform: \"translate(15 53)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_128\",\n \"data-name\": \"Path 128\",\n d: \"M64.5,7.362l.23.042c2.353.475,21.958,5.423,21.958,38.273,0,34.947,44.738,1.754,67.868-13.4s52.928-13.965,59.236-2.6S198.8,46.946,202.436,80.625c3.31,30.685,20.542,43.168,23.581,61.186a73.958,73.958,0,0,1-14.522,16.867C187.23,179.191,150,179.686,113.8,178.727l-3.355-.092c-37.281-1.041-73-3.017-96.257-23.48A73.943,73.943,0,0,1,.985,139.67C1.7,131.548,5.365,122.231,14,111.9l.451-.535a46.993,46.993,0,0,0,11.355-32l-2.466-5.507Q15.134,55.6,10.3,46L9.71,44.836C4.626,34.878,5.992,22.09,20.341,10.444,42.63-7.662,64.5,7.362,64.5,7.362Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_129\",\n \"data-name\": \"Path 129\",\n d: \"M64.5,7.362l.23.042c2.353.475,21.958,5.423,21.958,38.273,0,34.947,44.738,1.754,67.868-13.4s52.928-13.965,59.236-2.6S198.8,46.946,202.436,80.625c3.31,30.685,20.542,43.168,23.581,61.186a73.958,73.958,0,0,1-14.522,16.867C187.23,179.191,150,179.686,113.8,178.727l-3.355-.092c-37.281-1.041-73-3.017-96.257-23.48A73.943,73.943,0,0,1,.985,139.67C1.7,131.548,5.365,122.231,14,111.9l.451-.535a46.993,46.993,0,0,0,11.355-32l-2.466-5.507Q15.134,55.6,10.3,46L9.71,44.836C4.626,34.878,5.992,22.09,20.341,10.444,42.63-7.662,64.5,7.362,64.5,7.362Z\",\n fill: \"url(#linear-gradient)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_5\",\n \"data-name\": \"Ellipse 5\",\n cx: 8.411,\n cy: 8.421,\n rx: 8.411,\n ry: 8.421,\n transform: \"translate(31.696 59.573)\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_6\",\n \"data-name\": \"Ellipse 6\",\n cx: 5.677,\n cy: 5.684,\n rx: 5.677,\n ry: 5.684,\n transform: \"translate(20.342 72.625)\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_7\",\n \"data-name\": \"Ellipse 7\",\n cx: 3.154,\n cy: 3.158,\n rx: 3.154,\n ry: 3.158,\n transform: \"translate(23.706 62.099)\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_8\",\n \"data-name\": \"Ellipse 8\",\n cx: 3.154,\n cy: 3.158,\n rx: 3.154,\n ry: 3.158,\n transform: \"translate(64 15)\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_9\",\n \"data-name\": \"Ellipse 9\",\n cx: 8.411,\n cy: 8.421,\n rx: 8.411,\n ry: 8.421,\n transform: \"translate(204.959 116.415)\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_10\",\n \"data-name\": \"Ellipse 10\",\n cx: 3.154,\n cy: 3.158,\n rx: 3.154,\n ry: 3.158,\n transform: \"translate(8.146 22.099)\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_11\",\n \"data-name\": \"Ellipse 11\",\n cx: 3.154,\n cy: 3.158,\n rx: 3.154,\n ry: 3.158,\n transform: \"translate(1 123)\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_12\",\n \"data-name\": \"Ellipse 12\",\n cx: 14.929,\n cy: 14.947,\n rx: 14.929,\n ry: 14.947,\n transform: \"translate(48.939 109.257)\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_13\",\n \"data-name\": \"Ellipse 13\",\n cx: 14.929,\n cy: 14.947,\n rx: 14.929,\n ry: 14.947,\n transform: \"translate(48.939 109.257)\",\n fill: \"url(#linear-gradient-9)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_14\",\n \"data-name\": \"Ellipse 14\",\n cx: 10.093,\n cy: 10.105,\n rx: 10.093,\n ry: 10.105,\n transform: \"translate(152.392 126.099)\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_15\",\n \"data-name\": \"Ellipse 15\",\n cx: 10.093,\n cy: 10.105,\n rx: 10.093,\n ry: 10.105,\n transform: \"translate(152.392 126.099)\",\n fill: \"url(#linear-gradient-9)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_130\",\n \"data-name\": \"Path 130\",\n d: \"M133.093,163a10.109,10.109,0,0,1,8.29,15.871c-5.464.15-10.988.156-16.521.084A10.109,10.109,0,0,1,133.093,163Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_131\",\n \"data-name\": \"Path 131\",\n d: \"M133.093,163a10.109,10.109,0,0,1,8.29,15.871c-5.464.15-10.988.156-16.521.084A10.109,10.109,0,0,1,133.093,163Z\",\n fill: \"url(#linear-gradient-9)\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_45\",\n \"data-name\": \"Group 45\"\n }, /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_16\",\n \"data-name\": \"Ellipse 16\",\n cx: 5.467,\n cy: 5.474,\n rx: 5.467,\n ry: 5.474,\n transform: \"translate(195.708 78.52)\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_17\",\n \"data-name\": \"Ellipse 17\",\n cx: 5.467,\n cy: 5.474,\n rx: 5.467,\n ry: 5.474,\n transform: \"translate(195.708 78.52)\",\n fill: \"url(#linear-gradient-9)\"\n })), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_18\",\n \"data-name\": \"Ellipse 18\",\n cx: 10.934,\n cy: 10.947,\n rx: 10.934,\n ry: 10.947,\n transform: \"translate(149.448 23.784)\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_19\",\n \"data-name\": \"Ellipse 19\",\n cx: 10.934,\n cy: 10.947,\n rx: 10.934,\n ry: 10.947,\n transform: \"translate(149.448 23.784)\",\n fill: \"url(#linear-gradient-9)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_20\",\n \"data-name\": \"Ellipse 20\",\n cx: 5.257,\n cy: 5.263,\n rx: 5.257,\n ry: 5.263,\n transform: \"translate(54.826 0.204)\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_21\",\n \"data-name\": \"Ellipse 21\",\n cx: 5.257,\n cy: 5.263,\n rx: 5.257,\n ry: 5.263,\n transform: \"translate(54.826 0.204)\",\n fill: \"url(#linear-gradient-9)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_22\",\n \"data-name\": \"Ellipse 22\",\n cx: 5.257,\n cy: 5.263,\n rx: 5.257,\n ry: 5.263,\n transform: \"translate(38.004 105.046)\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_23\",\n \"data-name\": \"Ellipse 23\",\n cx: 5.257,\n cy: 5.263,\n rx: 5.257,\n ry: 5.263,\n transform: \"translate(38.004 105.046)\",\n fill: \"url(#linear-gradient-9)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_24\",\n \"data-name\": \"Ellipse 24\",\n cx: 5.257,\n cy: 5.263,\n rx: 5.257,\n ry: 5.263,\n transform: \"translate(6 131)\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_25\",\n \"data-name\": \"Ellipse 25\",\n cx: 5.257,\n cy: 5.263,\n rx: 5.257,\n ry: 5.263,\n transform: \"translate(6 131)\",\n fill: \"url(#linear-gradient-9)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_26\",\n \"data-name\": \"Ellipse 26\",\n cx: 5.257,\n cy: 5.263,\n rx: 5.257,\n ry: 5.263,\n transform: \"translate(204 41)\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_27\",\n \"data-name\": \"Ellipse 27\",\n cx: 5.677,\n cy: 5.684,\n rx: 5.677,\n ry: 5.684,\n transform: \"translate(198.652 132.836)\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"ellipse\", {\n id: \"Ellipse_28\",\n \"data-name\": \"Ellipse 28\",\n cx: 3.154,\n cy: 3.158,\n rx: 3.154,\n ry: 3.158,\n transform: \"translate(213.791 138.309)\",\n fill: \"url(#linear-gradient-2)\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_47\",\n \"data-name\": \"Group 47\",\n transform: \"translate(70 44)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_132\",\n \"data-name\": \"Path 132\",\n d: \"M42.739,52.255l.507-.576c3.43-3.851,9.622-9.8,24.929-18.4C86.8,22.816,80.789,5.048,66.636,1,62.336-.23,57.361,2.833,52,3.923c-2.461.5-7.974-3.288-14.555-.508C33.2,5.208,34.342,7.4,32.518,9.071s-7.525.548-9.662,5.344c-1.266,2.841.24,6.316-.429,8.5s-3.193,3.822-3.816,6.757a9.649,9.649,0,0,0,7.424,11.45,9.7,9.7,0,0,0,7.521,11.131,9.587,9.587,0,0,0,4.737-.184A3.143,3.143,0,0,0,42.739,52.255Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-20)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_133\",\n \"data-name\": \"Path 133\",\n d: \"M42.7,48.956l2.748-16.09h0c-7.527-.212-4.918-14.14,1.9-9.417,1.45,1.327,6.235,1.1,7.308-7.589,6.5,10.024,17.576,1.622,16.931,9.946l-.1,1.162c-1,10.973-4.177,21.663-10.885,20.481a13.215,13.215,0,0,1-2.224-.625l-.838,4.75h0q-.524,2.969,2.646,7.753L40.424,56.592A45.092,45.092,0,0,0,42.7,48.956Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_134\",\n \"data-name\": \"Path 134\",\n d: \"M42.7,48.956l2.748-16.09h0c-7.527-.212-4.918-14.14,1.9-9.417,1.45,1.327,6.235,1.1,7.308-7.589,6.5,10.024,17.576,1.622,16.931,9.946l-.1,1.162c-1,10.973-4.177,21.663-10.885,20.481a13.215,13.215,0,0,1-2.224-.625l-.838,4.75h0q-.524,2.969,2.646,7.753L40.424,56.592A45.092,45.092,0,0,0,42.7,48.956Z\",\n fill: \"url(#linear-gradient-21)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_135\",\n \"data-name\": \"Path 135\",\n d: \"M48.894,40.526a26.294,26.294,0,0,0,8.944,6.067l.548.229-.533,2.967Q50.352,47.243,48.894,40.526Z\",\n fill: \"#6c3b13\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_136\",\n \"data-name\": \"Path 136\",\n d: \"M33,101.578c9.507,5.966,23.97,10.606,49.16,10.166l.46-12.725-.669.093c-2.9.356-14.959,1.37-30.1-3.843l-.529-.184C33.635,88.853,23.493,95.613,33,101.578Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-22)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_137\",\n \"data-name\": \"Path 137\",\n d: \"M82.309,99.208q4.123,3.082,4.376,6.159c.253,3.076-.044,6.328-.534,6.493a30.772,30.772,0,0,1-4.045.071q-.275-.017-.25-.732c.469-2.7-.477-9.74-1.925-11.949Z\",\n fill: \"#bfbfbf\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_138\",\n \"data-name\": \"Path 138\",\n d: \"M60.417,77.552l3.366,9.359-.163,1.549c-.789,8.109-.29,45.679,10.6,78.948q.127.389.256.775-28.014,0-29.959-7.695T60.417,77.552Z\",\n fill: \"#bfbfbf\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_139\",\n \"data-name\": \"Path 139\",\n d: \"M56.424,135.1l9.4,27.832.235,1.032c1.609,7.157,3.181,15.921,4.509,24-3.921-.045-7.849-.132-11.764-.236l-3.355-.092q-4.771-.133-9.5-.3l-.454-1.25h0l-2.417-6.572.031,1.006.108,4.273c.016.684.028,1.509.038,2.442-9.5-.377-18.819-.943-27.766-2l-.393-2.145c-1.379-7.589-2.529-14.722-2.956-19.414l-.087-1.053-.02-.422a6.831,6.831,0,0,1,.057-1.117,2.858,2.858,0,0,1,2.961-2.7l.309-.009.36.01c6.727.367,20.733,10.665,25.535,14.342l1.282,1Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-23)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_140\",\n \"data-name\": \"Path 140\",\n d: \"M112.7,22.333c3.159.6,4.621,6.885,3.262,14.037-1.2,6.313-4.194,11.194-7.054,11.837l-1.319,10.207-2.645-.452,1.474-10.42c-2.186-1.914-3.043-7.322-1.9-13.345A29.083,29.083,0,0,1,105.31,31,24.35,24.35,0,0,1,106.6,27.69a14.258,14.258,0,0,1,2.555-3.826l.231-.225a4.468,4.468,0,0,1,2.595-1.34A2.641,2.641,0,0,1,112.7,22.333Zm-1.512,1.828c-2.208.038-4.783,4.48-5.885,10.289-1.128,5.938-.3,11.112,1.841,11.779l.177.044c2.215.422,4.909-3.924,6.12-9.782l.1-.478.121-.682c.939-5.649.1-10.456-1.964-11.1l-.176-.044-.164-.022Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-24)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_141\",\n \"data-name\": \"Path 141\",\n d: \"M111.187,24.161c-2.208.038-4.783,4.48-5.885,10.289-1.128,5.938-.3,11.112,1.841,11.779l.177.044c2.215.422,4.909-3.924,6.12-9.782l.1-.478c1.125-5.939.3-11.112-1.843-11.78l-.176-.044-.164-.022Z\",\n fill: \"rgba(255,255,255,0.75)\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_142\",\n \"data-name\": \"Path 142\",\n d: \"M106.873,50.348c1.326-.023,2.488,1.324,2.85,2.367q.361,1.042-.012,8.748a11.666,11.666,0,0,1-1.272,3.806q-.6,1.141-3.432,2.512L103.96,78.02l-6.254-8.543,3.7-11.331.26-.819c.915-2.919,1.388-4.9,1.827-5.87C103.975,50.4,105.547,50.372,106.873,50.348Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_143\",\n \"data-name\": \"Path 143\",\n d: \"M106.873,50.348c1.326-.023,2.488,1.324,2.85,2.367q.361,1.042-.012,8.748a11.666,11.666,0,0,1-1.272,3.806q-.6,1.141-3.432,2.512L103.96,78.02l-6.254-8.543,3.7-11.331.26-.819c.915-2.919,1.388-4.9,1.827-5.87C103.975,50.4,105.547,50.372,106.873,50.348Z\",\n fill: \"url(#linear-gradient-25)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_144\",\n \"data-name\": \"Path 144\",\n d: \"M67.375,60.769q6.307,11.344-.281,21.453-6.584,12.861-6.112,36.591L59.4,140c.518,19.1,2.2,36.432,2.2,36.432l-3.017-.054c-6.575-.145-11.419,2.18-27.279-2.085S10.35,167.511,0,160.625q18.4-19,24.6-61.915l.3-1.231C29.68,77.356,35.758,53.784,42,53.091s9.1-1.775,16.585.78A15.278,15.278,0,0,1,67.375,60.769Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-26)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_145\",\n \"data-name\": \"Path 145\",\n d: \"M69.477,66.182c11.022,15.2,16.588,22.478,17.5,22.462q1.539-.027,9.871-19.9l8.676,7.209-1,4.424q-5.64,24.627-7.4,26.868A8.888,8.888,0,0,1,86,109.517c-4.933-2.439-31.169-24.775-36.1-31.772l-.433-.622c-1.96-2.635-1.54-12.746,4.176-17.264Q64.433,51.328,69.477,66.182Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-27)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_146\",\n \"data-name\": \"Path 146\",\n d: \"M96.195,70.255c-.628-.758-.019-3.38,1.277-4.021s8.831,4.781,9.6,5.664-.633,5.267-1.535,4.65l-.961-.628C102.23,74.408,96.718,70.887,96.195,70.255Z\",\n fill: \"#bfbfbf\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_147\",\n \"data-name\": \"Path 147\",\n d: \"M41.623,53.091c0-1.2-.263-1.63.837-2.887s13.279.629,15.013.932,1.616,4.229,0,4.229Q41.623,54.286,41.623,53.091Z\",\n fill: \"#d1d1d1\"\n }))), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_35\",\n \"data-name\": \"Rectangle 35\",\n width: 256,\n height: 256,\n transform: \"translate(850 107)\",\n fill: \"none\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgNotFound);\nexport default __webpack_public_path__ + \"static/media/NotFound.3d594ab1.svg\";\nexport { ForwardRef as ReactComponent };","var _defs, _g;\nvar _excluded = [\"title\", \"titleId\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : 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\";\nfunction SvgForbidden(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n width: 256,\n height: 256,\n viewBox: \"0 0 256 256\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient\",\n x1: 0.001,\n y1: 0.501,\n x2: 0.999,\n y2: 0.501,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#4f4f4f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.169,\n stopColor: \"#4e4e4e\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.311,\n stopColor: \"#4d4d4d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.433,\n stopColor: \"#4c4c4c\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.538,\n stopColor: \"#4b4b4b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"#494949\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#474747\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.808,\n stopColor: \"#444\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.9,\n stopColor: \"#424242\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#3f3f3f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-2\",\n x1: 0.999,\n y1: 0.501,\n x2: 0.001,\n y2: 0.501,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#4f4f4f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.082,\n stopColor: \"#4d4d4d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.164,\n stopColor: \"#4a4a4a\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.248,\n stopColor: \"#484848\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.339,\n stopColor: \"#464646\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.439,\n stopColor: \"#444\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.552,\n stopColor: \"#424242\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.681,\n stopColor: \"#414141\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.829,\n stopColor: \"#404040\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#3f3f3f\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-3\",\n x1: 0.5,\n y1: 1,\n x2: 0.5,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#f7d4af\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.053,\n stopColor: \"#f6d0aa\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.105,\n stopColor: \"#f5cca5\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.158,\n stopColor: \"#f4c8a1\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.211,\n stopColor: \"#f3c49c\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.267,\n stopColor: \"#f2c197\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.325,\n stopColor: \"#f1bd92\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.387,\n stopColor: \"#f1b98d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.454,\n stopColor: \"#f0b689\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.526,\n stopColor: \"#efb384\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.605,\n stopColor: \"#eeb081\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.691,\n stopColor: \"#eead7d\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.785,\n stopColor: \"#eeab7a\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.887,\n stopColor: \"#edaa78\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#eda977\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-4\",\n x1: 0.5,\n y1: 1,\n x2: 0.5,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#9a5a2a\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.145,\n stopColor: \"#995a2a\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.254,\n stopColor: \"#985929\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.334,\n stopColor: \"#955728\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.39,\n stopColor: \"#925527\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.428,\n stopColor: \"#8e5225\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.456,\n stopColor: \"#8a4f23\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.477,\n stopColor: \"#854c21\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.5,\n stopColor: \"#80491e\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.53,\n stopColor: \"#7b451c\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.573,\n stopColor: \"#774219\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.636,\n stopColor: \"#723f17\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.724,\n stopColor: \"#6f3d15\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.843,\n stopColor: \"#6d3c14\",\n stopOpacity: 0.902\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#6c3b13\",\n stopOpacity: 0.902\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-5\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.145,\n stopColor: \"#eee\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.296,\n stopColor: \"#ebebeb\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.446,\n stopColor: \"#e7e7e7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.59,\n stopColor: \"#e2e2e2\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#ddd\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.834,\n stopColor: \"#d8d8d8\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.922,\n stopColor: \"#d3d3d3\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.98,\n stopColor: \"#d0d0d0\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cfcfcf\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-7\",\n x1: 0,\n y1: 0.5,\n x2: 1,\n y2: 0.5,\n xlinkHref: \"#linear-gradient-3\"\n }), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-9\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#f7d4af\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.169,\n stopColor: \"#f7d3ae\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.311,\n stopColor: \"#f6d2ac\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.433,\n stopColor: \"#f6d0aa\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.538,\n stopColor: \"#f5cda7\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.632,\n stopColor: \"#f4c9a2\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.721,\n stopColor: \"#f3c49b\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.808,\n stopColor: \"#f2bd93\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.9,\n stopColor: \"#efb587\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#eda977\"\n })), /*#__PURE__*/React.createElement(\"linearGradient\", {\n id: \"linear-gradient-10\",\n x1: 0.5,\n x2: 0.5,\n y2: 1,\n gradientUnits: \"objectBoundingBox\"\n }, /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0,\n stopColor: \"#ff000f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.15,\n stopColor: \"#fe010f\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.286,\n stopColor: \"#fb0210\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.41,\n stopColor: \"#f60410\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.525,\n stopColor: \"#f00511\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.631,\n stopColor: \"#e90511\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.73,\n stopColor: \"#e10612\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.823,\n stopColor: \"#da0713\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 0.913,\n stopColor: \"#d20814\"\n }), /*#__PURE__*/React.createElement(\"stop\", {\n offset: 1,\n stopColor: \"#cc0814\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n id: \"page-not-found\",\n transform: \"translate(-575 -46)\"\n }, /*#__PURE__*/React.createElement(\"g\", {\n id: \"PageNotFound\",\n transform: \"translate(575 46)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_105\",\n \"data-name\": \"Path 105\",\n d: \"M212.4,206.344c25.625-20.156,46.875-55.6,43.177-86.663-3.7-31.127-32.291-57.816-57.916-74.15s-48.177-22.313-70.051-21.45c-21.823.925-42.969,8.568-67.969,24.9l-1.5.991C33.5,66.32,5.691,90.958.791,121.16c-4.948,30.881,13.958,67.679,38.958,87.772,24.75,19.954,55.472,23.6,85.647,23.01l.914-.019C156.831,231.307,186.779,226.5,212.4,206.344Z\",\n fill: \"#2c2c2c\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_106\",\n \"data-name\": \"Path 106\",\n d: \"M129.5,218.677c3.261,0,3.261,5.017,0,5.017C126.3,223.694,126.235,218.677,129.5,218.677Zm-74.851-11.3a1.569,1.569,0,0,1,0,3.136A1.569,1.569,0,0,1,54.645,207.381Zm132.25-4.822c3.261,0,3.261,5.017,0,5.017C183.7,207.576,183.634,202.559,186.9,202.559ZM70.3,200.643c3.261,0,3.261,5.017,0,5.017C67.105,205.66,67.105,200.643,70.3,200.643Zm30.038-3.449a1.569,1.569,0,0,1,0,3.136A1.569,1.569,0,0,1,100.342,197.194ZM58.019,160.82a1.569,1.569,0,0,1,0,3.136A1.569,1.569,0,0,1,58.019,160.82ZM241.505,159a1.569,1.569,0,0,1,0,3.136A1.569,1.569,0,0,1,241.505,159ZM13.492,152.667a1.569,1.569,0,0,1,0,3.136A1.569,1.569,0,0,1,13.492,152.667Zm215.123-1.76a1.569,1.569,0,0,1,0,3.135A1.569,1.569,0,0,1,228.615,150.907Zm-92.832-1.85a1.569,1.569,0,0,1,0,3.136A1.569,1.569,0,0,1,135.783,149.057Zm33.866.467a.627.627,0,0,1,0,1.254A.627.627,0,0,1,169.649,149.524Zm-45.46-.78a.627.627,0,0,1,0,1.254A.627.627,0,0,1,124.189,148.744ZM38.762,140.43a1.569,1.569,0,0,1,0,3.136A1.569,1.569,0,0,1,38.762,140.43Zm134.022-.3a1.569,1.569,0,0,1,0,3.135A1.569,1.569,0,0,1,172.784,140.125Zm-39.509,1.551a.628.628,0,0,1,0,1.255A.628.628,0,0,1,133.275,141.676ZM63.389,130.452c3.261,0,3.261,5.017,0,5.017C60.191,135.469,60.191,130.452,63.389,130.452Zm177.753-.048c3.261,0,3.261,5.017,0,5.017C237.944,135.421,237.881,130.4,241.142,130.4Zm-31.357-8.748c3.261,0,3.261,5.017,0,5.017C206.587,126.673,206.524,121.656,209.785,121.656ZM62.95,93l.033.014c.839.823-31.365,31.872-32.027,32.478a1.714,1.714,0,0,1-2.43,0,1.613,1.613,0,0,1,0-2.379l7.282-6.644C45.578,107.6,61.95,92.885,62.95,93ZM9.505,117.6a1.569,1.569,0,0,1,0,3.136A1.569,1.569,0,0,1,9.505,117.6Zm49.14-4.131a.628.628,0,0,1,0,1.255A.628.628,0,0,1,58.646,113.471Zm173.716-2.508a.627.627,0,0,1,0,1.254A.627.627,0,0,1,232.362,110.963ZM155.505,106a1.569,1.569,0,0,1,0,3.136A1.569,1.569,0,0,1,155.505,106Zm-8.433-6.012a1.569,1.569,0,0,1,0,3.136A1.569,1.569,0,0,1,147.072,99.988ZM26.759,98c3.261,0,3.261,5.017,0,5.017C23.561,103.017,23.561,98,26.759,98Zm135.663-3c3.261,0,3.261,5.017,0,5.017C159.224,100.017,159.161,95,162.422,95ZM105.7,83.369a.627.627,0,0,1,0,1.254A.627.627,0,0,1,105.7,83.369ZM90,67.514a1.569,1.569,0,0,1,0,3.136A1.569,1.569,0,0,1,90,67.514ZM76.505,54a1.569,1.569,0,0,1,0,3.136A1.569,1.569,0,0,1,76.505,54Zm41.917-9c3.261,0,3.261,5.017,0,5.017C115.224,50.017,115.161,45,118.422,45Zm48.718,3.249a.627.627,0,0,1,0,1.254A.627.627,0,0,1,167.14,48.249Zm-4.39-7.839a1.569,1.569,0,0,1,0,3.136A1.569,1.569,0,0,1,162.75,40.41Zm-30.1-9.093a.627.627,0,0,1,0,1.254A.627.627,0,0,1,132.648,31.317Z\",\n fill: \"#efefef\"\n }), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_42\",\n \"data-name\": \"Group 42\",\n transform: \"translate(34 31)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_107\",\n \"data-name\": \"Path 107\",\n d: \"M65.5,32.326,60.725,26.8l7.863-6.243,4.2,5.171Z\",\n fill: \"#fafafa\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_108\",\n \"data-name\": \"Path 108\",\n d: \"M10.88,44.476l2.59-10.145,6.092,2.4L15.63,46.247Z\",\n fill: \"#fafafa\",\n fillRule: \"evenodd\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_109\",\n \"data-name\": \"Path 109\",\n d: \"M74.058,89.393,63.474,131.98c-8.892,7.192-22.763-9.947-19.994,0a61.905,61.905,0,0,1,.45-35.955l8.327-26.253a5,5,0,0,0-2.548-5.993L14.95,46.578l4.792-11.951,47.466,20.2a9.643,9.643,0,0,1,5.851,8.3L74.2,87.958A5,5,0,0,1,74.058,89.393Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_110\",\n \"data-name\": \"Path 110\",\n d: \"M54.7,147.028A25.77,25.77,0,0,1,43.48,131.98,27.361,27.361,0,0,1,52.624,103.4L85.708,76.629a5,5,0,0,0,1.144-6.457L64.037,32.1l9.683-7.488,32.922,42.557a11.848,11.848,0,0,1,.5,13.8L80.618,120.884l-8.5,31.8-.731-.1c-2.5-.366-8.016-1.335-11.814-3.179A24.513,24.513,0,0,1,54.7,147.028Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-2)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_111\",\n \"data-name\": \"Path 111\",\n d: \"M126.849,118.781v-8.365l.712-1.089a89.172,89.172,0,0,0,5.158-9.059c2.321-4.849,5.3-15.945,9.445-18.406l.227-.125c4.26-2.18,7.985-11.85,8.4-14.281.4-2.38-5.454-.768-6.219-.119l-.04.038c-.552.607-5.1,2.205-6.4,6.484l-.086.3c-1.452,5.57-12.172,14.832-21.893,31.793a11.8,11.8,0,0,0-1.621,6.223l.277,8.651.21,2.761q1.119,14.1,2.337,16.891,1.332,3.056,4.671-3.1Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-3)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_112\",\n \"data-name\": \"Path 112\",\n d: \"M149.19,120.574l-.227.255c-5.623,6.5-16.2,9-22.724,9.327L94.9,147.554l.07.882c.377,4.16,2.512,21.926,11.891,29.081,10.553,8.047,26.351.85,32.054-5.572l.881-1.015c5.049-5.769,8.357-8.084,19.654-9.48l.527-.063c12.257-1.452,22.175-10.874,23.576-18.788s-2.1-13.635-12.055-22.034c-7.237-4.618-16.658-6.19-22.308.009Z\",\n fill: \"#fff\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_113\",\n \"data-name\": \"Path 113\",\n d: \"M149.19,120.574l-.227.255c-5.623,6.5-16.2,9-22.724,9.327L94.9,147.554l.07.882c.377,4.16,2.512,21.926,11.891,29.081,10.553,8.047,26.351.85,32.054-5.572l.881-1.015c5.049-5.769,8.357-8.084,19.654-9.48l.527-.063c12.257-1.452,22.175-10.874,23.576-18.788s-2.1-13.635-12.055-22.034c-7.237-4.618-16.658-6.19-22.308.009Z\",\n fill: \"url(#linear-gradient-4)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_114\",\n \"data-name\": \"Path 114\",\n d: \"M127.071,118.781l-15.793.275v9.9l22.744,10.18C128.5,132.115,127.071,118.781,127.071,118.781Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_115\",\n \"data-name\": \"Path 115\",\n d: \"M63.474,158.694l.668.285c4.42,1.861,29.865,12.148,49.7,11.116l3.14-.156c19.09-.918,23.2-.721,27.844-15.073,3.472-10.729-2.445-11.471-6.89-12.638-1.814-.477-3.27-2.711-3.918-3.088-2.236-1.3-6.5-5.691-11.372-8.1-4.754-2.354-15.613-3.717-20.921-3.782l-.388,0a36.267,36.267,0,0,1-20.723-6.368C65.906,127.981,64.037,144.55,63.474,158.694Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_116\",\n \"data-name\": \"Path 116\",\n d: \"M104.205,163.035l-6.537,2.5-1.551.182c-3.554.439-12.309,1.652-16.635,3.4-5.507,2.23-16.2,9.531-20.664,10.73s-6.961.33-9.476.877c-2.026.442-3.83,3.423-4.49,4.622l-.265.5c-.8,1.292,1.249,4.6,2.519,4.659l.207.012c1.618.114,7.235.795,9.145-1.6a14.753,14.753,0,0,1,5.7-4.631l.217-.059c2.7-.676,23.993-4.553,27.764-5.967,8.088-3.031,21.554-4.216,27.653-5.341,3.6-.664,18.482-9.614,13.465-12.228C127.775,158.883,104.205,163.035,104.205,163.035Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-7)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_117\",\n \"data-name\": \"Path 117\",\n d: \"M103.474,162.367l14.274,15.15,1.135-.415c4.6-1.72,21.631-8.493,22.592-14.735,1.112-7.221-17.968-8.455-27.535-4.848Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-5)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_118\",\n \"data-name\": \"Path 118\",\n d: \"M157.8,148.288c1.064,6.281,9.824,0,7.665-2.7-1.282-1.058-1.655-5.094,5.5-7.016-9.163-4.263-3.429-14.533-10.326-13.013l-.962.219c-9.075,2.132-17.657,6.05-15.877,11.531a11.187,11.187,0,0,0,.786,1.789l-3.881,1.261q-2.425.789-6.807-1.3-1,4.724,1.723,7.107c1.029.9,4.705.562,7.749,2.9q1.227.942,1.778,4.743c.74-.951.6-2.849,4.2-4.368Q150.953,148.756,157.8,148.288Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-9)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_119\",\n \"data-name\": \"Path 119\",\n d: \"M149.827,145.526a14.993,14.993,0,0,1-4.628-5.39l-.61-1.041-2.427.789c1.965,3.9,3.709,5.285,7.379,5.619Z\",\n fill: \"#eda977\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_120\",\n \"data-name\": \"Path 120\",\n d: \"M54.189,20.794l7.738,7.835,7.931-7.141q1.9-8.891,8.365-19.236a1.01,1.01,0,0,0-.106-1.211L77.927.83a1.048,1.048,0,0,0-1.48-.078L66.154,10.02A56.011,56.011,0,0,0,60.1,16.4l-1.432,1.77-.7-.778ZM.646,41.535l10.51,3.285,3.65-10.028q-2.495-8.743-1.645-20.912A1.01,1.01,0,0,0,12.5,12.86l-.266-.1a1.048,1.048,0,0,0-1.343.626L6.153,26.405A56,56,0,0,0,3.8,34.883l-.434,2.235-.984-.358Z\",\n fill: \"#4f4f4f\",\n fillRule: \"evenodd\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_43\",\n \"data-name\": \"Group 43\",\n transform: \"translate(153 35)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_121\",\n \"data-name\": \"Path 121\",\n d: \"M52.269.15l.457,0,.5.011h0l.6.024h0l.569.034h0l.621.049h0l.989.1.635.084h0l.237.035h0a30.547,30.547,0,0,1,16.269,7.85l-.007,0a30.627,30.627,0,0,1,9.4,17.542h-.006a31.013,31.013,0,0,1,.12,9.012l.015,0a30.067,30.067,0,0,1-1.566,6.37l-.011,0a30.66,30.66,0,0,1-54.017,7.009l.016-.01-.111-.161H26.96a30.362,30.362,0,0,1-3.174-5.941H23.8a30.455,30.455,0,0,1-2-8.028q-.1-.872-.141-1.76l-.024-.594-.01-.43q0-.277,0-.555A30.66,30.66,0,0,1,46.1.772l.84-.16h0L47,.6q.478-.084.961-.151l.591-.077h0L49.23.3h0l.233-.022h0l.474-.04h0l.925-.056h0l.431-.016h0L51.78.154h0Z\",\n fillRule: \"evenodd\",\n fill: \"url(#linear-gradient-10)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_122\",\n \"data-name\": \"Path 122\",\n d: \"M63.465,50.424a28.365,28.365,0,0,1-19.3-49.159A30.648,30.648,0,1,0,79.015,45.792,28.329,28.329,0,0,1,63.465,50.424Z\",\n opacity: 0.066\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_123\",\n \"data-name\": \"Path 123\",\n d: \"M102.479,27.132c-.472-4.054-8.944-6.713-21.684-7.528a32.374,32.374,0,0,1,1.33,4.311c7.014.643,11.389,2.059,11.646,4.161.257,2.166-4.011,4.59-11.132,6.842-1.137.365-2.359.708-3.646,1.072a190.546,190.546,0,0,1-26.724,4.869,203.264,203.264,0,0,1-23.593,1.458c-1.716,0-3.367-.043-4.912-.107C14.906,41.8,9.18,40.365,8.9,37.963c-.279-2.316,4.633-5.019,12.7-7.442a33.814,33.814,0,0,1,.365-4.461C8.386,29.877-.3,34.746.214,39.057c.536,4.568,11.239,8.172,26.724,9.094,1.609.086,3.282.15,5,.193a155.017,155.017,0,0,0,20.847-1.051,152.5,152.5,0,0,0,24.622-4.869c1.265-.365,2.488-.729,3.668-1.115C94.457,36.933,102.993,31.4,102.479,27.132Z\",\n fill: \"#ff7d85\",\n fillRule: \"evenodd\"\n })), /*#__PURE__*/React.createElement(\"g\", {\n id: \"Group_44\",\n \"data-name\": \"Group 44\",\n transform: \"translate(9 167)\"\n }, /*#__PURE__*/React.createElement(\"circle\", {\n id: \"Ellipse_4\",\n \"data-name\": \"Ellipse 4\",\n cx: 20.208,\n cy: 20.208,\n r: 20.208,\n transform: \"translate(0.048 0.016)\",\n fill: \"url(#linear-gradient-10)\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_124\",\n \"data-name\": \"Path 124\",\n d: \"M40.032,16A20.209,20.209,0,1,0,1.408,27.488c3.232-.912,8.112-2.544,15.376-5.248C27.424,18.256,34.768,16.48,40.032,16Z\",\n fill: \"#fff\",\n opacity: 0.2\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_125\",\n \"data-name\": \"Path 125\",\n d: \"M20.256,40.432a20.2,20.2,0,0,0,18.432-11.92A75.276,75.276,0,0,1,28.48,27.456c-9.008-1.568-18.224,2.88-23.424,6.08A20.2,20.2,0,0,0,20.256,40.432Z\",\n fill: \"#cf0814\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n id: \"Path_126\",\n \"data-name\": \"Path 126\",\n d: \"M.208,17.7A52.6,52.6,0,0,0,19.776,11.76c5.568-3.088,10-5.36,13.488-7.024A20.212,20.212,0,0,0,.208,17.7Z\",\n fill: \"#fd5e68\"\n }))), /*#__PURE__*/React.createElement(\"rect\", {\n id: \"Rectangle_33\",\n \"data-name\": \"Rectangle 33\",\n width: 256,\n height: 256,\n transform: \"translate(575 46)\",\n fill: \"none\"\n }))));\n}\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgForbidden);\nexport default __webpack_public_path__ + \"static/media/Forbidden.9fbe0470.svg\";\nexport { ForwardRef as ReactComponent };","import styled from 'styled-components';\r\n\r\nexport const Root = styled.div`\r\n ${({ theme }) => `\r\n width: 100%;\r\n display: flex;\r\n align-items: center;\r\n flex-direction: column;\r\n margin: ${theme.spacing(12, 0, 0)};\r\n `}\r\n`;\r\n\r\nexport const MessageRoot = styled.div`\r\n ${({ theme }) => `\r\n margin: ${theme.spacing(2, 0)};\r\n `}\r\n`;\r\n","import { FC, ReactNode } from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { StatusCodes } from 'http-status-codes';\r\n\r\nimport { myCertificationsRoute } from 'route';\r\nimport { RoundButton } from 'components/Button';\r\nimport { DetailsAppShell } from 'components/AppShell';\r\nimport { ReactComponent as UnathorizedSvg } from 'components/QueryErrorResetBoundary/svg/Unathorized.svg';\r\nimport { ReactComponent as InternalServerErrorSvg } from 'components/QueryErrorResetBoundary/svg/InternalServerError.svg';\r\nimport { ReactComponent as NotFoundSvg } from 'components/QueryErrorResetBoundary/svg/NotFound.svg';\r\nimport { ReactComponent as ForbiddenSvg } from 'components/QueryErrorResetBoundary/svg/Forbidden.svg';\r\nimport { Root, MessageRoot } from './QueryErrorResetBoundary.style';\r\n\r\nconst handleGoBack = (): void =>\r\n window.location.replace(myCertificationsRoute.path);\r\n\r\nconst getErrorSvg = (errorCode: number): ReactNode => {\r\n switch (errorCode) {\r\n case StatusCodes.UNAUTHORIZED:\r\n return ;\r\n case StatusCodes.FORBIDDEN:\r\n return ;\r\n case StatusCodes.NOT_FOUND:\r\n return ;\r\n case StatusCodes.INTERNAL_SERVER_ERROR:\r\n default:\r\n return ;\r\n }\r\n};\r\n\r\nexport interface ErrorDetailsAppShellProps {\r\n errorCode: number;\r\n errorMsg: string;\r\n handleOnTryAgain?: () => void;\r\n}\r\n\r\nexport const ErrorDetailsAppShell: FC = ({\r\n errorCode,\r\n errorMsg,\r\n handleOnTryAgain,\r\n}) => (\r\n \r\n \r\n {getErrorSvg(errorCode)}\r\n \r\n {errorMsg}\r\n \r\n {handleOnTryAgain && (\r\n \r\n Try again\r\n \r\n )}\r\n \r\n \r\n);\r\n","import { FC } from 'react';\r\nimport { ErrorBoundary } from 'react-error-boundary';\r\nimport { QueryErrorResetBoundary as ReactQueryErrorResetBoundary } from 'react-query';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport { ApiError } from 'model';\r\nimport { ReactComponent as NoInternetConnectionSvg } from 'components/QueryErrorResetBoundary/svg/NoInternetConnection.svg';\r\nimport { ErrorDetailsAppShell } from 'components/QueryErrorResetBoundary/ErrorDetailsAppShell';\r\nimport { Root, MessageRoot } from './QueryErrorResetBoundary.style';\r\n\r\nconst getErrorMessage = (error: ApiError): string =>\r\n `${error.message} (${error.code})`;\r\n\r\nexport const IsBrowserOnline: FC = ({ children }) =>\r\n window.navigator.onLine ? (\r\n <>{children}\r\n ) : (\r\n \r\n \r\n \r\n No internet connection\r\n \r\n \r\n );\r\n\r\nexport const QueryErrorResetBoundary: FC = ({ children }) => (\r\n \r\n {({ reset }) => (\r\n (\r\n \r\n )}\r\n >\r\n {children}\r\n \r\n )}\r\n \r\n);\r\n","import { makeStyles } from '@material-ui/core';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\n\r\nconst mobileQuery = '@media (max-width: 1024px)';\r\n\r\nexport const useContentStyles = makeStyles(\r\n //@ts-ignore\r\n (theme: AbbTheme) => ({\r\n header: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n width: '100%',\r\n alignItems: 'center',\r\n \r\n [mobileQuery]: {\r\n flexDirection: 'column',\r\n alignItems: 'flex-start',\r\n },\r\n },\r\n headerContent: {\r\n maxWidth: '75%'\r\n },\r\n content: {\r\n margin: theme.spacing(4,0),\r\n },\r\n subHeader: {\r\n display: 'inline-block',\r\n margin: theme.spacing(1.25, 0, 0.25),\r\n },\r\n title: {\r\n fontWeight: theme.typography.fontWeightBold,\r\n },\r\n subtitle: {\r\n color: theme.palette.grey[400],\r\n marginRight: theme.spacing(2),\r\n },\r\n actions: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'flex-start',\r\n [mobileQuery]: {\r\n margin: theme.spacing(2, 0),\r\n },\r\n },\r\n grow: {\r\n flexGrow: 1,\r\n [mobileQuery]: {\r\n display: 'none',\r\n },\r\n },\r\n }),\r\n { name: 'Content' }\r\n);\r\n","import { makeStyles } from '@material-ui/core';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\n\r\nexport const useOverlayLoaderStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n root: {\r\n position: 'relative',\r\n margin: 0,\r\n padding: 0,\r\n },\r\n overlay: {\r\n display: 'flex',\r\n justifyContent: 'center',\r\n paddingTop: theme.spacing(6),\r\n position: 'absolute',\r\n width: '100%',\r\n height: '100%',\r\n backgroundColor: 'rgba(250, 250, 250, 0.76)',\r\n zIndex: theme.zIndex.speedDial,\r\n },\r\n content: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n },\r\n label: {\r\n marginTop: theme.spacing(2),\r\n },\r\n }),\r\n { name: 'OverlayLoader' }\r\n);\r\n","import { FC, HtmlHTMLAttributes } from 'react';\r\nimport { CircularProgress, Typography } from '@material-ui/core';\r\nimport clsx from 'clsx';\r\nimport { useOverlayLoaderStyles } from './OverlayLoader.style';\r\n\r\nexport interface OverlayLoaderProps extends HtmlHTMLAttributes {\r\n mutating?: boolean;\r\n label?: string;\r\n}\r\n\r\nexport const OverlayLoader: FC = (props) => {\r\n const { className, mutating = false, label, children, ...other } = props;\r\n const classes = useOverlayLoaderStyles(props);\r\n return (\r\n
\r\n {mutating && (\r\n
\r\n
\r\n \r\n \r\n {label}\r\n \r\n
\r\n
\r\n )}\r\n {children}\r\n
\r\n );\r\n};\r\n\r\nexport default OverlayLoader;\r\n","import { FC, HtmlHTMLAttributes, ReactNode } from 'react';\r\nimport { Typography } from '@material-ui/core';\r\nimport { Loader } from 'components/Loader/Loader';\r\nimport { Helmet } from 'react-helmet';\r\nimport clsx from 'clsx';\r\nimport { useContentStyles } from './Content.style';\r\nimport { OverlayLoader } from '../../OverlayLoader/OverlayLoader';\r\n\r\nexport interface ContentProps extends HtmlHTMLAttributes {\r\n title?: string;\r\n subtitle?: string;\r\n renderSubheader?: () => ReactNode;\r\n loading?: boolean;\r\n mutating?: boolean;\r\n mutatingLabel?: string;\r\n renderActions?: () => ReactNode;\r\n}\r\n\r\nexport const Content: FC = ({\r\n title,\r\n subtitle,\r\n renderSubheader,\r\n children,\r\n loading = false,\r\n mutating = false,\r\n mutatingLabel,\r\n renderActions,\r\n ...other\r\n}) => {\r\n const classes = useContentStyles();\r\n return loading ? (\r\n \r\n ) : (\r\n \r\n \r\n {`${title ?? 'PCS 2'} ${\r\n subtitle ? `| ${subtitle}` : ''\r\n }`}\r\n \r\n
\r\n
\r\n {title && (\r\n \r\n {title}\r\n \r\n )}\r\n {subtitle && (\r\n \r\n {subtitle}\r\n \r\n )}\r\n {renderSubheader && (\r\n
{renderSubheader()}
\r\n )}\r\n
\r\n \r\n {renderActions && (\r\n
{renderActions()}
\r\n )}\r\n
\r\n\r\n
{children}
\r\n
\r\n );\r\n};\r\n\r\nexport default Content;\r\n","import styled from 'styled-components';\r\nimport Typography, { TypographyProps } from '@material-ui/core/Typography';\r\nimport Paper, { PaperProps } from '@material-ui/core/Paper';\r\n\r\nexport const Root = styled(Paper)`\r\n position: absolute;\r\n display: flex;\r\n flex-direction: column;\r\n max-width: 800px;\r\n max-height: 80%;\r\n padding: ${({ theme }) => theme.spacing(2)}px;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n overflow: auto;\r\n`;\r\n\r\nexport const HeaderRoot = styled.div`\r\n margin: ${({ theme }) => theme.spacing(1, 0, 3)};\r\n`;\r\n\r\nexport const ActionsRoot = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: flex-end;\r\n margin-top: ${({ theme }) => theme.spacing(2)}px;\r\n`;\r\n\r\nexport const ContentRoot = styled.div`\r\n padding: ${({ theme }) => theme.spacing(1, 0)};\r\n`;\r\n\r\nexport const HeaderTypography = styled(Typography)`\r\n && {\r\n font-weight: ${({ theme }) => theme.typography.fontWeightBold};\r\n }\r\n`;\r\n","import { FC, ReactNode } from 'react';\r\n\r\nimport { OverlayLoader } from 'components/OverlayLoader/OverlayLoader';\r\nimport {\r\n Root,\r\n HeaderTypography,\r\n HeaderRoot,\r\n ActionsRoot,\r\n ContentRoot,\r\n} from './ModalContent.style';\r\n\r\nexport interface ModalContentProps {\r\n header: string;\r\n renderActions?: () => ReactNode;\r\n}\r\n\r\nexport const ModalContent: FC = ({\r\n header,\r\n renderActions,\r\n children,\r\n}) => (\r\n \r\n \r\n \r\n {header}\r\n \r\n {children}\r\n {renderActions && {renderActions()}}\r\n \r\n \r\n);\r\n","import styled from 'styled-components';\r\nimport Typography, { TypographyProps } from '@material-ui/core/Typography';\r\n\r\nexport const BoldTypography = styled(Typography)`\r\n && {\r\n font-weight: ${({ theme }) => theme.typography.fontWeightBold};\r\n }\r\n`;\r\n","import styled from 'styled-components';\r\n\r\nexport const ActionsRoot = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n margin-top: 12px;\r\n`;\r\n","import { Button } from 'components/Button';\r\nimport { ActionsRoot } from 'components/Trivial/Common.style';\r\nimport { FormikProps } from 'formik';\r\n\r\n\r\nexport function EditorFormActions(p: {\r\n isNew: boolean\r\n\r\n onCancelAdd: React.DispatchWithoutAction\r\n\r\n formik: FormikProps\r\n\r\n showDiscard?: boolean\r\n}) {\r\n const {\r\n formik,\r\n isNew\r\n } = p\r\n\r\n const onDiscardChanges = ()=>{\r\n formik.resetForm()\r\n }\r\n\r\n const onAdd = ()=>{\r\n formik.submitForm()\r\n }\r\n const onSave = ()=>{\r\n formik.submitForm()\r\n }\r\n \r\n const actions = isNew ?\r\n (\r\n \r\n Cancel\r\n \r\n \r\n ) :\r\n (\r\n \r\n {!p.showDiscard ? <>: \r\n Discard\r\n }\r\n \r\n Cancel\r\n \r\n \r\n )\r\n return actions\r\n}","import styled from 'styled-components';\r\nimport Table, { TableProps } from '@material-ui/core/Table';\r\n\r\nexport const StyledTable = styled(Table)`\r\n && {\r\n border: none;\r\n }\r\n`;\r\n","import React, { ReactNode } from 'react';\r\nimport { TableProps as MUITableProps } from '@material-ui/core/Table';\r\nimport TableHead from '@material-ui/core/TableHead';\r\nimport TableBody from '@material-ui/core/TableBody';\r\nimport TableContainer from '@material-ui/core/TableContainer';\r\n\r\nimport { StyledTable } from './Table.style';\r\n\r\nexport interface TableProps extends MUITableProps {\r\n rows: Row[];\r\n renderRow: (row: Row) => ReactNode;\r\n renderHeaderRow?: () => ReactNode;\r\n}\r\n\r\nexport function Table({\r\n rows,\r\n renderRow,\r\n renderHeaderRow,\r\n ...tableProps\r\n}: TableProps) {\r\n return (\r\n \r\n \r\n {renderHeaderRow && {renderHeaderRow()}}\r\n \r\n {rows.map((row, index) => (\r\n {renderRow(row)}\r\n ))}\r\n \r\n \r\n \r\n );\r\n}\r\n","import React, { FC, ElementType } from 'react';\r\nimport MUITablePagination, {\r\n TablePaginationProps as MUITablePaginationProps,\r\n} from '@material-ui/core/TablePagination';\r\n\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { Pagination } from 'model';\r\n\r\nexport type TablePaginationProps = Omit<\r\n MUITablePaginationProps,\r\n 'count' | 'page' | 'rowsPerPage'\r\n> & {\r\n pagination: Pagination;\r\n};\r\n\r\nexport const TablePagination: FC = ({\r\n pagination,\r\n ...tablePaginationProps\r\n}) => {\r\n\r\n // INFO:\r\n // Poprawia stzałke do rozwijania rozmiaru strony. \r\n //\r\n const useStyles = makeStyles({\r\n selectIcon: {\r\n position: \"relative\"\r\n }\r\n });\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n )\r\n}\r\n","import styled from 'styled-components';\r\nimport Toolbar, { ToolbarProps } from '@material-ui/core/Toolbar';\r\nimport TableRow, { TableRowProps } from '@material-ui/core/TableRow';\r\nimport TableCell, { TableCellProps } from '@material-ui/core/TableCell';\r\nimport Typography, { TypographyProps } from '@material-ui/core/Typography';\r\n\r\nexport const StyledToolbar = styled(Toolbar)<\r\n ToolbarProps & { $outerBorder: boolean; $isSelected: boolean }\r\n>`\r\n display: flex;\r\n background-color: ${({ $isSelected, theme }) =>\r\n $isSelected\r\n ? theme.palette.shades?.red05_t\r\n : theme.palette.background.default};\r\n border: 1px solid ${({ theme }) => theme.palette.grey[200]};\r\n border-left: ${({ $outerBorder }) => !$outerBorder && 'none'};\r\n border-right: ${({ $outerBorder }) => !$outerBorder && 'none'};\r\n && {\r\n min-height: 60px;\r\n box-sizing: border-box;\r\n padding: ${({ theme }) => theme.spacing(0, 0.75)};\r\n }\r\n`;\r\n\r\nexport const ToolbarActionsRoot = styled.div`\r\n margin-left: auto;\r\n`;\r\n\r\ninterface StyledTableRowProps extends TableRowProps {\r\n $outerBorder: boolean;\r\n}\r\n\r\nexport const StyledTableRow = styled(TableRow)`\r\n && {\r\n ${({ $outerBorder }) => !$outerBorder && 'border: none;'}\r\n }\r\n`;\r\n\r\nexport const DataTableRow = styled(StyledTableRow)<\r\n StyledTableRowProps & { $isSelected: boolean; $isExpanded: boolean }\r\n>`\r\n background-color: ${({ $isSelected, theme }) =>\r\n $isSelected\r\n ? theme.palette.shades?.red05_t\r\n : theme.palette.background.default};\r\n && {\r\n border-top: none;\r\n border-bottom: ${({ $isExpanded }) => $isExpanded && 'none'};\r\n }\r\n`;\r\n\r\nexport const HeaderTableRow = styled(StyledTableRow)<\r\n StyledTableRowProps & { $headerOnTop: boolean; }\r\n>`\r\n background-color: ${({ $headerOnTop, theme }) => $headerOnTop && theme.palette.background.default};\r\n && {\r\n border: 1px solid ${({ $headerOnTop, theme }) => $headerOnTop ? theme.palette.grey[200] : 'transparent'};\r\n border-top: none;\r\n }\r\n`;\r\n\r\nexport const RowActionsRoot = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n`;\r\n\r\nexport const CollapseTableCell = styled(TableCell)`\r\n && {\r\n padding: 0;\r\n border: none;\r\n }\r\n`;\r\n\r\nexport const DataTableCell = styled(TableCell)<\r\n TableCellProps & { $isExpanded: boolean }\r\n>`\r\n && {\r\n border-bottom: ${({ $isExpanded }) => $isExpanded && 'none'};\r\n }\r\n`;\r\n\r\nexport const CollapseTableRow = styled(StyledTableRow)<\r\n StyledTableRowProps & { $isExpanded: boolean }\r\n>`\r\n && {\r\n border-top: none;\r\n border-bottom: ${({ $isExpanded }) => !$isExpanded && 'none'};\r\n background-color: ${({ theme }) => theme.palette.background.default};\r\n }\r\n`;\r\n\r\nexport const ToolbarTypography = styled(Typography)`\r\n padding: ${({ theme }) => theme.spacing(0, 2.5)};\r\n && {\r\n font-weight: ${({ theme }) => theme.typography.fontWeightBold};\r\n }\r\n`;\r\n\r\nexport const NoDataMessageWrapper = styled.div`\r\n padding: ${({ theme }) => theme.spacing(2)}px;\r\n`;\r\n","import { ChangeEvent, useState, useEffect, ReactNode } from 'react';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport Checkbox from '@material-ui/core/Checkbox';\r\nimport Collapse from '@material-ui/core/Collapse';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\nimport KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp';\r\nimport Fade from '@material-ui/core/Fade';\r\nimport TableSortLabel, {\r\n TableSortLabelProps,\r\n} from '@material-ui/core/TableSortLabel';\r\nimport { Skeleton } from '@material-ui/lab';\r\nimport { formatDate } from 'utils';\r\n\r\nimport { Sort } from 'model';\r\nimport { Table } from 'components/Table';\r\nimport {\r\n CollapseTableCell,\r\n CollapseTableRow,\r\n DataTableRow,\r\n RowActionsRoot,\r\n StyledToolbar,\r\n ToolbarActionsRoot,\r\n HeaderTableRow,\r\n ToolbarTypography,\r\n DataTableCell,\r\n NoDataMessageWrapper,\r\n} from './DataTable.style';\r\n\r\nexport interface DataTableColumn {\r\n field: keyof Row | undefined;\r\n headerName: string;\r\n width?: number | string;\r\n renderField?: (row: Row) => ReactNode;\r\n notSortable?: boolean;\r\n}\r\n\r\nexport interface DataTableProps {\r\n loading?: boolean;\r\n columns: DataTableColumn[];\r\n rows: Row[];\r\n noDataMessage?: string | JSX.Element;\r\n rowSelector?: (row: Row) => string | number;\r\n selectIsRowSelectable?: (row: Row) => boolean;\r\n enableSort?: boolean;\r\n checkboxSelection?: boolean;\r\n headerRowAlwaysOnTop?: boolean;\r\n showRowActionsOnHover?: boolean;\r\n hideCollapseColumn?: boolean;\r\n outerBorder?: boolean;\r\n outerSelectedRows?: string[];\r\n outerSelectedRowsRaw?: Row[];\r\n defaultSort?: Sort;\r\n onCheckboxChange?: (selectedRows: string[]) => void;\r\n onRowsSelection?: (selectedRows: Row[]) => void;\r\n onSortRequest?: (\r\n direction: TableSortLabelProps['direction'],\r\n field: keyof Row\r\n ) => void;\r\n renderRowCells?: (row: Row) => ReactNode;\r\n renderSelectedActions?: (\r\n selectedRows: string[],\r\n clearSelected: () => void\r\n ) => ReactNode;\r\n renderRowActions?: (\r\n row: Row,\r\n collapseRow: () => void,\r\n isExpanded: boolean\r\n ) => ReactNode;\r\n renderCollapseRow?: (row: Row, collapseRow: () => void) => ReactNode;\r\n}\r\n\r\nexport function DataTable({\r\n loading = false,\r\n columns,\r\n rows,\r\n rowSelector,\r\n selectIsRowSelectable,\r\n onSortRequest,\r\n renderRowCells,\r\n renderSelectedActions,\r\n renderRowActions,\r\n renderCollapseRow,\r\n noDataMessage,\r\n defaultSort,\r\n onCheckboxChange,\r\n onRowsSelection,\r\n outerSelectedRows,\r\n outerSelectedRowsRaw,\r\n outerBorder = true,\r\n enableSort = false,\r\n checkboxSelection = false,\r\n showRowActionsOnHover = false,\r\n hideCollapseColumn = false,\r\n headerRowAlwaysOnTop = false,\r\n}: DataTableProps) {\r\n const [selectedRowsData, setselectedRowsData] = useState([]);\r\n const [selectedRows, setSelectedRows] = useState([]);\r\n const [openedRows, setOpenedRows] = useState([]);\r\n const [direction, setDirection] = useState(\r\n defaultSort?.sortDescending ? 'desc' : 'asc'\r\n );\r\n const [orderByField, setOrderByField] = useState(\r\n defaultSort?.sortExpression ?? null\r\n );\r\n const [fadeInRow, setFadeInRow] = useState('');\r\n const properSelectedRows = outerSelectedRows || selectedRows;\r\n\r\n useEffect(() => {\r\n if (properSelectedRows.length !== 0 )return;\r\n setselectedRowsData([])\r\n setSelectedRows([])\r\n setOpenedRows([])\r\n }, [outerSelectedRows]);\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n if (noDataMessage && !rows.length) {\r\n return (\r\n \r\n {noDataMessage}\r\n \r\n );\r\n }\r\n\r\n const getRowSelector = (row: Row) =>\r\n rowSelector ? rowSelector(row).toString() : '';\r\n\r\n const handleSetSelectedRows = (newSelectedRows: string[]): void => {\r\n if (onCheckboxChange) {\r\n onCheckboxChange(newSelectedRows);\r\n } else {\r\n setSelectedRows(newSelectedRows);\r\n }\r\n };\r\n const handleSelectedRow = (rowId: string, selected: boolean): void => {\r\n if (!onRowsSelection) return;\r\n let newSelectedRows: Row[] = [];\r\n if (selected){\r\n const rawrows = rows.filter((row) => rowId === getRowSelector(row))[0];\r\n newSelectedRows = [...selectedRowsData, rawrows];\r\n }\r\n else{\r\n const rawrows = selectedRowsData.filter((row) => rowId !== getRowSelector(row));\r\n newSelectedRows =rawrows;\r\n }\r\n setselectedRowsData(newSelectedRows);\r\n onRowsSelection(newSelectedRows);\r\n };\r\n\r\n const handleOnCheckboxChange = (event: ChangeEvent) => {\r\n let newSelectedRows: string[] = [];\r\n if (event.target.checked) {\r\n newSelectedRows = [...properSelectedRows, event.target.name];\r\n handleSelectedRow(event.target.name, true);\r\n }\r\n if (!event.target.checked) {\r\n newSelectedRows = properSelectedRows.filter(\r\n (selectedRow) => selectedRow !== event.target.name\r\n );\r\n handleSelectedRow(event.target.name, false);\r\n }\r\n handleSetSelectedRows(newSelectedRows);\r\n };\r\n\r\n const handleOnHeaderCheckboxChange = (\r\n event: ChangeEvent\r\n ) => {\r\n let newSelectedRows: string[] = [];\r\n let newSelectedRowsRow: Row[] = [];\r\n if (event.target.checked && !properSelectedRows.length) {\r\n if (selectIsRowSelectable) {\r\n newSelectedRows = rows\r\n .filter((row) => selectIsRowSelectable(row))\r\n .map(getRowSelector);\r\n } else {\r\n newSelectedRows = rows.map(getRowSelector);\r\n }\r\n newSelectedRowsRow = rows;\r\n }\r\n if (!event.target.checked) {\r\n newSelectedRows = [];\r\n }\r\n handleSetSelectedRows(newSelectedRows);\r\n\r\n setselectedRowsData(newSelectedRowsRow);\r\n if (onRowsSelection) onRowsSelection(newSelectedRowsRow);\r\n };\r\n\r\n const handleOnCollapseRow = (row: Row) => () => {\r\n const rowId = getRowSelector(row);\r\n if (openedRows.includes(rowId)) {\r\n setOpenedRows((openedRows) => openedRows.filter((row) => row !== rowId));\r\n } else {\r\n setOpenedRows((openedRows) => [...openedRows, getRowSelector(row)]);\r\n }\r\n };\r\n\r\n const handleOnShowRowActions = (row: Row) => () =>\r\n setFadeInRow(getRowSelector(row));\r\n\r\n const handleOnHideRowActions = () => setFadeInRow('');\r\n\r\n const handleOnSort = (field: keyof Row | undefined) => () => {\r\n if (!field) {\r\n return;\r\n }\r\n\r\n let newDirection: TableSortLabelProps['direction'];\r\n\r\n if (field === orderByField) {\r\n newDirection = direction === 'asc' ? 'desc' : 'asc';\r\n }\r\n if (field !== orderByField) {\r\n newDirection = 'asc';\r\n }\r\n\r\n setDirection(newDirection);\r\n setOrderByField(field);\r\n\r\n if (onSortRequest) {\r\n onSortRequest(newDirection, field);\r\n }\r\n };\r\n\r\n const getHeaderCheckbox = () => {\r\n const isChecked = properSelectedRows.length === rows.length;\r\n return (\r\n selectIsRowSelectable(row))\r\n }\r\n />\r\n );\r\n };\r\n\r\n const getSelectedToolbar = () => (\r\n \r\n {!headerRowAlwaysOnTop && getHeaderCheckbox()}\r\n \r\n {properSelectedRows.length ? \r\n `${properSelectedRows.length} item${properSelectedRows.length > 1 ? 's' : ''} selected`\r\n :\r\n 'Use checkboxes to act on requirements' \r\n } \r\n \r\n {renderSelectedActions && (\r\n \r\n {renderSelectedActions(properSelectedRows, () =>\r\n handleSetSelectedRows([])\r\n )}\r\n \r\n )}\r\n \r\n );\r\n\r\n const getHeaderRow = () =>\r\n (!properSelectedRows.length || headerRowAlwaysOnTop) && (\r\n \r\n {checkboxSelection && (\r\n {getHeaderCheckbox()}\r\n )}\r\n {columns.map((column, index) => (\r\n \r\n {enableSort && !column.notSortable ? (\r\n \r\n {column.headerName}\r\n \r\n ) : (\r\n column.headerName\r\n )}\r\n \r\n ))}\r\n {renderRowActions && }\r\n {renderCollapseRow && !hideCollapseColumn && }\r\n \r\n );\r\n\r\n let columnsCount = columns.length + 1;\r\n if (checkboxSelection) columnsCount += 1;\r\n if (renderCollapseRow) columnsCount += 1;\r\n if (hideCollapseColumn) columnsCount -= 1;\r\n\r\n const getDataRow = (row: Row) => {\r\n const isRowSelected = properSelectedRows.some(\r\n (selectedRow) => selectedRow === getRowSelector(row)\r\n );\r\n const isExpanded = openedRows.includes(getRowSelector(row));\r\n return (\r\n <>\r\n \r\n {checkboxSelection && (\r\n \r\n \r\n \r\n )}\r\n {renderRowCells\r\n ? renderRowCells(row)\r\n : columns.map((column, index) => {\r\n const getValue = () => (column.field ? row[column.field] : '');\r\n return (\r\n \r\n {column.renderField ? column.renderField(row) : getValue()}\r\n \r\n );\r\n })}\r\n\r\n {renderRowActions && (\r\n \r\n {!showRowActionsOnHover && (\r\n \r\n {renderRowActions(row, handleOnCollapseRow(row), isExpanded)}\r\n \r\n )}\r\n {showRowActionsOnHover && !properSelectedRows.length && (\r\n \r\n \r\n {renderRowActions(\r\n row,\r\n handleOnCollapseRow(row),\r\n isExpanded\r\n )}\r\n \r\n \r\n )}\r\n \r\n )}\r\n {renderCollapseRow && !hideCollapseColumn && (\r\n \r\n \r\n \r\n {isExpanded ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n )}\r\n \r\n {renderCollapseRow && (\r\n \r\n \r\n \r\n {renderCollapseRow(row, handleOnCollapseRow(row))}\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n {(!!properSelectedRows.length || headerRowAlwaysOnTop) && getSelectedToolbar()}\r\n \r\n \r\n );\r\n}\r\n\r\nDataTable.formatDate = formatDate","import styled from 'styled-components';\r\n\r\nexport const Root = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n padding: ${({ theme }) => theme.spacing(5, 1, 2)};\r\n`;\r\n","import React,{ FC } from 'react';\r\n\r\nimport { BoldTypography } from 'components/Page';\r\nimport { Root } from './SearchResults.style';\r\n\r\n\r\nexport interface SearchResultsProps {\r\n total?: number;\r\n loading?: boolean;\r\n actions?: React.ReactNode\r\n}\r\n\r\nexport const SearchResults: FC = ({\r\n total,\r\n loading = false,\r\n actions\r\n}) => (\r\n \r\n \r\n Search results: {loading ? '...' : total ?? '...'}\r\n \r\n {actions}\r\n \r\n);\r\n","import Grid, { GridSize } from \"@material-ui/core/Grid\";\r\nimport { Children, PropsWithChildren } from \"react\";\r\n\r\ninterface Props {\r\n direction?: \"row\" | \"column\"\r\n}\r\n\r\nexport const Stack = (p: PropsWithChildren) => {\r\n const items = Children.count(p.children)\r\n\r\n return (\r\n
\r\n {Children.map(p.children, ((child, index) =>\r\n (\r\n <>{child}\r\n ))\r\n )}\r\n\r\n
\r\n )\r\n}\r\n\r\nexport const FluidForEditors = (p: PropsWithChildren<{ inRow?: number, noSpacing?: boolean }>) => {\r\n const itemSize: GridSize = Math.max(3, Math.round(12 / (p.inRow ?? 2))) as GridSize\r\n\r\n return (\r\n \r\n {Children.map(p.children, ((child, index) =>\r\n (\r\n \r\n {child}\r\n \r\n ))\r\n )}\r\n\r\n \r\n )\r\n}\r\n","import { FC } from 'react';\r\nimport { createPortal } from 'react-dom';\r\nimport MUIModal, { ModalProps } from '@material-ui/core/Modal';\r\n\r\nconst modalRoot = document.getElementById('modal-root') as HTMLElement;\r\n\r\nexport const Modal: FC = ({ children, ...modalProps }) =>\r\n createPortal(\r\n \r\n {children}\r\n ,\r\n modalRoot\r\n );\r\n","import { FC, ReactElement, useState, Dispatch, DispatchWithoutAction } from 'react';\r\n\r\nimport { Modal } from 'components/Modal';\r\nimport { Button } from 'components/Button';\r\nimport { ModalContent } from 'components/Page';\r\nimport { Typography } from 'components/Trivial/external';\r\n\r\nexport const useModal = (\r\n children: (closeModal: () => void) => ReactElement\r\n) => {\r\n const [open, setOpen] = useState(false);\r\n\r\n const handleOpen = () => setOpen(true);\r\n\r\n const handleClose = () => setOpen(false);\r\n\r\n const ModalComponent: FC = () =>\r\n open ? (\r\n \r\n {children(handleClose)}\r\n \r\n ) : null;\r\n\r\n return {\r\n Modal: ModalComponent,\r\n openModal: handleOpen,\r\n closeModal: handleClose,\r\n };\r\n};\r\n\r\nexport function useConfirmationModal(\r\n p: {\r\n onConfirmed: Dispatch\r\n confirmTitle?: string\r\n confirmDescription?: string\r\n confirmButton?: string\r\n }\r\n) {\r\n const [open, setOpen] = useState(undefined);\r\n const handleOpen = (item: T) => setOpen(item);\r\n const handleClose = () => setOpen(undefined);\r\n\r\n const confirmTitle = p.confirmTitle ?? \"Delete selected item?\"\r\n const confirmDescription = p.confirmDescription ?? \"Do you want to delete it?\"\r\n const confirmButton = p.confirmButton ?? \"Delete\"\r\n\r\n const ModalComponent: FC = () =>\r\n open ? (\r\n \r\n
\r\n (<>\r\n \r\n { p.onConfirmed(open); handleClose() }}>\r\n {confirmButton}\r\n \r\n )}\r\n >\r\n \r\n {confirmDescription}\r\n \r\n\r\n\r\n \r\n
\r\n
\r\n ) : <>;\r\n\r\n return {\r\n Modal: ModalComponent,\r\n openModal: handleOpen,\r\n closeModal: handleClose,\r\n };\r\n};\r\n\r\n\r\nexport interface ModalQuetionProps {\r\n onConfirmed?: DispatchWithoutAction\r\n confirmTitle?: string\r\n confirmDescription?: string\r\n cancelButton?: string\r\n confirmButton?: string\r\n}\r\n\r\ninterface ModalState extends ModalQuetionProps {\r\n opened: boolean\r\n\r\n}\r\n\r\n\r\nexport function useConfirmationModal2() {\r\n const [state, setState] = useState({ opened: false });\r\n\r\n function showQuestion(p: ModalQuetionProps) {\r\n setState(c => ({ ...p, opened: true }));\r\n }\r\n const handleClose = () => setState(c => ({ opened: false }));\r\n\r\n const ModalComponent: FC = () =>\r\n state.opened ? (\r\n \r\n
\r\n (<>\r\n \r\n { state.onConfirmed && state.onConfirmed(); handleClose() }}>\r\n {state.confirmButton ?? \"Yes\"}\r\n \r\n )}\r\n >\r\n \r\n {state.confirmDescription}\r\n \r\n \r\n
\r\n
\r\n ) : <>;\r\n\r\n return {\r\n Modal: ModalComponent,\r\n closeModal: handleClose,\r\n showQuestion\r\n };\r\n};","import { useIsMutating } from 'react-query';\r\n\r\nexport const useMutating = (mutationKeys: string[]): boolean => {\r\n const mutationCount = useIsMutating({\r\n predicate: (m) => mutationKeys.some((k) => k === m?.options?.mutationKey),\r\n });\r\n return Boolean(mutationCount);\r\n};\r\n","import { useState } from 'react';\r\n\r\nexport interface UseCollapseRowActions {\r\n collapseRecords: Record;\r\n closeRow: (rowId: number) => void;\r\n openRow: (rowId: number, action: Actions) => void;\r\n}\r\nexport function useCollapseRowActions<\r\n Actions\r\n>(): UseCollapseRowActions {\r\n const [collapseRecords, setCollapseRecords] = useState<\r\n Record\r\n >({});\r\n\r\n const closeRow = (rowId: number) =>\r\n setCollapseRecords((prevCollapseRecords) =>\r\n Object.keys(prevCollapseRecords)\r\n .filter((key) => key !== rowId.toString())\r\n .reduce(\r\n (record, key) => ({\r\n ...record,\r\n [Number(key)]: (prevCollapseRecords as Record)[\r\n Number(key)\r\n ],\r\n }),\r\n {}\r\n )\r\n );\r\n\r\n const openRow = (rowId: number, action: Actions) =>\r\n setCollapseRecords((prevState) => ({ ...prevState, [rowId]: action }));\r\n\r\n return { closeRow, openRow, collapseRecords };\r\n}\r\n","import { FC } from 'react';\r\nimport { useField } from 'formik';\r\nimport { TextField, TextFieldProps } from '@material-ui/core';\r\n\r\nexport type FormikTextFieldProps = TextFieldProps & {\r\n name: string;\r\n};\r\n\r\nexport const FormikTextField: FC = (props) => {\r\n const [field, meta, helpers] = useField({ name: props.name });\r\n\r\n const handleChange: FormikTextFieldProps['onChange'] = (event) => {\r\n if (props.type === \"number\")\r\n helpers.setValue(+event.target.value);\r\n else\r\n helpers.setValue(event.target.value);\r\n }\r\n\r\n const getHelperText = () => {\r\n if (meta.error) {\r\n return meta.error;\r\n }\r\n return props.helperText;\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\nimport { Checkbox, FormControlLabel, TextFieldProps, Tooltip } from '@material-ui/core';\r\nimport { useField } from 'formik';\r\nimport { FieldRoot } from 'components/SearchFiltersForm/SearchFiltersForm.style';\r\nimport UsedIcons from 'components/Trivial/UsedIcons';\r\n\r\nexport type FormikCheckboxFieldProps = TextFieldProps & {\r\n name: string;\r\n};\r\n\r\nexport const FormikCheckboxField: FC = (props) => {\r\n const [field, meta, helpers] = useField({ name: props.name });\r\n const helperText = meta.error ?? props.helperText\r\n\r\n const render = () => <>\r\n {props.label}\r\n {!helperText ? <> : (<> )}\r\n \r\n\r\n return (\r\n }\r\n\r\n label={render()}\r\n name={props.name}\r\n labelPlacement=\"end\"\r\n onChange={field.onChange} />\r\n\r\n );\r\n};\r\n","import styled from 'styled-components';\r\nimport Typography, { TypographyProps } from '@material-ui/core/Typography';\r\n\r\nexport const HelperTypography = styled(Typography)`\r\n padding: ${({ theme }) => theme.spacing(0, 0, 0, 0.5)};\r\n`;\r\n\r\nexport const HelperTextRoot = styled.span`\r\n display: flex;\r\n padding: ${({ theme }) => theme.spacing(0, 0.5)};\r\n`;\r\n","import { apiClient } from 'service';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { MassEnrollResponse } from 'CertificationList/model/MassEnrollResponse';\r\nimport { PlanRequirements } from 'Requirement/model/PlanRequirements';\r\nimport { CertificationPlanHistory } from 'CertificationPlansPage/model/CertificationPlanHistory';\r\nimport { CertificateShortDetails, CertificationPlansDetails } from 'CertificationPlansPage/model/CertificationPlansDetails';\r\n\r\nconst domainPath = '/certification-list';\r\n\r\nconst getRootPath = (certificationId: number): string =>\r\n `${domainPath}/${certificationId}`;\r\n\r\nconst get = async (\r\n certificationId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(getRootPath(certificationId));\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getShort = async (\r\n certificateId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `${getRootPath(certificateId)}/short`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getRequirements = async (\r\n certificationId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `${getRootPath(certificationId)}/requirements`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getHistory = async (\r\n certificationId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `${getRootPath(certificationId)}/history`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getEnrollRequest = async (\r\n certificationId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `${domainPath}/enroll-request/${certificationId}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst publish = async (certificationId: number): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/${certificationId}/publish`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst rejectPublish = async (certificationId: number): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/${certificationId}/reject-publish`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport interface EnrollDto {\r\n enrollBehalfUser?: boolean;\r\n behalfUserId?: number;\r\n}\r\nconst enroll = async (\r\n certificationId: number,\r\n enrollDto: EnrollDto = {}\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/${certificationId}/enroll`,\r\n enrollDto\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport interface MassEnrollDto {\r\n usersIds: number[];\r\n certificationIds: number[];\r\n \r\n notificationSubject?: string;\r\n notificationMessage?: string;\r\n additionalRecipients?: string[];\r\n dueDate: string | null;\r\n}\r\nconst massEnroll = async (massEnrollDto: MassEnrollDto): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/mass-enroll`,\r\n massEnrollDto\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport interface MassReminderDto {\r\n planIds: number[];\r\n \r\n notificationSubject?: string;\r\n notificationMessage?: string;\r\n additionalRecipients?: string[];\r\n}\r\n\r\nconst sendReminder = async (dto: MassReminderDto): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/mass-remind`,\r\n dto\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const certificationListApi = {\r\n get,\r\n getShort,\r\n getHistory,\r\n getRequirements,\r\n getEnrollRequest,\r\n enroll,\r\n massEnroll,\r\n sendReminder,\r\n publish,\r\n rejectPublish,\r\n};\r\n","import fileDownload from 'js-file-download';\r\n\r\nimport { apiClient } from 'service';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { PaginatedList, PaginationDto, Sort } from 'model';\r\nimport { CatalogSearchFilters } from 'Catalog/model/CatalogSearchFilters';\r\nimport { CertificationPlansDetails } from 'CertificationPlansPage/model/CertificationPlansDetails';\r\nimport { getDateNow } from 'utils';\r\n\r\nconst domainPath = '/catalog';\r\n\r\nconst search = async (\r\n pagination: PaginationDto,\r\n sort: Sort,\r\n filters: Partial\r\n): Promise> => {\r\n try {\r\n const response = await apiClient.post(`${domainPath}/search`, {\r\n ...filters,\r\n ...pagination,\r\n ...sort,\r\n });\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst exportToExcel = async (\r\n sort: Sort,\r\n filters: Partial\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/export-excel`,\r\n {\r\n ...filters,\r\n ...sort,\r\n },\r\n {\r\n responseType: 'blob',\r\n }\r\n );\r\n fileDownload(response.data, `Available Certificates ${getDateNow()}.xlsx`);\r\n return [];\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const catalogApi = {\r\n search,\r\n exportToExcel,\r\n};\r\n","import { apiClient } from 'service';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { Company, CompanyFindQuery, CompanyInfoDTO } from 'Dictionary/model/Company';\r\nimport { BusinessUnit } from 'Dictionary/model/BusinessUnit';\r\nimport { Language } from 'Dictionary/model/Language';\r\nimport { PGUnit } from 'Dictionary/model/PGUnit';\r\nimport { Division } from 'Dictionary/model/Division';\r\nimport { EmployeeJob, EmployeeJobFamily } from 'Dictionary/model/EmployeeJob';\r\nimport { BusinessUnitContact } from 'Dictionary/model/BusinessUnitContact';\r\nimport { CertificateFunction } from 'Dictionary/model/CertificateFunction';\r\nimport { WorkType } from 'Dictionary/model/WorkType';\r\nimport { CompanyChannel } from 'Dictionary/model/CompanyChannel';\r\nimport { Country } from 'Dictionary/model/Country';\r\nimport { CompanyFilterParams } from 'Dictionary/model/CompanyFilterParams';\r\nimport { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { TrainingManagersFiltersDto } from 'Dictionary/model/TrainingManagersFiltersDto';\r\nimport { Approver } from 'Dictionary/model/Approver';\r\nimport { ScopeDetailsParams } from 'Dictionary/model/ScopeDetailsParams';\r\nimport { ScopeDetail, ScopeKeyword, ScopeDetailFindQuery } from 'Dictionary/model/ScopeDetail';\r\nimport { PrintingConfigurationDTO } from 'page/PrintingCertificates/PrintingHeaders/model';\r\n\r\nimport { PaginatedList, UserDetails, PaginationDto } from 'model';\r\nimport fileDownload from 'js-file-download';\r\nimport { DigitalSignatureDto, DigitalSignatureFindQuery, PrintingStandardTextDTO, PrintingStandardTextsFindQuery } from 'page/PrintingCertificates/model';\r\n\r\nconst domainPath = '/management-structure';\r\n\r\nconst getCompanies = async (): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/user-companies`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getCompanyChannels = async (): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/company-channels`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getManagers = async (query: string): Promise[]> => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/managers`, {\r\n params: { query },\r\n });\r\n return response.data.result;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getTrainingManagers = async (\r\n dto: TrainingManagersFiltersDto\r\n): Promise[]> => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/training-managers`,\r\n dto\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getEmployeeJobs = async (): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/functional-jobs`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getEmployeeJobFamilies = async (): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/functional-job-families`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getBusinessUnits = async (\r\n divisionid: Division['id']\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `${domainPath}/business-units/published?divisionId=${divisionid}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getActiveBusinessUnits = async (\r\n divisionid: Division['id']\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/business-units?divisionId=${divisionid}`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getPgUnits = async (\r\n businessUnitId: BusinessUnit['id']\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `${domainPath}/pg-units?businessUnitId=${businessUnitId}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getPreferredLanguages = async (): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/languages`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getLanguagesByBusinessUnit = async (\r\n buId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `${domainPath}/business-units/${buId}/languages`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getBusinessUnitContacts = async (): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `${domainPath}/business-units/contacts`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getCertificateFunctions = async (): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/certificate-functions`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getWorkTypes = async (): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/work-types`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getDivisions = async (): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/divisions`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getCountries = async (): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/countries`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getCompaniesWithFilter = async (\r\n params: CompanyFilterParams\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/companies/filter`,\r\n params\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst companyFind = async (\r\n query: CompanyFindQuery\r\n): Promise> => {\r\n try {\r\n const response = await apiClient.post(\r\n `admin/company/find`,\r\n query\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst companyDelete = async (\r\n companyId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.delete(\r\n `admin/company/${companyId}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\nconst companyAdd = async (\r\n command: CompanyInfoDTO\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `admin/company/`,\r\n command\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\nconst companyGet = async (\r\n companyId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `admin/company/${companyId}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst companyUpdate = async (\r\n command: CompanyInfoDTO\r\n): Promise => {\r\n try {\r\n const response = await apiClient.put(\r\n `admin/company/${command.id}`,\r\n command\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getScopeDetails = async (\r\n params: ScopeDetailsParams\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/scope-details`,\r\n params\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getApprovers = async (): Promise => {\r\n try {\r\n const response = await apiClient.get('/pending-approvals/approvers');\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const dictionaryApi = {\r\n getCompanies,\r\n getManagers,\r\n getTrainingManagers,\r\n getEmployeeJobs,\r\n getEmployeeJobFamilies,\r\n getBusinessUnits,\r\n getActiveBusinessUnits,\r\n getPgUnits,\r\n getDivisions,\r\n getPreferredLanguages,\r\n getLanguagesByBusinessUnit,\r\n getBusinessUnitContacts,\r\n getCertificateFunctions,\r\n getWorkTypes,\r\n getCompanyChannels,\r\n getCountries,\r\n getCompaniesWithFilter,\r\n companyFind,\r\n getApprovers,\r\n getScopeDetails,\r\n\r\n\r\n company: {\r\n ...makeDefaultApi({ basePath: \"admin/company/\" }),\r\n\r\n deleteBatch: async (ids: (string | number)[]): Promise => {\r\n try {\r\n\r\n const prms = new URLSearchParams(ids.map(s => ['ids', s.toString()])).toString()\r\n const fullUrl = `admin/company/delete/?${prms}`\r\n const response = await apiClient.delete(fullUrl);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n\r\n validateCompanyName: async (command: CompanyInfoDTO) => {\r\n try {\r\n const response = await apiClient.post(\r\n `admin/company/find`,\r\n command\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n },\r\n\r\n scopeKeyword: {\r\n ...makeDefaultApi({ basePath: \"admin/scope-keyword/\" }),\r\n },\r\n\r\n other: {\r\n findDateFormats: async (): Promise<{ id: number, value: string }[]> => {\r\n try {\r\n const result = [\r\n { id: 20000, value: \"M/d/yy\" },\r\n { id: 20001, value: \"MM/dd/yy\" },\r\n { id: 20002, value: \"M/d/yyyy\" },\r\n { id: 20003, value: \"MM/dd/yyyy\" },\r\n { id: 20004, value: \"MMM d, yyyy\" },\r\n { id: 20005, value: \"MMMM dd, yyyy\" },\r\n { id: 20006, value: \"dddd, MMMM d, yyyy\" },\r\n ]\r\n return await Promise.resolve(result);\r\n\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n },\r\n\r\n digitalSignature: {\r\n ...makeDefaultApi({ basePath: \"admin/signature/\" }),\r\n\r\n findSigner: async (query: { byText: string }): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `admin/signature/find-signer`,\r\n query\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n\r\n },\r\n\r\n IPrintingCertificatesContract: {\r\n ...makeDefaultApi({ basePath: \"admin/printing-standard/\" }),\r\n\r\n preview: async (query: { standard: PrintingStandardTextDTO, forExternal: boolean }): Promise => {\r\n try {\r\n\r\n const response = await apiClient.get(\r\n `admin/printing-standard/${query.standard.id}/preview?forExternal=${query.forExternal ? \"true\" : \"false\"}`,\r\n { responseType: 'blob' }\r\n );\r\n fileDownload(response.data, 'preview.pdf');\r\n return undefined;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n\r\n getSettings: async (query: { division: DictionaryItemByCodeDTO }): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `admin/printing-standard/settings/${query.division.id}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n\r\n updateSettings: async (command: PrintingConfigurationDTO): Promise => {\r\n try {\r\n const response = await apiClient.put(\r\n `admin/printing-standard/settings/${command.division?.id}`,\r\n command\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n }\r\n};\r\n\r\nexport const defaultApiClient = apiClient\r\nexport function makeDefaultApi<\r\n TModelDTO extends { id: number },\r\n TQueryDTO extends PaginationDto\r\n>(p: { basePath: string }): ApiContract {\r\n return {\r\n get: async (id: string | number): Promise => {\r\n\r\n try {\r\n const response = await apiClient.get(\r\n `${p.basePath}${id}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n\r\n find: async (query: TQueryDTO): Promise> => {\r\n try {\r\n const response = await apiClient.post(\r\n `${p.basePath}find`,\r\n query\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n\r\n add: async (command: TModelDTO) => {\r\n try {\r\n const response = await apiClient.post(\r\n `${p.basePath}`,\r\n command\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n update: async (command: TModelDTO): Promise => {\r\n try {\r\n const response = await apiClient.put(\r\n `${p.basePath}${command.id}`,\r\n command\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n delete: async (id: string | number | TModelDTO): Promise => {\r\n try {\r\n const itemId = (typeof id === \"string\" || typeof id === \"number\") ? id : id.id;\r\n const response = await apiClient.delete(\r\n `${p.basePath}${itemId}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n }\r\n}","import { useQuery as callquery } from 'react-query';\r\nimport fileDownload from 'js-file-download';\r\nimport { certificationListApi } from 'CertificationList/service/certificationList.api';\r\nimport { catalogApi } from 'Catalog/service/catalog.api';\r\nimport { ApiError, PaginatedList, PaginationDto, Sort, UserSearchItemDto } from 'model';\r\nimport { CertificationPlansDetails } from 'CertificationPlansPage/model/CertificationPlansDetails';\r\nimport { defaultApiClient, makeDefaultApi } from 'Dictionary/service/dictionary.api';\r\n\r\nexport type { PaginatedList, PaginationDto, CertificationPlansDetails }\r\n\r\nexport enum KnownCertificateListStatus {\r\n\r\n Removed = \"Removed\",\r\n Draft = \"Draft\",\r\n Temporary = \"Temporary\",\r\n Published = \"Published\",\r\n Withdrawn = \"Withdrawn\",\r\n Imported = \"Imported\",\r\n WaitingApproval = \"WaitingApproval\"\r\n}\r\n\r\nexport const API =\r\n{\r\n certificationList: certificationListApi,\r\n catalog: catalogApi,\r\n\r\n // map: (x: CertificationPlansDetails): CertificateListDefinitionDTO => ({\r\n // id: x.id,\r\n // title: x.title,\r\n // release: x.release,\r\n // publishDate: x.publishDate,\r\n\r\n // behavior: { code: \"behavior2\", display: \"behavior2\" },\r\n // level: { id: x.level.id, code: x.level.type, name: x.level.description },\r\n // division: { id: x.businessUnit.id, name: x.businessUnit.description },\r\n // recommended: x.recommended.map(x => ({\r\n // id: x.id,\r\n // title: x.title,\r\n // division: { id: x.provider.id, name: x.provider.description },\r\n // level: { id: x.level.id, code: x.level.type, name: x.level.description }\r\n // })),\r\n // prerequisites: x.prerequisites.map(x => ({\r\n // id: x.id,\r\n // title: x.title,\r\n // division: { id: x.businessUnit.id, name: x.businessUnit.description },\r\n // level: { id: x.level.id, code: x.level.type, name: x.level.description }\r\n // })),\r\n // }), \r\n\r\n ICertificateListContract: {\r\n ...makeDefaultApi({ basePath: \"admin/certificate-list/\" }),\r\n\r\n Withdraw: async (item: CertificateListLookupDTO): Promise => {\r\n\r\n try {\r\n const response = await defaultApiClient.put(\r\n `admin/certificate-list/Withdraw/${item.id}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n\r\n },\r\n\r\n RemoveDraft: async (item: CertificateListLookupDTO): Promise => {\r\n\r\n try {\r\n const response = await defaultApiClient.put(\r\n `admin/certificate-list/RemoveDraft/${item.id}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n\r\n },\r\n\r\n Copy: async (item: CertificateListLookupDTO): Promise<{ itemID: number }> => {\r\n\r\n try {\r\n const response = await defaultApiClient.post(\r\n `admin/certificate-list/Copy/${item.id}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n\r\n },\r\n\r\n NewVersion: async (item: CertificateListLookupDTO): Promise<{ itemID: number }> => {\r\n\r\n try {\r\n const response = await defaultApiClient.post(\r\n `admin/certificate-list/NewVersion/${item.id}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n\r\n },\r\n\r\n NewSubVersion: async (item: CertificateListLookupDTO): Promise<{ itemID: number }> => {\r\n\r\n try {\r\n const response = await defaultApiClient.post(\r\n `admin/certificate-list/NewSubVersion/${item.id}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n\r\n },\r\n preview: async (query: { id: unknown, forExternal: boolean }): Promise => {\r\n try {\r\n\r\n const response = await defaultApiClient.get(\r\n `admin/certificate-list/${query.id}/preview?forExternal=${query.forExternal ? \"true\" : \"false\"}`,\r\n { responseType: 'blob' }\r\n );\r\n fileDownload(response.data, 'preview.pdf');\r\n return undefined;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n\r\n findOwner: async (query: { byText: string }): Promise => {\r\n try {\r\n const response = await defaultApiClient.get(\r\n `admin/certificate-list/find-owner?${new URLSearchParams(query).toString()}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n },\r\n findOwnerQuery: (query: { searchFor: string }) =>\r\n callquery(\r\n `DICT_findOwnerQuery_${query.searchFor ?? \"\"}`,\r\n (c) => API.ICertificateListContract.findOwner({ byText: query.searchFor }),\r\n { enabled: false }\r\n ),\r\n internal_dictionary: async (query: { key: KnowDictionaryKey } & Record): Promise => {\r\n\r\n try {\r\n const response = await defaultApiClient.get(\r\n //@ts-ignore \r\n `admin/dictionary/${query.key}?${new URLSearchParams(query).toString()}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n\r\n },\r\n dictionaryQuery: (query: DictionaryContextQueryDTO) =>\r\n callquery(\r\n `DICT_${query.key}_${query.businessArea?.id ?? 0}_${query.division?.id ?? 0}_${query.scope?.id ?? 0}_${query.regions?.map(reg => reg.id)?? []}_${query.divisions?.map(div => div.id)?? []}`,\r\n (c) => API.ICertificateListContract.internal_dictionary({\r\n key: query.key,\r\n regions: query.regions?.map(reg => reg.id) ?? [],\r\n businessArea: query.businessArea?.code ?? \"\",\r\n division: query.division?.id ?? \"\",\r\n divisions: query.divisions?.map(reg => reg.id) ?? [],\r\n scope: query.scope?.code ?? \"\",\r\n }),\r\n { enabled: false }\r\n )\r\n\r\n },\r\n\r\n}\r\n\r\n\r\nexport interface CertificateListDefinitionFindQuery extends PaginationDto, Sort {\r\n purpose: \"Manage\" | \"Select\"\r\n title?: string\r\n businessArea?: DictionaryItemByCodeDTO\r\n division?: DictionaryItemByCodeDTO\r\n mainFunction?: DictionaryItemByCodeDTO[]\r\n productGroup?: DictionaryItemByCodeDTO[]\r\n scope?: DictionaryItemByCodeDTO\r\n scopeDetail?: DictionaryItemByCodeDTO[]\r\n country?: DictionaryItemByCodeDTO[]\r\n userType?: DictionaryItemByCodeDTO\r\n channelType?: DictionaryItemByCodeDTO[]\r\n functionalJob?: DictionaryItemByCodeDTO[]\r\n level?: DictionaryItemByCodeDTO[]\r\n status?: DictionaryItemByCodeDTO[]\r\n}\r\n\r\nexport interface CertificateListDefinitionDTO extends CertificateListLookupDTO {\r\n id: number\r\n title: string\r\n release: string\r\n duration: string\r\n purpose: string\r\n publishDate: string | null\r\n customExpirationDate: DictionaryItemByCodeDTO | null\r\n recommended: CertificateListLookupDTO[]\r\n automaticEnrollment: CertificateListLookupDTO[]\r\n prerequisites: CertificateListLookupDTO[]\r\n\r\n behavior: DictionaryItemByCodeDTO\r\n businessArea: DictionaryItemByCodeDTO\r\n division: DictionaryItemByCodeDTO\r\n productGroup: DictionaryItemByCodeDTO\r\n level: DictionaryItemByCodeDTO\r\n scope: DictionaryItemByCodeDTO\r\n scopeDetail: DictionaryItemByCodeDTO[]\r\n\r\n mainFunction: DictionaryItemByCodeDTO\r\n validFor: DictionaryItemByCodeDTO[]\r\n workType: DictionaryItemByCodeDTO[]\r\n ownerCountry: DictionaryItemByCodeDTO\r\n\r\n enrollmentApproverType: DictionaryItemByCodeDTO\r\n enrollmentApproverGroup: DictionaryItemByCodeDTO\r\n completionApproverType: DictionaryItemByCodeDTO\r\n completionApproverTypeGroup: DictionaryItemByCodeDTO\r\n renewalApproverType: DictionaryItemByCodeDTO\r\n renewalApproverGroup: DictionaryItemByCodeDTO\r\n renewalEnrollmentApproverType: DictionaryItemByCodeDTO\r\n renewalEnrollmentApproverGroup: DictionaryItemByCodeDTO\r\n\r\n expirationPeriod: number\r\n renewalPeriod: number\r\n completePeriod: number\r\n\r\n forRegions: DictionaryItemByCodeDTO[]\r\n forCountries: DictionaryItemByCodeDTO[]\r\n forDivisions: DictionaryItemByCodeDTO[]\r\n forChannels: DictionaryItemByCodeDTO[]\r\n forUserType: DictionaryItemByCodeDTO\r\n\r\n requirements: CertificateListRequirementDTO[]\r\n alternatives: CertificateListAlternativeDTO[]\r\n\r\n history: HistoryEventEntry[]\r\n\r\n printPurposeOnPdf: boolean\r\n identificators: CertificateListPrintIdentificators[]\r\n}\r\n\r\nexport interface CertificateListPrintIdentificators {\r\n header: DictionaryItemByCodeDTO\r\n subheader: DictionaryItemByCodeDTO\r\n identifiers: DictionaryItemByCodeDTO[]\r\n}\r\nexport interface CertificateListAlternativeDTO {\r\n id: number\r\n source: DictionaryItemByCodeDTO[]\r\n alternative: DictionaryItemByCodeDTO[]\r\n}\r\n\r\nexport interface CertificateListRequirementDTO {\r\n id: number\r\n code: string\r\n description: string\r\n extendedDescription: string\r\n approverType: DictionaryItemByCodeDTO\r\n approverGroup: DictionaryItemByCodeDTO\r\n rule: DictionaryItemByCodeDTO\r\n expiration: number | null\r\n renewal: number | null\r\n canExpire: DictionaryItemByCodeDTO\r\n canRenew: DictionaryItemByCodeDTO\r\n externalLink: string \r\n externalLinkDescription: string \r\n isAttachmentMandatory: boolean\r\n\r\n training: DictionaryItemByCodeDTO\r\n certification: DictionaryItemByCodeDTO\r\n}\r\n\r\nexport interface CertificateListLookupDTO {\r\n id: number\r\n title: string\r\n release: string\r\n publishDate: string | null\r\n owner: UserSearchItemDto\r\n status: DictionaryItemByCodeDTO\r\n\r\n division: DictionaryItemByCodeDTO\r\n level: DictionaryItemByCodeDTO\r\n}\r\n\r\nexport interface HistoryEventEntry {\r\n by: string\r\n eventDate: string\r\n description: string\r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport { useQuery, UseQueryResult } from 'react-query';\r\nimport { Field, FieldProps as FormikFieldProps, useField } from 'formik';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport Autocomplete from '@material-ui/lab/Autocomplete';\r\nimport HelperIcon from '@material-ui/icons/Info';\r\nimport { HelperTextRoot, HelperTypography } from 'components/Field/AutocompleteField/Autocomplete.style';\r\nimport { API as CAPI } from 'page/ManageCertificates/Certificate/model';//$todo$ refactor this\r\nimport { FieldProps } from './common';\r\n\r\nexport interface DictionaryFieldPropsBase extends FieldProps {\r\n multiple?: boolean;\r\n required?: boolean;\r\n hidden?: boolean;\r\n disabled?: boolean;\r\n blockSort?: boolean;\r\n}\r\n\r\nexport interface DictionaryFieldProps extends DictionaryFieldPropsBase {\r\n query?: UseQueryResult;\r\n dependandFieldName?: string;\r\n}\r\nexport interface DictionaryFieldPropsAdvanced extends DictionaryFieldPropsBase> {\r\n query: (query: { searchFor: string }) => UseQueryResult\r\n displayProperty: (keyof TQueryItemModel & string)\r\n}\r\n\r\nexport interface DictionaryFieldByCodeProps extends DictionaryFieldPropsBase {\r\n query: DictionaryContextQueryDTO\r\n dependandFieldName?: string;\r\n}\r\n\r\nexport function DictionaryFieldByCode(p: DictionaryFieldByCodeProps) {\r\n return DictionaryField({ ...p, query: CAPI.ICertificateListContract.dictionaryQuery(p.query) })\r\n}\r\n\r\nexport function DictionaryField(p: DictionaryFieldProps) {\r\n const { data = [], isLoading, refetch } = p.query ?? { data: [], isLoading: false, refetch: () => { } };\r\n const [field, meta, helpers] = useField({ name: p.name });\r\n const helperText = meta.error ?? p.helperText\r\n const renderHelperText = (touched: boolean) =>\r\n !!helperText && touched && (\r\n \r\n {meta.error ? : <>}\r\n {helperText}\r\n \r\n );\r\n return (\r\n {(helper: FormikFieldProps) => (<>\r\n );\r\n}\r\n\r\n// eslint-disable-next-line\r\nfunction setFieldLogic(helper: FormikFieldProps, p: DictionaryFieldProps, v:any){\r\n helper.form.setFieldValue(p.name, v);\r\n if(p.dependandFieldName) {\r\n p.dependandFieldName.split(\"|\").forEach(x => helper.form.setFieldValue(x, undefined)); \r\n }\r\n}\r\n\r\nexport function DictionaryFieldAdvanced(p: DictionaryFieldPropsAdvanced) {\r\n const searchTimeout = 200;\r\n const minLenOfSearchValue = 3;\r\n const initialValue = \"\";\r\n\r\n //@ts-ignore as-is\r\n const getId = (item: TQueryItemModel) => (item && \"id\" in item) ? item.id : \"\"\r\n\r\n const [field, meta] = useField({ name: p.name });\r\n const [searchFor, setSearchFor] = useState(initialValue);\r\n const { data = [], isLoading, refetch } = p.query({ searchFor })\r\n\r\n const helperText = meta.error ?? p.helperText\r\n const renderHelperText = () =>\r\n !!helperText && (\r\n \r\n {meta.error ? : <>}\r\n {helperText}\r\n \r\n );\r\n\r\n useEffect(() => {\r\n if (initialValue !== searchFor && searchFor.length >= minLenOfSearchValue) {\r\n const timer = setTimeout(refetch, searchTimeout);\r\n return () => clearTimeout(timer);\r\n }\r\n return undefined\r\n }, [searchFor]);\r\n\r\n\r\n return (\r\n {(helper: FormikFieldProps) => (<>\r\n );\r\n\r\n};\r\n","import React, { DispatchWithoutAction } from 'react';\r\nimport { Formik, FormikProps } from 'formik';\r\nimport { FormikTextField } from 'components/FormikField/FormikTextField/FormikTextField';\r\nimport { FormikCheckboxField } from 'components/FormikField/FormikCheckboxField';\r\nimport { Button } from 'components/Button'\r\nimport { ActionsRoot, FluidForEditors } from 'components/Trivial'\r\n\r\nimport { DictionaryField, DictionaryFieldProps, DictionaryFieldByCodeProps, DictionaryFieldByCode } from './DictionaryField';\r\nimport { FieldProps } from './common';\r\n\r\nexport interface EditorHelper extends FormikProps {\r\n cancelEdit: DispatchWithoutAction\r\n TextField: (p: FieldProps) => JSX.Element\r\n CheckboxField: (p: FieldProps) => JSX.Element\r\n DropDownField: (p: DictionaryFieldProps) => JSX.Element\r\n DictionaryFieldByCode: (p: DictionaryFieldByCodeProps) => JSX.Element\r\n}\r\n\r\nfunction FEditorBase(p: {\r\n item: TDataModel\r\n content: (helper: EditorHelper) => JSX.Element\r\n title?: string\r\n actions?: (helper: EditorHelper) => JSX.Element\r\n onCancelAdd: React.DispatchWithoutAction\r\n onUpdateRow: React.Dispatch\r\n}) {\r\n return (<>\r\n p.onUpdateRow(values)}\r\n onReset={() => { }}\r\n >\r\n {formikProps => {\r\n const helper = getHelper(formikProps, p.onCancelAdd, p.onUpdateRow)\r\n\r\n const inner = p.content(helper)\r\n const actions = p.actions ? p.actions(helper) : <>\r\n return <>\r\n {/*
FORMIK
*/}\r\n\r\n \r\n {p.title}{actions}\r\n
{inner}
\r\n ;\r\n }}\r\n \r\n );\r\n}\r\n\r\nfunction devActions(helper: EditorHelper) {\r\n return (<>\r\n helper.submitForm()}\r\n >\r\n SAVE\r\n \r\n helper.resetForm()}\r\n >\r\n RESET\r\n \r\n { helper.resetForm(); helper.cancelEdit(); }}\r\n >\r\n CANCEL\r\n \r\n )\r\n}\r\n\r\n\r\n\r\nfunction getHelper(\r\n formikProps: FormikProps,\r\n onCancel: React.DispatchWithoutAction,\r\n onCommit: React.Dispatch) {\r\n const helper: EditorHelper = {\r\n ...formikProps,\r\n TextField: (p: FieldProps) => (),\r\n CheckboxField: (p: FieldProps) => (),\r\n DropDownField: (p: DictionaryFieldProps) => ( {...p} />),\r\n DictionaryFieldByCode: (p: DictionaryFieldByCodeProps) => ( {...p} />),\r\n\r\n cancelEdit: onCancel\r\n };\r\n return helper\r\n}\r\nFEditorBase.devActions = devActions\r\nFEditorBase.getHelper = getHelper\r\n\r\nexport const EditorBase = FEditorBase","import { FC } from 'react';\r\nimport FormControl from '@material-ui/core/FormControl';\r\nimport Autocomplete, {\r\n AutocompleteProps as MUIAutocompleteProps,\r\n} from '@material-ui/lab/Autocomplete';\r\nimport { InputProps } from '@material-ui/core/Input';\r\nimport TextField from '@material-ui/core/TextField';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\nimport HelperIcon from '@material-ui/icons/Info';\r\n\r\nimport { HelperTextRoot, HelperTypography } from './Autocomplete.style';\r\n\r\nexport interface AutocompleteFieldItem {\r\n id?: string | number;\r\n name?: string;\r\n group?: string;\r\n}\r\n\r\ninterface AutocompleteProps\r\n extends Omit<\r\n MUIAutocompleteProps,\r\n 'renderInput'\r\n > {\r\n error?: boolean;\r\n}\r\n\r\nexport interface AutocompleteFieldProps extends AutocompleteProps {\r\n label: string;\r\n helperText?: string;\r\n required?: boolean;\r\n InputProps?: InputProps;\r\n}\r\n\r\nexport const AutocompleteField: FC = ({\r\n label,\r\n helperText,\r\n error = false,\r\n required = false,\r\n InputProps = {},\r\n ...autocompleteFieldProps\r\n}) => {\r\n const renderHelperText = () =>\r\n !!helperText && (\r\n \r\n \r\n {helperText}\r\n \r\n );\r\n\r\n return (\r\n \r\n (\r\n \r\n {autocompleteFieldProps.loading ? (\r\n \r\n ) : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n getOptionLabel={(option) => option?.name ?? ''}\r\n getOptionSelected={(option, value) => option?.id === value?.id}\r\n noOptionsText=\"No data found\"\r\n />\r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\nimport { useField } from 'formik';\r\n\r\nimport {\r\n AutocompleteField,\r\n AutocompleteFieldItem,\r\n AutocompleteFieldProps,\r\n} from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport type { AutocompleteFieldItem }\r\nexport interface FormikAutocompleteFieldProps extends AutocompleteFieldProps {\r\n name: string;\r\n onFieldChange?: (\r\n value?: AutocompleteFieldItem | AutocompleteFieldItem[]\r\n ) => void;\r\n}\r\n\r\nexport const FormikAutocompleteField: FC = ({\r\n multiple = false,\r\n onFieldChange,\r\n ...props\r\n}) => {\r\n const [field, meta, helpers] = useField({ name: props.name });\r\n\r\n const getDefaultOptions = (): AutocompleteFieldProps['options'] => {\r\n if (props.options.length) {\r\n return props.options;\r\n }\r\n if (multiple && !!field.value) {\r\n return field.value;\r\n }\r\n if (!multiple && field.value) {\r\n return [field.value];\r\n }\r\n return [];\r\n };\r\n\r\n const handleChange: AutocompleteFieldProps['onChange'] = (\r\n event,\r\n value,\r\n reason,\r\n details?\r\n ) => {\r\n helpers.setValue(value);\r\n if (onFieldChange) {\r\n onFieldChange(value);\r\n }\r\n };\r\n\r\n const getHelperText = () => {\r\n if (meta.error) {\r\n return meta.error;\r\n }\r\n if (props.helperText) {\r\n return props.helperText;\r\n }\r\n return undefined;\r\n };\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import { setLocale as setYupLocale } from 'yup'\r\nimport { Formik, FormikValues, FormikConfig } from 'formik'\r\nimport { EditorHelper, EditorBase } from './EditorBase'\r\n\r\nexport * from './FormikAutocompleteField/FormikAutocompleteField'\r\nexport * from './FormikTextField/FormikTextField'\r\nexport * from './FormikCheckboxField'\r\nexport * from './EditorBase'\r\nexport * from './DictionaryField'\r\n\r\nexport { Form, Formik, FieldArray } from 'formik'\r\nexport type { FormikProps, ArrayHelpers, FieldArrayRenderProps } from 'formik'\r\nexport * as Yup from 'yup'\r\n\r\nsetYupLocale({\r\n mixed: {\r\n required: 'This field is required',\r\n },\r\n})\r\n\r\nexport function FormikForApp(props:\r\n Omit, \"children\">\r\n & { children: ((props: EditorHelper) => React.ReactNode) }\r\n & ExtraProps): JSX.Element {\r\n\r\n return \r\n\r\n {formikProps => {\r\n const helper = EditorBase.getHelper(formikProps, () => { }, () => { })\r\n return <>{props.children(helper)}\r\n }}\r\n \r\n}","import React, { FC } from 'react';\r\nimport { useRouteMatch } from 'react-router-dom';\r\n\r\nimport { Link } from 'components/Link/Link.style';\r\nimport { myRoleMatchToRoles, RoleType } from 'MyProfile/enum/RoleType';\r\nimport { useMyProfileQuery } from 'MyProfile/query/myProfile.query';\r\nimport { getRoles } from 'MyProfile/model/MyProfile';\r\nimport { ExternalLink } from 'components';\r\nimport { List } from '../List';\r\nimport { ListItem, ListItemProps } from '../ListItem/ListItem';\r\nimport { CollapseListItem } from '../CollapseListItem/CollapseListItem';\r\n\r\nexport interface NavListItemType {\r\n primaryText: string;\r\n path?: string;\r\n roles?: RoleType[];\r\n Icon?: React.ElementType;\r\n collapseListItems?: NavListItemType[];\r\n externalLink?: boolean;\r\n}\r\n\r\nexport interface NavListItemProps extends NavListItemType, ListItemProps {}\r\n\r\nexport const NavListItem: FC = ({\r\n primaryText,\r\n Icon,\r\n path,\r\n collapseListItems,\r\n roles,\r\n externalLink = false,\r\n ...listItemProps\r\n}) => {\r\n const { data } = useMyProfileQuery();\r\n const match = useRouteMatch(path ?? ' ');\r\n\r\n const myRoles = data ? getRoles(data) : [];\r\n\r\n if (roles && !myRoleMatchToRoles(myRoles, roles)) {\r\n return null;\r\n }\r\n\r\n if (Array.isArray(collapseListItems) && !!collapseListItems.length) {\r\n return (\r\n (\r\n \r\n items={collapseListItems}\r\n disablePadding\r\n renderItem={(item) => (\r\n \r\n )}\r\n />\r\n )}\r\n />\r\n );\r\n }\r\n\r\n if (externalLink) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\n\r\nexport const Root = styled.div`\r\n width: 100%;\r\n max-width: 360px;\r\n margin-top: ${({ theme }) => theme.spacing(2)};\r\n background-color: ${({ theme }) => theme.palette.background.paper};\r\n ${({ theme }) => ({\r\n [theme.breakpoints.up('lg')]: {\r\n marginTop: theme.spacing(10),\r\n },\r\n })}\r\n`;\r\n","import CertificationsIcon from '@material-ui/icons/AssignmentTurnedIn';\r\nimport CatalogIcon from '@material-ui/icons/Explore';\r\nimport HelpAndSupportIcon from '@material-ui/icons/Help';\r\nimport ReportingIcon from '@material-ui/icons/Assessment';\r\nimport PendingApprovalsIcon from '@material-ui/icons/NotificationsActive';\r\nimport MassEnrollmentIcon from '@material-ui/icons/AssignmentInd';\r\nimport UserManagementIcon from '@material-ui/icons/SupervisedUserCircle';\r\nimport AdministrationIcon from '@material-ui/icons/Settings';\r\nimport PrintIcon from '@material-ui/icons/Print';\r\nimport MyLearningIcon from '@material-ui/icons/OpenInNew';\r\n\r\nimport { RoleType } from 'MyProfile/enum/RoleType';\r\nimport { NavListItemType } from 'components/List/NavListItem/NavListItem';\r\nimport * as routes from 'route';\r\nimport { NEW_ADMIN } from 'featureToggles';\r\n\r\nexport const createLegacyUrl = (pathName: string): string =>\r\n process.env.REACT_APP_OLD_APP_ORGIN + pathName;\r\n\r\nexport const certificationsList: NavListItemType[] = [\r\n {\r\n primaryText: 'My certifications',\r\n path: routes.myCertificationsRoute.path,\r\n Icon: CertificationsIcon,\r\n },\r\n {\r\n primaryText: 'Catalog',\r\n path: routes.catalogRoute.path,\r\n Icon: CatalogIcon,\r\n },\r\n {\r\n primaryText: 'Help and support',\r\n path: routes.helpAndSupportRoute.path,\r\n Icon: HelpAndSupportIcon,\r\n },\r\n];\r\n\r\nexport const managementList: NavListItemType[] = [\r\n {\r\n primaryText: 'Reporting',\r\n Icon: ReportingIcon,\r\n roles: routes.pcsReportingRoute.role,\r\n collapseListItems: [\r\n {\r\n primaryText: 'Status of certifications',\r\n path: routes.certificationsStatusRoute.path,\r\n },\r\n {\r\n primaryText: 'Certifications by person',\r\n path: routes.certificationsByPersonRoute.path,\r\n },\r\n {\r\n primaryText: 'Uncompleted requirements',\r\n path: routes.uncompletedRequirementsRoute.path,\r\n },\r\n ],\r\n },\r\n {\r\n primaryText: 'Pending approvals',\r\n path: routes.pendingApprovalsRoute.path,\r\n roles: routes.pendingApprovalsRoute.role,\r\n Icon: PendingApprovalsIcon,\r\n },\r\n {\r\n primaryText: 'Mass enrollment',\r\n roles: routes.massEnrollmentRoute.role,\r\n Icon: MassEnrollmentIcon,\r\n collapseListItems: [\r\n {\r\n primaryText: 'Manual enrollment',\r\n path: routes.massEnrollmentRoute.path\r\n },\r\n {\r\n primaryText: 'Bulk upload',\r\n path: routes.bulkUploadRoute.path,\r\n },\r\n ]\r\n },\r\n {\r\n primaryText: 'User management',\r\n Icon: UserManagementIcon,\r\n roles: [\r\n RoleType.Administrator,\r\n RoleType.HierarchicalManager,\r\n RoleType.ABBTrainingManager,\r\n RoleType.ChannelPartnerManager,\r\n RoleType.Supervisor,\r\n RoleType.PartnerSupervisor,\r\n ],\r\n collapseListItems: [\r\n {\r\n primaryText: 'Internal users',\r\n path: routes.internalUsersRoute.path,\r\n roles: routes.internalUsersRoute.role,\r\n },\r\n {\r\n primaryText: 'External users',\r\n path: routes.externalUsersRoute.path,\r\n roles: routes.externalUsersRoute.role,\r\n },\r\n {\r\n primaryText: 'Approval groups',\r\n path: routes.approvalGroupsRoute.path,\r\n roles: routes.approvalGroupsRoute.role,\r\n },\r\n {\r\n primaryText: 'Archived users',\r\n path: routes.archivedUsersRoute.path,\r\n roles: routes.archivedUsersRoute.role,\r\n },\r\n ],\r\n },\r\n {\r\n primaryText: 'Administration',\r\n Icon: AdministrationIcon,\r\n roles: [\r\n RoleType.Administrator,\r\n RoleType.CertificationAuthority,\r\n RoleType.CertificateBuilder\r\n ],\r\n collapseListItems: [\r\n ...(!NEW_ADMIN) ? [] : [\r\n {\r\n primaryText: 'Manage Certificates',\r\n path: routes.manageCertificatesRoute.path,\r\n roles: !NEW_ADMIN ? [RoleType.Developer] : routes.manageCertificatesRoute.role,\r\n },\r\n {\r\n primaryText: 'Manage Companies',\r\n path: routes.manageCompaniesRoute.path,\r\n roles: !NEW_ADMIN ? [RoleType.Developer] : routes.manageCompaniesRoute.role,\r\n },\r\n {\r\n primaryText: 'Manage Training sets',\r\n path: routes.trainingSetsRoute.path,\r\n roles: !NEW_ADMIN ? [RoleType.Developer] : routes.trainingSetsRoute.role,\r\n },\r\n {\r\n primaryText: 'Manage Scope details',\r\n path: routes.scopeKeywordsRoute.path,\r\n roles: !NEW_ADMIN ? [RoleType.Developer] : routes.scopeKeywordsRoute.role,\r\n },\r\n {\r\n primaryText: 'Manage old enrollments',\r\n path: routes.oldEnrollmentsRoute.path,\r\n roles: !NEW_ADMIN ? [RoleType.Developer] : routes.oldEnrollmentsRoute.role,\r\n },\r\n\r\n {\r\n primaryText: 'Print settings',\r\n Icon: PrintIcon,\r\n roles: !NEW_ADMIN ? [RoleType.Developer] : routes.printingCertificatesRoute.role,\r\n collapseListItems: [\r\n \r\n {\r\n primaryText: 'Standard texts',\r\n path: routes.printingStandardRoute.path,\r\n roles: !NEW_ADMIN ? [RoleType.Developer] : routes.printingStandardRoute.role,\r\n },\r\n {\r\n primaryText: 'Headers',\r\n path: routes.printingHeadersRoute.path,\r\n roles: !NEW_ADMIN ? [RoleType.Developer] : routes.printingHeadersRoute.role,\r\n },\r\n {\r\n primaryText: 'Digital signatures',\r\n path: routes.digitalSignatureRoute.path,\r\n roles: !NEW_ADMIN ? [RoleType.Developer] : routes.digitalSignatureRoute.role,\r\n },\r\n ],\r\n }\r\n ],\r\n ], \r\n\r\n },\r\n];\r\n\r\nexport const relatedAppsList: NavListItemType[] = [\r\n { primaryText: 'MyLearning', Icon: MyLearningIcon, path: 'https://mylearning.abb.com/' },\r\n];\r\n","import React, { FC } from 'react';\r\nimport CircularProgress from '@material-ui/core/CircularProgress';\r\n\r\nimport { useMyProfileQuery } from 'MyProfile/query/myProfile.query';\r\nimport { Anchor } from 'components/Page/Anchor/Anchor';\r\nimport { myRoleMatchToRoles, RoleType } from 'MyProfile/enum/RoleType';\r\nimport { getRoles } from 'MyProfile/model/MyProfile';\r\nimport { List, NavListItem, ListItem } from '../../List';\r\nimport { NavListItemType } from '../../List/NavListItem/NavListItem';\r\nimport { Root } from './DrawerList.style';\r\nimport {\r\n relatedAppsList,\r\n managementList,\r\n certificationsList,\r\n} from './menuList';\r\n\r\nexport type Props = {};\r\n\r\nexport const DrawerList: FC = () => {\r\n const { isLoading, data } = useMyProfileQuery();\r\n const myRoles: RoleType[] = data ? getRoles(data) : [];\r\n const managementRoles: RoleType[] = managementList\r\n .map((item) => item.roles as RoleType[])\r\n .flat();\r\n\r\n if (isLoading) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n {process.env.NODE_ENV === 'development' && (\r\n \r\n header=\"Development\"\r\n items={[\r\n {\r\n primaryText: 'Playground',\r\n path: \"/development\",\r\n }]}\r\n renderItem={(item) => (\r\n \r\n \r\n \r\n )}\r\n />\r\n )}\r\n \r\n header=\"Certifications\"\r\n items={certificationsList}\r\n renderItem={(item) => }\r\n />\r\n {myRoleMatchToRoles(myRoles, managementRoles) && (\r\n \r\n header=\"Management\"\r\n items={managementList}\r\n renderItem={(item) => }\r\n />\r\n )}\r\n \r\n header=\"Related Apps\"\r\n items={relatedAppsList}\r\n renderItem={(item) => (\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n );\r\n};\r\n","import { FC, useState, useEffect } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport Toolbar from '@material-ui/core/Toolbar';\r\nimport Drawer from '@material-ui/core/Drawer';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport MenuIcon from '@material-ui/icons/Menu';\r\nimport AppBar from '@material-ui/core/AppBar';\r\n\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport { AbbLogo } from 'components/AbbLogo/AbbLogo';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { Menu } from './Menu/Menu';\r\nimport { DrawerList } from './DrawerList/DrawerList';\r\nimport {\r\n Grow,\r\n LogoWrapper,\r\n StyledTypography,\r\n StyledDrawer,\r\n Root,\r\n ContentRoot,\r\n} from './AppShell.style';\r\nimport { AppShellBaseProps } from './@types';\r\n\r\nexport const AppShell: FC = ({\r\n logout,\r\n userNeedToUpdateProfile,\r\n children,\r\n}) => {\r\n const [mobileDrawerOpen, setMobileDrawerOpen] = useState(false);\r\n const userCanNavigate = !userNeedToUpdateProfile;\r\n const { closeAll } = useToasts();\r\n const history = useHistory();\r\n\r\n useEffect(() =>\r\n history.listen(() => {\r\n closeAll();\r\n })\r\n , [history]);\r\n\r\n return (\r\n \r\n \r\n \r\n {userCanNavigate && (\r\n \r\n setMobileDrawerOpen(true)}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n PCS2\r\n \r\n \r\n \r\n \r\n \r\n\r\n {userCanNavigate && (\r\n <>\r\n \r\n setMobileDrawerOpen(false)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default AppShell;\r\n","import React from 'react';\r\nimport {Button, makeStyles } from '@material-ui/core';\r\nimport { AuthError } from 'msal';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport { AbbLogo } from 'components/AbbLogo/AbbLogo';\r\n\r\nconst useStyles = makeStyles(\r\n //@ts-ignore\r\n (theme: AbbTheme) => ({\r\n root: {\r\n display: 'block',\r\n boxSizing: 'border-box',\r\n paddingBottom: theme.spacing(4),\r\n position: 'relative',\r\n width: '100%',\r\n maxWidth: 720,\r\n minHeight: 360,\r\n marginTop: theme.spacing(4),\r\n marginRight: 'auto',\r\n marginLeft: 'auto',\r\n backgroundColor: theme.palette.common.white,\r\n boxShadow: theme.shadows[6],\r\n backgroundImage: `url(${process.env.PUBLIC_URL}/img/splash.png)`,\r\n backgroundRepeat: 'no-repeat',\r\n backgroundPosition: 'center',\r\n },\r\n version: {\r\n position: 'absolute',\r\n top: theme.spacing(2),\r\n left: '50%',\r\n transform: 'translateX(-50%)',\r\n fontSize: 12,\r\n fontWeight: theme.typography.fontWeightLight,\r\n color: theme.palette.grey[900],\r\n },\r\n logo: {\r\n position: 'absolute',\r\n top: theme.spacing(4),\r\n right: theme.spacing(4),\r\n },\r\n rights: {\r\n position: 'absolute',\r\n bottom: theme.spacing(4),\r\n right: theme.spacing(4),\r\n fontSize: 12,\r\n fontWeight: theme.typography.fontWeightLight,\r\n color: theme.palette.grey[900],\r\n },\r\n content: {\r\n display: 'block',\r\n width: '100%',\r\n boxSizing: 'border-box',\r\n padding: theme.spacing(31.25, 4, 4, 4),\r\n },\r\n login: {\r\n minWidth: 164,\r\n marginTop: theme.spacing(4),\r\n },\r\n error: {\r\n marginTop: theme.spacing(3),\r\n color: theme.palette.error.main,\r\n },\r\n }),\r\n { name: 'Login' }\r\n);\r\n\r\nexport interface LoginProps {\r\n login: () => void;\r\n error?: AuthError;\r\n}\r\n\r\nexport const Login = (props: LoginProps) => {\r\n const { login, error } = props;\r\n error &&\r\n // eslint-disable-next-line no-console\r\n console.warn(error.errorCode || '', error.name || '', error.message || '');\r\n const classes = useStyles(props);\r\n const version = process.env.REACT_APP_VERSION;\r\n const currentYear = new Date().getUTCFullYear();\r\n\r\n return (\r\n
\r\n \r\n People Certification System {version}\r\n \r\n \r\n All rights reserved {currentYear}\r\n \r\n
\r\n \r\n
\r\n
\r\n PCS2\r\n \r\n Login\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nLogin.defaultProps = {\r\n error: false,\r\n};\r\n","import {\r\n makeStyles,\r\n Typography,\r\n TextField,\r\n Button,\r\n CircularProgress,\r\n} from '@material-ui/core';\r\nimport { useEffect, useState } from 'react';\r\nimport Axios, { AxiosRequestConfig } from 'axios';\r\nimport { OVERRIDE_TOKEN_KEY } from 'service/authProvider';\r\n\r\nconst useStyles = makeStyles(\r\n (theme) => ({\r\n root: {\r\n display: 'flex',\r\n position: 'relative',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n width: 600,\r\n marginTop: theme.spacing(4),\r\n 'box-sizing': 'border-box',\r\n marginLeft: 'auto',\r\n marginRight: 'auto',\r\n padding: theme.spacing(4),\r\n backgroundColor: theme.palette.common.white,\r\n boxShadow: theme.shadows[2],\r\n '@media (max-width: 600px)': {\r\n width: '100vw',\r\n },\r\n },\r\n info: {\r\n maxWidth: 320,\r\n textAlign: 'center',\r\n marginBottom: theme.spacing(2),\r\n },\r\n subHeadline: {\r\n marginBottom: theme.spacing(4),\r\n },\r\n }),\r\n { name: 'LoginMock' }\r\n);\r\n\r\ninterface LoginMockState {\r\n error?: string;\r\n email: string;\r\n emailError?: string;\r\n password: string;\r\n passwordError?: string;\r\n loading: boolean;\r\n}\r\n\r\nconst axios = Axios.create({\r\n baseURL: process.env.REACT_APP_BASEURL,\r\n});\r\n\r\nexport interface LoginMockProps {\r\n login: () => void;\r\n}\r\n\r\nconst PASSWORD_KEY = 'mock-password';\r\n\r\nexport const LoginMock = (props: LoginMockProps) => {\r\n const { login } = props;\r\n const [state, setState] = useState({\r\n error: undefined,\r\n email: '',\r\n emailError: undefined,\r\n password: '',\r\n passwordError: undefined,\r\n loading: false,\r\n });\r\n useEffect(() => {\r\n setState((prev) => ({\r\n ...prev,\r\n password: localStorage.getItem(PASSWORD_KEY) ?? '',\r\n }));\r\n }, []);\r\n const classes = useStyles();\r\n const handleLogin = async () => {\r\n let isValid = true;\r\n if (state.email === '') {\r\n isValid = false;\r\n setState((prev) => ({ ...prev, emailError: 'Email is required' }));\r\n } else {\r\n setState((prev) => ({ ...prev, emailError: '' }));\r\n }\r\n if (state.password === '') {\r\n isValid = false;\r\n setState((prev) => ({\r\n ...prev,\r\n passwordError: 'Password is required',\r\n }));\r\n } else {\r\n setState((prev) => ({ ...prev, passwordError: '' }));\r\n }\r\n if (isValid && !state.loading) {\r\n try {\r\n const config: AxiosRequestConfig = { headers: {} };\r\n config.headers['tester-secret'] = state.password;\r\n localStorage.setItem(PASSWORD_KEY, state.password);\r\n setState((prev) => ({ ...prev, loading: true }));\r\n const { data: token } = await axios.post(\r\n `${process.env.REACT_APP_API_PROTOCOL}://${process.env.REACT_APP_API_HOST}/${process.env.REACT_APP_API_PATH}auth/login`,\r\n {\r\n email: state.email,\r\n password: state.password,\r\n },\r\n config\r\n );\r\n localStorage.setItem(OVERRIDE_TOKEN_KEY, token);\r\n login();\r\n } catch (err) {\r\n setState((prev) => ({\r\n ...prev,\r\n error: 'Error!',\r\n }));\r\n } finally {\r\n setState((prev) => ({ ...prev, loading: false }));\r\n }\r\n }\r\n };\r\n return (\r\n <>\r\n
\r\n
\r\n PCS 2\r\n \r\n Login Mock Tool\r\n \r\n \r\n setState((prev) => ({\r\n ...prev,\r\n email: e.target.value,\r\n emailError: '',\r\n }))\r\n }\r\n />\r\n {\r\n setState((prev) => ({\r\n ...prev,\r\n password: e.target.value,\r\n passwordError: '',\r\n }));\r\n }}\r\n />\r\n
\r\n {state.loading ? (\r\n \r\n ) : (\r\n \r\n Log in\r\n \r\n )}\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default LoginMock;\r\n","import styled from 'styled-components';\r\nimport IconButton, { IconButtonProps } from '@material-ui/core/IconButton';\r\n\r\nexport const DeleteIconButton = styled(IconButton)`\r\n margin-right: ${({ theme }) => theme.spacing(2.5)}px;\r\n`;\r\n\r\nexport const AdminListItemRoot = styled.div`\r\n display: flex;\r\n`;\r\n","import { FC, useState } from 'react';\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport PeopleIcon from '@material-ui/icons/People';\r\nimport TableCell from '@material-ui/core/TableCell';\r\nimport TableRow from '@material-ui/core/TableRow';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport { useMutation } from 'react-query';\r\n\r\nimport { Role, RoleDetails } from 'MyProfile/model/Role';\r\nimport { List, ListItem } from 'components/List';\r\nimport { ListItemType } from 'components/List/ListItem/ListItem';\r\nimport { Table } from 'components/Table';\r\nimport { useModal } from 'hooks';\r\nimport { ModalContent } from 'components/Page';\r\nimport { ApiError } from 'model';\r\nimport { myProfileApi } from 'MyProfile/service/myProfile.api';\r\nimport { displayRoleType, RoleType } from 'MyProfile/enum/RoleType';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { queryClient } from 'service';\r\nimport { userAuthorizationsKey } from 'MyProfile/query/myProfile.query';\r\nimport { AdminListItemRoot, DeleteIconButton } from './RolesList.style';\r\n\r\ninterface RolesListItemType extends ListItemType {\r\n role: Role;\r\n}\r\n\r\nconst getRolesListItems = (roles: Role[]): RolesListItemType[] =>\r\n roles.map((role) => ({\r\n primaryText: displayRoleType(role.type as RoleType),\r\n Icon: PersonIcon,\r\n role,\r\n ...(role.details.length && { RightIcon: PeopleIcon }),\r\n }));\r\n\r\nexport interface RolesListProps {\r\n roles: Role[];\r\n removable: boolean;\r\n userId?: number;\r\n}\r\n\r\nexport const RolesList: FC = ({ roles, removable, userId }) => {\r\n const { showSuccess, showError } = useToasts();\r\n const [myProfileRole, setMyProfileRole] = useState(null);\r\n const handleOnItemClick = (role: Role) => {\r\n setMyProfileRole(role);\r\n openModal();\r\n };\r\n const { mutate: removeUserRole, isLoading } = useMutation<\r\n unknown,\r\n ApiError,\r\n { userId: number; userAuthorizationId: number; roleType: RoleType }\r\n >(\r\n ({ userId, userAuthorizationId, roleType }) =>\r\n myProfileApi.deleteAuthorizations({\r\n userId,\r\n userAuthorizationId,\r\n roleType,\r\n }),\r\n {\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries([userAuthorizationsKey, userId]);\r\n showSuccess('Remove user role action success');\r\n closeModal();\r\n },\r\n onError: (error) => showError(error.message),\r\n }\r\n );\r\n\r\n const { Modal, openModal, closeModal } = useModal(() => (\r\n \r\n \r\n rows={myProfileRole?.details ?? []}\r\n renderRow={(row) => {\r\n const isRemovable = removable && userId && row.authorizationId;\r\n return (\r\n \r\n \r\n {row.description1}\r\n \r\n {row.description2}\r\n {isRemovable && (\r\n \r\n {\r\n if (userId && myProfileRole) {\r\n removeUserRole({\r\n userId,\r\n roleType: myProfileRole.type as RoleType,\r\n userAuthorizationId: row.authorizationId,\r\n });\r\n }\r\n }}\r\n disabled={isLoading}\r\n >\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n }}\r\n />\r\n \r\n ));\r\n\r\n const renderAdminListItem = (item: RolesListItemType) => (\r\n \r\n item.role.details.length && handleOnItemClick(item.role)}\r\n button={!!item.RightIcon}\r\n />\r\n \r\n userId &&\r\n removeUserRole({\r\n userId,\r\n userAuthorizationId: 0,\r\n roleType: RoleType.Administrator,\r\n })\r\n }\r\n disabled={isLoading}\r\n >\r\n \r\n \r\n \r\n );\r\n\r\n return (\r\n <>\r\n \r\n removable && item.role.type === RoleType.Administrator ? (\r\n renderAdminListItem(item)\r\n ) : (\r\n \r\n item.role.details.length && handleOnItemClick(item.role)\r\n }\r\n button={!!item.RightIcon}\r\n />\r\n )\r\n }\r\n />\r\n \r\n \r\n );\r\n};\r\n","import { FC, useMemo } from 'react';\r\n\r\nimport { useMyProfileQuery } from 'MyProfile/query/myProfile.query';\r\nimport { Role } from 'MyProfile/model/Role';\r\nimport { RolesList } from 'MyProfile/component/RolesList';\r\n\r\nexport const MyRolesList: FC = () => {\r\n const { data } = useMyProfileQuery();\r\n const roles = useMemo(\r\n () => [{ id: -1, type: 'Learner', details: [] }, ...(data?.roles ?? [])],\r\n [data]\r\n );\r\n return ;\r\n};\r\n","import { useQuery } from 'react-query';\r\n\r\nimport { Company, CompanyFindQuery, CompanyInfoDTO } from 'Dictionary/model/Company';\r\nimport { BusinessUnit } from 'Dictionary/model/BusinessUnit';\r\nimport { PGUnit } from 'Dictionary/model/PGUnit';\r\nimport { Division } from 'Dictionary/model/Division';\r\nimport { EmployeeJob } from 'Dictionary/model/EmployeeJob';\r\nimport { Language } from 'Dictionary/model/Language';\r\nimport { dictionaryApi } from 'Dictionary/service/dictionary.api';\r\nimport { CertificateFunction } from 'Dictionary/model/CertificateFunction';\r\nimport { WorkType } from 'Dictionary/model/WorkType';\r\nimport { BusinessUnitContact } from 'Dictionary/model/BusinessUnitContact';\r\nimport { CompanyChannel } from 'Dictionary/model/CompanyChannel';\r\nimport { Country } from 'Dictionary/model/Country';\r\nimport { CompanyFilterParams } from 'Dictionary/model/CompanyFilterParams';\r\nimport { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { TrainingManagersFiltersDto } from 'Dictionary/model/TrainingManagersFiltersDto';\r\nimport { Approver } from 'Dictionary/model/Approver';\r\nimport { ScopeDetail } from 'Dictionary/model/ScopeDetail';\r\nimport { ScopeDetailsParams } from 'Dictionary/model/ScopeDetailsParams';\r\nimport { PaginatedList } from 'model';\r\n\r\nexport const companiesKey = 'companies';\r\nexport const useCompaniesQuery = () =>\r\n useQuery(companiesKey, dictionaryApi.getCompanies, {\r\n enabled: false,\r\n });\r\n\r\nexport const companyChannelKey = 'company-channel';\r\nexport const useCompanyChannelQuery = () =>\r\n useQuery(\r\n companyChannelKey,\r\n dictionaryApi.getCompanyChannels,\r\n { enabled: false }\r\n );\r\n\r\nexport const businessUnitsKey = 'business-units';\r\nexport const useBusinessUnitsQuery = (divisionid: number) =>\r\n useQuery(\r\n businessUnitsKey,\r\n () => dictionaryApi.getBusinessUnits(divisionid),\r\n { enabled: false }\r\n );\r\n\r\nexport const activeBusinessUnitsKey = 'active-business-units';\r\nexport const useActiveBusinessUnitsQuery = (divisionid: number) =>\r\n useQuery(\r\n activeBusinessUnitsKey,\r\n () => dictionaryApi.getActiveBusinessUnits(divisionid),\r\n { enabled: false }\r\n );\r\n\r\nexport const pgUnitsKey = 'pg-units';\r\nexport const usePGUnitsQuery = (buid: number) =>\r\n useQuery(pgUnitsKey, () => dictionaryApi.getPgUnits(buid), {\r\n enabled: false,\r\n //initialData: [],\r\n });\r\n\r\nexport const employeeJobKey = 'employee-jobs';\r\nexport const useEmployeeJobQuery = () =>\r\n useQuery(employeeJobKey, dictionaryApi.getEmployeeJobs, {\r\n enabled: false,\r\n });\r\n\r\nexport const employeeJobFamilyKey = 'employee-job-families';\r\nexport const useEmployeeJobFamilyQuery = () =>\r\n useQuery(employeeJobFamilyKey, dictionaryApi.getEmployeeJobFamilies, {\r\n enabled: false,\r\n });\r\n\r\nexport const managerKey = 'manager';\r\nexport const useManagerQuery = (query: string) =>\r\n useQuery[]>(\r\n managerKey,\r\n () => dictionaryApi.getManagers(query),\r\n {\r\n enabled: false,\r\n }\r\n );\r\n\r\nexport const functionalmanagerKey = 'functionalmanager';\r\nexport const useFunctionalManagerQuery = (query: string) =>\r\n useQuery[]>(\r\n functionalmanagerKey,\r\n () => dictionaryApi.getManagers(query),\r\n {\r\n enabled: false,\r\n }\r\n );\r\n\r\nexport const businessUnitContactsKey = 'business-unit-contacts';\r\nexport const useBusinessUnitContactsQuery = () =>\r\n useQuery(businessUnitContactsKey, () =>\r\n dictionaryApi.getBusinessUnitContacts()\r\n );\r\n\r\nexport const preferredLanguagesKey = 'preferred-languages';\r\nexport const usePreferredLanguagesQuery = () =>\r\n useQuery(\r\n preferredLanguagesKey,\r\n () => dictionaryApi.getPreferredLanguages(),\r\n {\r\n enabled: false,\r\n }\r\n );\r\n\r\nexport const languagesByBusinessUnitKey = 'languages-by-business-unit';\r\nexport const useLanguagesByBusinessUnitQuery = (buId: number) =>\r\n useQuery(\r\n languagesByBusinessUnitKey,\r\n () => dictionaryApi.getLanguagesByBusinessUnit(buId),\r\n {\r\n enabled: false,\r\n }\r\n );\r\n\r\nexport const certificateFunctionsKey = 'certificate-functions';\r\nexport const useCertificateFunctionsQuery = () =>\r\n useQuery(\r\n certificateFunctionsKey,\r\n () => dictionaryApi.getCertificateFunctions(),\r\n { enabled: false }\r\n );\r\n\r\nexport const workTypesKey = 'work-types';\r\nexport const useWorkTypesQuery = () =>\r\n useQuery(\r\n workTypesKey,\r\n () => dictionaryApi.getWorkTypes(),\r\n { enabled: false }\r\n );\r\n\r\nexport const divisionsKey = 'divisions';\r\nexport const useDivisionsQuery = () =>\r\n useQuery(\r\n divisionsKey,\r\n () => dictionaryApi.getDivisions(),\r\n { enabled: false }\r\n );\r\n\r\nexport const countriesKey = 'countries';\r\nexport const useCountriesQuery = () =>\r\n useQuery(countriesKey, () => dictionaryApi.getCountries(), {\r\n enabled: false,\r\n });\r\n\r\nexport const companiesWithFilterKey = 'companies-with-filter';\r\nexport const useCompaniesWithFilterQuery = (params: CompanyFilterParams) =>\r\n useQuery(\r\n [companiesWithFilterKey, params],\r\n () => dictionaryApi.getCompaniesWithFilter(params),\r\n { enabled: false, useErrorBoundary: false }\r\n );\r\n\r\nexport const trainingManagersKey = 'training-managers';\r\nexport const useTrainingManagersQuery = (params: TrainingManagersFiltersDto) =>\r\n useQuery[]>(\r\n [trainingManagersKey, params],\r\n () => dictionaryApi.getTrainingManagers(params),\r\n { enabled: false, useErrorBoundary: false }\r\n );\r\n\r\nexport const approversKey = 'approvers';\r\nexport const useApproversQuery = () =>\r\n useQuery[]>(\r\n [trainingManagersKey],\r\n () => dictionaryApi.getApprovers(),\r\n { enabled: false, useErrorBoundary: false }\r\n );\r\n\r\nexport const scopeDetailsKey = 'scope-details';\r\nexport const useScopeDetailsQuery = (params: ScopeDetailsParams) =>\r\n useQuery(\r\n scopeDetailsKey,\r\n () => dictionaryApi.getScopeDetails(params),\r\n { enabled: false, useErrorBoundary: false }\r\n );\r\n\r\n\r\n\r\nexport const companyFindKey = 'admin-company';\r\nexport const useCompanyFindQuery = (params: CompanyFindQuery) =>\r\n useQuery>(\r\n companyFindKey,\r\n () => dictionaryApi.company.find(params),\r\n { enabled: false, useErrorBoundary: false }\r\n );\r\n","import { AutocompleteFieldItem as Model } from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport { PaginationDto, Sort } from 'model';\r\n\r\nexport interface Company {\r\n id: number;\r\n description: string;\r\n location: string;\r\n}\r\n\r\nexport const getCompanyName = (company?: Company): string =>\r\n company && company?.description\r\n ? `${company?.description}${company?.location && ` - ${company?.location}`}`\r\n : '...';\r\n\r\nexport const mapToAutocompleteFieldItems = (\r\n companies: Company[]\r\n): Model[] =>\r\n companies.map((company) => ({\r\n id: company.id,\r\n name: getCompanyName(company),\r\n }));\r\n\r\n\r\n\r\nexport interface CompanyInfoDTO {\r\n id: number\r\n name: string\r\n\r\n country: DictionaryItemByCodeDTO\r\n divisions: DictionaryItemByCodeDTO[]\r\n channels: DictionaryItemByCodeDTO[]\r\n\r\n city: string\r\n\r\n isAbb: boolean\r\n}\r\n\r\nexport interface CompanyFindQuery extends PaginationDto, Sort {\r\n name?: string\r\n country?: number\r\n city?: string\r\n divisions?: number[]\r\n channels?: number[]\r\n isAbb?: DictionaryItemByCodeDTO\r\n businessArea?: DictionaryItemByCodeDTO\r\n}","import React, { FC } from 'react';\r\n\r\nimport { useCompaniesQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { mapToAutocompleteFieldItems } from 'Dictionary/model/Company';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\n\r\nexport interface CompanySelectFieldProps\r\n extends Omit {\r\n name: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const CompanySelectField: FC = ({\r\n name,\r\n disabled = false,\r\n ...otherProps\r\n}) => {\r\n const { data = [], isLoading, refetch } = useCompaniesQuery();\r\n\r\n return (\r\n refetch()}\r\n required\r\n {...otherProps}\r\n />\r\n );\r\n};\r\n","import React, { FC } from 'react';\r\n\r\nimport { useDivisionsQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { FormikAutocompleteField, FormikAutocompleteFieldProps } from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface DivisionSelectFieldProps\r\n extends Omit {\r\n name: string;\r\n disabled?: boolean;\r\n defaultOptions?: AutocompleteFieldItem[];\r\n}\r\n\r\nexport const DivisionSelectField: FC<\r\nDivisionSelectFieldProps\r\n> = ({\r\n name,\r\n disabled = false,\r\n defaultOptions = [],\r\n ...otherProps\r\n}) => {\r\n const { data = [], isLoading, refetch } = useDivisionsQuery();\r\n\r\n return (\r\n refetch()}\r\n disableClearable\r\n />\r\n );\r\n};\r\n","import { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface BusinessUnit {\r\n id: number;\r\n description: string;\r\n}\r\n\r\nexport const mapToAutocompleteFieldItems = (\r\n businessUnits: BusinessUnit[]\r\n): AutocompleteFieldItem[] => businessUnits.map(toAutocomplateField);\r\n\r\nexport const toAutocomplateField = (\r\n businessUnit: BusinessUnit | null\r\n): AutocompleteFieldItem => ({\r\n ...businessUnit,\r\n id: businessUnit?.id ?? 0,\r\n name: businessUnit?.description ?? '',\r\n});\r\n","import React, { FC } from 'react';\r\n\r\nimport { useBusinessUnitsQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { mapToAutocompleteFieldItems } from 'Dictionary/model/BusinessUnit';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\n\r\nexport interface BusinessUnitSelectFieldProps\r\n extends Omit {\r\n name: string;\r\n removePgUnitValue?: () => void;\r\n disabled?: boolean;\r\n divisionID?: number;\r\n}\r\n\r\nexport const BusinessUnitSelectField: FC = ({\r\n name,\r\n removePgUnitValue,\r\n disabled = false,\r\n divisionID, \r\n ...otherProps\r\n}) => {\r\n const { data = [], isLoading, refetch } = useBusinessUnitsQuery(Number(divisionID ?? 0));\r\n\r\n return (\r\n refetch()}\r\n onFieldChange={removePgUnitValue}\r\n required\r\n {...otherProps}\r\n />\r\n );\r\n};\r\n","import { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface PGUnit {\r\n id: number;\r\n name: string;\r\n code: string;\r\n}\r\n\r\nexport const getPgUnitFullName = (pgUnit: PGUnit): string =>\r\n `${pgUnit.code} ${pgUnit.name}`;\r\n\r\nexport const mapToAutocompleteFieldItems = (\r\n pgUnits: PGUnit[]\r\n): AutocompleteFieldItem[] =>\r\n pgUnits.map((unit) => ({ id: unit.id, name: getPgUnitFullName(unit) }));\r\n","import { FC } from 'react';\r\n\r\nimport { usePGUnitsQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { mapToAutocompleteFieldItems } from 'Dictionary/model/PGUnit';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\n\r\nexport interface PGUnitSelectFieldProps\r\n extends Omit { \r\n name: string;\r\n businessUnitID: number; \r\n disabled?: boolean;\r\n}\r\n\r\nexport const PGUnitSelectField: FC = ({\r\n name,\r\n businessUnitID, \r\n disabled = false,\r\n multiple = false,\r\n ...otherProps\r\n}) => {\r\n const { data = [], isLoading, refetch } = usePGUnitsQuery(businessUnitID);\r\n\r\n return (\r\n 0 ? mapToAutocompleteFieldItems(data) : []}\r\n options={mapToAutocompleteFieldItems(data)}\r\n loading={isLoading}\r\n onOpen={() => refetch()}\r\n multiple={multiple}\r\n {...otherProps}\r\n />\r\n );\r\n};\r\n","import { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface Language {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport const mapToAutocompleteFieldItems = (\r\n languages: Language[] = []\r\n): AutocompleteFieldItem[] =>\r\n languages.map((language) => ({\r\n id: language.id,\r\n name: language.name,\r\n }));\r\n","import React, { FC } from 'react';\r\n\r\nimport { usePreferredLanguagesQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { mapToAutocompleteFieldItems } from 'Dictionary/model/Language';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\n\r\nexport interface PreferredLanguagesSelectFieldProps\r\n extends Omit {}\r\n\r\n// eslint-disable-next-line max-len\r\nexport const PreferredLanguagesSelectField: FC = ({\r\n multiple = true,\r\n disabled = false,\r\n ...otherProps\r\n}) => {\r\n const { data, isLoading, refetch } = usePreferredLanguagesQuery();\r\n\r\n return (\r\n refetch()}\r\n required\r\n {...otherProps}\r\n />\r\n );\r\n};\r\n","import React, { FC } from 'react';\r\n\r\nimport { useEmployeeJobQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\n\r\nexport interface EmployeeJobSelectFieldProps\r\n extends Omit {\r\n name: string;\r\n disabled?: boolean;\r\n required?: boolean;\r\n}\r\n\r\nexport const EmployeeJobSelectField: FC = ({\r\n name,\r\n disabled = false,\r\n required = true,\r\n ...otherProps\r\n}) => {\r\n const { data = [], isLoading, refetch } = useEmployeeJobQuery();\r\n\r\n return (\r\n refetch()}\r\n required={required}\r\n multiple\r\n {...otherProps}\r\n />\r\n );\r\n};\r\n","import React, { FC } from 'react';\r\n\r\nimport { useEmployeeJobFamilyQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\n\r\nexport interface EmployeeJobFamilySelectFieldProps\r\n extends Omit {\r\n name: string;\r\n disabled?: boolean;\r\n required?: boolean;\r\n}\r\n\r\nexport const EmployeeJobFamilySelectField: FC = ({\r\n name,\r\n disabled = false,\r\n required = false,\r\n ...otherProps\r\n}) => {\r\n const { data = [], isLoading, refetch } = useEmployeeJobFamilyQuery();\r\n\r\n return (\r\n refetch()}\r\n required={required}\r\n multiple\r\n {...otherProps}\r\n />\r\n );\r\n};\r\n","import { FC, useEffect, useState } from 'react';\r\n\r\nimport { useManagerQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { FormikAutocompleteField } from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { mapToAutocompleteFieldItems } from 'MyProfile/model/MyProfile';\r\n\r\nexport interface ManagerSelectFieldProps {\r\n name: string;\r\n initialValue?: string;\r\n disabled?: boolean;\r\n}\r\n\r\nconst searchTimeout = 1000;\r\nconst minLenOfSearchValue = 3;\r\n\r\nexport const ManagerSelectField: FC = ({\r\n name,\r\n initialValue,\r\n disabled = false,\r\n}) => {\r\n const [value, setValue] = useState('');\r\n const { data = [], isLoading, isFetching, refetch } = useManagerQuery(value);\r\n\r\n useEffect(() => {\r\n if (initialValue !== value && value.length >= minLenOfSearchValue) {\r\n const timer = setTimeout(refetch, searchTimeout);\r\n return () => clearTimeout(timer);\r\n }\r\n return undefined;\r\n }, [value]);\r\n\r\n return (\r\n setValue(eventValue)}\r\n required\r\n filterOptions={(options) => options}\r\n />\r\n );\r\n};\r\n","import { FC, useEffect, useState } from 'react';\r\n\r\nimport { useFunctionalManagerQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { FormikAutocompleteField } from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { mapToAutocompleteFieldItems } from 'MyProfile/model/MyProfile';\r\n\r\nexport interface FunctionalManagerSelectFieldProps {\r\n name: string;\r\n initialValue?: string;\r\n disabled?: boolean;\r\n}\r\n\r\nconst searchTimeout = 1000;\r\nconst minLenOfSearchValue = 3;\r\n\r\nexport const FunctionalManagerSelectField: FC = ({\r\n name,\r\n initialValue,\r\n disabled = false,\r\n}) => {\r\n const [value, setValue] = useState('');\r\n const { data = [], isLoading, isFetching, refetch } = useFunctionalManagerQuery(value);\r\n\r\n useEffect(() => {\r\n if (initialValue !== value && value.length >= minLenOfSearchValue) {\r\n const timer = setTimeout(refetch, searchTimeout);\r\n return () => clearTimeout(timer);\r\n }\r\n return undefined;\r\n }, [value]);\r\n\r\n return (\r\n setValue(eventValue)} \r\n filterOptions={(options) => options}\r\n />\r\n );\r\n};\r\n","export enum CertificationPlanLevelType { \r\n Basic = 1,\r\n Expert,\r\n Master,\r\n General,\r\n Trainer\r\n}\r\n","import React, { FC } from 'react';\r\n\r\nimport { FormikAutocompleteField } from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { CertificationPlanLevelType } from 'enums/CertificationPlanLevelType';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface LevelSelectFieldProps {\r\n name: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const getLevelAutocompleteFieldItems = (): AutocompleteFieldItem[] =>\r\n Object.entries(CertificationPlanLevelType)\r\n .filter((value) => isNaN(parseInt(value.toString(), 10)))\r\n .map(([key, value]) => ({ id: value, name: key }));\r\n\r\nexport const LevelSelectField: FC = ({\r\n name,\r\n disabled = false,\r\n}) => (\r\n \r\n);\r\n","import React, { FC } from 'react';\r\n\r\nimport { FormikAutocompleteField } from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface ValiditySelectFieldProps {\r\n name: string;\r\n}\r\n\r\nexport const getValidityAutocompleteFieldItems = (): AutocompleteFieldItem[] => [\r\n { id: 0, name: 'Not expire'},\r\n { id: 12, name: '12 months'},\r\n { id: 18, name: '18 months'},\r\n { id: 24, name: '24 months'},\r\n { id: 30, name: '30 months'},\r\n { id: 36, name: '3 years'},\r\n { id: 48, name: '4 years'},\r\n { id: 60, name: '5 years'},\r\n { id: 72, name: '6 years'},\r\n { id: 120, name: '10 years'},\r\n { id: 300, name: '25 years'},\r\n];\r\n\r\nexport const ValiditySelectField: FC = ({\r\n name,\r\n}) => (\r\n \r\n);\r\n","import React, { FC } from 'react';\r\n\r\nimport { FormikAutocompleteField, FormikAutocompleteFieldProps } from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface DateRangeSelectFieldProps \r\n extends Omit\r\n{\r\n name: string;\r\n}\r\n\r\nexport enum DateRangeOption {\r\n Custom,\r\n Today,\r\n Yesterday,\r\n Last7Days,\r\n CurrentMonth,\r\n PreviousMonth,\r\n Last90Days\r\n}\r\n\r\nexport const getDateRangeAutocompleteFieldItems = (): AutocompleteFieldItem[] => [\r\n { id: DateRangeOption.Custom, name: 'Custom' },\r\n { id: DateRangeOption.Today, name: 'Today' },\r\n { id: DateRangeOption.Yesterday, name: 'Yesterday' },\r\n { id: DateRangeOption.Last7Days, name: 'Last 7 days' },\r\n { id: DateRangeOption.CurrentMonth, name: 'Current month' },\r\n { id: DateRangeOption.PreviousMonth, name: 'Previous month' },\r\n { id: DateRangeOption.Last90Days, name: 'Last 90 days' },\r\n];\r\n\r\n//const getDefaultDateRangeItem = (): AutocompleteFieldItem => ({ id: DateRangeOption.Custom, name: 'Custom' })\r\n\r\nexport const DateRangeSelectField: FC = ({\r\n name,\r\n ...otherProps\r\n}) => (\r\n \r\n);\r\n","import React, { FC } from 'react';\r\n\r\nimport { useCertificateFunctionsQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { FormikAutocompleteField } from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\n\r\nexport interface CertificateFunctionSelectFieldProps {\r\n name: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const CertificateFunctionSelectField: FC<\r\n CertificateFunctionSelectFieldProps\r\n> = ({\r\n name,\r\n disabled = false,\r\n}) => {\r\n const { data = [], isLoading, refetch } = useCertificateFunctionsQuery();\r\n\r\n return (\r\n refetch()}\r\n multiple\r\n />\r\n );\r\n};\r\n","import React, { FC } from 'react';\r\n\r\nimport { useWorkTypesQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { FormikAutocompleteField } from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\n\r\nexport interface WorkTypeSelectFieldProps {\r\n name: string;\r\n disabled?: boolean;\r\n}\r\n\r\nexport const WorkTypeSelectField: FC<\r\n WorkTypeSelectFieldProps\r\n> = ({\r\n name,\r\n disabled = false,\r\n}) => {\r\n const { data = [], isLoading, refetch } = useWorkTypesQuery();\r\n\r\n return (\r\n refetch()}\r\n multiple\r\n />\r\n );\r\n};\r\n","import React, { FC } from 'react';\r\n\r\nimport { useActiveBusinessUnitsQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { mapToAutocompleteFieldItems } from 'Dictionary/model/BusinessUnit';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface ActiveBusinessUnitSelectFieldProps\r\n extends Omit {\r\n defaultOptions?: AutocompleteFieldItem[];\r\n divisionID?: number; \r\n}\r\n\r\nexport const allBusinessUnitField: AutocompleteFieldItem = {\r\n id: 0,\r\n name: 'All Divisions',\r\n};\r\n\r\nexport const ActiveBusinessUnitSelectField: FC<\r\n ActiveBusinessUnitSelectFieldProps\r\n> = ({\r\n defaultOptions = [],\r\n required = true,\r\n divisionID, \r\n ...otherProps\r\n}) => {\r\n const { data = [], isLoading, refetch } = useActiveBusinessUnitsQuery(Number(divisionID ?? 0));\r\n\r\n return (\r\n refetch()}\r\n required={required}\r\n />\r\n );\r\n};\r\n","export enum CertificationPlanScopeType {\r\n AllScopes = 0,\r\n Application = 1,\r\n General = 2,\r\n Product = 3,\r\n Process = 4,\r\n HealthAndSafety = 5,\r\n Sustainability = 6,\r\n}","import React, { FC } from 'react';\r\n\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { CertificationPlanScopeType } from 'enums/CertificationPlanScopeType';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface LevelSelectFieldProps\r\n extends Omit {}\r\n\r\nexport const getAutocompleteFieldItems = (): AutocompleteFieldItem[] => [\r\n { id: CertificationPlanScopeType.AllScopes, name: 'All scopes' },\r\n { id: CertificationPlanScopeType.Application, name: 'Application' },\r\n { id: CertificationPlanScopeType.General, name: 'General' },\r\n { id: CertificationPlanScopeType.Product, name: 'Product' },\r\n { id: CertificationPlanScopeType.Process, name: 'Process' },\r\n { id: CertificationPlanScopeType.HealthAndSafety, name: 'Health, Safety and Environment' },\r\n { id: CertificationPlanScopeType.Sustainability, name: 'Sustainability' },\r\n];\r\n//TODO : Load scopes??? jesteśmy out of sync ze słownikiem na bazie\r\nexport const ScopeSelectField: FC = ({\r\n disabled = false,\r\n required=true,\r\n forNewItem=false,\r\n ...otherProps\r\n}) => (\r\n !forNewItem || x.id != 0 )}\r\n required={required}\r\n />\r\n);\r\n","import React, { FC } from 'react';\r\n\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport { CatalogSearchFilters } from 'Catalog/model/CatalogSearchFilters';\r\n\r\nexport interface LevelSelectFieldProps\r\n extends Omit {}\r\n\r\nexport enum IsExternalType {\r\n External,\r\n Abb,\r\n All,\r\n}\r\n\r\nexport const getAutocompleteFieldItems = (): AutocompleteFieldItem[] => [\r\n { id: IsExternalType.All, name: 'All users' },\r\n { id: IsExternalType.Abb, name: 'ABB' },\r\n { id: IsExternalType.External, name: 'External' },\r\n];\r\n\r\nexport const getIsExternal = (\r\n isExternal?: IsExternalType\r\n): CatalogSearchFilters['isExternal'] => {\r\n switch (isExternal) {\r\n case IsExternalType.Abb:\r\n return false;\r\n case IsExternalType.External:\r\n return true;\r\n case IsExternalType.All:\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nexport const IsExternalSelectField: FC = ({\r\n disabled = false,\r\n ...otherProps\r\n}) => (\r\n \r\n);\r\n","import React, { FC } from 'react';\r\n\r\nimport { useCompanyChannelQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { mapToAutocompleteFieldItems } from 'Dictionary/model/CompanyChannel';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface CompanyChannelSelectFieldProps\r\n extends Omit {\r\n defaultOptions?: AutocompleteFieldItem[];\r\n}\r\n\r\nexport const CompanyChannelSelectField: FC = ({\r\n disabled = false,\r\n defaultOptions = [],\r\n ...otherProps\r\n}) => {\r\n const { data = [], isLoading, refetch } = useCompanyChannelQuery();\r\n\r\n return (\r\n refetch()}\r\n required\r\n {...otherProps}\r\n />\r\n );\r\n};\r\n","import { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface CompanyChannel {\r\n id: number;\r\n name: string;\r\n}\r\n\r\nexport const mapToAutocompleteFieldItems = (\r\n companyChannels: CompanyChannel[]\r\n): AutocompleteFieldItem[] =>\r\n companyChannels.map((channel) => ({ id: channel.id, name: channel.name }));\r\n","import { FC } from 'react';\r\n\r\nimport { useCountriesQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\n\r\nexport interface CountriesSelectFieldProps\r\n extends Omit {\r\n label?: string\r\n}\r\n\r\nexport const CountriesSelectField: FC = (props) => {\r\n const { data = [], isLoading, refetch } = useCountriesQuery();\r\n\r\n return (\r\n refetch()}\r\n multiple\r\n {...props}\r\n />\r\n );\r\n};\r\n","import { FC } from 'react';\r\n\r\nimport { useCountriesQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\n\r\nexport interface CountriesSelectWithAllFieldProps\r\n extends Omit {}\r\n\r\nexport const CountriesSelectWithAllField: FC = (props) => {\r\n const { data = [], isLoading, refetch } = useCountriesQuery();\r\n const getCountriesWithAllOption = () => {\r\n \r\n }\r\n return (\r\n refetch()}\r\n multiple\r\n {...props}\r\n />\r\n );\r\n};\r\n","import React, { FC } from 'react';\r\n\r\nimport { useCompaniesWithFilterQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { mapToAutocompleteFieldItems } from 'Dictionary/model/Company';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { CompanyFilterParams } from 'Dictionary/model/CompanyFilterParams';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface CompanyWithFiltersFieldProps\r\n extends Omit {\r\n filterParams: CompanyFilterParams;\r\n addAlloption?: boolean;\r\n}\r\n\r\nexport const mapCompanyFilterParams = (\r\n businessUnit: AutocompleteFieldItem,\r\n countryList: AutocompleteFieldItem[],\r\n isExternal: boolean | null\r\n): CompanyFilterParams => ({\r\n businessUnitID: Number(businessUnit.id),\r\n countryIds: countryList.map((country) => Number(country.id)),\r\n isExternal\r\n});\r\n\r\nexport const CompanyWithFiltersField: FC = ({\r\n filterParams,\r\n addAlloption = false,\r\n multiple = true,\r\n disabled = false,\r\n ...otherProps\r\n}) => {\r\n const { data = [], isLoading, refetch } = useCompaniesWithFilterQuery(\r\n filterParams\r\n );\r\n\r\n return (\r\n refetch()}\r\n multiple={multiple}\r\n />\r\n );\r\n};\r\n","import { FC } from 'react';\r\n\r\nimport { useTrainingManagersQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { mapToAutocompleteFieldItems } from 'MyProfile/model/MyProfile';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport { TrainingManagersFiltersDto } from 'Dictionary/model/TrainingManagersFiltersDto';\r\n\r\nexport interface TrainingManagerFieldProps\r\n extends Omit {\r\n filterParams: TrainingManagersFiltersDto;\r\n}\r\n\r\nexport const mapTrainingManagersFilterParams = (\r\n businessUnit: AutocompleteFieldItem,\r\n company: AutocompleteFieldItem | null\r\n): TrainingManagersFiltersDto =>\r\n businessUnit?.id && company?.id\r\n ? {\r\n businessUnitId: Number(businessUnit.id),\r\n companyId: Number(company.id),\r\n }\r\n : {};\r\n\r\nexport const TrainingManagerField: FC = ({\r\n filterParams,\r\n multiple = true,\r\n disabled = false,\r\n ...otherProps\r\n}) => {\r\n const { data = [], isLoading, refetch } = useTrainingManagersQuery(\r\n filterParams\r\n );\r\n\r\n return (\r\n refetch()}\r\n {...otherProps}\r\n />\r\n );\r\n};\r\n","import { AutocompleteFieldItem } from '../../components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface Approver {\r\n id: number;\r\n geid: string;\r\n firstName: string;\r\n lastName: string;\r\n email: string;\r\n}\r\n\r\nexport const getFullName = (user?: Partial): string =>\r\n user ? `${user.firstName} ${user.lastName}` : '...';\r\n\r\nexport const getFullNameWithGeid = (user?: Partial): string =>\r\n user ? `${getFullName(user)} ${user?.geid ? `(${user.geid})` : ''}` : '...';\r\n\r\nexport const mapToAutocompleteFieldItems = (\r\n users: Partial[]\r\n): AutocompleteFieldItem[] =>\r\n users.map((user) => ({\r\n id: user.email,\r\n name: getFullNameWithGeid(user),\r\n }));\r\n","import { FC, useEffect } from 'react';\r\n\r\nimport { useApproversQuery } from '../../query/dictionaryQuery';\r\nimport { FormikAutocompleteField, FormikAutocompleteFieldProps } from '../../../components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { mapToAutocompleteFieldItems } from '../../model/Approver';\r\n\r\nexport interface ApproverSelectFieldProps\r\n extends Omit {}\r\n\r\nexport const ApproverSelectField: FC = ({\r\n name,\r\n disabled = false,\r\n}) => {\r\n const { data = [], isLoading, isFetching, refetch } = useApproversQuery();\r\n\r\n useEffect(() => {\r\n refetch();\r\n }, []);\r\n\r\n return (\r\n \r\n );\r\n};\r\n","export enum ObjectType {\r\n All = 0,\r\n CertificateList = 1,\r\n CertificationPlan = 2,\r\n CPRequirement = 3,\r\n User = 4,\r\n CPEnrollmentRequest = 5,\r\n Questionnaire = 7\r\n //UserUpdate = 6,\r\n }","import { FC } from 'react';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from '../../../components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { AutocompleteFieldItem } from '../../../components/Field/AutocompleteField/AutocompleteField';\r\nimport { ObjectType } from '../../model/TaskType';\r\n\r\nexport interface TaskTypeSelectFieldProps\r\n extends Omit {}\r\n\r\nexport const getTaskTypeItems = (): AutocompleteFieldItem[] => [\r\n { id: ObjectType.All, name: 'All' },\r\n { id: ObjectType.CertificateList, name: 'Certificates to publish' },\r\n { id: ObjectType.CertificationPlan, name: 'Certification plans' },\r\n { id: ObjectType.CPRequirement, name: 'Requirements' }, \r\n { id: ObjectType.CPEnrollmentRequest, name: 'Enrollment requests' },\r\n { id: ObjectType.Questionnaire, name: 'Questionnaire' },\r\n { id: ObjectType.User, name: 'Users to remove' },\r\n //{ id: ObjectType.UserUpdate, name: 'User update' },\r\n];\r\n\r\nexport const TaskTypeSelectField: FC = (props) => {\r\n const items = getTaskTypeItems();\r\n return (\r\n \r\n );\r\n};\r\n","export enum TaskStatus {\r\n All = 0,\r\n Open = 1,\r\n Close = 2,\r\n}\r\n","import { FC } from 'react';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from '../../../components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { AutocompleteFieldItem } from '../../../components/Field/AutocompleteField/AutocompleteField';\r\nimport { TaskStatus } from '../../model/TaskStatus';\r\n\r\nexport interface TaskStatusSelectFieldProps\r\n extends Omit {}\r\n\r\nexport const getTaskStatusItems = (): AutocompleteFieldItem[] => [\r\n { id: TaskStatus.All, name: 'All' },\r\n { id: TaskStatus.Open, name: 'Open' },\r\n { id: TaskStatus.Close, name: 'Close' },\r\n];\r\n\r\nexport const TaskStatusSelectField: FC = (\r\n props\r\n) => {\r\n const items = getTaskStatusItems();\r\n return (\r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\n\r\nimport { useScopeDetailsQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { mapToAutocompleteFieldItems } from 'Dictionary/model/ScopeDetail';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { ScopeDetailsParams } from 'Dictionary/model/ScopeDetailsParams';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface ScopeDetailsFieldProps\r\n extends Omit {\r\n filterParams: ScopeDetailsParams;\r\n}\r\n\r\nexport const mapScopeDetailsFilterParams = (\r\n businessUnit: AutocompleteFieldItem,\r\n scope: AutocompleteFieldItem\r\n): ScopeDetailsParams => ({\r\n businessUnitID: Number(businessUnit.id),\r\n scopeId: Number(scope.id),\r\n});\r\n\r\nexport const ScopeDetailsField: FC = ({\r\n filterParams,\r\n multiple = true,\r\n disabled = false,\r\n ...otherProps\r\n}) => {\r\n const { data = [], isLoading, refetch } = useScopeDetailsQuery(filterParams);\r\n\r\n return (\r\n refetch()}\r\n multiple={multiple}\r\n />\r\n );\r\n};\r\n","import { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport { PaginationDto, Sort } from 'model';\r\nimport { BusinessUnit } from './BusinessUnit';\r\n\r\nexport interface Scope {\r\n id: number;\r\n description: string;\r\n}\r\n\r\nexport interface ScopeDetail {\r\n id: number;\r\n description: string;\r\n sequence: number;\r\n}\r\n\r\nexport interface ScopeKeyword {\r\n id: number;\r\n scope?: Scope\r\n division?: BusinessUnit\r\n title: string;\r\n sequence: number;\r\n}\r\n\r\nexport interface ScopeDetailFindQuery extends PaginationDto, Sort {\r\n pageSize: number\r\n currentPageIndex: number\r\n\r\n businessArea?: DictionaryItemByCodeDTO\r\n division?: number\r\n scope?: number\r\n}\r\n\r\nexport const mapToAutocompleteFieldItems = (\r\n scopeDetails: ScopeDetail[]\r\n): AutocompleteFieldItem[] =>\r\n scopeDetails.map((details) => ({\r\n id: details.id,\r\n name: details.description,\r\n }));\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n","import styled from 'styled-components';\r\n\r\nexport const ActionsRoot = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n`;\r\n","import { FC, ReactNode } from 'react';\r\nimport { Form, Formik, FormikConfig, FormikProps } from 'formik';\r\nimport { Grid } from '@material-ui/core';\r\n\r\nimport {\r\n getFullNameWithGeidAndEmail,\r\n getRoles,\r\n MyProfile,\r\n} from 'MyProfile/model/MyProfile';\r\nimport { hasRole, RoleType } from 'MyProfile/enum/RoleType';\r\nimport { EditUserDto } from 'MyProfile/model/EditUserDto';\r\nimport { CompanySelectField } from 'Dictionary/component/CompanySelectField/CompanySelectField';\r\nimport { DivisionSelectField } from 'Dictionary/component/DivisionSelectField/DivisionSelectField';\r\nimport { BusinessUnitSelectField } from 'Dictionary/component/BusinessUnitSelectField/BusinessUnitSelectField';\r\nimport { PGUnitSelectField } from 'Dictionary/component/PGUnitSelectField/PGUnitSelectField';\r\nimport { PreferredLanguagesSelectField } from 'Dictionary/component/PreferredLanguagesSelectField/PreferredLanguagesSelectField';\r\nimport { Button } from 'components/Button';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport { getCompanyName } from 'Dictionary/model/Company';\r\nimport { EmployeeJobSelectField } from 'Dictionary/component/EmployeeJobSelectField/EmployeeJobSelectField';\r\nimport { EmployeeJobFamilySelectField } from 'Dictionary/component/EmployeeJobFamilySelectField/EmployeeJobFamilySelectField';\r\nimport { getPgUnitFullName } from 'Dictionary/model/PGUnit';\r\nimport { ManagerSelectField } from 'Dictionary/component/ManagerSelectField/ManagerSelectField';\r\nimport { FunctionalManagerSelectField } from 'Dictionary/component/FunctionalManagerSelectField/FunctionalManagerSelectField';\r\nimport { FieldRoot } from 'components/SearchFiltersForm/SearchFiltersForm.style';\r\nimport {\r\n CompanyWithFiltersField,\r\n CountriesSelectField,\r\n IsExternalType,\r\n TrainingManagerField,\r\n} from 'Dictionary/component';\r\nimport { FormikTextField } from 'components/FormikField/FormikTextField/FormikTextField';\r\nimport { mapTrainingManagersFilterParams } from 'Dictionary/component/TrainingManagerField/TrainingManagerField';\r\nimport { ActionsRoot } from './EditUserForm.style';\r\n\r\nexport interface EditUserFormProps {\r\n user: MyProfile;\r\n loading: boolean;\r\n onSubmit: FormikConfig['onSubmit'];\r\n validationSchema: FormikConfig['validationSchema'];\r\n countryId?: number;\r\n showUserCompanies?: boolean;\r\n isExternalType?: IsExternalType;\r\n renderActions?: (\r\n submitForm: FormikProps['submitForm'],\r\n disableSubmit: boolean\r\n ) => ReactNode;\r\n}\r\n\r\nexport interface EditUserFormData {\r\n firstName: string;\r\n lastName: string;\r\n notes: string;\r\n city: string;\r\n state: string;\r\n country: AutocompleteFieldItem;\r\n manager: AutocompleteFieldItem;\r\n functionalmanager: AutocompleteFieldItem;\r\n employeeJobs: AutocompleteFieldItem[];\r\n jobFamilies: AutocompleteFieldItem[];\r\n company: AutocompleteFieldItem | null;\r\n division: AutocompleteFieldItem;\r\n businessUnit: AutocompleteFieldItem;\r\n pgUnit: AutocompleteFieldItem | null;\r\n preferredLanguages: AutocompleteFieldItem[];\r\n}\r\n\r\nexport const mapEditUserDto = (\r\n profileInformationForm: EditUserFormData\r\n): EditUserDto => ({\r\n managerGeid: (profileInformationForm?.manager?.id ?? '').toString(),\r\n managerEmail: (profileInformationForm?.manager?.group ?? '').toString(),\r\n functionalmanagerGeid: (profileInformationForm?.functionalmanager?.id ?? '').toString(),\r\n functionalmanagerEmail: (profileInformationForm?.functionalmanager?.group ?? '').toString(),\r\n companyId: Number(profileInformationForm.company?.id),\r\n divisionId: Number(profileInformationForm?.division?.id),\r\n businessUnitId: Number(profileInformationForm?.businessUnit?.id),\r\n pgUnitId: Number(profileInformationForm?.pgUnit?.id),\r\n employeeJobsIds: profileInformationForm.employeeJobs?.map((job) =>\r\n Number(job.id)\r\n ),\r\n employeeJobFamiliesIds: profileInformationForm.jobFamilies?.map((job) =>\r\n Number(job.id)\r\n ),\r\n preferredLanguagesIds: profileInformationForm.preferredLanguages.map(\r\n (language) => Number(language?.id)\r\n ),\r\n notes: profileInformationForm.notes,\r\n city: profileInformationForm.city,\r\n state: profileInformationForm.state,\r\n});\r\n\r\nexport const getInitialFormData = (user: MyProfile, fillCompany: boolean): EditUserFormData => ({\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n notes: user.notes,\r\n city: user.city,\r\n state: user.state,\r\n country: user.country && {\r\n id: user.country.id,\r\n name: user.country.name,\r\n },\r\n manager: user.manager && {\r\n id: user.manager?.geid,\r\n name: getFullNameWithGeidAndEmail(user.manager),\r\n },\r\n functionalmanager: user.functionalManager && {\r\n id: user.functionalManager?.geid,\r\n name: getFullNameWithGeidAndEmail(user.functionalManager),\r\n },\r\n employeeJobs: user.employeeJobs,\r\n jobFamilies: user.employeeJobFamilies,\r\n company: user.company && {\r\n id: user.company?.id,\r\n name: getCompanyName(user.company),\r\n },\r\n division: user.division && {\r\n id: user.division.id,\r\n name: user.division.name,\r\n },\r\n businessUnit: user.businessUnit && {\r\n id: user.businessUnit.id,\r\n name: user.businessUnit.description,\r\n },\r\n pgUnit: user.pgUnit\r\n ? {\r\n id: user.pgUnit.id,\r\n name: getPgUnitFullName(user.pgUnit),\r\n }\r\n : null,\r\n preferredLanguages: user.preferredLanguages,\r\n});\r\n\r\nexport const EditUserForm: FC = ({\r\n user,\r\n countryId,\r\n loading,\r\n validationSchema,\r\n onSubmit,\r\n showUserCompanies = false,\r\n isExternalType = IsExternalType.Abb,\r\n renderActions,\r\n}) => {\r\n const initialValues = getInitialFormData(user, showUserCompanies);\r\n const disableEdit = hasRole(RoleType.ExternalTechnician, getRoles(user));\r\n const disableField = disableEdit || loading;\r\n const enableExternalFields = isExternalType === IsExternalType.External;\r\n\r\n const renderCompanyField = (buId?: number, countryId?: number) => {\r\n if (showUserCompanies) {\r\n return ;\r\n }\r\n // if(!showUserCompanies && countryId && isExternalType !== IsExternalType.External){\r\n // return (\r\n // \r\n // );\r\n // }\r\n if (!showUserCompanies && countryId && buId) {\r\n return (\r\n \r\n );\r\n }\r\n return (\r\n \r\n );\r\n };\r\n\r\n return (\r\n \r\n {(formikProps) => {\r\n const hasError = (fieldName: string): boolean =>\r\n Object.prototype.hasOwnProperty.call(formikProps.errors, fieldName);\r\n const disableSubmit =\r\n !formikProps.dirty || disableField || !formikProps.isValid;\r\n return (\r\n
\r\n \r\n \r\n {enableExternalFields && (\r\n \r\n \r\n \r\n )}\r\n \r\n {\r\n formikProps.setFieldValue('pgUnit', null);\r\n formikProps.setFieldValue('businessUnit', null);\r\n formikProps.setFieldValue('company', null);\r\n }}\r\n disableClearable\r\n />\r\n \r\n \r\n {\r\n formikProps.setFieldValue('pgUnit', null);\r\n formikProps.setFieldValue('company', null);\r\n if (enableExternalFields)\r\n formikProps.setFieldValue('manager', null);\r\n }}\r\n divisionID={Number(formikProps.values.division?.id ?? 0)}\r\n disableClearable\r\n />\r\n \r\n \r\n \r\n \r\n {/* {!enableExternalFields && (\r\n \r\n {formikProps.values.businessUnit ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )} */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {enableExternalFields && (\r\n \r\n \r\n \r\n )}\r\n {enableExternalFields && (\r\n \r\n \r\n formikProps.setFieldValue('company', null)\r\n }\r\n required\r\n />\r\n \r\n )}\r\n \r\n {renderCompanyField(\r\n formikProps.values.businessUnit?.id as number,\r\n (formikProps.values.country?.id as number) ?? countryId\r\n )}\r\n \r\n {enableExternalFields && (\r\n \r\n \r\n \r\n )}\r\n {enableExternalFields && (\r\n \r\n \r\n \r\n )}\r\n \r\n {enableExternalFields ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {!enableExternalFields && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {renderActions ? (\r\n renderActions(formikProps.submitForm, disableSubmit)\r\n ) : (\r\n \r\n formikProps.resetForm()}\r\n >\r\n Discard\r\n \r\n \r\n Save\r\n \r\n \r\n )}\r\n
\r\n );\r\n }}\r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\nimport { useMutation } from 'react-query';\r\nimport { Grid } from '@material-ui/core';\r\nimport * as Yup from 'yup';\r\n\r\nimport { getFullName, MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { myProfileApi } from 'MyProfile/service/myProfile.api';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { EditUserForm } from 'MyProfile/component/EditUserForm';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport {\r\n EditUserFormData,\r\n mapEditUserDto,\r\n} from 'MyProfile/component/EditUserForm/EditUserForm';\r\nimport { FieldRoot } from 'components/SearchFiltersForm/SearchFiltersForm.style';\r\nimport { DataField } from 'components';\r\n\r\nexport interface ProfileInformationFormProps {\r\n myProfile: MyProfile;\r\n onChange: () => void;\r\n}\r\n\r\nconst formValidationSchema = Yup.object().shape({\r\n manager: Yup.object().typeError('Select at least one Manager'),\r\n employeeJobs: Yup.array().min(1, 'Select at least one Employee job'),\r\n company: Yup.object().typeError('Select at least one Company'),\r\n businessUnit: Yup.object().typeError('Select Division'),\r\n preferredLanguages: Yup.array().min(\r\n 1,\r\n 'Select at least one Preferred language'\r\n ),\r\n});\r\n\r\nexport const ProfileInformationForm: FC = ({\r\n myProfile,\r\n onChange,\r\n}) => {\r\n const { showError, showSuccess } = useToasts();\r\n const { mutate, isLoading } = useMutation<\r\n unknown,\r\n ApiError,\r\n EditUserFormData\r\n >((formData) => myProfileApi.post(mapEditUserDto(formData)), {\r\n onSuccess: () => {\r\n showSuccess('My profile has been updated');\r\n //if (myProfile.userNeedToUpdateProfile) {\r\n onChange();\r\n //}\r\n },\r\n onError: (error) => showError(error.message),\r\n });\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {myProfile && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n try {\r\n await mutate(values);\r\n resetForm({ values });\r\n } catch (e) {\r\n resetForm();\r\n }\r\n }}\r\n showUserCompanies\r\n />\r\n \r\n );\r\n};\r\n","import fileDownload from 'js-file-download';\r\n\r\nimport { apiClient } from 'service';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { Attachment, AttachmentList } from 'Attachment/model/Attachment';\r\nimport { HelpFile } from 'Attachment/model/HelpFile';\r\n\r\nconst get = async (\r\n id: Attachment['id'],\r\n fileName: Attachment['fileName']\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(`/attachments/${id}/download`, {\r\n responseType: 'blob',\r\n });\r\n fileDownload(response.data, fileName);\r\n return [];\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst list = async (): Promise => {\r\n try {\r\n const response = await apiClient.get('/users/attachments-info');\r\n return {\r\n result: response.data.result,\r\n canCurrentUserRemoveAttachments: response.data.canCurrentUserRemoveAttachments\r\n };\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst listByUserId = async (userId: string): Promise => {\r\n try {\r\n const response = await apiClient.get(`/users/${userId}/attachments-info`);\r\n return {\r\n result: response.data.result,\r\n canCurrentUserRemoveAttachments: response.data.canCurrentUserRemoveAttachments\r\n };\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst listByUserAndRequirementId = async (userId: string, requirementId: string): Promise => {\r\n try {\r\n const response = await apiClient.get(`/users/${userId}/requirement/${requirementId}/attachments-info`);\r\n return {\r\n result: response.data.result,\r\n canCurrentUserRemoveAttachments: response.data.canCurrentUserRemoveAttachments\r\n };\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst uploadFiles = async (files: File[]): Promise => {\r\n try {\r\n return await Promise.all(\r\n files.map(async (file) => {\r\n const formData = new FormData();\r\n formData.append('attachment', file);\r\n await apiClient.post('/attachments', formData);\r\n })\r\n );\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst uploadBulk = async (files: File[]): Promise => {\r\n try {\r\n return await Promise.all(\r\n files.map(async (file) => {\r\n const formData = new FormData();\r\n formData.append('attachment', file);\r\n await apiClient.post('/bulk-template/upload', formData);\r\n })\r\n );\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst uploadFilesByUserId = async (\r\n files: File[],\r\n userId: string\r\n): Promise => {\r\n try {\r\n return await Promise.all(\r\n files.map(async (file) => {\r\n const formData = new FormData();\r\n formData.append('attachment', file);\r\n await apiClient.post(`users/${userId}/attachments`, formData);\r\n })\r\n );\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst uploadFilesByUserAndRequirementId = async (\r\n files: File[],\r\n userId: string,\r\n requirementId: string\r\n): Promise => {\r\n try {\r\n return await Promise.all(\r\n files.map(async (file) => {\r\n const formData = new FormData();\r\n formData.append('attachment', file);\r\n await apiClient.post(`users/${userId}/requirement/${requirementId}/attachments`, formData);\r\n })\r\n );\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst remove = async (id: Attachment['id']): Promise => {\r\n try {\r\n const response = await apiClient.delete(`/attachments/${id}`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getHelpFiles = async (): Promise => {\r\n try {\r\n const response = await apiClient.get('/help-files');\r\n\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getHelpFile = async (\r\n fileName: HelpFile['fileName']\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(`/help-files/${fileName}/download`, {\r\n responseType: 'blob',\r\n });\r\n fileDownload(response.data, fileName);\r\n return null;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getBulkTemplate = async (): Promise => {\r\n try {\r\n const response = await apiClient.get(`/bulk-template/download`, {\r\n responseType: 'blob',\r\n });\r\n fileDownload(response.data, \"BULK_TEMPLATE_PCS2.xlsx\");\r\n return null;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const attachmentApi = {\r\n get,\r\n list,\r\n listByUserId,\r\n listByUserAndRequirementId,\r\n uploadFiles,\r\n uploadFilesByUserId,\r\n uploadFilesByUserAndRequirementId,\r\n remove,\r\n getHelpFile,\r\n getHelpFiles,\r\n getBulkTemplate,\r\n uploadBulk,\r\n};\r\n","import { useQuery } from 'react-query';\r\n\r\nimport { AttachmentList } from 'Attachment/model/Attachment';\r\nimport { HelpFile } from 'Attachment/model/HelpFile';\r\nimport { attachmentApi } from 'Attachment/service/attachment.api';\r\n\r\nexport const attachmentsKey = 'attachments-info';\r\nexport const useAttachmentsQuery = () =>\r\n useQuery(attachmentsKey, attachmentApi.list);\r\n\r\nexport const userAttachmentsKey = 'user-attachments-info';\r\nexport const useUserAttachmentsQuery = (userId: string) =>\r\n useQuery([userAttachmentsKey, userId], () =>\r\n attachmentApi.listByUserId(userId)\r\n );\r\n\r\nexport const userRequirementsAttachmentsKey = 'user-requirement-attachments-info';\r\nexport const useUserRequirementAttachmentsQuery = (userId: string, requirementId: string) =>\r\n useQuery([userRequirementsAttachmentsKey, userId, requirementId], () =>\r\n attachmentApi.listByUserAndRequirementId(userId, requirementId)\r\n );\r\n\r\nexport const helpFilesKey = 'help-files';\r\nexport const useHelpFilesQuery = () =>\r\n useQuery(helpFilesKey, attachmentApi.getHelpFiles);\r\n","import styled from 'styled-components';\r\n\r\nexport const ListItemRoot = styled.li`\r\n display: flex;\r\n`;\r\n\r\nexport const IconButtonRoot = styled.div`\r\n margin: auto;\r\n`;\r\n","import { FC, useState } from 'react';\r\nimport { useMutation, useQueryClient } from 'react-query';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport DeleteIcon from '@material-ui/icons/Delete';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\n\r\nimport { ListItem, ListItemType } from 'components/List';\r\nimport { Button } from 'components/Button';\r\nimport { userRequirementsAttachmentsKey, userAttachmentsKey, attachmentsKey } from 'Attachment/query/attachment.query';\r\nimport { attachmentApi } from 'Attachment/service/attachment.api';\r\nimport { Attachment } from 'Attachment/model/Attachment';\r\nimport { ListItemRoot, IconButtonRoot } from './AttachmentListItem.style';\r\n\r\nexport interface AttachmentListItemType extends ListItemType {\r\n attachment: Attachment;\r\n}\r\n\r\nexport interface AttachmentListItemProps {\r\n item: AttachmentListItemType;\r\n removable: boolean;\r\n attachmentOwnerId?: string;\r\n attachmentRequirementId?: string;\r\n onRemoveRequirementAttachmentSuccess: {() : void} | null;\r\n}\r\n\r\nexport const AttachmentListItem: FC = ({\r\n item,\r\n removable,\r\n attachmentOwnerId,\r\n attachmentRequirementId,\r\n onRemoveRequirementAttachmentSuccess\r\n}) => {\r\n const { mutate: downloadAttachment } = useMutation((attachment: Attachment) =>\r\n attachmentApi.get(attachment.id, attachment.fileName)\r\n );\r\n const { showSuccess, showError } = useToasts();\r\n const queryClient = useQueryClient();\r\n const { mutate: removeAttachment } = useMutation(\r\n (id: Attachment['id']) => attachmentApi.remove(id),\r\n { onSuccess: () => { \r\n if(attachmentRequirementId && attachmentOwnerId)\r\n queryClient.invalidateQueries([userRequirementsAttachmentsKey, attachmentOwnerId, attachmentRequirementId]);\r\n else if(attachmentOwnerId) \r\n queryClient.invalidateQueries([userAttachmentsKey, attachmentOwnerId]);\r\n else\r\n queryClient.invalidateQueries(attachmentsKey);\r\n onRemoveRequirementAttachmentSuccess && onRemoveRequirementAttachmentSuccess();\r\n showSuccess('Attachment removed');\r\n },\r\n onError: () => showError('You are not authorized')\r\n }\r\n );\r\n\r\n const [isDialogOpen, setIsDialogOpen] = useState(false);\r\n\r\n const handleOnRemoveFile = (id: Attachment['id']) => {\r\n removeAttachment(id);\r\n setIsDialogOpen(false);\r\n };\r\n\r\n return (\r\n \r\n downloadAttachment(item.attachment)}\r\n button\r\n />\r\n {removable && (\r\n <>\r\n \r\n setIsDialogOpen(true)}>\r\n \r\n \r\n \r\n \r\n Are you sure to delete file?\r\n \r\n \r\n handleOnRemoveFile(item.attachment.id)}\r\n autoFocus\r\n >\r\n Delete\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\n\r\nexport const ActionsRoot = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n`;\r\n","import React, { FC, useState } from 'react';\r\nimport { DropzoneDialog, DropzoneDialogProps } from 'material-ui-dropzone';\r\nimport AttachmentIcon from '@material-ui/icons/Attachment';\r\nimport { Skeleton } from '@material-ui/lab';\r\n\r\nimport { List } from 'components/List';\r\nimport { Button } from 'components/Button';\r\nimport { Attachment } from 'Attachment/model/Attachment';\r\nimport {\r\n AttachmentListItemType,\r\n AttachmentListItem,\r\n} from 'Attachment/component/AttachmentListItem/AttachmentListItem';\r\nimport { Typography } from '@material-ui/core';\r\nimport { NoDataMessageWrapper } from 'components/DataTable/DataTable.style';\r\nimport { ActionsRoot } from './AttachmentList.style';\r\n\r\n// const filesLimit = 3;\r\nconst acceptedFiles = [\r\n 'application/msword',\r\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\r\n 'application/vnd.ms-excel',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\r\n 'application/pdf',\r\n 'image/jpeg',\r\n];\r\n\r\nconst getAttachmentListItems = (\r\n attachments: Attachment[]\r\n): AttachmentListItemType[] =>\r\n attachments.map((attachment) => ({\r\n attachment,\r\n primaryText: attachment.fileName,\r\n Icon: AttachmentIcon,\r\n }));\r\n\r\nexport interface AttachmentListProps {\r\n items: Attachment[];\r\n loading: boolean;\r\n onDropzoneSave: DropzoneDialogProps['onSave'];\r\n allowRemoveAttachment?: boolean;\r\n disableAddAttachment?: boolean;\r\n userId?: string;\r\n requirementId?: string;\r\n filesLimit?: number;\r\n noDataMessage?: string;\r\n onRemoveRequirementAttachmentSuccess: {() : void} | null;\r\n}\r\n\r\nexport const AttachmentList: FC = ({\r\n items,\r\n loading = false,\r\n onDropzoneSave,\r\n allowRemoveAttachment = false,\r\n disableAddAttachment = false,\r\n userId,\r\n requirementId,\r\n filesLimit = 3,\r\n noDataMessage,\r\n onRemoveRequirementAttachmentSuccess\r\n}) => {\r\n const [isDropzoneOpen, setIsDropzoneOpen] = useState(false);\r\n\r\n if (loading) {\r\n return ;\r\n }\r\n\r\n const handleOnDropzoneSave: DropzoneDialogProps['onSave'] = (\r\n files,\r\n event\r\n ) => {\r\n onDropzoneSave && onDropzoneSave(files, event);\r\n setIsDropzoneOpen(false);\r\n };\r\n\r\n return (\r\n <>\r\n {noDataMessage && !items.length &&\r\n \r\n {noDataMessage}\r\n }\r\n (\r\n \r\n )}\r\n />\r\n {allowRemoveAttachment &&\r\n \r\n \r\n \r\n }\r\n setIsDropzoneOpen(false)}\r\n showPreviewsInDropzone\r\n showPreviews={false}\r\n showAlerts={false}\r\n maxFileSize={11000000}\r\n />\r\n \r\n );\r\n};\r\n","import { useMutation } from 'react-query';\r\n\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { queryClient } from 'service/queryClient';\r\nimport {\r\n attachmentsKey,\r\n useAttachmentsQuery,\r\n} from 'Attachment/query/attachment.query';\r\nimport { attachmentApi } from 'Attachment/service/attachment.api';\r\nimport { AttachmentList } from 'Attachment/component/AttachmentList/AttachmentList';\r\n\r\nexport const MyAttachmentList = () => {\r\n const { showError, showSuccess } = useToasts();\r\n const { data, isLoading } = useAttachmentsQuery();\r\n const { mutate: uploadAttachment } = useMutation(\r\n (files: File[]) => attachmentApi.uploadFiles(files),\r\n {\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries(attachmentsKey);\r\n showSuccess('Upload attachment success');\r\n },\r\n onError: () => showError('Upload attachment failed'),\r\n }\r\n );\r\n\r\n return (\r\n uploadAttachment(files)}\r\n onRemoveRequirementAttachmentSuccess={null}\r\n />\r\n );\r\n};\r\n","import styled from 'styled-components';\r\n\r\nimport { Card } from 'components/Page';\r\nimport { CardProps } from 'components/Page/Card/Card';\r\n\r\nexport const AttachmentsCard = styled(Card)`\r\n margin: ${({ theme }) => theme.spacing(3, 0, 0)};\r\n`;\r\n","import React, { FC } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport { MyRolesList } from 'MyProfile/component/MyRolesList';\r\nimport { ProfileInformationForm } from 'MyProfile/component/ProfileInformationForm';\r\nimport { useMyProfileQuery } from 'MyProfile/query/myProfile.query';\r\nimport { Content, Card } from 'components/Page';\r\nimport { Loader } from 'components/Loader/Loader';\r\nimport { MyAttachmentList } from 'Attachment/component/MyAttachmentList/MyAttachmentList';\r\nimport { Typography, useTheme } from '@material-ui/core';\r\nimport { AttachmentsCard } from './MyProfilePage.style';\r\n\r\nexport const MyProfilePage: FC = () => {\r\n const { isLoading, data, refetch } = useMyProfileQuery();\r\n const theme = useTheme();\r\n if (isLoading || !data) {\r\n return ;\r\n }\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {data.userNeedToUpdateProfile && (\r\n \r\n Update and fill in missing data in your profile\r\n \r\n )}\r\n refetch()}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\nimport MovieIcon from '@material-ui/icons/Movie';\r\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\r\n\r\nimport { List, ListItem, ListItemType } from 'components/List';\r\nimport { Anchor } from 'components/Page/Anchor/Anchor';\r\n\r\ninterface MoviesListItem extends ListItemType {\r\n href: string;\r\n}\r\n\r\nconst items: MoviesListItem[] = [\r\n {\r\n primaryText: 'All PCS2 files',\r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://library.abb.com/r?cid=9AAC819821',\r\n },\r\n {\r\n primaryText: 'Basics - PCS2 Cheat Sheet', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A6371&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'Learner - manage your Certificates and Requirements', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A4858&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },{\r\n primaryText: 'Learner - print your Certificates', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A4603&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },{\r\n primaryText: 'Learner - search and enroll for a Certificate', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A4856&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },{\r\n primaryText: 'Learner - update My Profile', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A4714&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },{\r\n primaryText: 'Manager - approve Pending Requests', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A4731&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },{\r\n primaryText: 'Manager - check user\\'s MyLearning history', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A4727&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },{\r\n primaryText: 'Manager - manage your Employees by using User Management', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A4891&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },{\r\n primaryText: 'Manager - Manual Enrollment', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A4726&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'Manager - Bulk upload', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK108468A0289&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'Manager - use Report Settings', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A4870&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'Manager - Use Reporting to track Learner progress', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A4866&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'Manager - Int/Ext Company Coordinator role', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK108469A0925&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },{\r\n primaryText: 'System Admin - Manage Scope Details', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK108470A7082&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'System Admin - Completion Certificate - Print Settings', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK108470A7085&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'System Admin - Manage Certificates', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A4909&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'System Admin - Manage Companies', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A4746&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'System Admin - Manage Old Enrollments', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK108468A6999&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'System Admin - Manage Training Sets', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK107992A4914&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'System Admin - Manage Scope Details', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK108470A7082&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'System Admin - Completion Certificate - Print Settings', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK108470A7085&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'Notifications in PCS2', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK108466A5287&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n {\r\n primaryText: 'PCS2 Roles', \r\n Icon: ArrowForwardIcon,\r\n href:\r\n 'https://search.abb.com/library/Download.aspx?DocumentID=9AKK108469A3654&LanguageCode=en&DocumentPartId=&Action=Launch',\r\n },\r\n];\r\n\r\nexport const TrainingMoviesList: FC = () => (\r\n (\r\n \r\n \r\n \r\n )}\r\n />\r\n);\r\n","import { ReactNode, Fragment } from 'react';\r\nimport { Skeleton } from '@material-ui/lab';\r\nimport { Typography, Divider } from '@material-ui/core';\r\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\r\n\r\nimport { NoDataMessageWrapper } from 'components/DataTable/DataTable.style';\r\nimport { DataTableColumn } from 'components/DataTable/DataTable';\r\nimport { DataObjectMap } from 'components/DataObjectView/DataObjectView';\r\nimport {\r\n inputButtonStyles,\r\n StyledAccordion,\r\n StyledAccordionSummary,\r\n StyledAccordionDetails,\r\n StyledAccordionActions,\r\n} from 'components/DataObjectView/DataObjectView.style';\r\n\r\nexport function mapToDataSetMap(\r\n dataTableColumns: DataTableColumn[],\r\n omitFields: (keyof Model)[] = []\r\n): DataObjectMap[] {\r\n return dataTableColumns\r\n .filter((column) => !!column.field)\r\n .filter((column) => !omitFields.includes(column.field as keyof Model))\r\n .map((column) => ({\r\n field: column.field as keyof Model,\r\n headerName: column.headerName,\r\n ...(column.renderField && { renderField: column.renderField }),\r\n }));\r\n}\r\n\r\nexport interface DataObjectListProps {\r\n items: O[];\r\n renderDataObjectView: (object: O) => ReactNode;\r\n loading?: boolean;\r\n noDataMessage?: string | JSX.Element;\r\n renderDetails?: (object: O) => ReactNode;\r\n renderActions?: (object: O) => ReactNode;\r\n}\r\n\r\nexport function DataObjectList(props: DataObjectListProps) {\r\n if (props.loading) {\r\n return ;\r\n }\r\n if (props.noDataMessage && !props.items.length) {\r\n return (\r\n \r\n {props.noDataMessage}\r\n \r\n );\r\n }\r\n return (\r\n <>\r\n {props.items.map((item, i) =>\r\n props.renderDetails ? (\r\n \r\n }\r\n >\r\n {props.renderDataObjectView(item)}\r\n \r\n {props.renderActions && (\r\n \r\n {props.renderActions(item)}\r\n \r\n )}\r\n \r\n \r\n {props.renderDetails(item)}\r\n \r\n \r\n ) : (\r\n {props.renderDataObjectView(item)}\r\n )\r\n )}\r\n \r\n );\r\n}\r\n","import { FC } from 'react';\r\n\r\nimport { DataTable, DataTableColumn } from 'components/DataTable/DataTable';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport {\r\n DataObjectList,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\nimport { DataObjectView } from 'components';\r\n\r\ninterface RoleInPcsRow {\r\n role: string;\r\n definedFor: string;\r\n enroll: string;\r\n approveObjective: string;\r\n certificationPlan: string;\r\n clBuilder: string;\r\n clApprover: string;\r\n externalUserManagement: string;\r\n browseReports: string;\r\n}\r\n\r\nconst rows: RoleInPcsRow[] = [\r\n {\r\n role: 'Administrator',\r\n definedFor: 'All Division',\r\n enroll: 'Yes',\r\n approveObjective: 'Yes',\r\n certificationPlan: 'Yes',\r\n clBuilder: 'Yes',\r\n clApprover: 'Yes',\r\n externalUserManagement: 'Yes',\r\n browseReports: 'Yes',\r\n },\r\n {\r\n role: 'Approver (Group)',\r\n definedFor: 'Division',\r\n enroll: '-',\r\n approveObjective: 'Yes',\r\n certificationPlan: 'Yes',\r\n clBuilder: '-',\r\n clApprover: '-',\r\n externalUserManagement: '-',\r\n browseReports: '-',\r\n },\r\n {\r\n role: 'Certificate Builder',\r\n definedFor: 'Division',\r\n enroll: '-',\r\n approveObjective: '-',\r\n certificationPlan: '-',\r\n clBuilder: 'Yes',\r\n clApprover: '-',\r\n externalUserManagement: '-',\r\n browseReports: '-',\r\n },\r\n {\r\n role: 'Certification Authority',\r\n definedFor: 'Division',\r\n enroll: '-',\r\n approveObjective: 'Yes',\r\n certificationPlan: 'Yes',\r\n clBuilder: 'Yes',\r\n clApprover: 'Yes',\r\n externalUserManagement: '-',\r\n browseReports: 'Yes (authorised Division)',\r\n },\r\n {\r\n role: 'Int/Ext Company Coordinator',\r\n definedFor: 'Division / company',\r\n enroll: 'Yes',\r\n approveObjective: 'Yes',\r\n certificationPlan: 'Yes',\r\n clBuilder: '-',\r\n clApprover: '-',\r\n externalUserManagement: 'Yes',\r\n browseReports: 'Yes (authorised Division / company)',\r\n },\r\n {\r\n role: 'Not ABB employee',\r\n definedFor: 'External company',\r\n enroll: '-',\r\n approveObjective: '-',\r\n certificationPlan: '-',\r\n clBuilder: '-',\r\n clApprover: '-',\r\n externalUserManagement: '-',\r\n browseReports: '-',\r\n },\r\n {\r\n role: 'Hierarchical Manager',\r\n definedFor: 'ABB employee',\r\n enroll: 'Yes',\r\n approveObjective: 'Yes',\r\n certificationPlan: 'Yes',\r\n clBuilder: '-',\r\n clApprover: '-',\r\n externalUserManagement: '-',\r\n browseReports: 'Yes (only reporting people)',\r\n },\r\n {\r\n role: 'Reader',\r\n definedFor: 'Division / Country',\r\n enroll: '-',\r\n approveObjective: '-',\r\n certificationPlan: '-',\r\n clBuilder: '-',\r\n clApprover: '-',\r\n externalUserManagement: '-',\r\n browseReports: 'Yes (authorised Division / country)',\r\n },\r\n {\r\n role: 'Supervisor',\r\n definedFor: 'Division / Country',\r\n enroll: 'Yes',\r\n approveObjective: 'Yes',\r\n certificationPlan: 'Yes',\r\n clBuilder: '-',\r\n clApprover: '-',\r\n externalUserManagement: 'Yes',\r\n browseReports: 'Yes (authorised Division / country)',\r\n },\r\n {\r\n role: 'External Company Responsible',\r\n definedFor: 'External company',\r\n enroll: 'Yes',\r\n approveObjective: '-',\r\n certificationPlan: '-',\r\n clBuilder: '-',\r\n clApprover: '-',\r\n externalUserManagement: 'Yes',\r\n browseReports: 'Yes (authorised external company)',\r\n },\r\n];\r\nconst columns: DataTableColumn[] = [\r\n { field: 'role', headerName: 'Role', width: 100 },\r\n { field: 'definedFor', headerName: 'Defined for', width: 100 },\r\n { field: 'enroll', headerName: 'Enroll on behalf', width: 68 },\r\n { field: 'approveObjective', headerName: 'Approve objective', width: 68 },\r\n { field: 'certificationPlan', headerName: 'Certification Plan', width: 72 },\r\n { field: 'clBuilder', headerName: 'CL builder', width: 68 },\r\n { field: 'clApprover', headerName: 'CL approver', width: 68 },\r\n {\r\n field: 'externalUserManagement',\r\n headerName: 'External user management',\r\n width: 68,\r\n },\r\n { field: 'browseReports', headerName: 'Browse reports', width: 100 },\r\n];\r\n\r\nexport const RolesInPcsTable: FC = () => (\r\n <>\r\n \r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n);\r\n","export const formatUserName = (userName: string): string =>\r\n userName\r\n .split(' ')\r\n .map((value) => value.toLowerCase())\r\n .map((value) => `${value.charAt(0).toUpperCase()}${value.slice(1)}`)\r\n .join(' ');\r\n","import { CSSProperties } from 'react';\r\nimport { fade, darken } from '@material-ui/core/styles';\r\nimport { createAbbTheme, Shades } from './createAbbTheme';\r\n\r\ndeclare global {\r\n interface ButtonProps {\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n [key: string]: any;\r\n }\r\n}\r\n\r\nconst fontFamilyBase: string = ['abbvoice', 'sans-serif'].join(', ');\r\n\r\nconst dividerColor: CSSProperties['borderColor'] = 'rgba(0, 0, 0, 0.12)';\r\n\r\nconst greys = {\r\n 50: '#fafafa',\r\n 100: '#f0f0f0',\r\n 200: '#d2d2d2',\r\n 300: '#a9a9a9',\r\n 400: '#6e6e6e',\r\n 500: '#9e9e9e',\r\n 600: '#4a4a4a',\r\n 700: '#262626',\r\n};\r\n\r\nconst shades: Shades = {\r\n gray06_t: 'rgba(0, 0, 0, .06)',\r\n gray05_t: 'rgba(0, 0, 0, .02)',\r\n red05_t: 'rgba(255, 0, 15, .05)',\r\n red10_t: 'rgba(255, 0, 15, .1)',\r\n red80_t: 'rgba(255, 0, 15, .8)',\r\n red1_10: '#e5000d',\r\n};\r\n\r\ntype FontWeightsType = {\r\n light: CSSProperties['fontWeight'];\r\n regular: CSSProperties['fontWeight'];\r\n medium: CSSProperties['fontWeight'];\r\n bold: CSSProperties['fontWeight'];\r\n};\r\n // eslint-disable-next-line\r\nconst fontWeights: any = {\r\n light: 300,\r\n regular: 400,\r\n medium: 500,\r\n bold: 700,\r\n};\r\n\r\nconst mainColor: string = '#ff000f';\r\nconst whiteBase: string = '#fff';\r\n\r\nconst green = {\r\n main: '#007A33',\r\n light: '#E5F1EA',\r\n};\r\n\r\nconst yellow = {\r\n main: '#FFD100',\r\n light: '#FFFBE5',\r\n};\r\n\r\nconst orange = {\r\n main: '#FF7300',\r\n light: '#FFEDDB',\r\n};\r\n\r\nconst red = {\r\n main: mainColor,\r\n light: '#FFE5E6',\r\n};\r\n\r\nconst blue = {\r\n main: '#004C97',\r\n light: '#E5EDF4',\r\n};\r\n\r\nconst spacing = (x: number): number => 8 * x;\r\nconst createBorder = (\r\n color: CSSProperties['borderColor'],\r\n size = 1\r\n): CSSProperties['border'] => `${size}px solid ${color}`;\r\n\r\n//@ts-ignore\r\nexport const theme = createAbbTheme({\r\n palette: {\r\n primary: { main: greys[600] },\r\n secondary: {\r\n light: fade(mainColor, 0.64),\r\n main: mainColor,\r\n dark: darken(mainColor, 0.34),\r\n },\r\n background: { paper: whiteBase, default: whiteBase },\r\n error: {\r\n light: fade(mainColor, 0.12),\r\n main: mainColor,\r\n dark: darken(mainColor, 0.34),\r\n contrastText: mainColor,\r\n },\r\n blue,\r\n green,\r\n yellow,\r\n orange,\r\n red,\r\n grey: { ...greys },\r\n shades: { ...shades },\r\n text: {\r\n primary: '#000',\r\n secondary: '#4a4a4a',\r\n disabled: '#a9a9a9',\r\n hint: '#a9a9a9',\r\n },\r\n },\r\n typography: {\r\n fontFamily: fontFamilyBase,\r\n fontSize: 16,\r\n fontWeightLight: fontWeights.light,\r\n fontWeightRegular: fontWeights.regular,\r\n fontWeightMedium: fontWeights.medium,\r\n fontWeightBold: fontWeights.bold,\r\n subtitle1: {\r\n fontWeight: fontWeights.medium,\r\n },\r\n subtitle2: {\r\n fontWeight: fontWeights.medium,\r\n },\r\n h1: {\r\n fontSize: '2rem',\r\n lineHeight: '2.5rem',\r\n fontWeight: fontWeights.medium,\r\n },\r\n h2: {\r\n fontSize: '1.75rem',\r\n lineHeight: '2.25rem',\r\n fontWeight: fontWeights.medium,\r\n },\r\n h3: {\r\n fontSize: '1.5rem',\r\n lineHeight: '2rem',\r\n fontWeight: fontWeights.medium,\r\n },\r\n h4: {\r\n fontSize: '1.25rem',\r\n lineHeight: '1.75rem',\r\n fontWeight: fontWeights.medium,\r\n },\r\n h5: {\r\n fontSize: '1.125rem',\r\n lineHeight: '1.5rem',\r\n fontWeight: fontWeights.medium,\r\n },\r\n h6: {\r\n fontSize: '1rem',\r\n lineHeight: '1.25rem',\r\n fontWeight: fontWeights.medium,\r\n },\r\n body1: {\r\n fontSize: '1rem',\r\n lineHeight: '1.5rem',\r\n },\r\n body2: {\r\n fontSize: '0.875rem',\r\n lineHeight: '1.25rem',\r\n },\r\n caption: {\r\n fontSize: '0.75rem',\r\n lineHeight: '1rem',\r\n },\r\n button: {\r\n fontSize: '0.875rem',\r\n lineHeight: '1rem',\r\n },\r\n },\r\n overrides: {\r\n MuiPickersToolbar: {\r\n toolbar: {\r\n backgroundColor: '#000',\r\n },\r\n },\r\n MuiPickersCalendarHeader: {\r\n daysHeader: {\r\n marginTop: 16,\r\n },\r\n dayLabel: {\r\n fontWeight: fontWeights.medium,\r\n color: greys[400],\r\n },\r\n switchHeader: {\r\n borderBottom: createBorder(greys[100]),\r\n },\r\n },\r\n MuiPickersDay: {\r\n day: {\r\n color: greys[400],\r\n },\r\n daySelected: {\r\n backgroundColor: mainColor,\r\n },\r\n current: {\r\n border: createBorder(greys[200]),\r\n color: greys[400],\r\n },\r\n },\r\n MuiTypography: {\r\n h4: {\r\n fontFamily: fontFamilyBase,\r\n },\r\n body2: {\r\n fontFamily: fontFamilyBase,\r\n },\r\n },\r\n MuiButton: {\r\n root: {\r\n fontFamily: fontFamilyBase,\r\n fontSize: 14,\r\n height: spacing(4.5),\r\n },\r\n sizeLarge: {\r\n height: spacing(5),\r\n },\r\n sizeSmall: {\r\n height: spacing(3.5),\r\n },\r\n },\r\n MuiIconButton: {\r\n root: {\r\n color: greys[700],\r\n },\r\n },\r\n MuiSvgIcon: {\r\n root: {\r\n width: '1.5rem',\r\n height: '1.5rem',\r\n },\r\n colorPrimary: {\r\n color: greys[700],\r\n },\r\n colorSecondary: {\r\n color: mainColor,\r\n },\r\n fontSizeSmall: {\r\n width: '1rem',\r\n height: '1rem',\r\n },\r\n },\r\n MuiDialogTitle: {\r\n root: {\r\n fontSize: 16,\r\n color: greys[700],\r\n fontWeight: fontWeights.medium,\r\n paddingLeft: spacing(2),\r\n paddingRight: spacing(2),\r\n },\r\n },\r\n MuiDialogContent: {\r\n root: {\r\n fontFamily: fontFamilyBase,\r\n paddingTop: 0,\r\n paddingBottom: 0,\r\n paddingLeft: spacing(2),\r\n paddingRight: spacing(2),\r\n },\r\n },\r\n MuiDialogContentText: {\r\n root: {\r\n fontSize: 14,\r\n color: greys[600],\r\n fontWeight: fontWeights.regular,\r\n marginBottom: spacing(3),\r\n },\r\n },\r\n MuiTableSortLabel: {\r\n icon: {\r\n width: '1rem',\r\n height: '1rem',\r\n },\r\n },\r\n MuiDialogActions: {\r\n root: {\r\n paddingLeft: spacing(1),\r\n paddingRight: spacing(1),\r\n },\r\n },\r\n MuiSnackbar: {\r\n root: {\r\n backgroundColor: greys[700],\r\n borderRadius: 0,\r\n },\r\n },\r\n\r\n MuiTextField: {\r\n root: {\r\n marginBottom: spacing(2),\r\n },\r\n },\r\n MuiInputLabel: {\r\n root: {\r\n fontFamily: fontFamilyBase,\r\n fontWeight: 500,\r\n transform: 'translate(0, 1.5px) scale(0.75) !important',\r\n },\r\n asterisk: {\r\n color: mainColor,\r\n },\r\n },\r\n MuiAppBar: {\r\n root: {\r\n backgroundColor: whiteBase,\r\n maxHeight: 64,\r\n },\r\n colorDefault: {\r\n backgroundColor: whiteBase,\r\n },\r\n },\r\n MuiAccordion: {\r\n root: {\r\n fontFamily: fontFamilyBase,\r\n border: createBorder(dividerColor, 1),\r\n '&$expanded': {\r\n margin: 0,\r\n },\r\n },\r\n },\r\n MuiCard: {\r\n root: {\r\n borderRadius: 2,\r\n },\r\n },\r\n MuiChip: {\r\n root: {\r\n backgroundColor: shades.gray06_t,\r\n height: spacing(3.5),\r\n padding: spacing(0.5),\r\n },\r\n label: {\r\n fontSize: spacing(1.5),\r\n fontWeight: fontWeights.medium,\r\n },\r\n deleteIcon: {\r\n height: spacing(2.5),\r\n width: spacing(2.5),\r\n },\r\n },\r\n MuiDropzoneArea: {\r\n root: {\r\n color: greys[600],\r\n },\r\n icon: {\r\n color: greys[600],\r\n },\r\n },\r\n MuiDropzonePreviewList: {\r\n removeButton: {\r\n color: greys[600],\r\n backgroundColor: shades.gray05_t,\r\n '&:hover': {\r\n backgroundColor: shades.gray05_t,\r\n },\r\n },\r\n },\r\n MuiAlert: {\r\n root: {\r\n borderRadius: 0,\r\n },\r\n standardSuccess: {\r\n border: createBorder(green.main),\r\n },\r\n standardInfo: {\r\n border: createBorder(blue.main),\r\n },\r\n standardWarning: {\r\n border: createBorder(yellow.main),\r\n },\r\n standardError: {\r\n border: createBorder(red.main),\r\n },\r\n },\r\n MuiAutocomplete: {\r\n groupLabel: {\r\n color: greys[400],\r\n fontWeight: fontWeights.regular,\r\n fontSize: 12,\r\n },\r\n },\r\n MuiCheckbox: {\r\n root: {\r\n color: greys[400],\r\n '&$checked': {\r\n color: `${mainColor} !important`,\r\n },\r\n '&$disabled': {\r\n color: `${greys[200]} !important`,\r\n },\r\n },\r\n checked: {},\r\n disabled: {},\r\n },\r\n MuiTableRow: {\r\n root: {\r\n border: `1px solid ${greys[200]}`,\r\n },\r\n },\r\n MuiTableCell: {\r\n root: {\r\n border: 'none',\r\n },\r\n head: {\r\n fontSize: 12,\r\n color: greys[600],\r\n width: '100%',\r\n },\r\n },\r\n MuiOutlinedInput: {\r\n root: {\r\n '&:hover': {\r\n backgroundColor: greys[50],\r\n },\r\n '&$focused': {\r\n backgroundColor: greys[50],\r\n },\r\n '&$disabled': {\r\n backgroundColor: 'transparent',\r\n color: greys[300],\r\n },\r\n marginTop: 20,\r\n fontSize: 16,\r\n lineHeight: '22px',\r\n padding: '8px 12px',\r\n border: `1px solid ${greys[100]}`,\r\n borderRadius: '2px',\r\n backgroundColor: 'transparent',\r\n },\r\n notchedOutline: {\r\n border: 0,\r\n },\r\n input: {\r\n backgroundColor: 'transparent',\r\n height: 22,\r\n padding: 0,\r\n },\r\n },\r\n MuiSelect: {\r\n icon: {\r\n right: spacing(2),\r\n },\r\n select: {\r\n backgroundColor: 'inherit !important',\r\n },\r\n },\r\n MuiFormLabel: {\r\n root: {\r\n fontSize: '0.875rem',\r\n lineHeight: '1.25rem',\r\n fontWeight: fontWeights.bold,\r\n '&$disabled': {\r\n color: greys[600],\r\n },\r\n },\r\n asterisk: {\r\n color: mainColor,\r\n },\r\n },\r\n MuiFormControlLabel: {\r\n root: {\r\n marginRight: 0,\r\n },\r\n label: {\r\n '@media (max-width: 480px)': {\r\n fontSize: 14,\r\n },\r\n '&$disabled': {\r\n color: greys[300],\r\n },\r\n },\r\n disabled: {},\r\n },\r\n MuiFormHelperText: {\r\n root: {\r\n display: 'flex',\r\n position: 'relative',\r\n fontWeight: fontWeights.medium,\r\n },\r\n contained: {\r\n marginLeft: 0,\r\n marginRight: 0,\r\n },\r\n },\r\n MuiListItemText: {\r\n primary: {\r\n fontSize: 14,\r\n fontFamily: fontFamilyBase,\r\n },\r\n multiline: {\r\n marginTop: spacing(0.25),\r\n marginBottom: spacing(0.25),\r\n },\r\n },\r\n MuiListItemIcon: {\r\n root: {\r\n minWidth: spacing(5),\r\n },\r\n },\r\n MuiDrawer: {\r\n paper: {\r\n width: 256,\r\n },\r\n root: {\r\n zIndex: 1000,\r\n },\r\n },\r\n MuiFilledInput: {\r\n root: {\r\n minHeight: 40,\r\n marginTop: 20,\r\n borderRadius: '2px !important',\r\n paddingTop: '0 !important',\r\n border: `1px solid rgba(0,0,0,0.34)`,\r\n backgroundColor: 'transparent',\r\n '&:hover': {\r\n backgroundColor: greys[50],\r\n },\r\n '&$focused': {\r\n backgroundColor: greys[50],\r\n },\r\n '&$disabled': {\r\n backgroundColor: 'transparent',\r\n color: greys[300],\r\n },\r\n '&$error': {\r\n border: `1px solid ${mainColor}`,\r\n },\r\n },\r\n multiline: {\r\n paddingTop: spacing(1),\r\n paddingBottom: spacing(1),\r\n },\r\n input: {\r\n paddingTop: spacing(1),\r\n paddingBottom: spacing(1),\r\n },\r\n underline: {\r\n '&::before': {\r\n display: 'none',\r\n },\r\n '&::after': {\r\n display: 'none',\r\n },\r\n },\r\n adornedStart: {\r\n paddingLeft: 0,\r\n },\r\n adornedEnd: {\r\n paddingRight: 0,\r\n },\r\n },\r\n },\r\n props: {\r\n MuiTextField: {\r\n fullWidth: true,\r\n variant: 'filled',\r\n },\r\n MuiCard: {},\r\n },\r\n});\r\n","import { createMuiTheme, Theme, ThemeOptions } from '@material-ui/core/styles';\r\nimport {\r\n PaletteOptions,\r\n PaletteColorOptions,\r\n Palette,\r\n PaletteColor,\r\n} from '@material-ui/core/styles/createPalette';\r\nimport { Overrides } from '@material-ui/core/styles/overrides';\r\n\r\nexport interface Shades {\r\n gray06_t: string;\r\n gray05_t: string;\r\n red05_t: string;\r\n red10_t: string;\r\n red80_t: string;\r\n red1_10: string;\r\n}\r\nexport interface AbbPalette extends Palette {\r\n blue?: PaletteColor;\r\n green?: PaletteColor;\r\n yellow?: PaletteColor;\r\n red?: PaletteColor;\r\n orange?: PaletteColor;\r\n shades?: Shades;\r\n}\r\nexport interface AbbTheme extends Theme {\r\n palette: AbbPalette;\r\n}\r\nexport interface AbbPaletteOptions extends PaletteOptions {\r\n blue?: PaletteColorOptions;\r\n green?: PaletteColorOptions;\r\n yellow?: PaletteColorOptions;\r\n orange?: PaletteColorOptions;\r\n red?: PaletteColorOptions;\r\n shades?: Shades;\r\n}\r\nexport interface AbbOverrides extends Overrides {\r\n /* eslint-disable no-alert, @typescript-eslint/no-explicit-any */\r\n MuiPickersToolbar?: any;\r\n MuiPickersCalendarHeader?: any;\r\n MuiPickersDay?: any;\r\n MuiAutocomplete?: any;\r\n MuiAlert?: any;\r\n MuiDropzoneArea?: any;\r\n MuiDropzonePreviewList?: any;\r\n /* eslint-enable no-alert, @typescript-eslint/no-explicit-any */\r\n}\r\nexport interface AbbThemeOptions extends ThemeOptions {\r\n palette: AbbPaletteOptions;\r\n overrides: AbbOverrides;\r\n}\r\n\r\nexport function createAbbTheme(options: AbbThemeOptions): AbbTheme {\r\n const themeBase = createMuiTheme({\r\n ...options,\r\n palette: {\r\n ...options.palette,\r\n },\r\n }) as Theme;\r\n\r\n return themeBase;\r\n}\r\n","import styled from 'styled-components';\r\n\r\nimport { theme } from 'theme/themeBase';\r\nimport { Card } from 'components/Page';\r\nimport { CardProps } from 'components/Page/Card/Card';\r\n\r\nexport const StyledCard = styled(Card)`\r\n margin-bottom: ${({ theme }) => theme.spacing(2)}px;\r\n`;\r\n\r\nexport const autocompleteInputStyles = {\r\n backgroundColor: theme.palette.background.default,\r\n};\r\n","import { useState } from 'react';\r\nimport BusinessUnitIcon from '@material-ui/icons/Business';\r\nimport PhoneIcon from '@material-ui/icons/Phone';\r\nimport EmailIcon from '@material-ui/icons/AlternateEmail';\r\nimport SearchIcon from '@material-ui/icons/Search';\r\n\r\nimport { List, ListItem } from 'components/List';\r\nimport { AutocompleteField } from 'components/Field';\r\nimport { formatUserName } from 'utils/formatUserName';\r\nimport { Loader } from 'components/Loader/Loader';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport { useBusinessUnitContactsQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { BusinessUnitContact } from 'Dictionary/model/BusinessUnitContact';\r\nimport {\r\n autocompleteInputStyles,\r\n StyledCard,\r\n} from './BusinessUnitContacts.style';\r\n\r\nexport const getUniqBusinessUnits = (\r\n buContacts: BusinessUnitContact[]\r\n): AutocompleteFieldItem[] =>\r\n buContacts.filter((bu, i, arr) => arr.findIndex(t => t.businessUnit.id === bu.businessUnit.id) === i)\r\n .map((buContact) => ({\r\n id: buContact.businessUnit.id,\r\n name: buContact.businessUnit.description,\r\n }));\r\n\r\nexport const filterBUContacts = (\r\n filter: AutocompleteFieldItem | null,\r\n list: BusinessUnitContact[]\r\n): BusinessUnitContact[] =>\r\n filter\r\n ? list.filter((buContact) => buContact.businessUnit.id === filter.id)\r\n : list;\r\n\r\nexport const BusinessUnitContacts = () => {\r\n const { data, isLoading } = useBusinessUnitContactsQuery();\r\n const [selectedBU, setSelectedBU] = useState(\r\n null\r\n );\r\n\r\n if (isLoading) {\r\n return ;\r\n }\r\n\r\n const buContactsToDisplay = filterBUContacts(selectedBU, data ?? []);\r\n\r\n return (\r\n <>\r\n ,\r\n }}\r\n onChange={(event, value) =>\r\n setSelectedBU(value as AutocompleteFieldItem)\r\n }\r\n />\r\n {buContactsToDisplay.map((unit, index) => {\r\n const fullName = formatUserName(`${unit.firstName} ${unit.lastName}`);\r\n return (\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\nimport Typography, { TypographyProps } from '@material-ui/core/Typography';\r\n\r\nexport const StyledSubheaderTypography = styled(Typography)`\r\n && {\r\n margin-left: ${({ theme }) => theme.spacing(1.5)}px;\r\n }\r\n`;\r\n","import { FC } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\r\n\r\nimport { Content, Card } from 'components/Page';\r\nimport { Anchor } from 'components/Page/Anchor/Anchor';\r\nimport { TrainingMoviesList } from 'HelpAndSupport/component/TrainingMoviesList/TrainingMoviesList';\r\nimport { RolesInPcsTable } from 'HelpAndSupport/component/RolesInPcsTable/RolesInPcsTable';\r\nimport { BusinessUnitContacts } from 'HelpAndSupport/component/BusinessUnitContacts/BusinessUnitContacts';\r\nimport { StyledSubheaderTypography } from './HelpAndSupportPage.style';\r\n\r\nconst submitIncidentUrl = 'https://myservices.abb.com/cs_gr?id=is';\r\n\r\nexport const HelpAndSupportPage: FC = () => (\r\n (\r\n \r\n \r\n \r\n Submit incident/request\r\n \r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n {/* \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","import { apiClient } from 'service';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { UserCertifications } from 'Certificate/model/UserCertifications';\r\nimport { PlanRequirements } from 'Requirement/model/PlanRequirements';\r\nimport { UserHistory } from 'Certificate/model/UserHistory';\r\nimport { UserTrainingSet } from 'Certificate/model/UserTraningSet';\r\n\r\nconst domainPath = '/certificates';\r\n\r\nconst getMyCertificates = async (): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/my`);\r\n\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getUserCertifications = async (\r\n userId: string\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/user/${userId}`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getUserHistory = async (userId: string): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `${domainPath}/user/${userId}/history`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n //throw new ApiError(e);\r\n return null;\r\n }\r\n};\r\n\r\nconst updateUserHistory = async (userId: string): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/user/${userId}/history/update`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getPlanRequirements = async (\r\n certificatePlanId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `/certification-plans/${certificatePlanId}/requirements`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getUserTraningSets = async (\r\n userId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `certificates/user/${userId}/training-sets`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const certificateApi = {\r\n getMyCertificates,\r\n getUserCertifications,\r\n getUserHistory,\r\n updateUserHistory,\r\n getPlanRequirements,\r\n getUserTraningSets\r\n};\r\n","import { useQuery } from 'react-query';\r\n\r\nimport { UserCertifications } from 'Certificate/model/UserCertifications';\r\nimport { certificateApi } from 'Certificate/service/certificate.api';\r\nimport { UserHistory } from 'Certificate/model/UserHistory';\r\nimport { UserTrainingSet } from 'Certificate/model/UserTraningSet';\r\n\r\n\r\nexport const myCertificationsKey = 'my-certifications';\r\nexport const useMyCertificationsQuery = () =>\r\n useQuery(\r\n myCertificationsKey,\r\n certificateApi.getMyCertificates\r\n );\r\n\r\nexport const userCertificationsKey = 'user-certifications';\r\nexport const useUserCertificationsQuery = (userId: string) =>\r\n useQuery([userCertificationsKey, userId], () =>\r\n certificateApi.getUserCertifications(userId)\r\n );\r\n\r\nexport const userHistoryKey = 'user-history';\r\nexport const useUserHistoryQuery = (userId: string) =>\r\n useQuery([userHistoryKey, userId], () =>\r\n certificateApi.getUserHistory(userId)\r\n );\r\n\r\nexport const userTraningSets = 'user-traning-sets';\r\nexport const useUserTraningSetsQuery = (userId: number) =>\r\n useQuery([userHistoryKey, userId], () =>\r\n certificateApi.getUserTraningSets(userId)\r\n );\r\n","export enum CPStatusType {\r\n InProcess = 0, // In Process / Enrolled\r\n WaitingApproval = 1, // Waiting Approval\r\n Approved = 2, // Completed\r\n Expiring = 3, // Expiring\r\n WaitingRenewal = 4, // Waiting Renewal\r\n Renewed = 5, // inactive skip mapping\r\n Expired = 6, // Expired\r\n Withdrawn = 7, // inactive skip mapping\r\n ObjectveExpired = 8, // inactive skip mapping\r\n PrerequisiteExpired = 9, // inactive skip mapping\r\n WaitingRenewalExpired = 10, // Waiting Renewal (Expired)\r\n Rejected = 11, // Rejected\r\n PendingQuestionnaire = 21,\r\n PendingQuestionnaireExpired = 22,\r\n RenewalEnrollment = 23,\r\n RenewalEnrollmentExpired = 24,\r\n ExpiringNoRenewal = 25, // Expiring without possibility to renew\r\n ExpiredNoRenewal = 26, // Expired without possibility to renew\r\n NotEnrolled = 44, // NotEnrolled (for missing prerequisites)\r\n RemovalPending = 98, // inactive skip mapping\r\n Removed = 99, // Removed\r\n}\r\n","import { makeStyles } from '@material-ui/core';\r\nimport { HtmlHTMLAttributes } from 'react';\r\nimport clsx from 'clsx';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\n\r\nexport type AbbColor = 'blue' | 'grey' | 'green' | 'red' | 'yellow' | 'orange';\r\nexport type ColorTone = 'light' | 'default';\r\n\r\nexport interface StatusChipProps\r\n extends Omit, 'children'> {\r\n label: string;\r\n color?: AbbColor;\r\n variant?: ColorTone;\r\n}\r\n\r\nconst useStyles = makeStyles(\r\n //@ts-ignore\r\n (theme: AbbTheme) => ({\r\n root: {\r\n ...theme.typography.caption,\r\n lineHeight: '0.75rem',\r\n display: 'inline-flex',\r\n alignItems:\"center\",\r\n margin: theme.spacing(0.5),\r\n minHeight: 20,\r\n borderRadius: 4,\r\n padding: theme.spacing(0, 0.75),\r\n textAlign: 'center',\r\n fontWeight: theme.typography.fontWeightBold,\r\n '&$grey': {\r\n color: theme.palette.common.white,\r\n backgroundColor: theme.palette.grey[400],\r\n '&$light': {\r\n color: theme.palette.grey[600],\r\n backgroundColor: theme.palette.grey[200],\r\n },\r\n },\r\n '&$blue': {\r\n color: theme.palette.common.white,\r\n backgroundColor: theme.palette.blue?.main,\r\n '&$light': {\r\n color: theme.palette.blue?.main,\r\n backgroundColor: theme.palette.blue?.light,\r\n },\r\n },\r\n '&$green': {\r\n color: theme.palette.common.white,\r\n backgroundColor: theme.palette.green?.main,\r\n '&$light': {\r\n color: theme.palette.green?.main,\r\n backgroundColor: theme.palette.green?.light,\r\n },\r\n },\r\n '&$red': {\r\n color: theme.palette.common.white,\r\n backgroundColor: theme.palette.red?.main,\r\n '&$light': {\r\n color: theme.palette.red?.main,\r\n backgroundColor: theme.palette.red?.light,\r\n },\r\n },\r\n '&$orange': {\r\n color: theme.palette.common.white,\r\n backgroundColor: theme.palette.orange?.main,\r\n '&$light': {\r\n color: theme.palette.orange?.main,\r\n backgroundColor: theme.palette.orange?.light,\r\n },\r\n },\r\n '&$yellow': {\r\n color: theme.palette.common.white,\r\n backgroundColor: theme.palette.yellow?.main,\r\n '&$light': {\r\n color: theme.palette.grey[600],\r\n backgroundColor: theme.palette.yellow?.light,\r\n },\r\n },\r\n },\r\n blue: {},\r\n grey: {},\r\n green: {},\r\n red: {},\r\n orange: {},\r\n yellow: {},\r\n light: {},\r\n default: {},\r\n }),\r\n { name: 'StatusChip' }\r\n);\r\n\r\nexport const StatusChip = (props: StatusChipProps) => {\r\n const {\r\n className,\r\n label,\r\n color = 'grey',\r\n variant = 'light',\r\n ...other\r\n } = props;\r\n const classes = useStyles(props);\r\n return (\r\n \r\n {label}\r\n \r\n );\r\n};\r\n\r\nexport default StatusChip;\r\n","import { HtmlHTMLAttributes, memo } from 'react';\r\nimport { CPStatusType } from 'enums/CPStatusType';\r\nimport { AbbColor, StatusChip } from './StatusChip';\r\n\r\nexport interface CPStatusChipProps\r\n extends Omit, 'children' | 'color'> {\r\n status: CPStatusType;\r\n}\r\n\r\ninterface CPStatusTypeMap {\r\n label: string;\r\n color: AbbColor;\r\n}\r\n\r\nconst mapCPStatusType = (status: CPStatusType): CPStatusTypeMap => {\r\n switch (status) {\r\n case CPStatusType.InProcess:\r\n return {\r\n label: 'In Process',\r\n color: 'blue',\r\n };\r\n case CPStatusType.WaitingApproval:\r\n return {\r\n label: 'Waiting Approval',\r\n color: 'yellow',\r\n };\r\n case CPStatusType.Approved:\r\n return {\r\n label: 'Completed',\r\n color: 'green',\r\n };\r\n case CPStatusType.Expiring:\r\n return {\r\n label: 'Expiring',\r\n color: 'orange',\r\n };\r\n case CPStatusType.ExpiringNoRenewal:\r\n return {\r\n label: 'Expiring (No Renewal)',\r\n color: 'orange',\r\n };\r\n case CPStatusType.WaitingRenewal:\r\n return {\r\n label: 'Waiting Renewal',\r\n color: 'blue',\r\n };\r\n case CPStatusType.Expired:\r\n return {\r\n label: 'Expired',\r\n color: 'red',\r\n };\r\n case CPStatusType.ExpiredNoRenewal:\r\n return {\r\n label: 'Expired (No Renewal)',\r\n color: 'red',\r\n };\r\n case CPStatusType.WaitingRenewalExpired:\r\n return {\r\n label: 'Waiting Renewal (Expired)',\r\n color: 'red',\r\n };\r\n case CPStatusType.PendingQuestionnaire:\r\n return {\r\n label: 'Pending Renewal Questionnaire',\r\n color: 'blue',\r\n };\r\n case CPStatusType.PendingQuestionnaireExpired:\r\n return {\r\n label: 'Pending Renewal Questionnaire (Expired)',\r\n color: 'red',\r\n };\r\n case CPStatusType.RenewalEnrollment:\r\n return {\r\n label: 'Pending Renewal Enrollment',\r\n color: 'blue',\r\n };\r\n case CPStatusType.RenewalEnrollmentExpired:\r\n return {\r\n label: 'Pending Renewal Enrollment (Expired)',\r\n color: 'red',\r\n };\r\n case CPStatusType.Rejected:\r\n return {\r\n label: 'Rejected',\r\n color: 'red',\r\n };\r\n case CPStatusType.Removed:\r\n return {\r\n label: 'Removed',\r\n color: 'red',\r\n };\r\n case CPStatusType.NotEnrolled:\r\n return {\r\n label: 'Not Enrolled',\r\n color: 'grey',\r\n };\r\n default:\r\n return {\r\n label: 'Unknown',\r\n color: 'grey',\r\n };\r\n }\r\n};\r\n\r\nexport const CPStatusChip = (props: CPStatusChipProps) => {\r\n const { className, status, ...other } = props;\r\n const map = mapCPStatusType(status);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default memo(CPStatusChip, (prev, next) => prev.status === next.status);\r\n","export enum EnrollmentRequestStatus {\r\n Pending = 'Pending',\r\n Approved = 'Approved',\r\n Rejected = 'Rejected',\r\n}\r\n","import { HtmlHTMLAttributes, memo } from 'react';\r\nimport { EnrollmentRequestStatus } from 'enums/EnrollmentRequestStatus';\r\nimport { AbbColor, StatusChip } from './StatusChip';\r\n\r\nexport interface EnrollmentRequestStatusChipProps\r\n extends Omit, 'children' | 'color'> {\r\n status: EnrollmentRequestStatus;\r\n}\r\n\r\ninterface StatusTypeMap {\r\n label: string;\r\n color: AbbColor;\r\n}\r\n\r\nconst mapCPStatusType = (status: EnrollmentRequestStatus): StatusTypeMap => {\r\n switch (status) {\r\n case EnrollmentRequestStatus.Pending:\r\n return {\r\n label: 'Pending',\r\n color: 'yellow',\r\n };\r\n case EnrollmentRequestStatus.Approved:\r\n return {\r\n label: 'Approved',\r\n color: 'green',\r\n };\r\n case EnrollmentRequestStatus.Rejected:\r\n return {\r\n label: 'Rejected',\r\n color: 'red',\r\n };\r\n default:\r\n return {\r\n label: 'Unknown',\r\n color: 'grey',\r\n };\r\n }\r\n};\r\n\r\nexport const EnrollmentRequestStatusChip = (\r\n props: EnrollmentRequestStatusChipProps\r\n) => {\r\n const { className, status, ...other } = props;\r\n const map = mapCPStatusType(status);\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default memo(\r\n EnrollmentRequestStatusChip,\r\n (prev, next) => prev.status === next.status\r\n);\r\n","export enum RequirementWorkFlowActions {\r\n Submit,\r\n Approve,\r\n Reject,\r\n Reset,\r\n BackToWaitingApproval,\r\n Renew,\r\n EditDates,\r\n}\r\n\r\nexport const requirementWorFlowActionsArray = [\r\n RequirementWorkFlowActions.Submit,\r\n RequirementWorkFlowActions.Approve,\r\n RequirementWorkFlowActions.Reject,\r\n RequirementWorkFlowActions.Reset,\r\n RequirementWorkFlowActions.BackToWaitingApproval,\r\n RequirementWorkFlowActions.Renew,\r\n RequirementWorkFlowActions.EditDates,\r\n];\r\n","import {\r\n requirementWorFlowActionsArray,\r\n RequirementWorkFlowActions,\r\n} from 'enums/RequirementWorkFlowActions';\r\nimport { CPStatusType } from '../../enums/CPStatusType';\r\nimport { CertificateApproverType } from '../../enums/CertificateApproverType';\r\n\r\nexport type ListExpirationTime = number | 'Never';\r\n\r\nexport interface Requirement {\r\n id: number;\r\n certificatePlanId: number;\r\n approverType: CertificateApproverType;\r\n approverTypeLabel: string;\r\n approverTypeDescription: string;\r\n approvalGroupName: string;\r\n isValid: false;\r\n listCode: string;\r\n listDescription: string;\r\n listExtendedDescription: string;\r\n listFreeTextComment: string;\r\n listExpirationTime: ListExpirationTime;\r\n myLearningLink: string;\r\n myLearningLinkDescription: string;\r\n externalLink: string;\r\n externalLinkName: string;\r\n planDescription: string;\r\n enrollDate: string;\r\n approvalDate: string;\r\n renewalDate: string;\r\n submitDate: string;\r\n status: CPStatusType;\r\n expirationDate: string;\r\n userActions: RequirementWorkFlowActions[];\r\n additionalNotesCount: number;\r\n isAttachmentMandatory: boolean;\r\n}\r\n\r\nexport const parseSelectedRequirementIds = (\r\n selectedRequirementIds: string[]\r\n): number[] => selectedRequirementIds.map((row) => Number(row));\r\n\r\nexport const getSelectedRequirements = (\r\n requirements: Requirement[],\r\n selectedRequirementIds: string[]\r\n): Requirement[] => {\r\n const requirementIds = parseSelectedRequirementIds(selectedRequirementIds);\r\n return requirements\r\n .filter((requirement) => requirementIds.includes(requirement.id));\r\n};\r\n\r\nexport const getRequirementWorkflowActions = (\r\n requirements: Requirement[],\r\n selectedRequirementIds: string[]\r\n): RequirementWorkFlowActions[] => {\r\n const requirementIds = parseSelectedRequirementIds(selectedRequirementIds);\r\n return requirementIds.length ? \r\n requirements\r\n .filter((requirement) => requirementIds.includes(requirement.id))\r\n .reduce(\r\n (workflowActionsAcc, currentRequirement) =>\r\n workflowActionsAcc.filter((workflowAction) =>\r\n currentRequirement.userActions.includes(workflowAction)\r\n ),\r\n requirementWorFlowActionsArray \r\n ) : []\r\n ;\r\n};\r\n","import { apiClient } from 'service';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { PlanRequirements } from 'Requirement/model/PlanRequirements';\r\nimport {\r\n RejectRequirementPlanActionParams,\r\n RequirementPlanActionParams,\r\n} from 'Requirement/model/RequirementPlanActionParams';\r\n\r\nconst domainPath = '/requirements';\r\n\r\nconst getPlanRequirements = async (\r\n certificatePlanId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `/certification-plans/${certificatePlanId}/requirements`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst addComment = async (id: number, comment: string): Promise => {\r\n try {\r\n const response = await apiClient.post(`${domainPath}/${id}/comments`, {\r\n comment,\r\n });\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst submit = async (\r\n params: RequirementPlanActionParams\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `/certification/${params.certificateId}/requirements/submit`,\r\n params.requirementIds\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst renew = async (params: RequirementPlanActionParams): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/${params.certificateId}/renew`,\r\n params.requirementIds\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst approve = async (\r\n params: RequirementPlanActionParams\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/${params.certificateId}/approve`,\r\n params.requirementIds\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst reject = async (\r\n params: RejectRequirementPlanActionParams\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/${params.certificateId}/reject`,\r\n {\r\n rejectReason: params.rejectReason,\r\n requirementIds: params.requirementIds,\r\n }\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst reset = async (params: RequirementPlanActionParams): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/${params.certificateId}/reset`,\r\n params.requirementIds\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst resetToApproval = async (\r\n params: RequirementPlanActionParams\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/${params.certificateId}/reset-to-approval`,\r\n params.requirementIds\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport interface UpdateRequirementsDatesDto {\r\n requirementsIds: number[];\r\n submitDate: string | null;\r\n expirationDate: string | null;\r\n approvedDate: string | null;\r\n}\r\nconst updateDates = async (\r\n updateDto: UpdateRequirementsDatesDto,\r\n certificatePlanId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.patch(\r\n `${domainPath}/${certificatePlanId}/update-dates`,\r\n updateDto\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const requirementApi = {\r\n getPlanRequirements,\r\n addComment,\r\n submit,\r\n renew,\r\n approve,\r\n reset,\r\n reject,\r\n resetToApproval,\r\n updateDates,\r\n};\r\n","import { useQuery } from 'react-query';\r\n\r\nimport { PlanRequirements } from 'Requirement/model/PlanRequirements';\r\nimport { requirementApi } from 'Requirement/service/requirement.api';\r\n\r\nexport const planRequirementsKey = 'plan-requirements';\r\nexport const usePlanRequirementsQuery = (certificatePlanId: number) =>\r\n useQuery([planRequirementsKey, certificatePlanId], () =>\r\n requirementApi.getPlanRequirements(certificatePlanId)\r\n );\r\n","export enum CertificateApproverType {\r\n CertificationAuthority = 0,\r\n Supervisor = 1,\r\n HierarchicalResponsible = 2,\r\n ApprovedByRules = 3,\r\n AutomaticallyApprovedWhenSubmitted = 4,\r\n ApproverGroup = 5,\r\n AtomaticllyWhenAllCompleted = 6,\r\n CertificationRequestForm = 7,\r\n CompanyCoordinator = 8,\r\n}\r\n\r\nexport const getCertificateApprover = (\r\n type: CertificateApproverType\r\n): string => {\r\n switch (type) {\r\n case CertificateApproverType.ApprovedByRules:\r\n return 'Approved by rules';\r\n case CertificateApproverType.ApproverGroup:\r\n return 'Approver group';\r\n case CertificateApproverType.AtomaticllyWhenAllCompleted:\r\n return 'Automatically when all completed';\r\n case CertificateApproverType.AutomaticallyApprovedWhenSubmitted:\r\n return 'Automatically approved when submitted';\r\n case CertificateApproverType.CertificationAuthority:\r\n return 'Certification authority';\r\n case CertificateApproverType.CertificationRequestForm:\r\n return 'Certification request form';\r\n case CertificateApproverType.HierarchicalResponsible:\r\n return 'Hierarchical responsible';\r\n case CertificateApproverType.Supervisor:\r\n return 'Supervisor';\r\n case CertificateApproverType.CompanyCoordinator:\r\n return 'Int/Ext Company Coordinator';\r\n default:\r\n return 'Unknown';\r\n }\r\n}\r\n","import { apiClient } from 'service';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { CertificationPlansDetails } from '../model/CertificationPlansDetails';\r\nimport { CertificationPlanHistory } from '../model/CertificationPlanHistory';\r\nimport { CertificationPlanRequirementComment } from '../model/CertificationPlanRequirementComment';\r\nimport { SaveQuestionnarieDetails } from '../model/QuestionnarieDetails';\r\n\r\nconst domainPath = '/certification-plans';\r\n\r\nconst getRootPath = (certificationPlanId: number): string =>\r\n `/certification-plans/${certificationPlanId}`;\r\n\r\nconst getCertificationPlan = async (\r\n certificationPlanId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(getRootPath(certificationPlanId));\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getCertificationPlanHistory = async (\r\n certificationPlanId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `${getRootPath(certificationPlanId)}/history`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getCertificationRequirementComments = async (\r\n requirementId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `${domainPath}/requirements/${requirementId}/comments`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst submitQuestionnarie = async (\r\n certificationPlanId: number,\r\n data: SaveQuestionnarieDetails\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${getRootPath(certificationPlanId)}/questionnaires`,\r\n data\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const certificationPlanApi = {\r\n getCertificationPlan,\r\n getCertificationPlanHistory,\r\n getCertificationRequirementComments,\r\n submitQuestionnarie,\r\n};\r\n","import { useQuery } from 'react-query';\r\n\r\nimport { CertificationPlansDetails } from '../model/CertificationPlansDetails';\r\nimport { CertificationPlanRequirementComment } from '../model/CertificationPlanRequirementComment';\r\nimport { certificationPlanApi } from '../service/certificationPlans.api';\r\n\r\nexport const certificationPlansKey = 'certification-plans-details';\r\nexport const useCertificationPlansQuery = (certificatePlanId: number) =>\r\n useQuery(\r\n [certificationPlansKey, certificatePlanId],\r\n () => certificationPlanApi.getCertificationPlan(certificatePlanId)\r\n );\r\n\r\nexport const certificationRequirementCommentsKey =\r\n 'certification-requirement-comments';\r\nexport const useCertificationRequirementCommentsQuery = (\r\n requirementId: number\r\n) =>\r\n useQuery(\r\n [certificationRequirementCommentsKey, requirementId],\r\n () =>\r\n certificationPlanApi.getCertificationRequirementComments(requirementId)\r\n );\r\n","import { apiClient } from 'service';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { CertificationPlansDetails } from '../model/CertificationPlansDetails';\r\n\r\nconst getActionPath = (certificatePlanId: number, action: string): string =>\r\n `/certification-plans/${certificatePlanId}/${action}`;\r\n\r\nconst submit = async (certificatePlanId: number): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n getActionPath(certificatePlanId, 'submit')\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst submitWithDate = async (certificatePlanId: number, expirationDate: string): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n getActionPath(certificatePlanId, 'submit-with-date'),\r\n { expirationDate }\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst approve = async (certificatePlanId: number, expirationDate?: string): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n getActionPath(certificatePlanId, 'approve'),\r\n { expirationDate }\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst reject = async (\r\n certificatePlanId: number,\r\n reason: string\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n getActionPath(certificatePlanId, 'reject'),\r\n { reason }\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst reset = async (certificatePlanId: number): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n getActionPath(certificatePlanId, 'reset')\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst resetToApproval = async (certificatePlanId: number): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n getActionPath(certificatePlanId, 'reset-to-approval')\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst submitForRenew = async (certificatePlanId: number): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n getActionPath(certificatePlanId, 'submit-for-renew')\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst submitForRenewWithDate = async (certificatePlanId: number, expirationDate: string): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n getActionPath(certificatePlanId, 'submit-for-renew-with-date'),\r\n { expirationDate }\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst renew = async (certificatePlanId: number, expirationDate?: string): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n getActionPath(certificatePlanId, 'renew'),\r\n { expirationDate }\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst approveRenewalEnro = async (certificatePlanId: number): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n getActionPath(certificatePlanId, 'renew-enro-approve')\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst rejectRenewalEnro = async (certificatePlanId: number): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n getActionPath(certificatePlanId, 'renew-enro-reject')\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst remove = async (certificatePlanId: number): Promise => {\r\n try {\r\n const response = await apiClient.delete(\r\n `/certification-plans/${certificatePlanId}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst approveEnrollRequest = async (\r\n certificatePlanId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `/certification-plans/enroll-request/${certificatePlanId}/approve`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst rejectEnrollRequest = async (\r\n certificatePlanId: number,\r\n reason: string\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `/certification-plans/enroll-request/${certificatePlanId}/reject`,\r\n { reason }\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport interface UpdateDatesDto\r\n extends Pick<\r\n CertificationPlansDetails,\r\n 'approvedDate' | 'enrollmentDate' | 'expirationDate' | 'renewalDate' | 'dueDate' \r\n > {}\r\nconst updateDates = async (\r\n updateDto: UpdateDatesDto,\r\n certificatePlanId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.patch(\r\n `/certification-plans/${certificatePlanId}`,\r\n updateDto\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const certificationPlanWorkflowApi = {\r\n submit,\r\n approve,\r\n reject,\r\n reset,\r\n resetToApproval,\r\n submitForRenew,\r\n renew,\r\n approveRenewalEnro,\r\n rejectRenewalEnro,\r\n remove,\r\n updateDates,\r\n approveEnrollRequest,\r\n rejectEnrollRequest,\r\n submitWithDate,\r\n submitForRenewWithDate\r\n};\r\n","import styled from 'styled-components';\r\n\r\nexport const StyledForm = styled.form`\r\n max-width: 350px;\r\n`;\r\n","import { FC, FormEvent, useState } from 'react';\r\nimport { KeyboardDatePicker } from '@material-ui/pickers';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport { useMutation, useQueryClient } from 'react-query';\r\nimport { ApiError } from 'model';\r\nimport { formatTemplate } from 'utils';\r\nimport { ModalContent } from 'components/Page';\r\nimport { Button } from 'components';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { certificationPlansKey } from 'CertificationPlansPage/query/certificationPlansQuery';\r\nimport {\r\n certificationPlanWorkflowApi,\r\n UpdateDatesDto,\r\n} from 'CertificationPlansPage/service/certificationPlanWorkflow.api';\r\nimport { requirementApi, UpdateRequirementsDatesDto } from 'Requirement/service/requirement.api';\r\nimport { StyledForm } from './EditDatesModal.style';\r\nimport { Loader } from '../../../components/Loader/Loader';\r\n\r\nconst formId = 'certification-plan-details-edit-dates';\r\n\r\nexport interface EditDatesModalProps {\r\n certificatePlanId?: number;\r\n requirementsIds?: number[];\r\n initialEnrollmentDate: string | null;\r\n initialSubmitDate: string | null;\r\n initialExpirationDate: string | null;\r\n initialApprovedDate: string | null;\r\n initialRenewalDate: string | null;\r\n initialDueDate: string | null;\r\n onClose: () => void;\r\n onSuccess?: () => void;\r\n}\r\nconst getPickersDate = (dateOrNull: string | null): Dayjs | null =>\r\n dateOrNull ? dayjs(dateOrNull) : null;\r\n\r\nconst getUpdateDate = (dateOrNull: Dayjs | null): string | null =>\r\n dateOrNull ? dayjs(dateOrNull).toISOString() : null;\r\n\r\nexport const EditDatesModal: FC = ({\r\n certificatePlanId,\r\n requirementsIds,\r\n initialEnrollmentDate,\r\n initialSubmitDate,\r\n initialExpirationDate,\r\n initialApprovedDate,\r\n initialRenewalDate,\r\n initialDueDate,\r\n onClose,\r\n onSuccess,\r\n}) => {\r\n \r\n const queryClient = useQueryClient();\r\n const { showSuccess, showError } = useToasts();\r\n const { mutate, isLoading } = useMutation(\r\n () => {\r\n if(requirementsIds) \r\n return requirementApi.updateDates(\r\n getUpdateRequirementsDateDto(),\r\n certificatePlanId!\r\n );\r\n\r\n if(certificatePlanId)\r\n return certificationPlanWorkflowApi.updateDates(\r\n getUpdateDateDto(),\r\n certificatePlanId\r\n ); \r\n \r\n return Promise.resolve();\r\n },\r\n {\r\n onSuccess: () => {\r\n showSuccess('Update dates success');\r\n !requirementsIds && queryClient.invalidateQueries(certificationPlansKey);\r\n onSuccess && onSuccess();\r\n onClose();\r\n },\r\n onError: (error) => showError(error.message),\r\n }\r\n );\r\n\r\n const [enrollmentDate, setEnrollmentDate] = useState(\r\n getPickersDate(initialEnrollmentDate)\r\n );\r\n const [submitDate, setSubmitDate] = useState(\r\n getPickersDate(initialSubmitDate)\r\n );\r\n const [expirationDate, setExpirationDate] = useState(\r\n getPickersDate(initialExpirationDate)\r\n );\r\n const [approvedDate, setApprovedDate] = useState(\r\n getPickersDate(initialApprovedDate)\r\n );\r\n const [renewalDate, setRenewalDate] = useState(\r\n getPickersDate(initialRenewalDate)\r\n );\r\n const [dueDate, setDueDate] = useState(\r\n getPickersDate(initialDueDate)\r\n );\r\n\r\n const getUpdateDateDto = (): UpdateDatesDto => ({\r\n enrollmentDate: getUpdateDate(enrollmentDate),\r\n expirationDate: getUpdateDate(expirationDate),\r\n approvedDate: getUpdateDate(approvedDate),\r\n renewalDate: getUpdateDate(renewalDate),\r\n dueDate: getUpdateDate(dueDate),\r\n });\r\n\r\n const getUpdateRequirementsDateDto = (): UpdateRequirementsDatesDto => ({\r\n submitDate: getUpdateDate(submitDate),\r\n expirationDate: getUpdateDate(expirationDate),\r\n approvedDate: getUpdateDate(approvedDate),\r\n requirementsIds: requirementsIds!\r\n });\r\n\r\n const handleOnSubmit = (event: FormEvent) => {\r\n event.preventDefault();\r\n mutate();\r\n };\r\n\r\n return (\r\n (\r\n <>\r\n \r\n \r\n {isLoading ? : 'Save'}\r\n \r\n \r\n )}\r\n >\r\n \r\n {enrollmentDate && (\r\n { date && setEnrollmentDate(date.set('hour',12))} }\r\n format={formatTemplate}\r\n disabled={isLoading}\r\n autoOk\r\n />\r\n )}\r\n {submitDate && (\r\n { date && setSubmitDate(date.set('hour',12))} }\r\n format={formatTemplate}\r\n disabled={isLoading}\r\n autoOk\r\n />\r\n )}\r\n {approvedDate && (\r\n { date && setApprovedDate(date.set('hour',12))} }\r\n format={formatTemplate}\r\n disabled={isLoading}\r\n autoOk\r\n />\r\n )}\r\n {expirationDate && (\r\n { date && setExpirationDate(date.set('hour',12))} }\r\n format={formatTemplate}\r\n disabled={isLoading}\r\n autoOk\r\n />\r\n )} \r\n {renewalDate && (\r\n { date && setRenewalDate(date.set('hour',12))} }\r\n format={formatTemplate}\r\n disabled={isLoading}\r\n autoOk\r\n />\r\n )}\r\n {dueDate && (\r\n { date && setDueDate(date.set('hour',12))} }\r\n format={formatTemplate}\r\n disabled={isLoading}\r\n autoOk\r\n />\r\n )}\r\n \r\n \r\n );\r\n};\r\n","import { FC, ReactNode, useState } from 'react';\r\nimport { useMutation } from 'react-query';\r\n\r\nimport { RequirementWorkFlowActions } from 'enums/RequirementWorkFlowActions';\r\nimport { useModal, useMutating } from 'hooks';\r\nimport { Button } from 'components';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { ApiError } from 'model';\r\nimport { requirementApi } from 'Requirement/service/requirement.api';\r\nimport { EditDatesModal } from 'CertificationPlansPage/components/EditDatesModal/EditDatesModal';\r\nimport { RequirementPlanActionParams } from 'Requirement/model/RequirementPlanActionParams';\r\nimport { Loader } from 'components/Loader/Loader';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport { DialogContent, TextField } from '@material-ui/core';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport { Requirement } from 'Requirement/model/Requirement';\r\n\r\nexport interface RequirementPlanActionsProps {\r\n certificateId: number;\r\n requirementIds: number[];\r\n workflowActions: RequirementWorkFlowActions[];\r\n requirements: Requirement[];\r\n displayDisabledActions?: boolean;\r\n onActionSuccess?: () => void;\r\n}\r\n\r\nconst submitKey = 'requirement-submit';\r\nconst approveKey = 'requirement-approve';\r\nconst rejectKey = 'requirement-reject';\r\nconst resetKey = 'requirement-reset';\r\nconst backToWaitingApprovalKey = 'requirement-back-to-waiting-approval';\r\nconst renewKey = 'requirement-renew';\r\n\r\nexport const mutatingFilterKeys = [\r\n submitKey,\r\n approveKey,\r\n rejectKey,\r\n resetKey,\r\n backToWaitingApprovalKey,\r\n renewKey,\r\n];\r\n\r\nexport const getSuccessMessage = (actionKey: string): string => {\r\n switch (actionKey) {\r\n case submitKey:\r\n return 'Submit requirement action success';\r\n case approveKey:\r\n return 'Approve requirement action success';\r\n case resetKey:\r\n return 'Reset requirement action success';\r\n case rejectKey:\r\n return 'Reject requirement action success';\r\n case backToWaitingApprovalKey:\r\n return 'Back to waiting approval requirement action success';\r\n case renewKey:\r\n return 'Renew requirement action success';\r\n default:\r\n return 'Action success';\r\n }\r\n};\r\n\r\nexport const getButtonContent = (title: string, loading: boolean): ReactNode =>\r\n loading ? : title;\r\n\r\nexport const RequirementPlanActions: FC = ({\r\n certificateId,\r\n requirementIds,\r\n requirements,\r\n workflowActions,\r\n displayDisabledActions = true,\r\n onActionSuccess,\r\n}) => {\r\n const [isDialogOpen, setIsDialogOpen] = useState(false);\r\n const [reason, setReason] = useState('');\r\n const { showError, showSuccess } = useToasts();\r\n const isMutating = useMutating([...mutatingFilterKeys]);\r\n const params: RequirementPlanActionParams = { certificateId, requirementIds };\r\n\r\n const onSuccess = async (actionKey: string) => {\r\n showSuccess(getSuccessMessage(actionKey));\r\n onActionSuccess && onActionSuccess();\r\n };\r\n const onError = async (error: ApiError) => showError(error.message);\r\n const { mutate: submit, isLoading: submitLoading } = useMutation<\r\n unknown,\r\n ApiError\r\n >(() => requirementApi.submit(params), {\r\n mutationKey: submitKey,\r\n onSuccess: () => onSuccess(submitKey),\r\n onError,\r\n });\r\n const { mutate: renew, isLoading: renewLoading } = useMutation<\r\n unknown,\r\n ApiError\r\n >(() => requirementApi.renew(params), {\r\n mutationKey: renewKey,\r\n onSuccess: () => onSuccess(renewKey),\r\n onError,\r\n });\r\n const { mutate: approve, isLoading: approveLoading } = useMutation<\r\n unknown,\r\n ApiError\r\n >(() => requirementApi.approve(params), {\r\n mutationKey: approveKey,\r\n onSuccess: () => onSuccess(approveKey),\r\n onError,\r\n });\r\n const { mutate: reject, isLoading: rejectLoading } = useMutation<\r\n unknown,\r\n ApiError\r\n >(() => requirementApi.reject({ ...params, rejectReason: reason }), {\r\n mutationKey: rejectKey,\r\n onSuccess: async () => {\r\n await onSuccess(rejectKey);\r\n setReason('');\r\n },\r\n onError,\r\n });\r\n const { mutate: reset, isLoading: resetLoading } = useMutation<\r\n unknown,\r\n ApiError\r\n >(() => requirementApi.reset(params), {\r\n mutationKey: resetKey,\r\n onSuccess: () => onSuccess(resetKey),\r\n onError,\r\n });\r\n const {\r\n mutate: resetToApproval,\r\n isLoading: resetToApprovalLoading,\r\n } = useMutation(\r\n () => requirementApi.resetToApproval(params),\r\n {\r\n mutationKey: backToWaitingApprovalKey,\r\n onSuccess: () => onSuccess(backToWaitingApprovalKey),\r\n onError,\r\n }\r\n );\r\n const closeDialog = () => setIsDialogOpen(false);\r\n const renderRejectDialog = (): ReactNode => (\r\n \r\n Are you sure to reject?\r\n \r\n setReason(ev.target.value)}\r\n />\r\n \r\n \r\n \r\n {\r\n reject();\r\n closeDialog();\r\n }}\r\n disabled={!reason}\r\n >\r\n Reject\r\n \r\n \r\n \r\n );\r\n const getIsDisabled = (action: RequirementWorkFlowActions): boolean =>\r\n isMutating || !workflowActions.includes(action);\r\n const displayButton = (action: RequirementWorkFlowActions): boolean =>\r\n displayDisabledActions || workflowActions.includes(action);\r\n const { Modal, openModal } = useModal((closeModal) => (\r\n r.submitDate).find(date => !!date) ?? null}\r\n initialApprovedDate={requirements.map(r => r.approvalDate).find(date => !!date) ?? null}\r\n initialExpirationDate={requirements.map(r => r.expirationDate).find(date => !!date) ?? null}\r\n initialEnrollmentDate={null}\r\n initialDueDate={null}\r\n initialRenewalDate={null}\r\n onClose={closeModal}\r\n onSuccess={onActionSuccess}\r\n />\r\n ));\r\n\r\n return (\r\n <>\r\n {displayButton(RequirementWorkFlowActions.EditDates) && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n {displayButton(RequirementWorkFlowActions.BackToWaitingApproval) && (\r\n resetToApproval()}\r\n disabled={getIsDisabled(\r\n RequirementWorkFlowActions.BackToWaitingApproval\r\n )}\r\n >\r\n {getButtonContent('Back to waiting approval', resetToApprovalLoading)}\r\n \r\n )}\r\n {displayButton(RequirementWorkFlowActions.Renew) && (\r\n renew()}\r\n disabled={getIsDisabled(RequirementWorkFlowActions.Renew)}\r\n >\r\n {getButtonContent('Renew', renewLoading)}\r\n \r\n )}\r\n {displayButton(RequirementWorkFlowActions.Reset) && (\r\n reset()}\r\n disabled={getIsDisabled(RequirementWorkFlowActions.Reset)}\r\n >\r\n {getButtonContent('Reset', resetLoading)}\r\n \r\n )}\r\n {displayButton(RequirementWorkFlowActions.Reject) && (\r\n <>\r\n {renderRejectDialog()}\r\n setIsDialogOpen(true)}\r\n disabled={getIsDisabled(RequirementWorkFlowActions.Reject)}\r\n >\r\n {getButtonContent('Reject', rejectLoading)}\r\n \r\n \r\n )}\r\n {displayButton(RequirementWorkFlowActions.Approve) && (\r\n approve()}\r\n disabled={getIsDisabled(RequirementWorkFlowActions.Approve)}\r\n >\r\n {getButtonContent('Approve', approveLoading)}\r\n \r\n )}\r\n {displayButton(RequirementWorkFlowActions.Submit) && (\r\n submit()}\r\n disabled={getIsDisabled(RequirementWorkFlowActions.Submit)}\r\n color=\"secondary\"\r\n >\r\n {getButtonContent('Submit', submitLoading)}\r\n \r\n )}\r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\nimport Typography, { TypographyProps } from '@material-ui/core/Typography';\r\n\r\nexport const RequirementsBar = styled.div`\r\n padding: ${({ theme }) => theme.spacing(2, 2)};\r\n border-top: 1px solid ${({ theme }) => theme.palette.grey[200]};\r\n border-bottom: 1px solid ${({ theme }) => theme.palette.grey[200]};\r\n`;\r\n\r\nexport const DescriptionTypography = styled(Typography)`\r\n && {\r\n font-weight: ${({ theme }) => theme.typography.fontWeightBold};\r\n }\r\n`;\r\n\r\nexport const DescriptionCaptionTypography = styled(Typography)`\r\n display: block;\r\n margin-top: ${({ theme }) => theme.spacing(0.5)}px;\r\n`;\r\n","import { FC } from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport MyLearningIcon from '@material-ui/icons/OpenInNew';\r\n\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport { CPStatusChip } from 'components/StatusChip';\r\nimport { formatDate } from 'utils';\r\nimport { Anchor } from 'components/Page/Anchor/Anchor';\r\nimport {\r\n getRequirementWorkflowActions,\r\n getSelectedRequirements,\r\n parseSelectedRequirementIds,\r\n Requirement,\r\n} from 'Requirement/model/Requirement';\r\nimport { usePlanRequirementsQuery } from 'Requirement/query/requirementQuery';\r\nimport { getCertificateApprover } from 'enums/CertificateApproverType';\r\nimport { RequirementPlanActions } from 'Requirement/component/RequirementPlanActions/RequirementPlanActions';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport { DataObjectView } from 'components';\r\nimport {\r\n DataObjectList,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\nimport { useParams } from 'react-router-dom';\r\nimport { CertificationsByPersonDetailsParams } from 'route';\r\nimport { useUserCertificationsQuery } from 'Certificate/query/certificateQuery';\r\nimport { useMyProfileQuery } from 'MyProfile/query';\r\nimport {\r\n DescriptionCaptionTypography,\r\n DescriptionTypography,\r\n RequirementsBar,\r\n} from './PlanRequirementsTable.style';\r\n\r\nconst columns: DataTableColumn[] = [\r\n { field: 'listCode', headerName: 'Code' },\r\n {\r\n field: 'listDescription',\r\n headerName: 'Description',\r\n width: 300,\r\n renderField: (row) => (\r\n
\r\n \r\n {row.listDescription}\r\n \r\n {row.myLearningLink && (\r\n \r\n \r\n {row.myLearningLinkDescription}   \r\n \r\n \r\n )}\r\n \r\n {row.externalLink && (\r\n \r\n \r\n {row.externalLinkName ?? \"Link\"}\r\n \r\n \r\n )} \r\n
\r\n ),\r\n },\r\n {\r\n field: 'approverType',\r\n headerName: 'Approved by',\r\n renderField: ({ approverType }) => getCertificateApprover(approverType),\r\n },\r\n {\r\n field: 'submitDate',\r\n headerName: 'Submitted',\r\n renderField: ({ submitDate }) => formatDate(submitDate),\r\n },\r\n {\r\n field: 'approvalDate',\r\n headerName: 'Approved',\r\n //renderField: ({ approvalDate }) => formatDate(approvalDate),\r\n renderField: (row) => formatDate(row.renewalDate ?? row.approvalDate),\r\n },\r\n {\r\n field: 'expirationDate',\r\n headerName: 'Expiration',\r\n renderField: ({ expirationDate }) => formatDate(expirationDate),\r\n },\r\n {\r\n field: 'status',\r\n headerName: 'Status',\r\n renderField: ({ status }) => ,\r\n },\r\n];\r\n\r\nexport interface PlanRequirementsTableProps {\r\n certificateId: number;\r\n DataTableProps: Omit, 'rows' | 'columns'>;\r\n}\r\n\r\nconst noDataMessage = 'No requirements to display';\r\n\r\nexport const PlanRequirementsTable: FC = ({\r\n certificateId,\r\n DataTableProps,\r\n}) => {\r\n const { userId } = useParams();\r\n const { data, isLoading, refetch } = usePlanRequirementsQuery(certificateId);\r\n const { data: myProfile } = useMyProfileQuery();\r\n const { refetch: refetchUserCertifications } = useUserCertificationsQuery(\r\n (userId ?? myProfile?.id).toString()\r\n );\r\n return (\r\n <>\r\n \r\n \r\n \r\n Requirements {data?.requirementsDone ?? '0'}/\r\n {data?.requirementsCount ?? '0'}\r\n \r\n \r\n row.id}\r\n renderSelectedActions={(selectedRows, clearSelected) => (\r\n {\r\n refetch();\r\n refetchUserCertifications();\r\n clearSelected();\r\n }}\r\n />\r\n )}\r\n outerBorder={false}\r\n loading={isLoading}\r\n noDataMessage={noDataMessage}\r\n headerRowAlwaysOnTop={true}\r\n {...DataTableProps}\r\n />\r\n \r\n \r\n (\r\n (\r\n refetch()}\r\n displayDisabledActions={false}\r\n />\r\n )}\r\n />\r\n )}\r\n noDataMessage={noDataMessage}\r\n />\r\n \r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\nimport Typography, { TypographyProps } from '@material-ui/core/Typography';\r\n\r\nexport const TitleTypography = styled(Typography)`\r\n && {\r\n font-weight: ${({ theme }) => theme.typography.fontWeightBold};\r\n }\r\n`;\r\n","import { FC } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport ListIcon from '@material-ui/icons/List';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\n\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport { CPStatusChip } from 'components/StatusChip';\r\nimport { formatDate } from 'utils';\r\nimport { certificationPlansDetailsRoute } from 'route';\r\nimport { Certificate } from 'Certificate/model/Certificate';\r\nimport { PlanRequirementsTable } from 'Requirement/component/PlanRequirementsTable/PlanRequirementsTable';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport { TitleTypography } from 'Certificate/component/UserCertificateTable/UserCertificateTable.style';\r\nimport { Button, DataObjectView } from 'components';\r\nimport {\r\n DataObjectList,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\n\r\nexport const expiredColumns: DataTableColumn[] = [\r\n {\r\n field: 'title',\r\n headerName: 'Certificate',\r\n width: 400,\r\n renderField: ({ title }) => (\r\n {title}\r\n ),\r\n },\r\n { field: 'release', headerName: 'Release' },\r\n { field: 'levelDescription', headerName: 'Level' },\r\n {\r\n field: 'approvedDate',\r\n headerName: 'Approved on',\r\n renderField: ({ approvedDate }) => formatDate(approvedDate),\r\n },\r\n {\r\n field: 'expirationDate',\r\n headerName: 'Expiring date',\r\n renderField: ({ expirationDate }) => formatDate(expirationDate),\r\n },\r\n {\r\n field: 'status',\r\n headerName: 'Status',\r\n notSortable: true,\r\n renderField: ({ status }) => ,\r\n },\r\n];\r\n\r\nexport const pendingColumns: DataTableColumn[] = [\r\n {\r\n field: 'title',\r\n headerName: 'Certificate',\r\n width: 400,\r\n renderField: ({ title }) => (\r\n {title}\r\n ),\r\n },\r\n { field: 'release', headerName: 'Release' },\r\n { field: 'levelDescription', headerName: 'Level' },\r\n {\r\n field: 'enrollDate',\r\n headerName: 'Enrolled on',\r\n renderField: ({ enrollDate }) => formatDate(enrollDate),\r\n },\r\n {\r\n field: 'requirementsCount',\r\n headerName: 'Req',\r\n notSortable: true,\r\n renderField: ({ requirementsCount, requirementsDone }) =>\r\n `${requirementsDone}/${requirementsCount}`,\r\n },\r\n {\r\n field: 'status',\r\n headerName: 'Status',\r\n notSortable: true,\r\n renderField: ({ status }) => ,\r\n },\r\n];\r\n\r\nexport const completedColumns: DataTableColumn[] = [\r\n {\r\n field: 'title',\r\n headerName: 'Certificate',\r\n width: 400,\r\n renderField: ({ title }) => (\r\n {title}\r\n ),\r\n },\r\n { field: 'release', headerName: 'Release' },\r\n { field: 'levelDescription', headerName: 'Level' },\r\n {\r\n field: 'approvedDate',\r\n headerName: 'Approved on',\r\n renderField: ({ approvedDate }) => formatDate(approvedDate),\r\n },\r\n {\r\n field: 'expirationDate',\r\n headerName: 'Expiration date',\r\n renderField: ({ expirationDate }) => formatDate(expirationDate),\r\n },\r\n {\r\n field: 'status',\r\n headerName: 'Status',\r\n notSortable: true,\r\n renderField: ({ status }) => ,\r\n },\r\n];\r\n\r\nexport interface UserCertificateTableProps\r\n extends DataTableProps {}\r\n\r\nexport const UserCertificateTable: FC = ({\r\n columns,\r\n ...otherProps\r\n}) => {\r\n const history = useHistory();\r\n const handleOpenDetails = (certificateId: number) => () =>\r\n history.push(\r\n certificationPlansDetailsRoute.createRoute({\r\n certificationPlanId: String(certificateId),\r\n })\r\n );\r\n\r\n return (\r\n <>\r\n \r\n \r\n otherProps.rows.sort((a,b) => {\r\n if(a[fieldName] === null && b[fieldName] === null) \r\n return 0;\r\n if(a[fieldName] === null) \r\n return direction === \"asc\" ? -1 : 1;\r\n if(b[fieldName] === null) \r\n return direction === \"asc\" ? 1 : -1;\r\n \r\n if((a[fieldName] > b[fieldName]))\r\n return direction === \"asc\" ? 1 : -1;\r\n if((a[fieldName] < b[fieldName]))\r\n return direction === \"asc\" ? -1 : 1;\r\n return 0;\r\n })\r\n }\r\n rowSelector={(row) => row.id}\r\n renderRowActions={(row, collapseRow, isExpanded) => (\r\n <>\r\n \r\n {isExpanded ? : }\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n renderCollapseRow={(row) => (\r\n \r\n )}\r\n hideCollapseColumn\r\n {...otherProps}\r\n />\r\n \r\n \r\n (\r\n (\r\n \r\n Details\r\n \r\n )}\r\n variant=\"elevation\"\r\n transparent\r\n />\r\n )}\r\n renderDetails={(certificate) => (\r\n \r\n )}\r\n noDataMessage={otherProps.noDataMessage}\r\n />\r\n \r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\nimport Typography, { TypographyProps } from '@material-ui/core/Typography';\r\n\r\nexport const TitleTypography = styled(Typography)`\r\n && {\r\n font-weight: ${({ theme }) => theme.typography.fontWeightBold};\r\n }\r\n`;\r\n","import { FC } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport { EnrollmentRequestStatusChip } from 'components/StatusChip';\r\nimport { formatDate } from 'utils';\r\nimport { certificationPlansEnrollRequestDetailsRoute } from 'route';\r\nimport { EnrollmentRequest } from 'Certificate/model/EnrollmentRequest';\r\nimport { TitleTypography } from './EnrollmentRequestTable.style';\r\n\r\nexport const enrollmentRequestsColumns: DataTableColumn[] = [\r\n {\r\n field: 'title',\r\n headerName: 'Certificate',\r\n width: 400,\r\n renderField: ({ title }) => (\r\n {title}\r\n ),\r\n },\r\n { field: 'release', headerName: 'Release' },\r\n { field: 'level', headerName: 'Level' },\r\n {\r\n field: 'requestDate',\r\n headerName: 'Request date',\r\n renderField: ({ requestDate }) => formatDate(requestDate),\r\n },\r\n {\r\n field: 'rejectReason',\r\n headerName: 'Reject reason',\r\n renderField: ({ rejectReason }) => rejectReason,\r\n },\r\n {\r\n field: 'status',\r\n headerName: 'Status',\r\n renderField: ({ status }) => (\r\n \r\n ),\r\n },\r\n];\r\n\r\nexport interface EnrollmentRequestTableProps\r\n extends DataTableProps {}\r\n\r\nexport const EnrollmentRequestTable: FC = ({\r\n rows,\r\n columns,\r\n ...otherProps\r\n}) => {\r\n const history = useHistory();\r\n const handleOpenDetails = (certificationPlanId: number) => () =>\r\n history.push(\r\n certificationPlansEnrollRequestDetailsRoute.createRoute({\r\n certificationPlanId: String(certificationPlanId),\r\n })\r\n );\r\n\r\n return (\r\n row.id}\r\n renderRowActions={(row, collapseRow, isExpanded) => (\r\n <>\r\n \r\n \r\n \r\n \r\n )}\r\n hideCollapseColumn\r\n />\r\n );\r\n};\r\n","import { FC } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\n\r\nimport { Card } from 'components/Page';\r\nimport {\r\n UserCertificateTable,\r\n completedColumns,\r\n expiredColumns,\r\n pendingColumns,\r\n} from 'Certificate/component/UserCertificateTable/UserCertificateTable';\r\nimport {\r\n EnrollmentRequestTable,\r\n enrollmentRequestsColumns,\r\n} from 'Certificate/component/EnrollmentRequestTable/EnrollmentRequestTable';\r\nimport { PlanRequirementsTable } from 'Requirement/component/PlanRequirementsTable/PlanRequirementsTable';\r\nimport { UserCertifications } from 'Certificate/model/UserCertifications';\r\n\r\nconst noDataMessage = 'No certifications to display';\r\n\r\nexport interface UserCertificationsViewProps {\r\n loading: boolean;\r\n userCertifications?: UserCertifications;\r\n}\r\n\r\nexport const UserCertificationsView: FC = ({\r\n loading = false,\r\n userCertifications,\r\n}) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n (\r\n \r\n )}\r\n loading={loading}\r\n noDataMessage={noDataMessage}\r\n />\r\n \r\n \r\n \r\n);\r\n","import { useHistory } from 'react-router-dom';\r\n\r\nimport { PrintButton } from 'components';\r\nimport { printOutMyCertificatesRoute } from 'route';\r\nimport { Content } from 'components/Page';\r\nimport { useUserCertificationsQuery } from 'Certificate/query/certificateQuery';\r\nimport { UserCertifications } from 'Certificate/model/UserCertifications';\r\nimport { UserCertificationsView } from 'Certificate/component/UserCertificationsView/UserCertificationsView';\r\nimport { useMyProfileQuery } from 'MyProfile/query';\r\n\r\nexport interface UserCertificationsViewProps {\r\n userCertifications: UserCertifications;\r\n}\r\n\r\nexport const MyCertificationsPage = () => {\r\n const { data: myProfile } = useMyProfileQuery();\r\n const { data, isLoading } = useUserCertificationsQuery(\r\n (myProfile?.id ?? '').toString()\r\n );\r\n const history = useHistory();\r\n\r\n const handleOpenStatusPdfDetails = () => {\r\n history.push(printOutMyCertificatesRoute.path);\r\n };\r\n\r\n return (\r\n }\r\n >\r\n \r\n \r\n );\r\n};\r\n","import fileDownload from 'js-file-download';\r\n\r\nimport { apiClient } from 'service';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { PaginatedList, PaginationDto, Sort } from 'model';\r\nimport { ByPerson } from 'ByPerson/model/ByPerson';\r\nimport { ByPersonSearchFilters } from 'ByPerson/model/ByPersonSearchFilters';\r\nimport { getDateNow } from 'utils';\r\n\r\nconst domainPath = '/by-person';\r\n\r\nconst search = async (\r\n pagination: PaginationDto,\r\n sort: Sort,\r\n filters: Partial\r\n): Promise> => {\r\n try {\r\n const response = await apiClient.post(`${domainPath}/search`, {\r\n ...filters,\r\n ...pagination,\r\n ...sort,\r\n });\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst exportToExcel = async (\r\n filters: Partial\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/export-excel`,\r\n filters,\r\n {\r\n responseType: 'blob',\r\n }\r\n );\r\n fileDownload(response.data, `Export search by person ${getDateNow()}.xlsx`);\r\n return [];\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const byPersonApi = {\r\n search,\r\n exportToExcel,\r\n};\r\n","import { useQuery, UseQueryOptions } from 'react-query';\r\n\r\nimport { mapPaginationDto, PaginatedList, Pagination, Sort } from 'model';\r\nimport { ByPerson } from 'ByPerson/model/ByPerson';\r\nimport { ByPersonSearchFilters } from 'ByPerson/model/ByPersonSearchFilters';\r\nimport { byPersonApi } from 'ByPerson/service/byPerson.api';\r\n\r\nexport const byPersonKey = 'by-person';\r\nexport const useByPersonQuery = (\r\n pagination: Pagination,\r\n sort: Sort,\r\n filters: Partial,\r\n options: UseQueryOptions>\r\n) =>\r\n useQuery>(\r\n [byPersonKey, mapPaginationDto(pagination), sort, filters],\r\n () => byPersonApi.search(mapPaginationDto(pagination), sort, filters),\r\n options\r\n );\r\n","import { FC } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { useIsFetching } from 'react-query';\r\n\r\nimport {\r\n EmployeeJobSelectField,\r\n EmployeeJobFamilySelectField,\r\n BusinessUnitSelectField,\r\n DivisionSelectField,\r\n PGUnitSelectField,\r\n IsExternalType,\r\n CountriesSelectField,\r\n CompanyWithFiltersField,\r\n} from 'Dictionary/component';\r\nimport {\r\n getIsExternal,\r\n IsExternalSelectField,\r\n} from 'Dictionary/component/IsExternalSelectField/IsExternalSelectField';\r\nimport { SearchFiltersForm, SearchFiltersFormProps } from 'components';\r\nimport { ByPersonFiltersFormData } from 'ByPerson/model/ByPersonFiltersFormData';\r\nimport { ByPersonSearchFilters } from 'ByPerson/model/ByPersonSearchFilters';\r\nimport { FieldRoot } from 'components/SearchFiltersForm/SearchFiltersForm.style';\r\nimport { mapCompanyFilterParams } from 'Dictionary/component/CompanyWithFiltersField/CompanyWithFiltersField';\r\nimport { byPersonKey } from 'ByPerson/query/byPersonQuery';\r\n\r\nexport interface ByPersonFiltersFormProps\r\n extends Pick<\r\n SearchFiltersFormProps,\r\n 'renderPageActions'\r\n > {\r\n onFiltersSubmit: (searchFilters: ByPersonSearchFilters) => void;\r\n}\r\n\r\nexport const initialValues: ByPersonFiltersFormData = {\r\n searchText: '',\r\n businessUnit: { id: 0, name: 'All Divisions' },\r\n division: { id: 0, name: 'All Business Areas' },\r\n productGroups: [],\r\n isExternal: { id: IsExternalType.All, name: 'All users' },\r\n employeeJobs: [],\r\n employeeJobFamilies: [],\r\n countryList: [],\r\n companyList: [],\r\n};\r\n\r\nexport const mapByPersonSearchFilters = (\r\n byPersonFiltersFormData: ByPersonFiltersFormData\r\n): ByPersonSearchFilters => ({\r\n personName: byPersonFiltersFormData.searchText,\r\n businessUnitId: Number(byPersonFiltersFormData.businessUnit.id),\r\n divisionId: Number(byPersonFiltersFormData.division.id),\r\n productGroupList: (byPersonFiltersFormData.productGroups ?? []).map((pg) =>\r\n Number(pg.id)\r\n ),\r\n isExternal: getIsExternal(\r\n byPersonFiltersFormData?.isExternal?.id as IsExternalType\r\n ),\r\n userJobList: (byPersonFiltersFormData.employeeJobs ?? []).map((job) =>\r\n Number(job.id)\r\n ),\r\n userJobFamilyList: (byPersonFiltersFormData.employeeJobFamilies ?? []).map((job) =>\r\n Number(job.id)\r\n ),\r\n countryList: (byPersonFiltersFormData.countryList ?? []).map((country) =>\r\n Number(country.id)\r\n ),\r\n companyList: (byPersonFiltersFormData.companyList ?? []).map((company) =>\r\n Number(company.id)\r\n ),\r\n});\r\n\r\nexport const ByPersonFiltersForm: FC = ({\r\n onFiltersSubmit,\r\n renderPageActions,\r\n}) => {\r\n const fetchingKeys = useIsFetching(byPersonKey);\r\n const handleOnFiltersSubmit: SearchFiltersFormProps['onSubmit'] = (\r\n values\r\n ) => onFiltersSubmit(mapByPersonSearchFilters(values));\r\n\r\n return (\r\n \r\n {({ values, setFieldValue }) => {\r\n const handleResetCompany = () =>\r\n setFieldValue('companyList', initialValues.companyList);\r\n const handleOnDivisionChange = () => {\r\n setFieldValue('businessUnit', initialValues.businessUnit);\r\n setFieldValue('productGroups', initialValues.productGroups);\r\n setFieldValue('companyList', initialValues.companyList);\r\n }\r\n const handleOnBusinessUnitChange = () => {\r\n setFieldValue('productGroups', initialValues.productGroups);\r\n setFieldValue('companyList', initialValues.companyList);\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\n\r\nexport const NameTableCellWrapper = styled.div`\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n`;\r\n","import { FC } from 'react';\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\nimport IconButton from '@material-ui/core/IconButton';\r\n\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport { certificationsByPersonDetailsRoute } from 'route';\r\nimport { ByPerson } from 'ByPerson/model/ByPerson';\r\nimport { StatusChip } from 'components/StatusChip';\r\nimport { BoldTypography } from 'components/Page';\r\nimport { NameTableCellWrapper } from './ByPersonTable.style';\r\n\r\nexport const columns: DataTableColumn[] = [\r\n {\r\n field: 'displayName',\r\n headerName: 'Name',\r\n renderField: ({\r\n displayName,\r\n userName\r\n }) => (\r\n \r\n {`${displayName} (${userName})`}\r\n \r\n ),\r\n },\r\n {\r\n field: 'enrollCount', \r\n headerName: 'Certificates',\r\n notSortable: true,\r\n renderField: ({\r\n enrollCount,\r\n completedCount,\r\n expiredCount,\r\n expiredNoRenewalCount,\r\n inProcessCount,\r\n }) => (\r\n \r\n
\r\n {!!enrollCount && (\r\n \r\n )}\r\n {!!completedCount && (\r\n \r\n )}\r\n {!!expiredCount && }\r\n {!!expiredNoRenewalCount && }\r\n {!!inProcessCount && (\r\n \r\n )}\r\n
\r\n
\r\n ),\r\n },\r\n {\r\n field: 'trainingSetsInfo',\r\n headerName: 'Training Sets',\r\n notSortable: true,\r\n renderField: ({\r\n trainingSetsInfo\r\n }) => (\r\n \r\n
\r\n {!!trainingSetsInfo.completed && (\r\n \r\n )}\r\n {!!trainingSetsInfo.inProcess && (\r\n \r\n )}\r\n {(!!trainingSetsInfo.inProcess || !!trainingSetsInfo.completed)&& (\r\n \r\n )}\r\n\r\n
\r\n
\r\n ),\r\n },\r\n];\r\nconst getDetailsRoute = (userId: number): string =>\r\n certificationsByPersonDetailsRoute.createRoute({ userId: String(userId) });\r\n\r\nexport interface ByPersonTableProps\r\n extends Omit, 'columns'> {}\r\n\r\nexport const ByPersonTable: FC = (props) => {\r\n const handleOpenDetails = (userId: number) => () =>\r\n window.open(\r\n `${window.location.origin}${getDetailsRoute(userId)}`,\r\n '_blank'\r\n );\r\n\r\n return (\r\n row.id}\r\n renderRowActions={(row) => (\r\n \r\n \r\n \r\n )}\r\n noDataMessage=\"No data to display\"\r\n hideCollapseColumn\r\n />\r\n );\r\n};\r\n","export interface ByPersonSearchFilters {\r\n personName: string;\r\n businessUnitId: number;\r\n divisionId: number;\r\n productGroupList?: number[];\r\n isExternal: boolean | null;\r\n userJobList?: number[];\r\n userJobFamilyList?: number[];\r\n countryList?: number[];\r\n companyList?: number[];\r\n}\r\n\r\nexport const defaultSearchFilters: ByPersonSearchFilters = {\r\n personName: '',\r\n businessUnitId: 0,\r\n divisionId: 0,\r\n isExternal: null,\r\n};\r\n","import { useState } from 'react';\r\nimport { Grid } from '@material-ui/core';\r\nimport ExportIcon from '@material-ui/icons/VerticalAlignBottom';\r\nimport { useMutation } from 'react-query';\r\n\r\nimport { Content } from 'components/Page';\r\nimport { ByPersonFiltersForm, ByPersonTable } from 'ByPerson/component';\r\nimport { useByPersonQuery } from 'ByPerson/query/byPersonQuery';\r\nimport { ByPerson } from 'ByPerson/model/ByPerson';\r\nimport { getPagination, Pagination, Sort } from 'model';\r\nimport { TablePagination } from 'components/Table';\r\nimport { Button } from 'components';\r\nimport { Loader } from 'components/Loader/Loader';\r\nimport {\r\n ByPersonSearchFilters,\r\n defaultSearchFilters,\r\n} from 'ByPerson/model/ByPersonSearchFilters';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { byPersonApi } from 'ByPerson/service/byPerson.api';\r\n\r\nconst byPersonTablePageSize = 20;\r\nconst initialPagination: Pagination = {\r\n total: 0,\r\n pageSize: byPersonTablePageSize,\r\n currentPageIndex: 0,\r\n};\r\n\r\nconst initialSort: Sort = {\r\n sortExpression: 'displayName',\r\n sortDescending: false,\r\n};\r\n\r\nexport const CertificationsByPersonPage = () => {\r\n const { showSuccess, showError } = useToasts();\r\n const [pagination, setPagination] = useState(\r\n getPagination(byPersonTablePageSize)\r\n );\r\n const [sort, setSort] = useState>(\r\n initialSort\r\n );\r\n const [filters, setFilters] = useState(\r\n defaultSearchFilters\r\n );\r\n const { data, isLoading, isFetching } = useByPersonQuery(\r\n pagination,\r\n sort,\r\n filters,\r\n {\r\n onSuccess: (newData) =>\r\n setPagination(getPagination(byPersonTablePageSize, newData)),\r\n }\r\n );\r\n const {\r\n mutate: exportToExcel,\r\n isLoading: isExportToExcelLoading,\r\n } = useMutation(() => byPersonApi.exportToExcel(filters), {\r\n onSuccess: () => showSuccess('Export to excel success'),\r\n onError: () => showError('Export to excel failed. Too many records on search. Must be less than 10000.'),\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n (\r\n exportToExcel()}\r\n disabled={isExportToExcelLoading}\r\n >\r\n {isExportToExcelLoading ? (\r\n \r\n ) : (\r\n <>\r\n  Export to excel\r\n \r\n )}\r\n \r\n )}\r\n onFiltersSubmit={(searchFilters) => {\r\n setFilters(searchFilters);\r\n setPagination(initialPagination);\r\n }}\r\n />\r\n \r\n \r\n \r\n setSort({\r\n sortExpression,\r\n sortDescending: direction === 'desc',\r\n })\r\n }\r\n defaultSort={initialSort}\r\n enableSort\r\n />\r\n {!isFetching && (\r\n \r\n setPagination((prevPagination) => ({\r\n ...prevPagination,\r\n currentPageIndex,\r\n }))\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport { OpenInNew as MyLearningIcon } from '@material-ui/icons';\r\nimport {\r\n Badge,\r\n IconButton,\r\n Tooltip,\r\n makeStyles\r\n} from '@material-ui/core';\r\n\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport KeyboardArrowDownIcon from '@material-ui/icons/KeyboardArrowDown';\r\nimport KeyboardArrowUpIcon from '@material-ui/icons/KeyboardArrowUp';\r\nimport { CPStatusChip } from 'components/StatusChip';\r\nimport { formatDate } from 'utils';\r\nimport { Anchor } from 'components/Page/Anchor/Anchor';\r\nimport {\r\n getRequirementWorkflowActions,\r\n getSelectedRequirements,\r\n parseSelectedRequirementIds,\r\n Requirement,\r\n} from 'Requirement/model/Requirement';\r\nimport { getCertificateApprover } from 'enums/CertificateApproverType';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\nimport { RequirementPlanActions } from 'Requirement/component/RequirementPlanActions/RequirementPlanActions';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport { DataObjectView } from 'components';\r\nimport {\r\n DataObjectList,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\nimport {\r\n DescriptionCaptionTypography,\r\n DescriptionTypography,\r\n} from './PlanRequirementsTable.style';\r\n\r\nexport const basicColumns: DataTableColumn[] = [\r\n { field: 'listCode', headerName: 'Code', width: 30 },\r\n {\r\n field: 'listDescription',\r\n headerName: 'Description',\r\n width: 510,\r\n renderField: ({\r\n status,\r\n listDescription,\r\n listExtendedDescription,\r\n approverTypeLabel,\r\n approverTypeDescription,\r\n myLearningLink,\r\n myLearningLinkDescription,\r\n externalLink,\r\n externalLinkName\r\n }) => (\r\n
\r\n \r\n \r\n {listDescription}\r\n \r\n {myLearningLink && (\r\n \r\n \r\n {myLearningLinkDescription}   \r\n \r\n \r\n )}\r\n \r\n {externalLink && (\r\n \r\n \r\n {externalLinkName}\r\n \r\n \r\n )}\r\n {approverTypeLabel && (\r\n \r\n )}\r\n {approverTypeDescription && (\r\n \r\n {approverTypeDescription}\r\n \r\n )}\r\n
\r\n ),\r\n },\r\n {\r\n field: 'submitDate',\r\n headerName: 'Submitted',\r\n width: 140,\r\n renderField: ({ submitDate }) => formatDate(submitDate),\r\n },\r\n {\r\n field: 'approvalDate',\r\n headerName: 'Approved',\r\n width: 140,\r\n //renderField: ({ approvalDate }) => formatDate(approvalDate),\r\n renderField: (row) => formatDate(row.renewalDate ?? row.approvalDate),\r\n },\r\n {\r\n field: 'expirationDate',\r\n headerName: 'Expiration',\r\n width: 140,\r\n renderField: ({ expirationDate }) => formatDate(expirationDate),\r\n },\r\n];\r\n\r\nexport const catalogDetailsColumns: DataTableColumn[] = [\r\n { field: 'listCode', headerName: 'Code', width: 30 },\r\n {\r\n field: 'listDescription',\r\n headerName: 'Description',\r\n width: 600,\r\n renderField: ({\r\n listDescription,\r\n listExtendedDescription,\r\n myLearningLink,\r\n myLearningLinkDescription,\r\n externalLink,\r\n externalLinkName\r\n }) => (\r\n
\r\n \r\n {listDescription}\r\n \r\n {myLearningLink && (\r\n \r\n \r\n {myLearningLinkDescription}   \r\n \r\n \r\n )}\r\n \r\n {externalLink && (\r\n \r\n \r\n {externalLinkName}\r\n \r\n \r\n )}\r\n
\r\n ),\r\n },\r\n {\r\n field: 'approverType',\r\n headerName: 'Approved by',\r\n width: 80,\r\n renderField: ({ approverType }) => getCertificateApprover(approverType),\r\n },\r\n {\r\n field: 'listExpirationTime',\r\n headerName: 'Expiration',\r\n },\r\n];\r\n\r\nexport const columns: DataTableColumn[] = [...basicColumns];\r\n\r\nexport interface CertificationPlansRequirementsTableProps {\r\n certificateId: number;\r\n displayRowActions: boolean;\r\n DataTableProps: DataTableProps;\r\n requirementsCount?: number;\r\n onRequirementActionSuccess?: () => void;\r\n}\r\n\r\nconst useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n header: {\r\n margin: theme.spacing(2, 0, 0, 0),\r\n },\r\n actions: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n },\r\n addComment: {\r\n minWidth: 120,\r\n },\r\n }),\r\n { name: 'CertificationPlansRequirementsTable' }\r\n);\r\n\r\n// eslint-disable-next-line max-len\r\nexport const CertificationPlansRequirementsTable: FC = ({\r\n certificateId,\r\n displayRowActions,\r\n requirementsCount,\r\n onRequirementActionSuccess,\r\n DataTableProps,\r\n}) => {\r\n const classes = useStyles();\r\n return (\r\n <>\r\n \r\n Requirements {`(${requirementsCount ?? 0})`}\r\n \r\n \r\n row.id}\r\n renderSelectedActions={(selectedRows, clearSelected) =>\r\n displayRowActions && (\r\n {\r\n onRequirementActionSuccess && onRequirementActionSuccess();\r\n clearSelected();\r\n }}\r\n />\r\n )\r\n }\r\n renderRowActions={(row, collapseRow, isExpanded) =>\r\n displayRowActions && (\r\n
\r\n 0 ? row.additionalNotesCount?.toString(): null} color=\"secondary\">\r\n \r\n \r\n {isExpanded ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n )\r\n }\r\n hideCollapseColumn\r\n headerRowAlwaysOnTop\r\n {...DataTableProps}\r\n />\r\n
\r\n \r\n (\r\n \r\n displayRowActions && (\r\n \r\n onRequirementActionSuccess && onRequirementActionSuccess()\r\n }\r\n displayDisabledActions={false}\r\n />\r\n )\r\n }\r\n />\r\n )}\r\n noDataMessage={DataTableProps.noDataMessage}\r\n />\r\n \r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\n\r\nimport { catalogDetailsRoute, certificationPlansDetailsRoute } from 'route';\r\nimport { CPStatusType } from 'enums/CPStatusType';\r\nimport { makeStyles, Typography } from '@material-ui/core';\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport {\r\n DataObjectList,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\nimport { Button, DataObjectView } from 'components';\r\nimport { Prerequisite } from '../model/CertificationPlansDetails';\r\nimport { AbbTheme } from '../../theme/createAbbTheme';\r\nimport { CPStatusChip } from '../../components/StatusChip';\r\n\r\nconst columns: DataTableColumn[] = [\r\n { field: 'title', headerName: 'Title', renderField: ({ title }) => title },\r\n {\r\n field: 'level',\r\n headerName: 'Level',\r\n renderField: ({ level }) => level?.description,\r\n width: 100,\r\n },\r\n {\r\n field: 'businessUnit',\r\n headerName: 'Division',\r\n renderField: ({ businessUnit }) => businessUnit.description,\r\n },\r\n {\r\n field: 'status',\r\n headerName: 'Status',\r\n renderField: ({ status }) => ,\r\n },\r\n];\r\n\r\nexport const certificationListColumns: DataTableColumn[] = [\r\n { field: 'title', headerName: 'Title', renderField: ({ title }) => title },\r\n {\r\n field: 'level',\r\n headerName: 'Level',\r\n renderField: ({ level }) => level?.description,\r\n },\r\n {\r\n field: 'businessUnit',\r\n headerName: 'Division',\r\n renderField: ({ businessUnit }) => businessUnit.description,\r\n },\r\n];\r\n\r\nconst useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n title: {},\r\n }),\r\n {\r\n name: 'PrerequisitesTable',\r\n }\r\n);\r\n\r\nexport interface PrerequisitesTableProps {\r\n prerequisites: Prerequisite[];\r\n title?: string;\r\n isCatalog?: boolean;\r\n DataTableProps?: Omit, 'rows'>;\r\n}\r\n\r\nexport const PrerequisitesTable: FC = ({\r\n prerequisites,\r\n title = 'Prerequisites',\r\n isCatalog,\r\n DataTableProps = { columns },\r\n}) => {\r\n const history = useHistory();\r\n const handleOpenDetails = (certificateId: number, status: CPStatusType) => () => {\r\n if(isCatalog || status === CPStatusType.NotEnrolled){\r\n history.push(\r\n catalogDetailsRoute.createRoute({\r\n certificationId: String(certificateId), \r\n })\r\n ); \r\n }\r\n else{\r\n history.push(\r\n certificationPlansDetailsRoute.createRoute({\r\n certificationPlanId: String(certificateId),\r\n })\r\n );\r\n }\r\n }\r\n const classes = useStyles();\r\n return Array.isArray(prerequisites) && prerequisites.length ? (\r\n <>\r\n \r\n {title}\r\n \r\n\r\n \r\n row?.id}\r\n renderRowActions={(row, collapseRow, isExpanded) => (\r\n <>\r\n \r\n \r\n \r\n \r\n )}\r\n hideCollapseColumn\r\n {...DataTableProps}\r\n />\r\n \r\n \r\n \r\n (\r\n (\r\n \r\n Details\r\n \r\n )}\r\n />\r\n )}\r\n />\r\n \r\n \r\n \r\n ) : null;\r\n};\r\n\r\nexport default PrerequisitesTable;\r\n","import { FC } from 'react';\r\n\r\nimport { formatDate } from 'utils';\r\nimport { DataTable, DataTableColumn } from 'components/DataTable/DataTable';\r\nimport { Requirement } from 'Requirement/model/Requirement';\r\nimport { useCertificationRequirementCommentsQuery } from '../../query/certificationPlansQuery';\r\nimport { CertificationPlanRequirementComment } from '../../model/CertificationPlanRequirementComment';\r\n\r\nexport interface CertificationRequirementCommentsTableProps {\r\n requirementId: Requirement['id'];\r\n}\r\n\r\nconst columns: DataTableColumn[] = [\r\n {\r\n field: 'comment',\r\n headerName: 'Comment',\r\n },\r\n {\r\n field: 'commentAuthor',\r\n headerName: 'Author',\r\n renderField: ({ commentAuthor }) => `${commentAuthor.firstName} ${commentAuthor.lastName} (${commentAuthor.email})`,\r\n },\r\n {\r\n field: 'commentDateTime',\r\n headerName: 'Published',\r\n renderField: ({ commentDateTime }) => formatDate(commentDateTime),\r\n },\r\n];\r\n\r\nexport const CertificationRequirementCommentsTable: FC<\r\n CertificationRequirementCommentsTableProps\r\n> = ({\r\n requirementId,\r\n}) => {\r\n const { data, isLoading } = useCertificationRequirementCommentsQuery(\r\n requirementId\r\n );\r\n\r\n return (\r\n row.id}\r\n rows={data ?? []}\r\n outerBorder={false}\r\n loading={isLoading}\r\n noDataMessage=\"No comments to display\"\r\n />\r\n );\r\n};\r\n","import { makeStyles, Typography } from '@material-ui/core';\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport { Recommended } from '../model/CertificationPlansDetails';\r\nimport { AbbTheme } from '../../theme/createAbbTheme';\r\n\r\nconst columns: DataTableColumn[] = [\r\n { field: 'title', headerName: 'Title' },\r\n {\r\n field: 'level',\r\n headerName: 'Level',\r\n renderField: ({ level }) => level.description,\r\n },\r\n {\r\n field: 'provider',\r\n headerName: 'Provider',\r\n renderField: ({ provider }) => provider.description,\r\n },\r\n];\r\n\r\nconst useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n title: {},\r\n }),\r\n {\r\n name: 'RecommendedCertificatesTable',\r\n }\r\n);\r\n\r\nexport interface RecommendedCertificatesTableProps {\r\n recommendedCertificates: Recommended[];\r\n DataTableProps?: Omit, 'rows' | 'columns'>;\r\n title: string;\r\n}\r\n\r\nexport const RecommendedCertificatesTable = (\r\n props: RecommendedCertificatesTableProps\r\n) => {\r\n const { title, recommendedCertificates, DataTableProps } = props;\r\n const classes = useStyles();\r\n return Array.isArray(recommendedCertificates) &&\r\n recommendedCertificates.length ? (\r\n <>\r\n \r\n {title}\r\n \r\n\r\n row.id}\r\n {...DataTableProps}\r\n />\r\n \r\n ) : null;\r\n};\r\n\r\nexport default RecommendedCertificatesTable;\r\n","export enum CertificationPlanWorkFlowActions {\r\n Submit,\r\n Approve,\r\n Reset,\r\n ResetToApproval,\r\n Reject,\r\n SubmitForRenew,\r\n Renew,\r\n Remove,\r\n EditDates,\r\n FillinQuestionnaire,\r\n Enroll,\r\n AlreadyEnrolled,\r\n AlreadyEnrolledOtherRelease,\r\n ClApprove,\r\n ClReject,\r\n NoLongerAvailable,\r\n NewerReleaseAvailable,\r\n ClApproveDisabled,\r\n ClRejectDisabled,\r\n ClPublish,\r\n ClRejectPublish,\r\n SubmitWithDate,\r\n SubmitForRenewWithDate,\r\n ApproveWithDate,\r\n RenewWithDate,\r\n ApproveRenewalEnrollment,\r\n RejectRenewalEnrollment\r\n}\r\n","import React, { useState } from 'react';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport { KeyboardDatePicker } from '@material-ui/pickers';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport { DialogContent } from '@material-ui/core';\r\n\r\nimport { formatTemplate } from '../../utils';\r\nimport { Button } from '../../components';\r\n\r\ninterface Props {\r\n submitAction: React.Dispatch,\r\n onClose: React.DispatchWithoutAction\r\n}\r\nexport const RenderSubmitWithDateDialog = (props: Props) => {\r\n\r\n const [value, setValue] = useState(null);\r\n const getUpdateDate = (dateOrNull: Dayjs | null): string => dateOrNull ? dayjs(dateOrNull).format() : \"\";\r\n return (\r\n \r\n Provide Certification Expiration Date\r\n \r\n \r\n \r\n \r\n \r\n {\r\n props.submitAction(getUpdateDate(value));\r\n props.onClose();\r\n }}\r\n disabled={!value?.isValid()}\r\n >\r\n Save\r\n \r\n \r\n \r\n );\r\n}\r\n","import { ReactNode, useState, Fragment } from 'react';\r\nimport { KeyboardDatePicker } from '@material-ui/pickers';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport { formatTemplate } from 'utils';\r\nimport { useMutation, useQueryClient } from 'react-query';\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\nimport { DialogContent, TextField, Tooltip } from '@material-ui/core';\r\n\r\nimport { certificationListApi } from 'CertificationList/service/certificationList.api';\r\nimport { CertificationPlanWorkFlowActions } from 'enums/CertificationPlanWorkFlowActions';\r\nimport { useMutating } from 'hooks';\r\nimport { Button, RoundButton } from 'components';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { ApiError } from 'model';\r\nimport { certificationPlansDetailsRoute, certificationPlansEnrollRequestDetailsRoute } from 'route';\r\nimport { RenderSubmitWithDateDialog } from 'PendingApprovalsPage/components/CertificateReleatedTableActions';\r\nimport { certificationPlanApi } from '../service/certificationPlans.api';\r\nimport { certificationPlanWorkflowApi } from '../service/certificationPlanWorkflow.api';\r\nimport { certificationPlansKey } from '../query/certificationPlansQuery';\r\n\r\nexport interface CertificationPlanActionsProps {\r\n certificationPlanId: number;\r\n userCertificationPlan?: number;\r\n userEnrollmentRequest?: number;\r\n workflowActions?: CertificationPlanWorkFlowActions[];\r\n onActionSuccess?: () => void;\r\n}\r\n\r\nconst submitKey = 'cerification-plan-submit';\r\nconst approveKey = 'cerification-plan-approve';\r\nconst resetKey = 'cerification-plan-reset';\r\nconst resetToApprovalKey = 'cerification-plan-reset-to-approval';\r\nconst rejectKey = 'cerification-plan-reject';\r\nconst submitForRenewKey = 'cerification-plan-submit-for-renew';\r\nconst renewKey = 'cerification-plan-renew';\r\nconst renewalEnroApproveKey = 'cerification-plan-renewal-enrollment-approve';\r\nconst renewalEnroRejectKey = 'cerification-plan-renewal-enrollment-reject';\r\nconst removeKey = 'cerification-plan-remove';\r\nconst enrollKey = 'cerification-list-enroll';\r\nconst alreadyEnrolledKey = 'cerification-list-already-enrolled';\r\nconst alreadyEnrolledOtherReleaseKey =\r\n 'cerification-list-already-enrolled-other-release';\r\nconst noLongerAvailableKey = 'no-longer-available';\r\nconst clApproveKey = 'cerification-list-cl-approve';\r\nconst clRejectKey = 'cerification-list-cl-reject';\r\nconst clApproveDisabledKey = 'cerification-list-cl-approve-disabled';\r\nconst clRejectDisabledKey = 'cerification-list-cl-reject-disabled';\r\nconst clPublishKey = 'cerification-list-cl-publish';\r\nconst clRejectPublishKey = 'cerification-list-cl-reject-publish';\r\nconst submitWithDateKey = 'cerification-plan-submit-with-date';\r\nconst submitForRenewWithDateKey = 'cerification-plan-submit-for-renew-with-date';\r\n\r\nexport const mutatingFilterKeys = [\r\n submitKey,\r\n approveKey,\r\n resetKey,\r\n resetToApprovalKey,\r\n rejectKey,\r\n submitForRenewKey,\r\n renewKey,\r\n renewalEnroApproveKey,\r\n renewalEnroRejectKey,\r\n removeKey,\r\n enrollKey,\r\n clApproveKey,\r\n clRejectKey,\r\n clPublishKey,\r\n clRejectPublishKey,\r\n submitWithDateKey,\r\n submitForRenewWithDateKey\r\n];\r\n\r\nexport const getSuccessMessage = (actionKey: string): string => {\r\n switch (actionKey) {\r\n case submitKey:\r\n case submitWithDateKey:\r\n return 'Submit certification plan action success';\r\n case approveKey:\r\n return 'Approve certification plan action success';\r\n case renewalEnroApproveKey:\r\n return 'Approve renewal enrollment action success';\r\n case renewalEnroRejectKey:\r\n return 'Reject renewal enrollment action success';\r\n case resetKey:\r\n return 'Reset certification plan action success';\r\n case resetToApprovalKey:\r\n return 'Reset to approval certification plan action success';\r\n case rejectKey:\r\n return 'Reject certification plan action success';\r\n case submitForRenewKey:\r\n case submitForRenewWithDateKey:\r\n return 'Submit for renew certification plan action success';\r\n case renewKey:\r\n return 'Renew certification plan action success';\r\n case removeKey:\r\n return 'Remove certification plan action success';\r\n case enrollKey:\r\n return 'Enroll certification list action success';\r\n case clApproveKey:\r\n return 'Approve certification list action success';\r\n case clRejectKey:\r\n return 'Reject certification list action success';\r\n case clPublishKey:\r\n return 'Publish certification list action success';\r\n case clRejectPublishKey:\r\n return 'Reject publish certification list action success';\r\n default:\r\n return 'Action success';\r\n }\r\n};\r\n\r\nexport const CertificationPlanActions = (\r\n props: CertificationPlanActionsProps\r\n) => {\r\n const queryClient = useQueryClient();\r\n const { showError, showSuccess } = useToasts();\r\n const [isDialogOpen, setIsDialogOpen] = useState(false);\r\n const [isDialogForApproveOpen, setIsDialogForApproveOpen] = useState(false);\r\n const [isDialogForRenewOpen, setIsDialogForRenewOpen] = useState(false);\r\n const [reason, setReason] = useState('');\r\n const isMutating = useMutating([...mutatingFilterKeys]);\r\n const { certificationPlanId, userCertificationPlan, userEnrollmentRequest, workflowActions = [] } = props;\r\n const onSuccess = async (actionKey: string) => {\r\n const data = await certificationPlanApi.getCertificationPlan(\r\n certificationPlanId\r\n );\r\n queryClient.setQueryData(certificationPlansKey, {\r\n ...data,\r\n });\r\n showSuccess(getSuccessMessage(actionKey));\r\n props.onActionSuccess && props.onActionSuccess();\r\n };\r\n const onError = async (error: ApiError) => showError(error.message);\r\n const { mutate: submit } = useMutation(\r\n () => certificationPlanWorkflowApi.submit(certificationPlanId),\r\n { mutationKey: submitKey, onSuccess: () => onSuccess(submitKey), onError }\r\n );\r\n const { mutate: submitWithDate } = useMutation(\r\n (expirationDate) => certificationPlanWorkflowApi.submitWithDate(certificationPlanId, expirationDate),\r\n {\r\n mutationKey: submitWithDateKey,\r\n onSuccess: () => onSuccess(submitWithDateKey),\r\n onError,\r\n }\r\n );\r\n const { mutate: approve } = useMutation(\r\n (expirationDate) => certificationPlanWorkflowApi.approve(certificationPlanId, expirationDate),\r\n { mutationKey: approveKey, onSuccess: () => onSuccess(approveKey), onError }\r\n );\r\n\r\n const { mutate: reset } = useMutation(\r\n () => certificationPlanWorkflowApi.reset(certificationPlanId),\r\n { mutationKey: resetKey, onSuccess: () => onSuccess(resetKey), onError }\r\n );\r\n const { mutate: resetToApproval } = useMutation(\r\n () => certificationPlanWorkflowApi.resetToApproval(certificationPlanId),\r\n {\r\n mutationKey: resetToApprovalKey,\r\n onSuccess: () => onSuccess(resetToApprovalKey),\r\n onError,\r\n }\r\n );\r\n const { mutate: reject } = useMutation(\r\n (reason) =>\r\n certificationPlanWorkflowApi.reject(certificationPlanId, reason),\r\n { mutationKey: rejectKey, onSuccess: () => onSuccess(rejectKey), onError }\r\n );\r\n const { mutate: submitForRenew } = useMutation(\r\n () => certificationPlanWorkflowApi.submitForRenew(certificationPlanId),\r\n {\r\n mutationKey: submitForRenewKey,\r\n onSuccess: () => onSuccess(submitForRenewKey),\r\n onError,\r\n }\r\n );\r\n const { mutate: submitForRenewWithDate } = useMutation(\r\n (expirationDate) => certificationPlanWorkflowApi.submitForRenewWithDate(certificationPlanId, expirationDate),\r\n {\r\n mutationKey: submitForRenewWithDateKey,\r\n onSuccess: () => onSuccess(submitForRenewWithDateKey),\r\n onError,\r\n }\r\n );\r\n const { mutate: renew } = useMutation(\r\n (expirationDate?) => certificationPlanWorkflowApi.renew(certificationPlanId, expirationDate),\r\n { mutationKey: renewKey, onSuccess: () => onSuccess(renewKey), onError }\r\n );\r\n const { mutate: approveRenewalEnrollment } = useMutation(\r\n () => certificationPlanWorkflowApi.approveRenewalEnro(certificationPlanId),\r\n { mutationKey: renewalEnroApproveKey, onSuccess: () => onSuccess(renewalEnroApproveKey), onError }\r\n );\r\n const { mutate: rejectRenewalEnrollment } = useMutation(\r\n () => certificationPlanWorkflowApi.rejectRenewalEnro(certificationPlanId),\r\n { mutationKey: renewalEnroRejectKey, onSuccess: () => onSuccess(renewalEnroRejectKey), onError }\r\n );\r\n const { mutate: remove } = useMutation(\r\n () => certificationPlanWorkflowApi.remove(certificationPlanId),\r\n { mutationKey: removeKey, onSuccess: () => onSuccess(removeKey), onError }\r\n );\r\n const { mutate: enroll } = useMutation(\r\n () => certificationListApi.enroll(certificationPlanId),\r\n { mutationKey: enrollKey, onSuccess: () => onSuccess(enrollKey), onError }\r\n );\r\n\r\n const handleNavigate = () => {\r\n\r\n const path: string | null = userCertificationPlan != null ? certificationPlansDetailsRoute.createRoute({\r\n certificationPlanId: String(userCertificationPlan),\r\n }) :\r\n certificationPlansEnrollRequestDetailsRoute.createRoute({\r\n certificationPlanId: String(userEnrollmentRequest),\r\n });\r\n\r\n if (path) {\r\n window.open(\r\n `${window.location.origin}${path}`,\r\n '_blank'\r\n );\r\n }\r\n };\r\n\r\n const { mutate: clApprove } = useMutation(\r\n () =>\r\n certificationPlanWorkflowApi.approveEnrollRequest(certificationPlanId),\r\n {\r\n mutationKey: clApproveKey,\r\n onSuccess: () => onSuccess(clApproveKey),\r\n onError,\r\n }\r\n );\r\n const { mutate: clReject } = useMutation(\r\n (reason) =>\r\n certificationPlanWorkflowApi.rejectEnrollRequest(\r\n certificationPlanId,\r\n reason\r\n ),\r\n {\r\n mutationKey: clRejectKey,\r\n onSuccess: () => onSuccess(clRejectKey),\r\n onError,\r\n }\r\n );\r\n const { mutate: clRejectPublish } = useMutation(\r\n () => certificationListApi.rejectPublish(certificationPlanId),\r\n {\r\n mutationKey: clRejectPublishKey,\r\n onSuccess: () => onSuccess(clRejectPublishKey),\r\n onError,\r\n }\r\n );\r\n const { mutate: clPublish } = useMutation(\r\n () => certificationListApi.publish(certificationPlanId),\r\n {\r\n mutationKey: clPublishKey,\r\n onSuccess: () => onSuccess(clPublishKey),\r\n onError,\r\n }\r\n );\r\n const openDialog = () => setIsDialogOpen(true);\r\n const closeDialog = () => {\r\n setReason('');\r\n setIsDialogOpen(false);\r\n };\r\n const openDialogForApprove = () => setIsDialogForApproveOpen(true);\r\n const closeDialogForApprove = () => {\r\n setReason('');\r\n setIsDialogForApproveOpen(false);\r\n };\r\n const renderRejectDialog = (\r\n rejectAction: (reason: string) => void\r\n ): ReactNode => (\r\n \r\n Are you sure to reject?\r\n \r\n setReason(ev.target.value)}\r\n />\r\n \r\n \r\n \r\n {\r\n rejectAction(reason);\r\n closeDialog();\r\n }}\r\n disabled={!reason}\r\n >\r\n Reject\r\n \r\n \r\n \r\n );\r\n\r\n const [expirationDate, setExpirationDate] = useState(null);\r\n const getUpdateDate = (dateOrNull: Dayjs | null): string =>\r\n dateOrNull ? dayjs(dateOrNull).format() : \"\";\r\n\r\n const renderSubmitWithDateDialog = (\r\n submitAction: (expirationDate: string) => void\r\n ): ReactNode => (\r\n \r\n Provide Certification Expiration Date\r\n \r\n \r\n \r\n \r\n \r\n {\r\n submitAction(getUpdateDate(expirationDate));\r\n closeDialogForApprove();\r\n }}\r\n disabled={!expirationDate?.isValid()}\r\n >\r\n Save\r\n \r\n \r\n \r\n );\r\n\r\n const actionsMap: Partial<\r\n Record\r\n > = {\r\n [CertificationPlanWorkFlowActions.Submit]: (\r\n submit()}\r\n disabled={isMutating}\r\n >\r\n Submit\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.Approve]: (\r\n approve(undefined)}\r\n disabled={isMutating}\r\n >\r\n Approve\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.ApproveWithDate]: (\r\n <>\r\n openDialogForApprove()} disabled={isMutating}>\r\n Approve with date\r\n \r\n {isDialogForApproveOpen ?\r\n ( approve(d)}\r\n onClose={() => setIsDialogForApproveOpen(false)} />) :\r\n (<>)}\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.Reset]: (\r\n reset()} disabled={isMutating}>\r\n Reset\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.ResetToApproval]: (\r\n resetToApproval()}\r\n disabled={isMutating}\r\n >\r\n Reset to Approval\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.Reject]: (\r\n \r\n {renderRejectDialog(reject)}\r\n \r\n Reject\r\n \r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.SubmitWithDate]: (\r\n \r\n {renderSubmitWithDateDialog(submitWithDate)}\r\n \r\n Submit\r\n \r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.SubmitForRenewWithDate]: (\r\n \r\n {renderSubmitWithDateDialog(submitForRenewWithDate)}\r\n \r\n Submit for renewal\r\n \r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.SubmitForRenew]: (\r\n submitForRenew()}\r\n disabled={isMutating}\r\n >\r\n Submit for renewal\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.ApproveRenewalEnrollment]: (\r\n approveRenewalEnrollment()} disabled={isMutating}>\r\n Approve renewal enrollment\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.RejectRenewalEnrollment]: (\r\n rejectRenewalEnrollment()} disabled={isMutating}>\r\n Reject renewal enrollment\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.Renew]: (\r\n renew(undefined)} disabled={isMutating}>\r\n Renew\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.RenewWithDate]: (\r\n <>\r\n setIsDialogForRenewOpen(true)} disabled={isMutating}>\r\n Renew with date\r\n \r\n {isDialogForRenewOpen ?\r\n ( renew(d)}\r\n onClose={() => setIsDialogForRenewOpen(false)} />) :\r\n (<>)}\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.Remove]: (\r\n remove()}\r\n disabled={isMutating}\r\n >\r\n Remove\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.Enroll]: (\r\n enroll()}\r\n color=\"secondary\"\r\n variant=\"contained\"\r\n disabled={isMutating}\r\n >\r\n Enroll\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.AlreadyEnrolled]: (\r\n <>\r\n \r\n
\r\n \r\n Enroll\r\n \r\n
\r\n \r\n handleNavigate()} >\r\n {userCertificationPlan != null ? \"Go to enrollment\" : \"Go to enrollment request\"}\r\n \r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.AlreadyEnrolledOtherRelease]: (\r\n <>\r\n \r\n
\r\n \r\n Enroll\r\n \r\n
\r\n \r\n handleNavigate()} >\r\n Go to enrollment\r\n \r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.NoLongerAvailable]: (\r\n \r\n
\r\n \r\n Enroll\r\n \r\n
\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.ClApprove]: (\r\n clApprove()}\r\n disabled={isMutating}\r\n >\r\n Approve\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.ClReject]: (\r\n \r\n {renderRejectDialog(clReject)}\r\n \r\n Reject\r\n \r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.ClApproveDisabled]: (\r\n \r\n Approve\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.ClRejectDisabled]: (\r\n \r\n Reject\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.ClPublish]: (\r\n clPublish()}\r\n >\r\n Publish\r\n \r\n ),\r\n [CertificationPlanWorkFlowActions.ClRejectPublish]: (\r\n clRejectPublish()}\r\n >\r\n Reject publish\r\n \r\n ),\r\n };\r\n return <>{workflowActions.map((a) => actionsMap[a])};\r\n};\r\n","import { FC } from 'react';\r\nimport { Typography } from '@material-ui/core';\r\n\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport { formatDate } from 'utils';\r\nimport { formatUserName } from 'utils/formatUserName';\r\nimport { CertificationPlanHistory } from 'CertificationPlansPage/model/CertificationPlanHistory';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport {\r\n DataObjectList,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\nimport { DataObjectView } from 'components';\r\n\r\nconst columns: DataTableColumn[] = [\r\n {\r\n field: 'userDetail',\r\n headerName: 'Author',\r\n renderField: ({ userDetail }) =>\r\n `${formatUserName(\r\n `${userDetail?.firstName} ${userDetail?.lastName}`\r\n )} (${userDetail?.email.toLowerCase()})`,\r\n },\r\n {\r\n field: 'eventDate',\r\n headerName: 'Event date',\r\n renderField: ({ eventDate }) => formatDate(eventDate),\r\n width: 100,\r\n },\r\n {\r\n field: 'description',\r\n headerName: 'Status',\r\n renderField: ({ description }) => description,\r\n },\r\n];\r\n\r\nexport interface HistoryTableProps {\r\n DataTableProps: Omit, 'columns'>;\r\n}\r\n\r\nexport const HistoryTable: FC = ({ DataTableProps }) => (\r\n <>\r\n History\r\n \r\n row?.id}\r\n {...DataTableProps}\r\n />\r\n \r\n \r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n);\r\n","import { makeStyles, Typography } from '@material-ui/core';\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport { ArrowForward } from '@material-ui/icons';\r\nimport { Alternatives } from '../model/CertificationPlansDetails';\r\nimport { AbbTheme } from '../../theme/createAbbTheme';\r\n\r\nconst columns: DataTableColumn[] = [\r\n {\r\n field: 'source',\r\n headerName: 'Source',\r\n renderField: ({ source }) => `Completing requirement - ${source}`\r\n },\r\n {\r\n field: 'source',\r\n headerName: '',\r\n renderField: () => ,\r\n width: 40,\r\n },\r\n {\r\n field: 'alternative',\r\n headerName: 'Alternative',\r\n renderField: ({ alternative }) =>\r\n `Approves also requirement - ${alternative}`,\r\n },\r\n // empty column for spacing\r\n {\r\n field: undefined,\r\n headerName: '',\r\n renderField: () => '',\r\n },\r\n];\r\n\r\nconst useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n title: {},\r\n }),\r\n {\r\n name: 'AlternativesCertificatesTable',\r\n }\r\n);\r\n\r\nexport interface AlternativesCertificatesTableProps {\r\n alternativesCertificates: Alternatives[];\r\n DataTableProps?: Omit, 'rows' | 'columns'>;\r\n}\r\n\r\nexport const AlternativesCertificatesTable = (\r\n props: AlternativesCertificatesTableProps\r\n) => {\r\n const { alternativesCertificates, DataTableProps } = props;\r\n const classes = useStyles();\r\n return Array.isArray(alternativesCertificates) &&\r\n alternativesCertificates.length ? (\r\n <>\r\n \r\n Alternatives\r\n \r\n\r\n \r\n \r\n ) : null;\r\n};\r\n\r\nexport default AlternativesCertificatesTable;\r\n","import { makeStyles } from '@material-ui/core';\r\n\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\n\r\nexport const useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n title:{\r\n margin: theme.spacing(0, 2),\r\n },\r\n commentHeader: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n minHeight: 56,\r\n margin: theme.spacing(0, 2),\r\n },\r\n commentField: {\r\n flexGrow: 1,\r\n marginRight: theme.spacing(4),\r\n },\r\n }),\r\n { name: 'CertificationPlansRequirementsForm' }\r\n);\r\n","import { FC, useState } from 'react';\r\nimport { TextField, Typography, useTheme } from '@material-ui/core';\r\nimport { useMutation, useQueryClient } from 'react-query';\r\n\r\nimport { Button } from 'components';\r\nimport { ApiError } from 'model';\r\nimport { requirementApi } from 'Requirement/service/requirement.api';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { certificationRequirementCommentsKey } from 'CertificationPlansPage/query/certificationPlansQuery';\r\nimport { useStyles } from './CertificationRequirementCommentForm.style';\r\n\r\nexport interface CertificationRequirementCommentFormProps {\r\n requirementId: number;\r\n onCancel: () => void;\r\n onAdded: ()=> void\r\n}\r\n\r\nexport const CertificationRequirementCommentForm: FC<\r\n CertificationRequirementCommentFormProps\r\n> = ({\r\n requirementId,\r\n onCancel,\r\n onAdded\r\n}) => {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const queryClient = useQueryClient();\r\n const { showSuccess, showError } = useToasts();\r\n const [comment, setComment] = useState('');\r\n const { mutate: addComment, isLoading: isAddCommentLoading } = useMutation<\r\n unknown,\r\n ApiError,\r\n { id: number; comment: string }\r\n >((params) => requirementApi.addComment(params.id, params.comment), {\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries([\r\n certificationRequirementCommentsKey,\r\n requirementId,\r\n ]);\r\n setComment('');\r\n showSuccess('Add comment to requirement action success');\r\n onAdded()\r\n },\r\n onError: (error) => showError(error.message),\r\n });\r\n\r\n return (\r\n <>\r\n \r\n Comments\r\n \r\n {\r\n ev.preventDefault();\r\n addComment({ id: requirementId, comment });\r\n }}\r\n >\r\n setComment(event.target.value)}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n","import { useMutation } from 'react-query';\r\n\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { queryClient } from 'service/queryClient';\r\nimport {\r\n userRequirementsAttachmentsKey,\r\n useUserRequirementAttachmentsQuery,\r\n} from 'Attachment/query/attachment.query';\r\nimport { attachmentApi } from 'Attachment/service/attachment.api';\r\nimport { AttachmentList } from 'Attachment/component/AttachmentList/AttachmentList';\r\nimport { FC } from 'react';\r\n\r\nexport interface UserRequirementAttachmentListProps {\r\n userId: string;\r\n requirementId: string;\r\n onAttachmentSuccess: {() : void} | null;\r\n}\r\n\r\nexport const RequirementAttachmentList: FC = ({ userId, requirementId, onAttachmentSuccess }) => {\r\n const { showError, showSuccess } = useToasts();\r\n const { data, isLoading } = useUserRequirementAttachmentsQuery(userId, requirementId);\r\n const { mutate: uploadAttachment } = useMutation(\r\n (files: File[]) => attachmentApi.uploadFilesByUserAndRequirementId(files, userId, requirementId),\r\n {\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries(userRequirementsAttachmentsKey);\r\n onAttachmentSuccess && onAttachmentSuccess();\r\n showSuccess('Upload attachment success');\r\n },\r\n onError: () => showError('Upload attachment failed'),\r\n }\r\n );\r\n\r\n return (\r\n <>\r\n = 1 ?? false }\r\n onDropzoneSave={(files: File[]) => uploadAttachment(files)}\r\n userId={userId}\r\n requirementId={requirementId}\r\n filesLimit={1}\r\n noDataMessage=\"There are no attachments yet...\"\r\n onRemoveRequirementAttachmentSuccess={onAttachmentSuccess}\r\n />\r\n \r\n );\r\n};\r\n","import { makeStyles } from '@material-ui/core';\r\n\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\n\r\nexport const useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n title:{\r\n margin: theme.spacing(0, 2),\r\n },\r\n commentHeader: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n minHeight: 56,\r\n margin: theme.spacing(0, 2),\r\n },\r\n commentField: {\r\n flexGrow: 1,\r\n marginRight: theme.spacing(4),\r\n },\r\n }),\r\n { name: 'CertificationPlansRequirementsForm' }\r\n);\r\n","import { FC } from 'react';\r\nimport { Typography, useTheme } from '@material-ui/core';\r\nimport { RequirementAttachmentList } from 'Attachment/component/RequirementAttachmentList/RequirementAttachmentList';\r\nimport { useStyles } from './CertificationRequirementAttachments.style';\r\n\r\nexport interface CertificationRequirementAttachmentsProps {\r\n requirementId: number;\r\n userId: number;\r\n onAttachmentSuccess: {() : void} | null;\r\n}\r\n\r\nexport const CertificationRequirementAttachments: FC<\r\n CertificationRequirementAttachmentsProps\r\n> = ({\r\n requirementId,\r\n userId,\r\n onAttachmentSuccess\r\n}) => {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n\r\n\r\n return (\r\n <>\r\n \r\n Attachments\r\n \r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n","import { UserDetails } from '../../model';\r\n\r\nexport interface QuestionnarieDetails {\r\n id: number;\r\n submittedDate: string | null;\r\n submittedBy: UserDetails | null;\r\n question1: PeriodQuestionnaireQuestionAnswer;\r\n question2: Question2Choices;\r\n question3: Question3Choices;\r\n}\r\n\r\nexport interface SaveQuestionnarieDetails {\r\n questionnaireId: number;\r\n question1AnswerId: PeriodQuestionnaireQuestionAnswer;\r\n question2AnswerId: Question2Choices;\r\n question3AnswerId: Question3Choices;\r\n}\r\n\r\nexport enum PeriodQuestionnaireQuestionAnswer {\r\n Never = 1,\r\n Occasionally = 2,\r\n OnContinuousBasis = 3,\r\n NotSelected,\r\n}\r\n\r\nexport enum Question2Choices {\r\n Yes = 4,\r\n No = 5,\r\n NotSelected,\r\n}\r\n\r\nexport enum Question3Choices {\r\n Yes = 6,\r\n No = 7,\r\n NotSelected,\r\n}\r\n","import {\r\n Grid,\r\n Typography,\r\n makeStyles,\r\n InputLabel,\r\n RadioGroup,\r\n FormControlLabel,\r\n Radio,\r\n} from '@material-ui/core';\r\nimport clsx from 'clsx';\r\nimport { DataField } from 'components';\r\nimport { useEffect, useState } from 'react';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\nimport { formatDate } from 'utils';\r\nimport {\r\n PeriodQuestionnaireQuestionAnswer,\r\n Question2Choices,\r\n Question3Choices,\r\n QuestionnarieDetails,\r\n} from '../model/QuestionnarieDetails';\r\n\r\nconst useStyles = makeStyles(\r\n //@ts-ignore\r\n (theme: AbbTheme) => ({\r\n title: {\r\n fontWeight: theme.typography.fontWeightBold,\r\n marginBottom: theme.spacing(3),\r\n },\r\n space: {\r\n marginBottom: theme.spacing(3),\r\n },\r\n question: {\r\n maxWidth: '75%',\r\n '@media (max-width: 1024px)': {\r\n maxWidth: '100%',\r\n },\r\n },\r\n radio: {\r\n marginRight: theme.spacing(4),\r\n },\r\n }),\r\n { name: 'QuestionnarieSection' }\r\n);\r\n\r\nexport interface QuestionnarieSectionProps {\r\n disabled?: boolean;\r\n questionnarie?: QuestionnarieDetails;\r\n onChange?: (questionnarie: QuestionnarieDetails) => void;\r\n}\r\n\r\nexport const getDefaultQuestionnarie = () => ({\r\n id: -1,\r\n submittedBy: null,\r\n submittedDate: null,\r\n question1: PeriodQuestionnaireQuestionAnswer.NotSelected,\r\n question2: Question2Choices.NotSelected,\r\n question3: Question3Choices.NotSelected,\r\n});\r\n\r\nexport const QuestionnarieSection = (props: QuestionnarieSectionProps) => {\r\n const { disabled = true, questionnarie = {}, onChange } = props;\r\n const [\r\n questionnarieState,\r\n setQuestionnarieState,\r\n ] = useState(getDefaultQuestionnarie());\r\n const updateQuestionnarie = (stateChunk: Partial) => {\r\n setQuestionnarieState((prev) => {\r\n const next = { ...prev, ...stateChunk };\r\n onChange && onChange({ ...next });\r\n return next;\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n updateQuestionnarie({ ...questionnarie });\r\n }, []);\r\n const classes = useStyles();\r\n const submittedBy = questionnarieState?.submittedBy;\r\n const fullName = submittedBy\r\n ? `${submittedBy.firstName} ${submittedBy.lastName} (${submittedBy.email})`\r\n : null;\r\n const { question1, question2, question3 } = questionnarieState;\r\n return (\r\n \r\n \r\n Questionnaire\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Questions\r\n \r\n \r\n \r\n Please select the period that the applicant has worked on the\r\n equipment/process since he/she has received the first certification of\r\n the original training course?\r\n \r\n \r\n \r\n {\r\n updateQuestionnarie({\r\n question1: Number(value) as PeriodQuestionnaireQuestionAnswer,\r\n });\r\n }}\r\n >\r\n }\r\n label=\"Never\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n label=\"Occasionally\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n label=\"On continuous basis\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n \r\n Does the applicant have the right knowledge and expertise to conduct\r\n all standard type of replacement and repairs to the equipment or is\r\n able to run the process with the highest competence?\r\n \r\n \r\n \r\n {\r\n updateQuestionnarie({\r\n question2: Number(value) as Question2Choices,\r\n });\r\n }}\r\n >\r\n }\r\n label=\"Yes\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n label=\"No\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n \r\n Is the applicant capable of training his/her colleagues, with less\r\n knowledge and experience, on maintenance, repairs and troubleshooting\r\n procedures of the equipment or the process they have been trained on?\r\n \r\n \r\n \r\n {\r\n updateQuestionnarie({\r\n question3: Number(value) as Question3Choices,\r\n });\r\n }}\r\n >\r\n }\r\n label=\"Yes\"\r\n labelPlacement=\"end\"\r\n />\r\n }\r\n label=\"No\"\r\n labelPlacement=\"end\"\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default QuestionnarieSection;\r\n","import { makeStyles } from '@material-ui/core';\r\n\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\n\r\nexport const useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n attachmentsArea: {\r\n margin: theme.spacing(2, 0),\r\n },\r\n commentsArea: {\r\n margin: theme.spacing(2, 0),\r\n },\r\n }),\r\n { name: 'CertificationPlansDetailsPage' }\r\n);\r\n","import { FC, useState } from 'react';\r\nimport { Grid } from '@material-ui/core';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nimport { AppShellBaseProps, DetailsAppShell } from 'components/AppShell';\r\nimport { CertificationPlansDetailsParams } from 'route';\r\nimport { Content } from 'components/Page';\r\nimport { Button, DataObjectView } from 'components';\r\nimport { formatDate } from 'utils';\r\nimport dayjs from 'dayjs';\r\nimport {\r\n CertificationPlansRequirementsTable,\r\n columns,\r\n} from 'Requirement/component/PlanRequirementsTable/CertificationPlansRequirementsTable';\r\nimport {\r\n certificationPlansKey,\r\n useCertificationPlansQuery,\r\n} from 'CertificationPlansPage/query/certificationPlansQuery';\r\nimport { CPStatusChip } from 'components/StatusChip';\r\nimport { PrerequisitesTable } from 'CertificationPlansPage/components/PrerequisitesTable';\r\nimport { CertificationRequirementCommentsTable } from 'CertificationPlansPage/components/CertificationRequirementCommentsTable/CertificationRequirementCommentsTable';\r\nimport { EditDatesModal } from 'CertificationPlansPage/components/EditDatesModal/EditDatesModal';\r\nimport { RecommendedCertificatesTable } from 'CertificationPlansPage/components/RecommendedCertificatesTable';\r\nimport {\r\n CertificationPlanActions,\r\n mutatingFilterKeys,\r\n} from 'CertificationPlansPage/components/CertificationPlanActions';\r\nimport { HistoryTable } from 'CertificationPlansPage/components/HistoryTable';\r\nimport { AlternativesCertificatesTable } from 'CertificationPlansPage/components/AlternativesCertificatesTable';\r\nimport { CertificationRequirementCommentForm } from 'CertificationPlansPage/components/CertificationRequirementCommentForm/CertificationRequirementCommentForm';\r\nimport { CertificationRequirementAttachments } from 'CertificationPlansPage/components/CertificationRequirementAttachments/CertificationRequirementAttachments';\r\nimport { useModal, useMutating } from 'hooks';\r\nimport { QuestionnarieSection } from 'CertificationPlansPage/components/QuestionnarieSection';\r\nimport {\r\n PeriodQuestionnaireQuestionAnswer,\r\n Question2Choices,\r\n Question3Choices,\r\n QuestionnarieDetails,\r\n SaveQuestionnarieDetails,\r\n} from 'CertificationPlansPage/model/QuestionnarieDetails';\r\nimport { certificationPlanApi } from 'CertificationPlansPage/service/certificationPlans.api';\r\nimport { useMutation, useQueryClient } from 'react-query';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { CertificationPlanWorkFlowActions } from 'enums/CertificationPlanWorkFlowActions';\r\nimport { useStyles } from './CertificationPlansDetailsPage.style';\r\nimport { useCertificationPlansHistoryQuery } from '../../CertificationPlansPage/query/certificationPlansHistoryQuery';\r\nimport { usePlanRequirementsQuery } from '../../Requirement/query/requirementQuery';\r\n\r\nexport interface CertificationPlansDetailsPageProps extends AppShellBaseProps { }\r\n\r\nexport const submitQuestionnarieKey = 'submit-questionnarie-key';\r\n\r\n// eslint-disable-next-line max-len\r\nexport const CertificationPlansDetailsPage: FC = (\r\n props\r\n) => {\r\n const { logout } = props;\r\n const { certificationPlanId } = useParams();\r\n const [\r\n nextQuestionnarie,\r\n setNextQuestionnarie,\r\n ] = useState();\r\n const { isLoading, data, refetch } = useCertificationPlansQuery(\r\n Number(certificationPlanId)\r\n );\r\n const {\r\n isLoading: historyLoading,\r\n data: historyData,\r\n } = useCertificationPlansHistoryQuery(Number(certificationPlanId));\r\n const {\r\n isLoading: requirementsLoading,\r\n data: requirementsData,\r\n refetch: requirementsRefetch,\r\n } = usePlanRequirementsQuery(Number(certificationPlanId));\r\n const { showSuccess, showError } = useToasts();\r\n const queryClient = useQueryClient();\r\n const isMutating = useMutating([\r\n ...mutatingFilterKeys,\r\n submitQuestionnarieKey,\r\n ]);\r\n const { mutate: submitQuestionnarie } = useMutation(\r\n (data: SaveQuestionnarieDetails) =>\r\n certificationPlanApi.submitQuestionnarie(\r\n Number(certificationPlanId),\r\n data\r\n ),\r\n {\r\n mutationKey: submitQuestionnarieKey,\r\n onSuccess: () => {\r\n showSuccess('Questionnaire submitted');\r\n queryClient.invalidateQueries(certificationPlansKey);\r\n },\r\n onError: () => showError('Questionnaire submit fail'),\r\n }\r\n );\r\n\r\n const classes = useStyles();\r\n const { Modal, openModal } = useModal((closeModal) => (\r\n \r\n ));\r\n\r\n const canEditDates =\r\n data?.userActions?.includes(CertificationPlanWorkFlowActions.EditDates) ??\r\n false;\r\n\r\n const canSubmitQuestionnarie =\r\n data?.userActions?.includes(\r\n CertificationPlanWorkFlowActions.FillinQuestionnaire\r\n ) ?? false;\r\n\r\n const allQuestionsFilled =\r\n nextQuestionnarie?.question1 != PeriodQuestionnaireQuestionAnswer.NotSelected &&\r\n nextQuestionnarie?.question2 != Question2Choices.NotSelected &&\r\n nextQuestionnarie?.question3 != Question3Choices.NotSelected;\r\n\r\n const handleSubmitQuestionnarie = () => {\r\n const submitData: SaveQuestionnarieDetails = {\r\n questionnaireId: nextQuestionnarie?.id ?? -1,\r\n question1AnswerId:\r\n nextQuestionnarie?.question1 ?? PeriodQuestionnaireQuestionAnswer.Never,\r\n question2AnswerId: nextQuestionnarie?.question2 ?? Question2Choices.No,\r\n question3AnswerId: nextQuestionnarie?.question3 ?? Question3Choices.No,\r\n };\r\n submitQuestionnarie(submitData);\r\n };\r\n\r\n const renderQuestionnarieSection = () =>\r\n data?.questionnaire ||\r\n data?.userActions?.includes(\r\n CertificationPlanWorkFlowActions.FillinQuestionnaire\r\n ) ? (\r\n {\r\n setNextQuestionnarie(q);\r\n }}\r\n />\r\n ) : null;\r\n\r\n const renderContentActions = () => (\r\n \r\n );\r\n\r\n const renderDetailsActions = () => (\r\n <>\r\n {canEditDates && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n {canSubmitQuestionnarie && (\r\n \r\n )}\r\n \r\n );\r\n return (\r\n \r\n \r\n \r\n {data && (\r\n <>\r\n \r\n division?.name ?? '...',\r\n },\r\n {\r\n field: 'businessUnit',\r\n headerName: 'Division',\r\n renderField: (item) => item?.businessUnit?.description,\r\n },\r\n {\r\n field: 'productGroup',\r\n headerName: 'Product group',\r\n renderField: ({ productGroup }) => productGroup ? `${productGroup?.code} - ${productGroup?.name}` : '...',\r\n },\r\n {\r\n field: 'release',\r\n headerName: 'Release',\r\n },\r\n { field: 'mainFunction', headerName: 'Main function' },\r\n {\r\n field: 'level',\r\n headerName: 'Level',\r\n renderField: ({ level }) => level?.description,\r\n },\r\n {\r\n field: 'scope',\r\n headerName: 'Scope',\r\n renderField: ({ scope }) => scope?.description,\r\n },\r\n {\r\n field: 'scopeDetails',\r\n headerName: 'Scope details',\r\n renderField: ({ scopeDetails }) => //scopeDetail?.description,\r\n <>\r\n {Array.isArray(scopeDetails) && scopeDetails.length ? scopeDetails.map((sd, i) => (\r\n
{sd.description}
\r\n )) : '...'}\r\n \r\n },\r\n {\r\n field: 'approverType',\r\n headerName: 'Approver type',\r\n renderField: ({ approverType }) => approverType?.description,\r\n },\r\n {\r\n field: 'approvers',\r\n headerName: 'Approvers',\r\n renderField: ({ approvers }) =>\r\n <>\r\n {Array.isArray(approvers) && approvers.length ? approvers.map((approver, i) => (\r\n
{approver}
\r\n )) : '...'}\r\n \r\n },\r\n {\r\n field: 'workType',\r\n headerName: 'Work type',\r\n renderField: ({ workType }) =>\r\n <>\r\n {Array.isArray(workType) && workType.length ? workType.map((work, i) => (\r\n
{work}
\r\n )) : '...'}\r\n \r\n },\r\n {\r\n field: 'enrollmentApproverType',\r\n headerName: 'Enrollment Approver type',\r\n renderField: ({ enrollmentApproverType }) => enrollmentApproverType?.description ?? '...',\r\n },\r\n {\r\n field: 'enrollmentApprovers',\r\n headerName: 'Enrollment Approvers',\r\n renderField: ({ enrollmentApprovers }) =>\r\n <>\r\n {Array.isArray(enrollmentApprovers) && enrollmentApprovers.length ? enrollmentApprovers.map((enrollmentApprover, i) => (\r\n
{enrollmentApprover}
\r\n )) : '...'}\r\n \r\n },\r\n {\r\n field: 'availableFor',\r\n headerName: 'Available for',\r\n renderField: ({ availableFor }) =>\r\n <>\r\n {(availableFor ?? []).map((availableForItem, i) => (\r\n
{availableForItem}
\r\n ))}\r\n \r\n },\r\n {\r\n field: 'expirationFrame',\r\n headerName: 'Expiration period'\r\n },\r\n {\r\n field: 'renewalFrame',\r\n headerName: 'Renewal'\r\n },\r\n {\r\n field: 'duration',\r\n headerName: 'Estimated Certificate Duration'\r\n },\r\n {\r\n field: 'ownerCountry',\r\n headerName: 'Owner country'\r\n },\r\n ]}\r\n />\r\n
\r\n\r\n \r\n (\r\n \r\n ),\r\n },\r\n {\r\n field: 'enrollmentDate',\r\n headerName: 'Enrollment date',\r\n renderField: ({ enrollmentDate }) =>\r\n formatDate(enrollmentDate),\r\n },\r\n {\r\n field: 'approvedDate',\r\n headerName: 'Approval date',\r\n renderField: ({ approvedDate }) => formatDate(approvedDate),\r\n },\r\n {\r\n field: 'renewalDate',\r\n headerName: 'Renewal date',\r\n renderField: ({ renewalDate }) => formatDate(renewalDate),\r\n },\r\n {\r\n field: 'expirationDate',\r\n headerName: 'Expiration date',\r\n renderField: ({ expirationDate }) =>\r\n formatDate(expirationDate),\r\n },\r\n {\r\n field: 'dueDate',\r\n headerName: 'Due date',\r\n renderField: ({ dueDate }) => dueDate && dayjs(dueDate) < dayjs().set('hour', 0).set('minute', 0) ?\r\n {formatDate(dueDate)}\r\n : formatDate(dueDate),\r\n },\r\n ]}\r\n renderExtraContent={renderQuestionnarieSection}\r\n renderActions={renderDetailsActions}\r\n />\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {\r\n queryClient.invalidateQueries(certificationPlansKey);\r\n requirementsRefetch();\r\n }}\r\n DataTableProps={{\r\n columns,\r\n rows: requirementsData?.requirements ?? [],\r\n loading: requirementsLoading,\r\n noDataMessage: 'No requirements to display',\r\n checkboxSelection: true,\r\n renderCollapseRow: (row, collapseRow) => (\r\n
\r\n
\r\n \r\n
\r\n
\r\n {\r\n // eslint-disable-next-line \r\n row.additionalNotesCount += 1;\r\n }\r\n }\r\n />\r\n \r\n
\r\n
\r\n ),\r\n }}\r\n />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n\r\nexport default CertificationPlansDetailsPage;\r\n","import { useQuery } from 'react-query';\r\n\r\nimport { CertificationPlanHistory } from '../model/CertificationPlanHistory';\r\nimport { certificationPlanApi } from '../service/certificationPlans.api';\r\n\r\nconst certificationPlansHistoryKey = 'certification-plans-history';\r\nexport const useCertificationPlansHistoryQuery = (certificatePlanId: number) =>\r\n useQuery(certificationPlansHistoryKey, () =>\r\n certificationPlanApi.getCertificationPlanHistory(certificatePlanId)\r\n );\r\n","import { apiClient } from '../../service';\r\nimport { ApiError } from '../../model/ApiError';\r\nimport {\r\n PendingApprovals,\r\n PendingApprovalsQuery,\r\n PendingApprovalsResults,\r\n} from '../model';\r\n\r\nconst getPendingApprovals = async (\r\n query: Partial\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post('/pending-approvals', query);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst approvePendingApprovals = async (\r\n taskIds: number[], expirationDate?: string \r\n): Promise => {\r\n try {\r\n const response = await apiClient.post('/pending-approvals/mass-approve', {\r\n taskIds,\r\n expirationDate\r\n });\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst rejectPendingApprovals = async (\r\n taskId: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `/pending-approvals/${taskId}/reject`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport { getPendingApprovals, approvePendingApprovals, rejectPendingApprovals };\r\n","import { useQuery } from 'react-query';\r\nimport { PendingApprovals, PendingApprovalsQuery } from '../model';\r\nimport * as pendingApprovalApi from '../service/pendingApprovals.api';\r\n\r\nexport const pendingApprovalKey = 'pending-approval-key';\r\nexport const usePendingApprovalQuery = (\r\n query: Partial\r\n) =>\r\n useQuery>(\r\n [pendingApprovalKey],\r\n () => pendingApprovalApi.getPendingApprovals(query),\r\n { enabled: false, useErrorBoundary: false }\r\n );\r\n","import { useMemo } from 'react';\r\nimport { ObjectType } from '../../Dictionary/model/TaskType';\r\nimport { getTaskTypeItems } from '../../Dictionary/component/TaskTypeSelectField/TaskTypeSelectField';\r\nimport { StatusChip } from '../../components/StatusChip';\r\n\r\nexport interface ObjectTypeChipProps {\r\n type: ObjectType;\r\n}\r\n\r\nexport const ObjectTypeChip = (props: ObjectTypeChipProps) => {\r\n const { type } = props;\r\n const label = useMemo(\r\n () => getTaskTypeItems().find((x) => x.id === type)?.name ?? null,\r\n [type]\r\n );\r\n return label ? : null;\r\n};\r\n","import { TaskStatus } from '../../Dictionary/model/TaskStatus';\r\nimport { AbbColor, StatusChip } from '../../components/StatusChip';\r\n\r\nexport interface TaskStatusChipProps {\r\n taskStatus: TaskStatus;\r\n}\r\n\r\nexport const TaskStatusChip = (props: TaskStatusChipProps) => {\r\n const { taskStatus } = props;\r\n let chipProps: { label: string; color: AbbColor } = {\r\n label: 'All',\r\n color: 'grey',\r\n };\r\n if (taskStatus === TaskStatus.Open) {\r\n chipProps = { label: 'Open', color: 'blue' };\r\n } else if (taskStatus === TaskStatus.Close) {\r\n chipProps = { label: 'Closed', color: 'green' };\r\n }\r\n return ;\r\n};\r\n","import { forwardRef, useState } from 'react';\r\nimport { IconButton, Button } from '@material-ui/core';\r\nimport { NavigateNext } from '@material-ui/icons';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { PendingApprovalsResults } from 'PendingApprovalsPage/model';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { useMutation } from 'react-query';\r\nimport { formatDate } from 'utils';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport { ApiError } from 'model';\r\nimport { DataObjectView } from 'components';\r\nimport {\r\n DataObjectList,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\nimport { PendingApprovalCertificate } from '../model/PendingApprovals';\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n} from '../../components/DataTable/DataTable';\r\nimport { approvePendingApprovals } from '../service/pendingApprovals.api';\r\nimport { ObjectTypeChip } from './ObjectTypeChip';\r\nimport { ObjectType } from '../../Dictionary/model/TaskType';\r\nimport {\r\n catalogDetailsRoute,\r\n certificationPlansDetailsRoute,\r\n certificationPlansEnrollRequestDetailsRoute,\r\n} from '../../route';\r\nimport { TaskStatusChip } from './TaskStatusChip';\r\nimport { RenderSubmitWithDateDialog } from './CertificateReleatedTableActions';\r\n\r\nexport interface CertificateReleatedTableProps {\r\n loading: boolean;\r\n rows: PendingApprovalCertificate[];\r\n onApprove: (mutating: boolean) => void;\r\n onApproveDone: (taskIds: number[]) => void;\r\n}\r\n\r\n// eslint-disable-next-line max-len\r\nconst userCertificateReleatedColumns: DataTableColumn[] = [\r\n {\r\n field: 'certificateTitle',\r\n headerName: 'Certificate information',\r\n renderField: ({ certificateTitle, status }) => (\r\n <>\r\n \r\n
{certificateTitle}
\r\n \r\n ),\r\n width: 400,\r\n },\r\n {\r\n field: 'type',\r\n headerName: 'Task type',\r\n width: 140,\r\n renderField: ({ type }) => ,\r\n },\r\n {\r\n field: 'companyName',\r\n headerName: 'Company',\r\n },\r\n {\r\n field: 'approver',\r\n headerName: 'Approver',\r\n },\r\n {\r\n field: 'user',\r\n headerName: 'User',\r\n },\r\n {\r\n field: 'submitter',\r\n headerName: 'Submitter',\r\n },\r\n {\r\n field: 'createDate',\r\n headerName: 'Create date',\r\n renderField: ({ createDate }) =>\r\n formatDate(createDate),\r\n }\r\n];\r\n\r\nconst noDataMessage = \"No certificate related pending approvals to display\";\r\nconst approvePendingApprovalKey = 'pending-approvals-mass-approval';\r\n\r\nexport const CertificateReleatedTable = forwardRef<\r\n HTMLDivElement,\r\n CertificateReleatedTableProps\r\n>((props: CertificateReleatedTableProps, ref) => {\r\n const { loading, rows, onApprove, onApproveDone } = props;\r\n const history = useHistory();\r\n const [selectedRows, setSelectedRows] = useState([]);\r\n const { showSuccess, showError } = useToasts();\r\n const { mutate: approve } = useMutation<\r\n Partial,\r\n ApiError,\r\n { taskIds: number[], expirationDate?: string }\r\n >(\r\n [approvePendingApprovalKey],\r\n ({ taskIds, expirationDate }) => approvePendingApprovals(taskIds, expirationDate),\r\n {\r\n useErrorBoundary: false,\r\n onSuccess: () => {\r\n onApprove(false);\r\n onApproveDone(selectedRows);\r\n showSuccess('Tasks were approved');\r\n },\r\n onError: () => {\r\n onApprove(false);\r\n showError('Cannot mass approve tasks');\r\n },\r\n onMutate: () => onApprove(true),\r\n }\r\n );\r\n const handleNavigate = (navigateTo: number, type: ObjectType) => {\r\n let path: string | null = null;\r\n const params = {\r\n certificationPlanId: String(navigateTo),\r\n };\r\n switch (type) {\r\n case ObjectType.CPRequirement:\r\n case ObjectType.Questionnaire:\r\n case ObjectType.CertificationPlan:\r\n path = certificationPlansDetailsRoute.createRoute(params);\r\n break;\r\n case ObjectType.CertificateList:\r\n path = catalogDetailsRoute.createRoute({\r\n certificationId: String(navigateTo),\r\n });\r\n break;\r\n case ObjectType.CPEnrollmentRequest:\r\n path = certificationPlansEnrollRequestDetailsRoute.createRoute(params);\r\n break;\r\n }\r\n if (path) {\r\n //history.push(path);\r\n window.open(\r\n `${window.location.origin}${path}`,\r\n '_blank'\r\n );\r\n }\r\n };\r\n\r\n const [isDialogForApproveOpen, setIsDialogForApproveOpen] = useState(false);\r\n const renderActions = () => {\r\n const x = 1\r\n const uqActions = rows.filter(x => selectedRows.includes(x.taskId)).map(x => x.userAction ?? 'Approve').filter((value, index, self) => self.indexOf(value) === index)\r\n const canExecute = uqActions.length == 1\r\n console.log({ canExecute, uqActions, da: uqActions[0] })\r\n return (<>\r\n \r\n \r\n {isDialogForApproveOpen ?\r\n ( approve({ taskIds: selectedRows, expirationDate: d })}\r\n onClose={() => setIsDialogForApproveOpen(false)} />) :\r\n (<>)}\r\n )\r\n };\r\n\r\n return (\r\n
\r\n \r\n (\r\n (\r\n <>\r\n {renderActions()}\r\n {item.type !== ObjectType.All && (\r\n handleNavigate(item.navigateTo, item.type)}\r\n >\r\n Details\r\n \r\n )}\r\n \r\n )}\r\n />\r\n )}\r\n noDataMessage={noDataMessage}\r\n />\r\n \r\n \r\n row.taskId}\r\n outerSelectedRows={selectedRows.map((x) => String(x))}\r\n onCheckboxChange={(selected) =>\r\n setSelectedRows(selected.map((x) => Number(x)))\r\n }\r\n renderSelectedActions={renderActions}\r\n renderRowActions={({ navigateTo, type }) =>\r\n type !== ObjectType.All ? (\r\n handleNavigate(navigateTo, type)}>\r\n \r\n \r\n ) : null\r\n }\r\n enableSort\r\n onSortRequest={(direction, fieldName) => \r\n rows.sort((a,b) => {\r\n if((a[fieldName] > b[fieldName]))\r\n return direction === \"asc\" ? 1 : -1;\r\n if((a[fieldName] < b[fieldName]))\r\n return direction === \"asc\" ? -1 : 1;\r\n return 0;\r\n })\r\n }\r\n noDataMessage={noDataMessage}\r\n />\r\n \r\n
\r\n );\r\n});\r\n","import { ReactNode } from 'react';\r\nimport { IconButton } from '@material-ui/core';\r\nimport { Done, Close } from '@material-ui/icons';\r\nimport { StatusChip } from 'components/StatusChip';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { DataObjectView } from 'components';\r\nimport {\r\n DataObjectList,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\nimport {\r\n approvePendingApprovals,\r\n rejectPendingApprovals,\r\n} from 'PendingApprovalsPage/service/pendingApprovals.api';\r\nimport { useMutation } from 'react-query';\r\nimport { formatDate } from 'utils';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n} from '../../components/DataTable/DataTable';\r\nimport { PendingApprovalCertificate } from '../model/PendingApprovals';\r\nimport { TaskStatusChip } from './TaskStatusChip';\r\n\r\nexport interface UserReleatedTableProps {\r\n loading: boolean;\r\n rows: PendingApprovalCertificate[];\r\n onApprove: (mutating: boolean) => void;\r\n onApproveDone: (taskId: number) => void;\r\n onReject: (mutating: boolean) => void;\r\n onRejectDone: (taskId: number) => void;\r\n}\r\n\r\n// eslint-disable-next-line max-len\r\nconst userUserReleatedColumns: DataTableColumn[] = [\r\n {\r\n field: 'title',\r\n headerName: 'Change needed',\r\n notSortable: true,\r\n renderField: ({ title, status }) => (\r\n <>\r\n \r\n
\r\n \r\n ),\r\n width: 400,\r\n },\r\n {\r\n field: 'type',\r\n headerName: 'Task type',\r\n width: 140,\r\n renderField: ({ text }) => ,\r\n },\r\n {\r\n field: 'companyName',\r\n headerName: 'Company',\r\n },\r\n {\r\n field: 'approver',\r\n headerName: 'Approver',\r\n },\r\n {\r\n field: 'submitter',\r\n headerName: 'Submitter',\r\n },\r\n {\r\n field: 'createDate',\r\n headerName: 'Create date',\r\n renderField: ({ createDate }) =>\r\n formatDate(createDate),\r\n }\r\n];\r\n\r\nconst noDataMessage = \"No user related pending approvals to display\";\r\nconst approvePendingApprovalKey = 'user-releated-mass-approve';\r\nconst rejectPendingApprovalKey = 'user-releated-reject';\r\n\r\nexport const UserReleatedTable = (props: UserReleatedTableProps) => {\r\n const {\r\n loading,\r\n rows,\r\n onApprove,\r\n onApproveDone,\r\n onReject,\r\n onRejectDone,\r\n } = props;\r\n const { showSuccess, showError } = useToasts();\r\n const { mutate: approve } = useMutation(\r\n [approvePendingApprovalKey],\r\n approvePendingApprovals,\r\n {\r\n useErrorBoundary: false,\r\n onSuccess: () => {\r\n onApprove(false);\r\n onApproveDone(0);\r\n showSuccess('Tasks were approved');\r\n },\r\n onError: () => {\r\n onApprove(false);\r\n showError('Cannot mass approve tasks');\r\n },\r\n onMutate: () => onApprove(true),\r\n }\r\n );\r\n const { mutate: reject } = useMutation(\r\n [rejectPendingApprovalKey],\r\n rejectPendingApprovals,\r\n {\r\n useErrorBoundary: false,\r\n onSuccess: () => {\r\n onReject(false);\r\n onRejectDone(0);\r\n showSuccess('Task was rejected');\r\n },\r\n onError: () => {\r\n onReject(false);\r\n showError('Cannot reject task');\r\n },\r\n onMutate: () => onReject(true),\r\n }\r\n );\r\n const renderRowActions = (row: PendingApprovalCertificate): ReactNode => (\r\n <>\r\n approve([row.taskId])}>\r\n \r\n \r\n reject(row.taskId)}>\r\n \r\n \r\n \r\n );\r\n return (\r\n <>\r\n \r\n (\r\n renderRowActions(item)}\r\n />\r\n )}\r\n noDataMessage={noDataMessage}\r\n />\r\n \r\n \r\n row.taskId}\r\n showRowActionsOnHover={true}\r\n renderRowActions={renderRowActions}\r\n noDataMessage={noDataMessage}\r\n enableSort\r\n onSortRequest={(direction, fieldName) => \r\n rows.sort((a,b) => {\r\n if((a[fieldName] > b[fieldName]))\r\n return direction === \"asc\" ? 1 : -1;\r\n if((a[fieldName] < b[fieldName]))\r\n return direction === \"asc\" ? -1 : 1;\r\n return 0;\r\n })\r\n }\r\n />\r\n \r\n \r\n );\r\n};\r\n","import { useEffect, useMemo } from 'react';\r\nimport { Skeleton } from '@material-ui/lab';\r\nimport { PendingApprovalsQuery } from '../model';\r\nimport { TabsView } from '../../components/TabsView';\r\nimport { usePendingApprovalQuery } from '../query/pendingApprovals.query';\r\nimport { CertificateReleatedTable } from './CertificateReleatedTable';\r\nimport { UserReleatedTable } from './UserReleatedTable';\r\n\r\nexport interface PendingApprovalsTabsProps {\r\n query: PendingApprovalsQuery;\r\n onMutating: (mutating: boolean) => void;\r\n tabIndex: number;\r\n onChange: (tabIndex: number)=>void\r\n}\r\n\r\nexport const PendingApprovalsTabs = (props: PendingApprovalsTabsProps) => {\r\n const { query, onMutating, tabIndex, onChange } = props;\r\n \r\n const {\r\n data = { certificateRelated: [], totalCount: 0, userRelated: [] },\r\n isLoading,\r\n isFetching,\r\n refetch,\r\n } = usePendingApprovalQuery(query);\r\n useEffect(() => {\r\n refetch();\r\n }, [query]\r\n );\r\n\r\n const labels = useMemo(\r\n () => [\r\n `Certificate related (${data?.certificateRelated?.length ?? 0})`,\r\n `User related (${data?.userRelated?.length ?? 0})`,\r\n ],\r\n [data]\r\n );\r\n return isLoading || isFetching ? (\r\n \r\n ) : (\r\n \r\n onMutating(mutation)}\r\n onApproveDone={() => refetch()}\r\n />\r\n onMutating(mutation)}\r\n onApproveDone={() => refetch()}\r\n onReject={(mutation) => onMutating(mutation)}\r\n onRejectDone={() => refetch()}\r\n />\r\n \r\n );\r\n};\r\n","import { SearchFiltersForm, SearchFiltersFormProps } from 'components';\r\nimport { Grid, Typography, makeStyles } from '@material-ui/core';\r\nimport { KeyboardDatePicker } from '@material-ui/pickers';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport { ObjectType } from 'Dictionary/model/TaskType';\r\nimport {\r\n getTaskStatusItems,\r\n ActiveBusinessUnitSelectField,\r\n TaskTypeSelectField,\r\n TaskStatusSelectField,\r\n BusinessUnitSelectField,\r\n DivisionSelectField,\r\n PGUnitSelectField,\r\n CompanyWithFiltersField,\r\n CountriesSelectField,\r\n EmployeeJobSelectField,\r\n EmployeeJobFamilySelectField,\r\n ApproverSelectField,\r\n CertificateFunctionSelectField,\r\n WorkTypeSelectField,\r\n ScopeSelectField,\r\n ScopeDetailsField,\r\n mapScopeDetailsFilterParams,\r\n getTaskTypeItems,\r\n LevelSelectField,\r\n DateRangeSelectField\r\n} from 'Dictionary/component';\r\nimport { FormikTextField } from 'components/FormikField';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport { TaskStatus } from 'Dictionary/model/TaskStatus';\r\nimport { DateRangeOption } from 'Dictionary/component/DateRangeSelectField/DateRangeSelectField';\r\nimport { mapCompanyFilterParams } from 'Dictionary/component/CompanyWithFiltersField/CompanyWithFiltersField';\r\nimport {\r\n IsExternalSelectField,\r\n IsExternalType,\r\n} from 'Dictionary/component/IsExternalSelectField/IsExternalSelectField';\r\nimport { CertificationPlanScopeType } from 'enums/CertificationPlanScopeType';\r\nimport { CertificationPlanLevelType } from 'enums/CertificationPlanLevelType';\r\nimport { useMyProfileQuery } from 'MyProfile/query/myProfile.query';\r\nimport { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { useMemo, useState } from 'react';\r\nimport { useIsFetching } from 'react-query';\r\nimport { pendingApprovalKey } from 'PendingApprovalsPage/query/pendingApprovals.query';\r\nimport { formatTemplate } from '../../utils';\r\nimport {\r\n PendingApprovalsQuery,\r\n PendingApprovalsFormData,\r\n getPendingApprovalsQuery,\r\n} from '../model';\r\n\r\nconst useStyles = makeStyles(\r\n (theme) => ({\r\n root: {\r\n margin: theme.spacing(2, 0),\r\n },\r\n }),\r\n {\r\n name: 'SubHeaderTitle',\r\n }\r\n);\r\n\r\nconst SubHeaderTitle = (props: { title: string }) => {\r\n const classes = useStyles(props);\r\n return (\r\n \r\n {props.title}\r\n \r\n );\r\n};\r\n\r\nexport interface PendingApprovalsSearchBarProps\r\n extends Pick<\r\n SearchFiltersFormProps,\r\n 'renderPageActions'\r\n > {\r\n onSubmit: (query: PendingApprovalsQuery) => void;\r\n}\r\n\r\nexport const getInitialValues: (\r\n profile: MyProfile | null\r\n) => PendingApprovalsFormData = (profile) => ({\r\n impersonateUserName: profile\r\n ? {\r\n id: profile?.email ?? '',\r\n name: `${profile.firstName} ${profile.lastName} ${\r\n profile.geid ? `(${profile.geid})` : ''\r\n }`,\r\n }\r\n : {},\r\n searchText: '',\r\n taskType: getTaskTypeItems().find((x) => x.id === ObjectType.All) ?? {},\r\n taskStatus: getTaskStatusItems().find((x) => x.id === TaskStatus.Open) ?? {},\r\n createdDateAfter: null,\r\n createdDateBefore: null, \r\n peopleBusinessUnit: { id: 0, name: 'All Divisions' },\r\n peopleDivision: { id: 0, name: 'All Business Areas' },\r\n peopleProductGroups: [],\r\n peopleCountries: [],\r\n peopleJobList: [],\r\n peopleJobFamilyList: [],\r\n peopleCompanies: [],\r\n isExternalPeople: { id: IsExternalType.All, name: 'All users' },\r\n businessUnit: { id: 0, name: 'All Divisions' },\r\n division: { id: 0, name: 'All Business Areas' },\r\n productGroups: [],\r\n scope: { id: CertificationPlanScopeType.AllScopes, name: 'All scopes' },\r\n isExternal: { id: IsExternalType.All, name: 'All users' },\r\n levels: [\r\n { id: CertificationPlanLevelType.Basic, name: 'Basic' },\r\n { id: CertificationPlanLevelType.Expert, name: 'Expert' },\r\n { id: CertificationPlanLevelType.General, name: 'General' },\r\n { id: CertificationPlanLevelType.Master, name: 'Master' },\r\n { id: CertificationPlanLevelType.Trainer, name: 'Trainer' }\r\n ],\r\n certificateFunction: [],\r\n workType: [],\r\n scopeDetails: [],\r\n certificateTitle: '',\r\n dateRange: { id: DateRangeOption.Custom, name: 'Custom' }\r\n});\r\n\r\nexport const PendingApprovalsSearchBar = (\r\n props: PendingApprovalsSearchBarProps\r\n) => {\r\n const { onSubmit, ...other } = props;\r\n const fetchingKeys = useIsFetching(pendingApprovalKey);\r\n const [createDateAfter, setCreateDateAfter] = useState(null);\r\n const [createDateBefore, setCreateDateBefore] = useState(null);\r\n const [customDateRangeSelected, setCustomDateRangeSelected] = useState(true);\r\n const { data } = useMyProfileQuery();\r\n const initialValues = useMemo(() => getInitialValues(data ?? null), [data]);\r\n const handleOnFiltersSubmit: SearchFiltersFormProps['onSubmit'] = (\r\n values\r\n ) => {\r\n onSubmit(getPendingApprovalsQuery(values));\r\n };\r\n return (\r\n \r\n {({ values, setFieldValue }) => {\r\n \r\n const handleOnPeopleDivisionChange = () => {\r\n setFieldValue('peopleBusinessUnit', initialValues.peopleBusinessUnit);\r\n setFieldValue('peopleProductGroups', initialValues.peopleProductGroups);\r\n }\r\n const handleOnPeopleBusinessUnitChange = () => {\r\n setFieldValue('peopleProductGroups', initialValues.peopleProductGroups);\r\n setFieldValue('peopleCompanies', initialValues.peopleCompanies);\r\n };\r\n const handleOnDivisionChange = () => {\r\n setFieldValue('businessUnit', initialValues.businessUnit);\r\n setFieldValue('scopeDetails', initialValues.scopeDetails);\r\n setFieldValue('productGroups', initialValues.productGroups);\r\n }\r\n const handleOnBusinessUnitChange = () => {\r\n setFieldValue('scopeDetails', initialValues.scopeDetails);\r\n setFieldValue('productGroups', initialValues.productGroups);\r\n };\r\n const handleCreateDateAfterChange = (date: Dayjs | null) => {\r\n setCreateDateAfter(date);\r\n setFieldValue('createdDateAfter', date && date.isValid() ? dayjs(date).toISOString() : null);\r\n };\r\n const handleCreateDateBeforeChange = (date: Dayjs | null) => {\r\n setCreateDateBefore(date);\r\n setFieldValue('createdDateBefore', date && date.isValid() ? dayjs(date).toISOString() : null);\r\n };\r\n const handleOnDateRangeChange = (range: DateRangeOption) => {\r\n setCustomDateRangeSelected(range === DateRangeOption.Custom); \r\n const today = dayjs(); \r\n switch(range){\r\n case DateRangeOption.Custom:\r\n handleCreateDateAfterChange(null);\r\n handleCreateDateBeforeChange(null);\r\n break; \r\n case DateRangeOption.Today: \r\n handleCreateDateAfterChange(today);\r\n handleCreateDateBeforeChange(today);\r\n break; \r\n case DateRangeOption.Yesterday:\r\n handleCreateDateAfterChange(today.subtract(1, 'day'));\r\n handleCreateDateBeforeChange(today.subtract(1, 'day'));\r\n break;\r\n case DateRangeOption.Last7Days:\r\n handleCreateDateAfterChange(today.subtract(7, 'day'));\r\n handleCreateDateBeforeChange(today);\r\n break; \r\n case DateRangeOption.CurrentMonth:\r\n handleCreateDateAfterChange(today.date(1));\r\n handleCreateDateBeforeChange(today);\r\n break; \r\n case DateRangeOption.PreviousMonth:\r\n handleCreateDateAfterChange(today.subtract(1, 'month').startOf('month'));\r\n handleCreateDateBeforeChange(today.subtract(1, 'month').endOf('month'));\r\n break; \r\n case DateRangeOption.Last90Days:\r\n handleCreateDateAfterChange(today.subtract(90, 'day'));\r\n handleCreateDateBeforeChange(today);\r\n break; \r\n }\r\n }\r\n \r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setFieldValue('scopeDetails', initialValues.scopeDetails)\r\n }\r\n required={false}\r\n disableClearable\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n handleOnDateRangeChange((value as AutocompleteFieldItem).id as DateRangeOption)} \r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }}\r\n \r\n );\r\n};\r\n\r\nexport default PendingApprovalsSearchBar;\r\n","import { CertificationPlanLevelType } from 'enums/CertificationPlanLevelType';\r\nimport { TaskStatus } from '../../Dictionary/model/TaskStatus';\r\nimport { ObjectType } from '../../Dictionary/model/TaskType';\r\nimport { PendingApprovalsFormData } from './PendingApprovalsFormData';\r\nimport { CertificationPlanScopeType } from '../../enums/CertificationPlanScopeType';\r\nimport { PendingApprovalsQuery } from './PendingApprovalsQuery';\r\nimport {\r\n getIsExternal,\r\n IsExternalType,\r\n} from '../../Dictionary/component/IsExternalSelectField/IsExternalSelectField';\r\nimport { authProvider } from '../../service/authProvider';\r\n\r\nexport const getPendingApprovalsQuery = (\r\n formData: PendingApprovalsFormData\r\n): PendingApprovalsQuery => {\r\n const businessUnit = Number(formData?.businessUnit?.id);\r\n const scope = Number(formData?.scope?.id);\r\n return {\r\n impersonateUserName: (formData.impersonateUserName.id as string) ?? '',\r\n taskStatus: formData.taskStatus.id as TaskStatus,\r\n taskType: formData.taskType.id as ObjectType,\r\n createDateAfter: formData.createdDateAfter,\r\n createDateBefore: formData.createdDateBefore,\r\n peopleFilter: {\r\n countryList: formData.peopleCountries.map((x) => x.id as number),\r\n userJobList: formData.peopleJobList.map((x) => x.id as number),\r\n userJobFamilyList: formData.peopleJobFamilyList.map((x) => x.id as number),\r\n companyList: formData.peopleCompanies.map((x) => x.id as number),\r\n isExternal:\r\n getIsExternal(formData?.isExternalPeople?.id as IsExternalType),\r\n businessUnitId: formData.peopleBusinessUnit.id as number,\r\n divisionId: formData.peopleDivision.id as number,\r\n productGroupList: formData.peopleProductGroups.map(x => x.id as number),\r\n personName: formData.searchText ?? '',\r\n },\r\n certificateFilter: {\r\n businessUnitID: !isNaN(businessUnit) ? businessUnit : 0,\r\n divisionId: formData.division.id as number,\r\n productGroups: formData.productGroups.map((x) => x.id as number),\r\n scopeID: !isNaN(scope) ? scope : 0,\r\n channelTypeID: 0,\r\n isExternal:\r\n getIsExternal(formData?.isExternal?.id as IsExternalType),\r\n countries: [],\r\n levels: formData.levels.map((x) => x.id as number),\r\n jobRoles: [],\r\n certificateFunction: formData.certificateFunction.map(\r\n (x) => x.id as number\r\n ),\r\n workType: formData.workType.map(\r\n (x) => x.id as number\r\n ),\r\n scopeDetails: formData.scopeDetails.map(x => x.id as number),\r\n certificateTitle: formData.certificateTitle ?? '',\r\n certificateList: [], // not required\r\n },\r\n };\r\n};\r\n\r\nexport const getEmptyPendingApprovalsQuery = (): PendingApprovalsQuery => ({\r\n impersonateUserName: authProvider.getAccount()?.userName ?? '',\r\n taskStatus: TaskStatus.Open,\r\n taskType: ObjectType.All,\r\n createDateAfter: null,\r\n createDateBefore: null,\r\n peopleFilter: {\r\n countryList: [],\r\n userJobList: [],\r\n userJobFamilyList: [],\r\n companyList: [],\r\n isExternal: null,\r\n businessUnitId: 0,\r\n divisionId: 0,\r\n productGroupList: [],\r\n personName: '',\r\n },\r\n certificateFilter: {\r\n businessUnitID: 0,\r\n divisionId: 0,\r\n productGroups: [],\r\n scopeID: 0,\r\n channelTypeID: 0,\r\n isExternal: null,\r\n countries: [],\r\n levels: [\r\n CertificationPlanLevelType.Basic,\r\n CertificationPlanLevelType.Expert,\r\n CertificationPlanLevelType.General,\r\n CertificationPlanLevelType.Master,\r\n CertificationPlanLevelType.Trainer\r\n ],\r\n jobRoles: [],\r\n certificateFunction: [],\r\n workType: [],\r\n scopeDetails: [],\r\n certificateTitle: '',\r\n certificateList: [],\r\n },\r\n});\r\n","import { Grid, useTheme } from '@material-ui/core';\r\nimport { Content } from 'components/Page';\r\nimport {\r\n PendingApprovalsSearchBar,\r\n PendingApprovalsTabs,\r\n} from 'PendingApprovalsPage/components';\r\nimport {\r\n getEmptyPendingApprovalsQuery,\r\n PendingApprovalsQuery,\r\n} from 'PendingApprovalsPage/model';\r\nimport { pendingApprovalKey } from 'PendingApprovalsPage/query/pendingApprovals.query';\r\nimport { useState } from 'react';\r\nimport { useIsFetching } from 'react-query';\r\n\r\nexport const PendingApprovalsPage = () => {\r\n const theme = useTheme();\r\n const [tab, setTab] = useState(0);\r\n const [mutating, setMutating] = useState(false);\r\n const fetching = useIsFetching({ queryKey: pendingApprovalKey });\r\n const [query, setQuery] = useState(\r\n getEmptyPendingApprovalsQuery()\r\n );\r\n const handleSubmit = (query: PendingApprovalsQuery) => {\r\n setQuery({ ...query });\r\n };\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default PendingApprovalsPage;\r\n","import { useQuery, UseQueryOptions } from 'react-query';\r\n\r\nimport { mapPaginationDto, PaginatedList, Pagination, Sort } from 'model';\r\nimport { catalogApi } from 'Catalog/service/catalog.api';\r\nimport { CatalogSearchFilters } from 'Catalog/model/CatalogSearchFilters';\r\nimport { CertificationPlansDetails } from 'CertificationPlansPage/model/CertificationPlansDetails';\r\n\r\nexport const catalogKey = 'catalog';\r\nexport const useCatalogQuery = (\r\n pagination: Pagination,\r\n sort: Sort,\r\n filters: Partial,\r\n options: UseQueryOptions>\r\n) =>\r\n useQuery>(\r\n [catalogKey, mapPaginationDto(pagination), sort, filters],\r\n () => catalogApi.search(mapPaginationDto(pagination), sort, filters),\r\n options\r\n );\r\n","import { BusinessUnit } from 'Dictionary/model/BusinessUnit';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface TrainingSet {\r\n id: number;\r\n name: string;\r\n businessUnit: BusinessUnit;\r\n}\r\n\r\nexport const mapToAutocompleteFieldItems = (\r\n trainingSets: TrainingSet[] = []\r\n): AutocompleteFieldItem[] =>\r\n trainingSets.map((set) => ({\r\n id: set.id,\r\n name: set.name,\r\n }));\r\n","import { apiClient } from 'service';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { TrainingSet } from 'TrainingSet/model/TrainingSet';\r\n\r\nconst domainPath = '/training-sets';\r\n\r\nconst getList = async (buId: number): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/business-unit/${buId}`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const trainingSetApi = {\r\n getList,\r\n};\r\n","import React, { FC } from 'react';\r\n\r\nimport { mapToAutocompleteFieldItems } from 'TrainingSet/model/TrainingSet';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { useTrainingSetsQuery } from 'TrainingSet/query/trainingSetQuery';\r\n\r\nexport interface TrainingSetsSelectFieldProps\r\n extends Omit {\r\n buId: number;\r\n}\r\n\r\nexport const TrainingSetsSelectField: FC = ({\r\n buId,\r\n multiple = true,\r\n disabled = false,\r\n ...otherProps\r\n}) => {\r\n const { data, isLoading, refetch } = useTrainingSetsQuery(buId);\r\n\r\n return (\r\n refetch()}\r\n {...otherProps}\r\n />\r\n );\r\n};\r\n","import { useQuery } from 'react-query';\r\n\r\nimport { trainingSetApi } from 'TrainingSet/service/trainingSet.api';\r\nimport { TrainingSet } from 'TrainingSet/model/TrainingSet';\r\n\r\nexport const trainingSetsKey = 'training-set';\r\nexport const useTrainingSetsQuery = (buId: number) =>\r\n useQuery(\r\n [trainingSetsKey, buId],\r\n () => trainingSetApi.getList(buId),\r\n {\r\n enabled: false,\r\n }\r\n );\r\n","import { FC } from 'react';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport * as Yup from 'yup';\r\nimport { useIsFetching } from 'react-query';\r\n\r\nimport {\r\n CertificateFunctionSelectField,\r\n WorkTypeSelectField,\r\n DivisionSelectField,\r\n PGUnitSelectField,\r\n LevelSelectField,\r\n ValiditySelectField,\r\n ActiveBusinessUnitSelectField,\r\n ScopeSelectField,\r\n IsExternalType,\r\n CompanyChannelSelectField,\r\n ScopeDetailsField,\r\n mapScopeDetailsFilterParams,\r\n} from 'Dictionary/component';\r\nimport { CatalogFiltersFormData } from 'Catalog/model/CatalogFiltersFormData';\r\nimport {\r\n getIsExternal,\r\n IsExternalSelectField,\r\n} from 'Dictionary/component/IsExternalSelectField/IsExternalSelectField';\r\nimport { SearchFiltersForm, SearchFiltersFormProps } from 'components';\r\nimport { CatalogSearchFilters } from 'Catalog/model/CatalogSearchFilters';\r\nimport { CertificationPlanScopeType } from 'enums/CertificationPlanScopeType';\r\nimport { CertificationPlanLevelType } from 'enums/CertificationPlanLevelType';\r\nimport { FieldRoot } from 'components/SearchFiltersForm/SearchFiltersForm.style';\r\nimport { TrainingSetsSelectField } from 'TrainingSet/component/TrainingSetsSelectField/TrainingSetsSelectField';\r\nimport { allBusinessUnitField } from 'Dictionary/component/ActiveBusinessUnitSelectField/ActiveBusinessUnitSelectField';\r\nimport { catalogKey } from 'Catalog/query/catalogQuery';\r\n\r\nexport interface CatalogSearchFiltersFormProps\r\n extends Pick<\r\n SearchFiltersFormProps,\r\n 'renderPageActions' | 'placeholder'\r\n > {\r\n onFiltersSubmit: (catalogSearchFilters: CatalogSearchFilters) => void;\r\n fullScreenList?: boolean;\r\n displayTrainingSets?: boolean;\r\n}\r\n\r\nexport const initialValues: CatalogFiltersFormData = {\r\n searchText: '',\r\n businessUnit: allBusinessUnitField,\r\n division: { id: 0, name: 'All Business Areas' },\r\n level: [\r\n { id: CertificationPlanLevelType.Basic, name: 'Basic' },\r\n { id: CertificationPlanLevelType.Expert, name: 'Expert' },\r\n { id: CertificationPlanLevelType.General, name: 'General' },\r\n { id: CertificationPlanLevelType.Master, name: 'Master' },\r\n { id: CertificationPlanLevelType.Trainer, name: 'Trainer' },\r\n ],\r\n validity:[],\r\n scope: { id: CertificationPlanScopeType.AllScopes, name: 'All scopes' },\r\n certificateFunction: [],\r\n workType: [],\r\n productGroups: [],\r\n isExternal: { id: IsExternalType.All, name: 'All users' },\r\n channelType: { id: 0, name: 'All channel types' },\r\n trainingSets: [],\r\n scopeDetails: [],\r\n};\r\n\r\nconst formValidationSchema = Yup.object().shape({\r\n level: Yup.array().min(1, 'Select at least one Level'),\r\n});\r\n\r\nexport const mapCatalogSearchFilters = (\r\n catalogFiltersFormData: Partial\r\n): CatalogSearchFilters => {\r\n const businessUnit = Number(catalogFiltersFormData?.businessUnit?.id);\r\n const division = Number(catalogFiltersFormData?.division?.id);\r\n const scope = Number(catalogFiltersFormData?.scope?.id);\r\n const channelType = Number(catalogFiltersFormData?.channelType);\r\n\r\n return {\r\n businessUnitID: !isNaN(businessUnit) ? businessUnit : 0,\r\n divisionID: !isNaN(division) ? division : 0, \r\n scopeID: !isNaN(scope) ? scope : CertificationPlanScopeType.Application,\r\n channelTypeID: !isNaN(channelType) ? channelType : 0,\r\n isExternal: getIsExternal(\r\n catalogFiltersFormData?.isExternal?.id as IsExternalType\r\n ),\r\n productGroups: (catalogFiltersFormData?.productGroups ?? []).map((pg) =>\r\n Number(pg.id)\r\n ),\r\n levels: (catalogFiltersFormData?.level ?? []).map((eachLevel) =>\r\n Number(eachLevel.id)\r\n ),\r\n validity: (catalogFiltersFormData?.validity ?? []).map((eachValidity) =>\r\n Number(eachValidity.id)\r\n ),\r\n certificateFunction: (\r\n catalogFiltersFormData?.certificateFunction ?? []\r\n ).map((eachFunction) => Number(eachFunction.id)),\r\n workType: (\r\n catalogFiltersFormData?.workType ?? []\r\n ).map((work) => Number(work.id)),\r\n certificateTitle: catalogFiltersFormData.searchText ?? '',\r\n excludePrerequisites: false,\r\n trainingSets: (catalogFiltersFormData?.trainingSets ?? []).map((set) =>\r\n Number(set.id)\r\n ),\r\n countries: [0],\r\n certificateList: [],\r\n scopeDetails: (catalogFiltersFormData?.scopeDetails ?? []).map((field) =>\r\n Number(field.id)\r\n ),\r\n };\r\n};\r\n\r\nexport const CatalogSearchFiltersForm: FC = ({\r\n onFiltersSubmit,\r\n renderPageActions,\r\n fullScreenList = true,\r\n displayTrainingSets = false,\r\n placeholder,\r\n}) => {\r\n const fetchingKeys = useIsFetching(catalogKey);\r\n const lgValue = fullScreenList ? 4 : 12;\r\n const handleOnFiltersSubmit: SearchFiltersFormProps['onSubmit'] = (\r\n values\r\n ) => onFiltersSubmit(mapCatalogSearchFilters(values));\r\n\r\n return (\r\n \r\n {({ values, setFieldValue }) => {\r\n const handleOnDivisionChange = () => {\r\n setFieldValue('businessUnit', initialValues.businessUnit);\r\n setFieldValue('trainingSets', initialValues.trainingSets);\r\n setFieldValue('scopeDetails', initialValues.scopeDetails);\r\n setFieldValue('productGroups', initialValues.productGroups);\r\n }\r\n const handleOnBusinessUnitChange = () => {\r\n setFieldValue('trainingSets', initialValues.trainingSets);\r\n setFieldValue('scopeDetails', initialValues.scopeDetails);\r\n setFieldValue('productGroups', initialValues.productGroups);\r\n };\r\n const handleOnScopeChange = () =>\r\n setFieldValue('scopeDetails', initialValues.scopeDetails);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {displayTrainingSets && (\r\n \r\n \r\n \r\n )} \r\n \r\n \r\n );\r\n }}\r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\nimport Typography, { TypographyProps } from '@material-ui/core/Typography';\r\n\r\nexport const TitleTypography = styled(Typography)`\r\n && {\r\n font-weight: ${({ theme }) => theme.typography.fontWeightBold};\r\n }\r\n`;\r\n\r\nexport const DescriptionCaptionTypography = styled(Typography)`\r\n display: block;\r\n margin-top: ${({ theme }) => theme.spacing(0.5)}px;\r\n`;\r\n","import React, { FC } from 'react';\r\n\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport { formatDate } from 'utils';\r\nimport { CertificationPlansDetails } from 'CertificationPlansPage/model/CertificationPlansDetails';\r\nimport { BoldTypography } from 'components/Page';\r\nimport {\r\n TitleTypography,\r\n DescriptionCaptionTypography,\r\n} from './CatalogCertificateTable.style';\r\n\r\nexport const catalogColumns: DataTableColumn[] = [\r\n {\r\n field: 'title',\r\n headerName: 'Certificate',\r\n width: 450,\r\n renderField: ({ title, purpose }) => (\r\n
\r\n {title}\r\n \r\n {purpose}\r\n \r\n
\r\n ),\r\n },\r\n {\r\n field: 'businessUnit',\r\n headerName: 'Division',\r\n renderField: ({ businessUnit }) => <>{businessUnit.description},\r\n },\r\n {\r\n field: 'level',\r\n headerName: 'Level',\r\n renderField: ({ level }) => level.description,\r\n },\r\n {\r\n field: 'scope',\r\n headerName: 'Scope',\r\n renderField: ({ scope }) => scope.description,\r\n },\r\n { field: 'release', headerName: 'Release' },\r\n {\r\n field: 'publishDate',\r\n headerName: 'Published on',\r\n renderField: ({ publishDate }) => formatDate(publishDate),\r\n },\r\n { field: 'expirationFrame', headerName: 'Expiration period' },\r\n];\r\n\r\nexport const massEnrollmentColumns: DataTableColumn<\r\n CertificationPlansDetails\r\n>[] = [\r\n {\r\n field: 'title',\r\n headerName: 'Certificate',\r\n width: 300,\r\n renderField: ({ title }) => (\r\n {title}\r\n ),\r\n },\r\n {\r\n field: 'level',\r\n headerName: 'Level',\r\n renderField: ({ level }) => level.description,\r\n },\r\n];\r\n\r\nexport interface CatalogCertificateTableProps\r\n extends DataTableProps {}\r\n\r\nexport const CatalogCertificateTable: FC = ({\r\n rows,\r\n columns,\r\n loading,\r\n ...otherProps\r\n}) => (\r\n row.id}\r\n hideCollapseColumn\r\n noDataMessage=\"No certifications to display\"\r\n />\r\n);\r\n","import { FC, ReactNode, useState } from 'react';\r\nimport ExportIcon from '@material-ui/icons/VerticalAlignBottom';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport { catalogDetailsRoute } from 'route';\r\nimport { useMutation } from 'react-query';\r\n\r\nimport { getPagination, PaginatedList, Pagination, Sort } from 'model';\r\nimport { Button, DataObjectView } from 'components';\r\nimport { TablePagination } from 'components/Table';\r\nimport { useCatalogQuery } from 'Catalog/query/catalogQuery';\r\nimport {\r\n CatalogSearchFiltersForm,\r\n CatalogSearchFiltersFormProps,\r\n initialValues,\r\n mapCatalogSearchFilters,\r\n} from 'Catalog/component/CatalogSearchFiltersForm/CatalogSearchFiltersForm';\r\nimport { CatalogSearchFilters } from 'Catalog/model/CatalogSearchFilters';\r\nimport { CertificationPlansDetails } from 'CertificationPlansPage/model/CertificationPlansDetails';\r\nimport { catalogApi } from 'Catalog/service/catalog.api';\r\nimport { Loader } from 'components/Loader/Loader';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport {\r\n CatalogCertificateTable,\r\n CatalogCertificateTableProps,\r\n} from 'Catalog/component/CatalogCertificateTable';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport {\r\n DataObjectList,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\n\r\nconst initialSort: Sort = {\r\n sortExpression: 'title',\r\n sortDescending: false,\r\n};\r\n\r\nexport interface SearchCertificatesProps {\r\n initialPageSize: number;\r\n enableExcelExport?: boolean;\r\n DataTableProps: Omit;\r\n SearchFiltersFormProps?: Omit<\r\n CatalogSearchFiltersFormProps,\r\n 'onFiltersSubmit' | 'renderPageActions'\r\n >;\r\n children: (\r\n renderSearchFilters: () => ReactNode,\r\n renderTable: () => ReactNode,\r\n data?: PaginatedList\r\n ) => ReactNode;\r\n mobileView?: boolean;\r\n}\r\n\r\nexport const SearchCertificates: FC = ({\r\n initialPageSize,\r\n DataTableProps,\r\n SearchFiltersFormProps = {},\r\n enableExcelExport = true,\r\n mobileView = true,\r\n children,\r\n}) => {\r\n const { showSuccess, showError } = useToasts();\r\n const handleOpenDetails = (certificationId: number) => () =>\r\n window.open(\r\n `${window.location.origin}${catalogDetailsRoute.createRoute({\r\n certificationId: String(certificationId),\r\n })}`,\r\n '_blank'\r\n );\r\n\r\n const [pageSize, setPageSize] = useState(initialPageSize);\r\n const [pagination, setPagination] = useState(\r\n getPagination(pageSize)\r\n );\r\n const [sort, setSort] = useState>(\r\n initialSort\r\n );\r\n const [filters, setFilters] = useState>(\r\n mapCatalogSearchFilters(initialValues)\r\n );\r\n const { isFetching, data } = useCatalogQuery(pagination, sort, filters, {\r\n onSuccess: (newData) => setPagination(getPagination(pageSize, newData)),\r\n });\r\n const {\r\n mutate: exportToExcel,\r\n isLoading: isExportToExcelLoading,\r\n } = useMutation(() => catalogApi.exportToExcel(sort, filters), {\r\n onSuccess: () => showSuccess('Export to excel success'),\r\n onError: () =>\r\n showError(\r\n 'Export to excel failed. Too many records on search. Must be less than 10000.'\r\n ),\r\n });\r\n\r\n const renderSearchFilters = () => (\r\n \r\n enableExcelExport && (\r\n exportToExcel()}\r\n disabled={isExportToExcelLoading}\r\n >\r\n {isExportToExcelLoading ? (\r\n \r\n ) : (\r\n <>\r\n  Export to excel\r\n \r\n )}\r\n \r\n )\r\n }\r\n onFiltersSubmit={(catalogSearchFilters) => {\r\n setFilters(catalogSearchFilters);\r\n setPagination(getPagination(pageSize));\r\n }}\r\n {...SearchFiltersFormProps}\r\n />\r\n );\r\n\r\n const renderCertificateTable = () => (\r\n \r\n setSort({\r\n sortExpression,\r\n sortDescending: direction === 'desc',\r\n })\r\n }\r\n defaultSort={initialSort}\r\n enableSort\r\n {...DataTableProps}\r\n />\r\n );\r\n\r\n const useStyles = makeStyles({\r\n selectIcon: {\r\n position: \"relative\"\r\n }\r\n });\r\n const classes = useStyles();\r\n\r\n const renderTable = () => (\r\n <>\r\n {mobileView ? (\r\n <>\r\n {renderCertificateTable()}\r\n \r\n (\r\n (\r\n \r\n Details\r\n \r\n )}\r\n />\r\n )}\r\n noDataMessage={DataTableProps.noDataMessage}\r\n />\r\n \r\n \r\n ) : (\r\n renderCertificateTable()\r\n )}\r\n {!isFetching && (\r\n {\r\n setPageSize(parseInt(event.target.value, 10));\r\n setPagination(getPagination(parseInt(event.target.value, 10)));\r\n }}\r\n classes={{ selectIcon: classes.selectIcon }}\r\n pagination={pagination}\r\n onChangePage={(event, currentPageIndex) =>\r\n setPagination((prevPagination) => ({\r\n ...prevPagination,\r\n currentPageIndex,\r\n }))\r\n }\r\n />\r\n )}\r\n \r\n );\r\n\r\n return <>{children(renderSearchFilters, renderTable, data)};\r\n};\r\n","import Grid from '@material-ui/core/Grid';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\n\r\nimport { Content, Card } from 'components/Page';\r\nimport { SearchCertificates } from 'Catalog/component/SearchCertificates';\r\nimport { catalogColumns } from 'Catalog/component/CatalogCertificateTable';\r\nimport { catalogDetailsRoute } from 'route';\r\n\r\nconst catalogTablePageSize = 20;\r\nconst getDetailsRoute = (certificationId: number): string =>\r\n catalogDetailsRoute.createRoute({ certificationId: String(certificationId) });\r\n\r\nexport const CatalogPage = () => {\r\n const handleOpenDetails = (certificationId: number) => () =>\r\n window.open(\r\n `${window.location.origin}${getDetailsRoute(certificationId)}`,\r\n '_blank'\r\n );\r\n\r\n return (\r\n (\r\n \r\n \r\n \r\n ),\r\n }}\r\n >\r\n {(renderSearchFilters, renderTable, data) => (\r\n \r\n \r\n \r\n {renderSearchFilters()}\r\n \r\n \r\n \r\n {renderTable()}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\nimport { Form } from 'formik';\r\n\r\nexport const ActionsWrapper = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n padding: ${({ theme }) => theme.spacing(2, 0, 0)};\r\n`;\r\n\r\nexport const StyledForm = styled(Form)`\r\n width: 100%;\r\n`;\r\n","import React, { FC } from 'react';\r\n\r\nimport { useLanguagesByBusinessUnitQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { mapToAutocompleteFieldItems } from 'Dictionary/model/Language';\r\nimport {\r\n FormikAutocompleteField,\r\n FormikAutocompleteFieldProps,\r\n} from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\n\r\nexport interface LanguagesByBusinessUnitSelectFieldProps\r\n extends Omit {\r\n buId: number;\r\n}\r\n\r\n// eslint-disable-next-line max-len\r\nexport const LanguagesByBusinessUnitSelectField: FC = ({\r\n buId,\r\n multiple = true,\r\n disabled = false,\r\n ...otherProps\r\n}) => {\r\n const { data, isLoading, refetch } = useLanguagesByBusinessUnitQuery(buId);\r\n\r\n return (\r\n refetch()}\r\n required\r\n />\r\n );\r\n};\r\n","import { BusinessUnit } from 'Dictionary/model/BusinessUnit';\r\nimport { Signer } from 'Print/model/Signer';\r\nimport { PrintCertificate } from 'Print/model/PrintCertificate';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\n\r\nexport interface Print {\r\n businessUnit: BusinessUnit;\r\n nCertificate: number;\r\n signers: Signer[];\r\n certificates: PrintCertificate[];\r\n firstSignerDisabled: boolean;\r\n}\r\n\r\nexport const getSigners = (\r\n print: Print,\r\n defaultSigner: 'isDefaultFirst' | 'isDefaultSecond',\r\n signers: Signer[] = []\r\n): Signer[] => [\r\n ...print.signers.filter((signer) => signer[defaultSigner]),\r\n ...signers\r\n];\r\n\r\ntype GetSignersFunction = (print: Print) => AutocompleteFieldItem[];\r\nexport const getFirstSignersAutocompleteFields: GetSignersFunction = (print) =>\r\n getSigners(print, 'isDefaultFirst').map((signer) => ({\r\n id: signer.userId,\r\n name: signer.userName,\r\n group: '',\r\n }));\r\n\r\nexport const getSecondSignersAutocompleteFields: GetSignersFunction = (print) =>\r\n getSigners(print, 'isDefaultSecond').map((signer) => ({\r\n id: signer.userId,\r\n name: signer.userName,\r\n group: '',\r\n }));\r\n","import fileDownload from 'js-file-download';\r\n\r\nimport { apiClient } from 'service';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { Print } from 'Print/model/Print';\r\nimport { Signer } from 'Print/model/Signer';\r\nimport { SubmitPrintDto } from 'Print/model/SubmitPrintDto';\r\n\r\nconst domainPath = '/print';\r\n\r\nconst getList = async (userId: string): Promise => {\r\n try {\r\n const response = await apiClient.get(`${domainPath}/user/${userId}`);\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst print = async (userId: string, dto: SubmitPrintDto): Promise => {\r\n try {\r\n const response = await apiClient.post(`${domainPath}/user/${userId}`, dto, {\r\n responseType: 'blob',\r\n });\r\n fileDownload(response.data, 'Certificate.pdf');\r\n\r\n return [];\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getSigners = async (\r\n businessUnitId: number,\r\n languageId?: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `${domainPath}/signers/${businessUnitId}/lang/${languageId}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const printApi = {\r\n getList,\r\n getSigners,\r\n print,\r\n};\r\n","import { FC, useState } from 'react';\r\nimport { Checkbox, FormControlLabel, Grid } from '@material-ui/core';\r\nimport { Formik } from 'formik';\r\nimport { useMutation } from 'react-query';\r\n\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { Button } from 'components';\r\nimport { Card } from 'components/Page';\r\nimport { DataTable, DataTableColumn } from 'components/DataTable/DataTable';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport {\r\n ActionsWrapper,\r\n StyledForm,\r\n} from 'Print/component/PrintOutForm/PrintOutForm.style';\r\nimport { LanguagesByBusinessUnitSelectField } from 'Dictionary/component/LanguagesByBusinessUnitSelectField/LanguagesByBusinessUnitSelectField';\r\nimport { PrintOutFormData } from 'Print/model/PrintOutFormData';\r\nimport { PrintCertificate } from 'Print/model/PrintCertificate';\r\nimport {\r\n getFirstSignersAutocompleteFields,\r\n getSecondSignersAutocompleteFields,\r\n getSigners,\r\n Print,\r\n} from 'Print/model/Print';\r\nimport { FormikAutocompleteField } from 'components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { printApi } from 'Print/service/print.api';\r\nimport { SubmitPrintDto } from 'Print/model/SubmitPrintDto';\r\nimport { Signer } from 'Print/model/Signer';\r\nimport { ApiError } from 'model';\r\n\r\nexport interface PrintOutFormProps {\r\n print: Print;\r\n userId: string;\r\n}\r\n\r\nconst columns: DataTableColumn[] = [\r\n { field: 'title', headerName: 'Certificate name' },\r\n];\r\n\r\nconst mapOtherSigners = (singers?: Signer[]): AutocompleteFieldItem[] =>\r\n (singers ?? []).filter((signer) => signer.userId > 0).map((signer) => ({\r\n id: signer.userId,\r\n name: signer.userName,\r\n group: 'Other (If Authorised in Digital Signature)',\r\n }));\r\n\r\nconst initialValues: PrintOutFormData = {\r\n printingLanguage: null,\r\n firstSigner: null,\r\n secondSigner: null,\r\n};\r\n\r\nexport const PrintOutForm: FC = ({ print, userId }) => {\r\n const { showError, showSuccess } = useToasts();\r\n const [selectedCertificates, setSelectedCertificates] = useState(\r\n []\r\n );\r\n const [singlePrint, setSinglePrint] = useState(false);\r\n const {\r\n mutate: fetchSigners,\r\n data: signers,\r\n isLoading: signersLoading,\r\n } = useMutation((id) =>\r\n printApi.getSigners(print.businessUnit.id, id)\r\n );\r\n const { mutate: printPdf, isLoading: printPdfLoading } = useMutation<\r\n unknown,\r\n ApiError,\r\n SubmitPrintDto\r\n >((dto) => printApi.print(userId, dto));\r\n\r\n const firstSignerOptions = [\r\n ...getFirstSignersAutocompleteFields(print),\r\n ...mapOtherSigners(signers),\r\n ];\r\n const secondSignerOptions = [\r\n ...getSecondSignersAutocompleteFields(print),\r\n ...mapOtherSigners(signers),\r\n ];\r\n\r\n return (\r\n {\r\n const selectedSigners: Signer[] = [\r\n print.firstSignerDisabled ? print.signers.find((signer) => signer.userId === 0) : getSigners(print, 'isDefaultFirst', signers).find(\r\n (signer) => signer.userId === firstSigner?.id\r\n ),\r\n getSigners(print, 'isDefaultSecond', signers).find(\r\n (signer) => signer.userId === secondSigner?.id\r\n ),\r\n ].filter(\r\n (signerOrUndefined) => signerOrUndefined !== undefined\r\n ) as Signer[];\r\n\r\n printPdf(\r\n {\r\n languageId: Number(printingLanguage?.id),\r\n printItems: [\r\n {\r\n businessUnit: print.businessUnit,\r\n signers: selectedSigners,\r\n certificates: print.certificates.filter((certificate) =>\r\n selectedCertificates.includes(\r\n String(certificate.certificateListId)\r\n )\r\n ),\r\n },\r\n ],\r\n singlePrint: singlePrint\r\n },\r\n {\r\n onSuccess: () => {\r\n showSuccess('Print certificates success');\r\n setSelectedCertificates([]);\r\n formikHelpers.resetForm();\r\n },\r\n onError: () => showError('Print certificates error'),\r\n }\r\n );\r\n }}\r\n >\r\n {({ values, setFieldValue }) => {\r\n const signersHelperText = !values.printingLanguage?.id\r\n ? 'Select printing language first'\r\n : undefined;\r\n const isPrintDisabled =\r\n !selectedCertificates.length ||\r\n !values.printingLanguage?.id ||\r\n (!values.firstSigner?.id && !print.firstSignerDisabled) ||\r\n printPdfLoading;\r\n const isSignerDisabled = !values.printingLanguage?.id;\r\n const showSinglePrint = print.businessUnit.id === 70 || print.businessUnit.id === 91;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n fetchSigners(Number((field as AutocompleteFieldItem).id));\r\n }}\r\n disableClearable\r\n />\r\n \r\n \r\n \r\n \r\n String(field.group)}\r\n loading={signersLoading && !print.firstSignerDisabled}\r\n required\r\n />\r\n \r\n \r\n \r\n \r\n String(field.group)}\r\n loading={signersLoading}\r\n />\r\n \r\n \r\n \r\n {showSinglePrint && setSinglePrint(!singlePrint)} />}\r\n /> \r\n }\r\n \r\n \r\n print.certificates.sort((a, b) => {\r\n if ((a[fieldName] > b[fieldName]))\r\n return direction === \"asc\" ? 1 : -1;\r\n if ((a[fieldName] < b[fieldName]))\r\n return direction === \"asc\" ? -1 : 1;\r\n return 0;\r\n })\r\n }\r\n checkboxSelection\r\n rowSelector={(row) => row.certificateListId}\r\n noDataMessage=\"No certificates to display\"\r\n outerSelectedRows={selectedCertificates}\r\n onCheckboxChange={setSelectedCertificates}\r\n />\r\n \r\n \r\n Print selected certificates\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\nimport { Grid } from '@material-ui/core';\r\n\r\nimport { AccordionList } from 'components';\r\nimport { certificationsByPersonDetailsRoute } from 'route';\r\nimport { AppShellBaseProps, DetailsAppShell } from 'components/AppShell';\r\nimport { Content } from 'components/Page';\r\nimport { PrintOutForm } from 'Print/component/PrintOutForm';\r\nimport { useUserProfileQuery } from 'MyProfile/query/myProfile.query';\r\nimport { getFullName } from 'MyProfile/model/MyProfile';\r\nimport { usePrintQuery } from 'Print/query/printQuery';\r\nimport { Print } from 'Print/model/Print';\r\nimport { AccordionListProps } from 'components/Accordion/AccordionList';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nexport interface PrintOutCertificatesPageProps extends AppShellBaseProps {\r\n userId: string;\r\n}\r\n\r\nexport const mapPrintToAccordions = (\r\n userId: string,\r\n prints?: Print[]\r\n): AccordionListProps['accordions'] =>\r\n (prints ?? []).map((print) => ({\r\n summaryHeader: print.businessUnit.description,\r\n summaryCaption: 'Division',\r\n TransitionProps: { unmountOnExit: false },\r\n children: ,\r\n }));\r\n\r\nexport const PrintOutCertificatesPage: FC = ({\r\n logout,\r\n userId,\r\n}) => {\r\n const { data, isLoading } = usePrintQuery(userId);\r\n const {\r\n data: userProfile,\r\n isLoading: isUserProfileLoading,\r\n } = useUserProfileQuery(userId);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {data?.length ? (\r\n \r\n ) : (\r\n \r\n No certifications to print\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { useQuery } from 'react-query';\r\n\r\nimport { printApi } from 'Print/service/print.api';\r\nimport { Print } from 'Print/model/Print';\r\n\r\nexport const printKey = 'print';\r\nexport const usePrintQuery = (userId: string) =>\r\n useQuery([printKey, userId], () => printApi.getList(userId));\r\n","import { FC } from 'react';\r\n\r\nimport { AppShellBaseProps } from 'components/AppShell';\r\nimport { useMyProfileQuery } from 'MyProfile/query/myProfile.query';\r\nimport { PrintOutCertificatesPage } from 'page/PrintOutCertificatesPage/PrintOutCertificatesPage';\r\n\r\nexport const PrintOutMyCertificatesPage: FC = (props) => {\r\n const { data: myProfileData } = useMyProfileQuery();\r\n\r\n return (\r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nimport { AppShellBaseProps } from 'components/AppShell';\r\nimport { PrintOutCertificatesPage } from 'page/PrintOutCertificatesPage/PrintOutCertificatesPage';\r\nimport { CertificationsByPersonDetailsParams } from 'route';\r\n\r\nexport const PrintOutUserCertificatesPage: FC = (props) => {\r\n const { userId } = useParams();\r\n\r\n return ;\r\n};\r\n","import { FC } from 'react';\r\n\r\nimport { DataObjectView } from 'components';\r\nimport { formatDate } from 'utils';\r\nimport { DataObjectMap } from 'components/DataObjectView/DataObjectView';\r\nimport { CertificationPlansDetails } from 'CertificationPlansPage/model/CertificationPlansDetails';\r\n\r\nconst basicDataSetMap: DataObjectMap[] = [\r\n {\r\n field: 'division',\r\n headerName: 'Business Area',\r\n renderField: ({ division }) => division?.name ?? '...',\r\n },\r\n {\r\n field: 'businessUnit',\r\n headerName: 'Division',\r\n renderField: (item) => item?.businessUnit?.description,\r\n },\r\n {\r\n field: 'productGroup',\r\n headerName: 'Product group',\r\n renderField: ({ productGroup }) => productGroup ? `${productGroup?.code} - ${productGroup?.name}` : '...',\r\n },\r\n {\r\n field: 'release',\r\n headerName: 'Release',\r\n },\r\n { field: 'mainFunction', headerName: 'Main function' },\r\n {\r\n field: 'level',\r\n headerName: 'Level',\r\n renderField: ({ level }) => level?.description,\r\n },\r\n {\r\n field: 'scope',\r\n headerName: 'Scope',\r\n renderField: ({ scope }) => scope?.description,\r\n },\r\n {\r\n field: 'scopeDetails',\r\n headerName: 'Scope details',\r\n renderField: ({ scopeDetails }) =>\r\n <>\r\n {Array.isArray(scopeDetails) && scopeDetails.length ? scopeDetails.map((sd, i) => (\r\n
{sd.description}
\r\n )) : '...'}\r\n \r\n },\r\n {\r\n field: 'approverType',\r\n headerName: 'Approver type',\r\n renderField: ({ approverType }) => approverType?.description,\r\n },\r\n {\r\n field: 'approvers',\r\n headerName: 'Approvers',\r\n renderField: ({ approvers }) =>\r\n <>\r\n {Array.isArray(approvers) && approvers.length ? approvers.map((approver, i) => (\r\n
{approver}
\r\n )) : '...'}\r\n \r\n },\r\n {\r\n field: 'workType',\r\n headerName: 'Work type',\r\n renderField: ({ workType }) =>\r\n <>\r\n {Array.isArray(workType) && workType.length ? workType.map((work, i) => (\r\n
{work}
\r\n )) : '...'}\r\n \r\n },\r\n {\r\n field: 'enrollmentApproverType',\r\n headerName: 'Enrollment Approver type',\r\n renderField: ({ enrollmentApproverType }) => enrollmentApproverType?.description ?? '...',\r\n },\r\n {\r\n field: 'enrollmentApprovers',\r\n headerName: 'Enrollment Approvers',\r\n renderField: ({ enrollmentApprovers }) =>\r\n <>\r\n {Array.isArray(enrollmentApprovers) && enrollmentApprovers.length ? enrollmentApprovers.map((enrollmentApprover, i) => (\r\n
{enrollmentApprover}
\r\n )) : '...'}\r\n \r\n },\r\n {\r\n field: 'availableFor',\r\n headerName: 'Available for',\r\n renderField: ({ availableFor }) =>\r\n <>\r\n {(availableFor ?? []).map((availableForItem, i) => (\r\n
{availableForItem}
\r\n ))}\r\n \r\n },\r\n];\r\nexport const catalogDataSetMap: DataObjectMap[] = [\r\n ...basicDataSetMap,\r\n { field: 'expirationFrame', headerName: 'Expiration period' },\r\n { field: 'renewalFrame', headerName: 'Renewal' },\r\n { field: 'duration', headerName: 'Estimated Certificate Duration' },\r\n { field: 'completeWithin', headerName: 'Due within' },\r\n { field: 'ownerCountry', headerName: 'Owner country' },\r\n];\r\nconst validateFields: (keyof CertificationPlansDetails)[] = [\r\n 'renewalFrame',\r\n 'expirationFrame',\r\n 'duration',\r\n 'completeWithin',\r\n 'ownerCountry',\r\n];\r\nexport const getCatalogDataSetMap = (\r\n planDetails: CertificationPlansDetails,\r\n dataSetMap: DataObjectMap[]\r\n): DataObjectMap[] =>\r\n dataSetMap.filter((dataSet) =>\r\n validateFields.includes(dataSet.field)\r\n ? planDetails[dataSet.field] !== null\r\n : dataSet\r\n );\r\n\r\nexport const getEnrollmentRequestDataSetMap = (\r\n requestDetails: CertificationPlansDetails\r\n): DataObjectMap[] =>\r\n\r\n [\r\n ...basicDataSetMap,\r\n ...((requestDetails.dueDate\r\n ? [\r\n {\r\n field: 'dueDate',\r\n headerName: 'Due date',\r\n renderField: ({ dueDate }) => formatDate(dueDate),\r\n },\r\n ]\r\n : []) as DataObjectMap[]),\r\n ...((!requestDetails.dueDate && requestDetails.completeWithin\r\n ? [\r\n {\r\n field: 'completeWithin',\r\n headerName: 'Due within',\r\n },\r\n ]\r\n : []) as DataObjectMap[]),\r\n ]\r\n\r\n\r\nexport interface UserDetailsDataObjectViewProps {\r\n item?: CertificationPlansDetails;\r\n title?: string;\r\n dataSetMap?: DataObjectMap[];\r\n}\r\n\r\nexport const UserDetailsDataObjectView: FC = ({\r\n item,\r\n title = 'Details',\r\n dataSetMap = basicDataSetMap,\r\n}) =>\r\n item ? (\r\n \r\n ) : null;\r\n","import { useQuery } from 'react-query';\r\n\r\nimport { certificationListApi } from 'CertificationList/service/certificationList.api';\r\nimport { PlanRequirements } from 'Requirement/model/PlanRequirements';\r\nimport { CertificationPlanHistory } from 'CertificationPlansPage/model/CertificationPlanHistory';\r\nimport { CertificationPlansDetails, CertificateShortDetails } from 'CertificationPlansPage/model/CertificationPlansDetails';\r\nimport { UseQueryOptions } from 'react-query/types/react/types';\r\n\r\nexport const certificationListDetailsKey = 'certification-list-details';\r\nexport const useCertificationListDetailsQuery = (certificationId: number) =>\r\n useQuery(\r\n [certificationListDetailsKey, certificationId],\r\n () => certificationListApi.get(certificationId)\r\n );\r\n\r\n export const certificateShortDetailsKey = 'certificate-short-details';\r\n export const useCertificateShortDetailsQuery = (certificateId: number) =>\r\n useQuery(\r\n [certificateShortDetailsKey, certificateId],\r\n () => certificationListApi.getShort(certificateId)\r\n ); \r\n\r\nexport const certificationListRequirementsKey =\r\n 'certification-list-requirements';\r\nexport const useCertificationListRequirementsQuery = (\r\n certificationId: number\r\n) =>\r\n useQuery(\r\n [certificationListRequirementsKey, certificationId],\r\n () => certificationListApi.getRequirements(certificationId)\r\n );\r\n\r\nexport const certificationListHistoryKey = 'certification-list-history';\r\nexport const useCertificationListHistoryQuery = (\r\n certificationId: number,\r\n options: UseQueryOptions = {}\r\n) =>\r\n useQuery(\r\n [certificationListHistoryKey, certificationId],\r\n () => certificationListApi.getHistory(certificationId),\r\n options\r\n );\r\n\r\nexport const enrollRequestDetailsKey = 'enroll-request-details';\r\nexport const useCertificationEnrollRequestQuery = (certificationId: number) =>\r\n useQuery(\r\n [enrollRequestDetailsKey, certificationId],\r\n () => certificationListApi.getEnrollRequest(certificationId)\r\n );\r\n","import { FC } from 'react';\r\nimport { Grid, Tooltip } from '@material-ui/core';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\n\r\nimport { AppShellBaseProps, DetailsAppShell } from 'components/AppShell';\r\nimport { CatalogDetailsParams, catalogDetailsRoute, catalogRoute } from 'route';\r\nimport { Content } from 'components/Page';\r\nimport { useMutating } from 'hooks';\r\nimport {\r\n certificationListColumns,\r\n PrerequisitesTable,\r\n} from 'CertificationPlansPage/components/PrerequisitesTable';\r\nimport { RecommendedCertificatesTable } from 'CertificationPlansPage/components/RecommendedCertificatesTable';\r\nimport {\r\n CertificationPlanActions,\r\n mutatingFilterKeys,\r\n} from 'CertificationPlansPage/components/CertificationPlanActions';\r\nimport { HistoryTable } from 'CertificationPlansPage/components/HistoryTable';\r\nimport { AlternativesCertificatesTable } from 'CertificationPlansPage/components/AlternativesCertificatesTable';\r\nimport { UserDetailsDataObjectView } from 'CertificationList/component';\r\nimport {\r\n useCertificationListDetailsQuery,\r\n useCertificationListHistoryQuery,\r\n useCertificationListRequirementsQuery,\r\n} from 'CertificationList/query/certificationListQuery';\r\nimport {\r\n catalogDetailsColumns,\r\n CertificationPlansRequirementsTable,\r\n} from 'Requirement/component/PlanRequirementsTable/CertificationPlansRequirementsTable';\r\nimport { RoundButton } from 'components';\r\nimport { CertificationPlanWorkFlowActions } from 'enums/CertificationPlanWorkFlowActions';\r\nimport {\r\n catalogDataSetMap,\r\n getCatalogDataSetMap,\r\n} from 'CertificationList/component/UserDetailsDataObjectView/UserDetailsDataObjectView';\r\n\r\nexport interface CatalogDetailsPageProps extends AppShellBaseProps {}\r\n\r\nexport const CatalogDetailsPage: FC = ({ logout }) => {\r\n const { certificationId } = useParams();\r\n const history = useHistory();\r\n const handleOpenNewerRelease = (certificationId: number) =>\r\n history.push(\r\n catalogDetailsRoute.createRoute({\r\n certificationId: String(certificationId),\r\n })\r\n );\r\n const { isLoading, data, refetch } = useCertificationListDetailsQuery(\r\n Number(certificationId)\r\n );\r\n const {\r\n isLoading: isHistoryLoading,\r\n data: historyData,\r\n } = useCertificationListHistoryQuery(Number(certificationId));\r\n const {\r\n isLoading: requirementsLoading,\r\n data: requirementsData,\r\n } = useCertificationListRequirementsQuery(Number(certificationId));\r\n const { data: certificationList } = useCertificationListDetailsQuery(\r\n Number(certificationId)\r\n );\r\n const isMutating = useMutating([...mutatingFilterKeys]);\r\n const renderGoToNewVersionButton = () =>\r\n (data?.userActions ?? []).includes(\r\n CertificationPlanWorkFlowActions.NewerReleaseAvailable\r\n ) &&\r\n data?.newVersionCertificateListId && (\r\n \r\n
\r\n \r\n handleOpenNewerRelease(data.newVersionCertificateListId)\r\n }\r\n >\r\n Go to new version\r\n \r\n
\r\n
\r\n );\r\n\r\n return (\r\n \r\n (\r\n <>\r\n {renderGoToNewVersionButton()}\r\n \r\n \r\n )}\r\n >\r\n \r\n {data && (\r\n \r\n \r\n \r\n )}\r\n {!!data?.prerequisites.length && (\r\n \r\n \r\n \r\n )} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {!!data?.prerequisitesTo.length && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { FC, useEffect } from 'react';\r\nimport { Grid } from '@material-ui/core';\r\nimport { useParams } from 'react-router-dom';\r\n\r\nimport { AppShellBaseProps, DetailsAppShell } from 'components/AppShell';\r\nimport { CertificationPlansDetailsParams } from 'route';\r\nimport { useMutating } from 'hooks';\r\nimport { Content } from 'components/Page';\r\nimport { RecommendedCertificatesTable } from 'CertificationPlansPage/components/RecommendedCertificatesTable';\r\nimport {\r\n CertificationPlanActions,\r\n mutatingFilterKeys,\r\n} from 'CertificationPlansPage/components/CertificationPlanActions';\r\nimport { HistoryTable } from 'CertificationPlansPage/components/HistoryTable';\r\nimport { AlternativesCertificatesTable } from 'CertificationPlansPage/components/AlternativesCertificatesTable';\r\nimport { UserDetailsDataObjectView } from 'CertificationList/component';\r\nimport {\r\n useCertificationEnrollRequestQuery,\r\n useCertificationListHistoryQuery,\r\n} from 'CertificationList/query/certificationListQuery';\r\nimport {\r\n getEnrollmentRequestDataSetMap,\r\n} from 'CertificationList/component/UserDetailsDataObjectView/UserDetailsDataObjectView';\r\n\r\nexport interface CertificationPlansEnrollRequestDetailsPageProps\r\n extends AppShellBaseProps {}\r\n\r\n// eslint-disable-next-line max-len\r\nexport const CertificationPlansEnrollRequestDetailsPage: FC = ({\r\n logout,\r\n}) => {\r\n const { certificationPlanId } = useParams();\r\n const { isLoading, data, refetch } = useCertificationEnrollRequestQuery(\r\n Number(certificationPlanId)\r\n );\r\n const {\r\n isLoading: isHistoryLoading,\r\n data: historyData,\r\n refetch: historyRefetch,\r\n } = useCertificationListHistoryQuery(data?.id as number, { enabled: false });\r\n const { data: enrollRequest } = useCertificationEnrollRequestQuery(\r\n Number(certificationPlanId)\r\n );\r\n const isMutating = useMutating([...mutatingFilterKeys]);\r\n\r\n useEffect(() => {\r\n if (data?.id) {\r\n historyRefetch();\r\n }\r\n }, [data]);\r\n\r\n return (\r\n \r\n (\r\n \r\n )}\r\n >\r\n \r\n {data && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { Card } from 'components/Page';\r\nimport { DataTable, DataTableColumn } from 'components/DataTable/DataTable';\r\nimport { UserTrainingSet } from 'Certificate/model/UserTraningSet';\r\nimport { CPStatusChip } from 'components/StatusChip';\r\nimport { formatDate, formatExternalFlag } from 'utils';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { CertificationPlansDetails } from 'CertificationPlansPage/model/CertificationPlansDetails';\r\nimport { TitleTypography } from 'Certificate/component/UserCertificateTable/UserCertificateTable.style';\r\nimport { IconButton } from '@material-ui/core';\r\nimport { NavigateNext } from '@material-ui/icons';\r\nimport { catalogDetailsRoute, certificationPlansDetailsRoute } from 'route';\r\nimport { CPStatusType } from 'enums/CPStatusType';\r\nimport { getPgUnitFullName } from 'Dictionary/model/PGUnit';\r\n\r\nexport interface TraningSetsTableProps {\r\n loading: boolean;\r\n rows: UserTrainingSet[];\r\n}\r\n\r\nconst userTrainingSetsColumns: DataTableColumn[] = [\r\n { field: 'name', headerName: 'Title', width: 400 },\r\n {\r\n field: 'businessUnits',\r\n headerName: 'Division',\r\n renderField: ({ businessUnits }) => (businessUnits ?? []).map((bu) => bu.description).join(', '),\r\n },\r\n {\r\n field: 'productGroups',\r\n headerName: 'Product Groups',\r\n renderField: ({ productGroups }) => Array.isArray(productGroups) && productGroups.filter(pg => pg !== null).length ? \r\n productGroups.map((pg) => getPgUnitFullName(pg)).join(', ') : 'All Product Groups',\r\n },\r\n {\r\n field: 'countries',\r\n headerName: 'Countries',\r\n renderField: ({ countries }) => Array.isArray(countries) && countries.length ? \r\n countries.map((c) => c.name).join(', ') : 'All countries',\r\n },\r\n {\r\n field: 'isExternal',\r\n headerName: 'ABB/External',\r\n renderField: ({ isExternal }) => formatExternalFlag(isExternal),\r\n },\r\n {\r\n field: 'completionPercentage',\r\n headerName: 'Certifications completed',\r\n renderField: ({ completionPercentage }) => `${completionPercentage} %`,\r\n },\r\n];\r\n\r\nconst userCertificateColumns: DataTableColumn[] = [\r\n {\r\n field: 'title',\r\n headerName: 'Certificate',\r\n width: 400,\r\n renderField: ({ title }) => (\r\n {title}\r\n ),\r\n }, \r\n {\r\n field: 'enrollmentDate',\r\n headerName: 'Enrolled on',\r\n renderField: ({ enrollmentDate }) => formatDate(enrollmentDate),\r\n },\r\n {\r\n field: 'status',\r\n headerName: 'Status',\r\n renderField: ({ status }) => ,\r\n },\r\n];\r\n\r\nexport const TraningSetsTable = (props: TraningSetsTableProps) => {\r\n const { loading, rows } = props;\r\n const history = useHistory();\r\n const handleOpenCertificateDetails = (row: CertificationPlansDetails) =>{\r\n if(row.status === CPStatusType.NotEnrolled){\r\n history.push(\r\n catalogDetailsRoute.createRoute({\r\n certificationId: String(row.id), \r\n })\r\n ); \r\n }\r\n else{\r\n history.push(\r\n certificationPlansDetailsRoute.createRoute({\r\n certificationPlanId: String(row.id),\r\n })\r\n );\r\n }\r\n };\r\n \r\n return (\r\n \r\n row.id}\r\n renderCollapseRow={(row) => (\r\n \r\n row.id}\r\n renderRowActions={(row) => (\r\n handleOpenCertificateDetails(row)}>\r\n \r\n \r\n )}\r\n />\r\n \r\n )}\r\n noDataMessage=\"No training sets to display\"\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default TraningSetsTable;\r\n","import { useMutation } from 'react-query';\r\n\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { queryClient } from 'service/queryClient';\r\nimport {\r\n userAttachmentsKey,\r\n useUserAttachmentsQuery,\r\n} from 'Attachment/query/attachment.query';\r\nimport { attachmentApi } from 'Attachment/service/attachment.api';\r\nimport { AttachmentList } from 'Attachment/component/AttachmentList/AttachmentList';\r\nimport { FC } from 'react';\r\n\r\nexport interface UserAttachmentListProps {\r\n userId: string;\r\n}\r\n\r\nexport const UserAttachmentList: FC = ({ userId }) => {\r\n const { showError, showSuccess } = useToasts();\r\n const { data, isLoading } = useUserAttachmentsQuery(userId); \r\n const { mutate: uploadAttachment } = useMutation(\r\n (files: File[]) => attachmentApi.uploadFilesByUserId(files, userId),\r\n {\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries([userAttachmentsKey, userId]);\r\n showSuccess('Upload attachment success');\r\n },\r\n onError: () => showError('Upload attachment failed'),\r\n }\r\n );\r\n\r\n return (\r\n uploadAttachment(files)}\r\n allowRemoveAttachment={data?.canCurrentUserRemoveAttachments?? false}\r\n userId={userId}\r\n onRemoveRequirementAttachmentSuccess={null}\r\n />\r\n );\r\n};\r\n","import { Grid } from '@material-ui/core';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { useMutation } from 'react-query';\r\nimport { AppShellBaseProps, DetailsAppShell } from 'components/AppShell';\r\nimport {\r\n CertificationsByPersonDetailsParams,\r\n certificationsByPersonMyLearningRoute,\r\n certificationsByPersonPrintOutCertificatesRoute,\r\n certificationsByPersonRoute,\r\n} from 'route';\r\nimport { Card, Content } from 'components/Page';\r\nimport {\r\n RoundButton,\r\n PrintButton,\r\n DataObjectView,\r\n SyncButton,\r\n} from 'components';\r\n\r\nimport { certificateApi } from 'Certificate/service/certificate.api';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { queryClient } from 'service';\r\nimport {\r\n userHistoryKey,\r\n useUserCertificationsQuery,\r\n useUserTraningSetsQuery,\r\n} from 'Certificate/query/certificateQuery';\r\nimport { UserCertificationsView } from 'Certificate/component/UserCertificationsView/UserCertificationsView';\r\nimport { myProfileApi } from 'MyProfile/service/myProfile.api';\r\nimport { useUserProfileQuery } from 'MyProfile/query/myProfile.query';\r\nimport { getFullName, MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { getPgUnitFullName } from 'Dictionary/model/PGUnit';\r\nimport { TraningSetsTable } from 'Certificate/component/TraningSetsTable';\r\nimport { UserAttachmentList } from 'Attachment/component/UserAttachmentList/UserAttachmentList';\r\nimport { DataObjectMap } from 'components/DataObjectView/DataObjectView';\r\n\r\ninterface UserDataObjectItem {\r\n name: string;\r\n division?: string;\r\n geid?: string;\r\n productGroup?: string;\r\n businessUnitName?: string;\r\n hierarchicalManager?: string;\r\n functionalManager?: string;\r\n email?: string;\r\n company?: string;\r\n employeeJobs?: MyProfile['employeeJobs'];\r\n employeeJobFamily?: MyProfile['employeeJobFamilies'];\r\n preferredLanguage?: MyProfile['preferredLanguages'];\r\n country?: string;\r\n city?: string;\r\n state?: string;\r\n notes?: string;\r\n channelManager?: string;\r\n partnerCompanySupervisor?: string;\r\n}\r\nexport const CertificationsByPersonDetailsPage = (props: AppShellBaseProps) => {\r\n const { logout } = props;\r\n const history = useHistory();\r\n const { showSuccess, showError } = useToasts();\r\n const params = useParams();\r\n const { data: userProfile, isLoading, refetch: refetchUserProfile } = useUserProfileQuery(params.userId);\r\n \r\n const { data: userCertifications, isLoading: areCertificationsLoading, refetch } = useUserCertificationsQuery(params.userId);\r\n const { data: userTraningSets,\r\n isLoading: areTraningSetsLoading,\r\n refetch: refetchTraningSets,\r\n } = useUserTraningSetsQuery(Number(params.userId));\r\n const {\r\n mutate: syncUserHistory,\r\n isLoading: isSyncHistoryLoading,\r\n } = useMutation(() => certificateApi.updateUserHistory(params.userId), {\r\n onSuccess: () => {\r\n queryClient.removeQueries([userHistoryKey, params.userId]);\r\n \r\n refetchUserProfile();\r\n refetch();\r\n refetchTraningSets();\r\n showSuccess('User history synchronization success');\r\n },\r\n onError: () => showError('User history synchronization failed'),\r\n });\r\n const { mutate: askRemoval, isLoading: isAskRemovalLoading } = useMutation(\r\n () => myProfileApi.askRemoval(params.userId),\r\n {\r\n onSuccess: () => showSuccess('Ask removal action success'),\r\n onError: () => showError('Ask removal action failed'),\r\n }\r\n );\r\n const isMutating = isSyncHistoryLoading || isAskRemovalLoading;\r\n\r\n const handleOpenMyLearningDetails = () => {\r\n history.push(\r\n certificationsByPersonMyLearningRoute.createRoute({\r\n userId: params.userId,\r\n })\r\n );\r\n };\r\n const handleOpenStatusPdfDetails = () => {\r\n history.push(\r\n certificationsByPersonPrintOutCertificatesRoute.createRoute({\r\n userId: params.userId,\r\n })\r\n );\r\n };\r\n return (\r\n \r\n (\r\n <>\r\n \r\n syncUserHistory()}\r\n />\r\n \r\n My learning\r\n \r\n askRemoval()}\r\n >\r\n Ask removal\r\n \r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n title=\"Details\"\r\n item={{\r\n ...{\r\n name: getFullName(userProfile),\r\n geid: userProfile?.geid,\r\n businessUnitName: userProfile?.businessUnit?.description\r\n },\r\n ...(!userProfile?.isExternal && {\r\n hierarchicalManager: getFullName(userProfile?.manager),\r\n functionalManager: getFullName(userProfile?.functionalManager)\r\n }),\r\n ...{ \r\n email: userProfile?.email,\r\n company: userProfile?.company?.description,\r\n channelManager: (userProfile?.channelManager ?? [])\r\n .map((manager) => getFullName(manager))\r\n .join(', '),\r\n employeeJobs: userProfile?.employeeJobs,\r\n employeeJobFamily: userProfile?.employeeJobFamilies,\r\n preferredLanguage: userProfile?.preferredLanguages,\r\n country: userProfile?.country?.name,\r\n city: userProfile?.city,\r\n state: userProfile?.state,\r\n notes: userProfile?.notes,\r\n division: userProfile?.division?.name,\r\n productGroup: userProfile?.pgUnit ? getPgUnitFullName(userProfile.pgUnit) : '...',\r\n },\r\n ...(userProfile?.isExternal && {\r\n partnerCompanySupervisor: (\r\n userProfile?.partnerCompanySupervisor ?? []\r\n )\r\n .map((manager) => getFullName(manager))\r\n .join(', '),\r\n }),\r\n }}\r\n dataSetMaps={[\r\n { field: 'name', headerName: 'Name' }, \r\n { field: 'email', headerName: 'Email address' },\r\n { field: 'geid', headerName: 'GEID' },\r\n { field: 'division', headerName: 'Business area' }, \r\n { field: 'businessUnitName', headerName: 'Division' }, \r\n { field: 'productGroup', headerName: 'Product group' }, \r\n { field: 'country', headerName: 'Country' },\r\n { field: 'city', headerName: 'City' },\r\n { field: 'state', headerName: 'State' },\r\n { field: 'company', headerName: 'Company' }, \r\n {\r\n field: 'channelManager',\r\n headerName: 'Int/Ext Company Coordinator',\r\n },\r\n ...((!userProfile?.isExternal\r\n ? [\r\n {\r\n field: 'hierarchicalManager',\r\n headerName: 'Hierarchical Manager',\r\n }, \r\n {\r\n field: 'functionalManager',\r\n headerName: 'Functional Manager',\r\n },\r\n ]\r\n : []) as DataObjectMap[]), \r\n ...((userProfile?.isExternal\r\n ? [ \r\n {\r\n field: 'partnerCompanySupervisor',\r\n headerName: 'External Company Responsible',\r\n },\r\n ]\r\n : []) as DataObjectMap[]),\r\n {\r\n field: 'employeeJobFamily',\r\n headerName: 'Employee Job Family',\r\n renderField: (item) => ( \r\n (item.employeeJobFamily ?? []).map((job) => job.name).join(', ') \r\n ),\r\n }, \r\n {\r\n field: 'employeeJobs',\r\n headerName: 'Employee Job',\r\n renderField: (item) => ( \r\n (item.employeeJobs ?? []).map((job) => job.name).join(', ') \r\n ),\r\n }, \r\n {\r\n field: 'preferredLanguage',\r\n headerName: 'Preferred language',\r\n renderField: (item) => (\r\n <>\r\n {(item.preferredLanguage ?? []).map((language, i) => (\r\n
{language.name}
\r\n ))}\r\n \r\n ),\r\n }, \r\n {\r\n field: 'notes',\r\n headerName: 'Notes',\r\n renderField: ({ notes }) => (\r\n <>\r\n {!notes ? '...' : notes.split(\"\\n\").map((line,i) => (\r\n
{line}
\r\n ))}\r\n \r\n ),\r\n }, \r\n ]}\r\n />\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\n\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport { formatDate } from 'utils';\r\nimport { MyLearningCourseHistory } from 'Certificate/model/MyLearningCourseHistory';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport {\r\n DataObjectList,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\nimport { DataObjectView } from 'components';\r\n\r\nexport const columns: DataTableColumn[] = [\r\n {\r\n field: 'code',\r\n headerName: 'Code',\r\n },\r\n {\r\n field: 'title',\r\n headerName: 'Title',\r\n },\r\n { \r\n field: 'deliveryType', \r\n headerName: 'Delivery Type' \r\n },\r\n {\r\n field: 'updateDate',\r\n headerName: 'Date',\r\n renderField: ({ updateDate }) => formatDate(updateDate),\r\n },\r\n {\r\n field: 'regStatus',\r\n headerName: 'Status',\r\n },\r\n];\r\n\r\nexport interface MyLearningCourseHistoryTableProps\r\n extends Omit, 'columns'> {}\r\n\r\n// eslint-disable-next-line max-len\r\nexport const MyLearningCourseHistoryTable: FC = ({\r\n rows,\r\n ...otherProps\r\n}) => (\r\n <>\r\n \r\n (\r\n \r\n )}\r\n />\r\n \r\n \r\n row.code}\r\n />\r\n \r\n \r\n);\r\n","import { FC } from 'react';\r\nimport { Grid, Typography, makeStyles } from '@material-ui/core';\r\nimport { useParams } from 'react-router-dom';\r\nimport { AppShellBaseProps, DetailsAppShell } from 'components/AppShell';\r\nimport { Content } from 'components/Page';\r\nimport { TabsView } from 'components/TabsView';\r\nimport { useUserHistoryQuery } from 'Certificate/query/certificateQuery';\r\nimport {\r\n CertificationsByPersonDetailsParams,\r\n certificationsByPersonDetailsRoute,\r\n} from 'route';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\nimport { MyLearningCourseHistoryTable } from 'Certificate/component/MyLearningCourseHistoryTable/MyLearningCourseHistoryTable';\r\nimport { useUserProfileQuery } from 'MyProfile/query/myProfile.query';\r\nimport { getFullName } from 'MyProfile/model/MyProfile';\r\nimport { ReactComponent as NotFoundSvg } from '../../components/QueryErrorResetBoundary/svg/NotFound.svg';\r\n\r\nconst useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n empty: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n }\r\n }),\r\n { name: 'MyLearningHistory' }\r\n);\r\n\r\nexport const CertificationsByPersonMyLearningPage: FC = (\r\n props\r\n) => {\r\n const { logout } = props;\r\n const { userId } = useParams();\r\n const { data, isLoading } = useUserHistoryQuery(userId);\r\n const {\r\n data: userProfile,\r\n isLoading: isUserProfileLoading,\r\n } = useUserProfileQuery(userId);\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n {data ?\r\n \r\n \r\n [\r\n ,\r\n ,\r\n ]}\r\n animateHeight={false}\r\n />\r\n \r\n \r\n :\r\n
\r\n \r\n \r\n Error in connection with MyLearning\r\n \r\n
\r\n }\r\n \r\n \r\n \r\n );\r\n};\r\n","export enum ReportPageTypes {\r\n StatusOfCertifications = 'statusOfCertifications',\r\n UncompletedRequirements = 'uncompletedRequirements',\r\n CertificationsByPerson = 'certificationsByPerson',\r\n KpiReports = 'kpiReports',\r\n}\r\n","import { ReportingFilters } from 'Reports/components/@types';\r\nimport { AxiosResponse } from 'axios';\r\nimport fileDownload from 'js-file-download';\r\nimport { getDateNow, uuid } from 'utils';\r\nimport { apiClient } from '../../service';\r\nimport { ApiError } from '../../model/ApiError';\r\nimport {\r\n FilterScope,\r\n ReportPageTypes,\r\n ColumnDefinition,\r\n ColumnValue,\r\n ReportQuery,\r\n ReportQueryResponse,\r\n ReportQueryResponseFlat,\r\n ReportSettings,\r\n} from '../model';\r\n\r\nconst getFilterScopes = async (\r\n pageId: ReportPageTypes\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get('/reports/getColumnScopes', {\r\n params: {\r\n pageId,\r\n },\r\n });\r\n\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getFilters = async (): Promise => {\r\n try {\r\n const response = await apiClient.get('/reports/getFilters');\r\n if (response.data === '') {\r\n return {};\r\n }\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst saveFilters = async (\r\n variables: ReportSettings\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n '/reports/saveFilters',\r\n JSON.stringify({ ...variables })\r\n );\r\n return response;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getColumns = async (\r\n pageId: ReportPageTypes\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n '/reports/getColumns',\r\n {\r\n params: {\r\n pageId,\r\n },\r\n }\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\n// Change backend model\r\ninterface ValueUgly {\r\n AdditionalData: string;\r\n Label: string;\r\n ValueId: number;\r\n}\r\n\r\nconst getValues = async (\r\n pageId: ReportPageTypes,\r\n columnId: string,\r\n qs: ReportingFilters = {}\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get('/reports/getValues', {\r\n params: {\r\n pageId,\r\n columnId,\r\n qs,\r\n },\r\n });\r\n\r\n return response.data.map((u) => ({\r\n data: u.AdditionalData,\r\n label: u.Label,\r\n vid: u.ValueId,\r\n }));\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const getFilterCertificationPlans = async (\r\n query: ReportQuery\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n '/reports/filterCertificationPlans',\r\n JSON.stringify(query)\r\n );\r\n const { data } = response;\r\n return {\r\n total: data.total,\r\n data: data.data.map((x) => {\r\n const values: Record = {};\r\n Object.keys(x.values).forEach((k) => {\r\n values[k] = x.values[k].label;\r\n if (x.values[k]?.count) {\r\n values.count = x.values[k]?.count ?? 0;\r\n values.label = x.values[k]?.label ?? null;\r\n }\r\n });\r\n\r\n return {\r\n id: x.id,\r\n guid: uuid(),\r\n ...values,\r\n };\r\n }),\r\n };\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport type ReportExportFileType = 'pdf' | 'excel';\r\n\r\nexport const getFilterCertificationPlansToFile = async (\r\n query: ReportQuery,\r\n exportFileType: ReportExportFileType\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `/reports/filterCertificationPlans/${exportFileType}`,\r\n JSON.stringify(query),\r\n {\r\n responseType: 'blob',\r\n params: { pageId: ReportPageTypes.StatusOfCertifications },\r\n }\r\n );\r\n const fileName =\r\n exportFileType === 'excel'\r\n ? `Export status of certifications ${getDateNow()}.xlsx`\r\n : `Export status of certifications ${getDateNow()}.pdf`;\r\n fileDownload(response.data, fileName);\r\n return;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const getUncompletedRequirements = async (\r\n query: ReportQuery\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n '/reports/filterCPRequirements',\r\n JSON.stringify(query)\r\n );\r\n const { data } = response;\r\n return {\r\n total: data.total,\r\n data: data.data.map((x) => {\r\n const values: Record = {};\r\n Object.keys(x.values).forEach((k) => {\r\n values[k] = x.values[k].label;\r\n if (x.values[k]?.count) {\r\n values.count = x.values[k]?.count ?? 0;\r\n values.label = x.values[k]?.label ?? null;\r\n }\r\n });\r\n return {\r\n id: x.id,\r\n guid: uuid(),\r\n ...values,\r\n };\r\n }),\r\n };\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const getUncompletedRequirementsToFile = async (\r\n query: ReportQuery,\r\n exportFileType: ReportExportFileType\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `/reports/filterCPRequirements/${exportFileType}`,\r\n JSON.stringify(query),\r\n {\r\n responseType: 'blob',\r\n params: { pageId: ReportPageTypes.UncompletedRequirements },\r\n }\r\n );\r\n const fileName =\r\n exportFileType === 'excel'\r\n ? `Export uncompleted requirements ${getDateNow()}.xlsx`\r\n : `Export uncompleted requirements ${getDateNow()}.pdf`;\r\n fileDownload(response.data, fileName);\r\n return;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport const reportsApi = {\r\n getFilterScopes,\r\n getColumns,\r\n getValues,\r\n getFilters,\r\n saveFilters,\r\n getFilterCertificationPlans,\r\n getFilterCertificationPlansToFile,\r\n getUncompletedRequirements,\r\n getUncompletedRequirementsToFile,\r\n};\r\n","import { PaginatedList } from '../../../model';\r\nimport { AutocompleteFieldItem } from '../../../components/Field/AutocompleteField/AutocompleteField';\r\nimport { MyProfile } from '../../../MyProfile/model/MyProfile';\r\n\r\nexport const mapToAutocompleteFieldItems = (\r\n data: PaginatedList\r\n): AutocompleteFieldItem[] =>\r\n data?.result?.map((x) => ({\r\n id: x.id? x.id: x.geid,\r\n geid: x.geid,\r\n name: `${x.lastName}, ${x.firstName} --${x.email}`,\r\n email: x.email,\r\n })) ?? [];\r\n","import React, { useEffect, useState, ChangeEvent } from 'react';\r\nimport {\r\n AutocompleteField,\r\n AutocompleteFieldItem,\r\n } from '../../components/Field/AutocompleteField/AutocompleteField';\r\n\r\n import { useUserHrgtQuery } from '../../MyProfile/query/myProfile.query';\r\n import { mapToAutocompleteFieldItems } from '../../Dictionary/component/HrgtUserSelectField/utils';\r\n import { getPagination, PaginatedList, Sort } from '../../model';\r\n import { MyProfile } from '../../MyProfile/model/MyProfile';\r\n\r\n\r\nexport interface SearchUserForMassEnrollmentProps {\r\n label: string;\r\n onChanged: React.Dispatch<{ id: string, email: string, name: string }[]>;\r\n initialValue?: string;\r\n multiple?: boolean;\r\n }\r\n\r\n const defaultSort: Sort = {\r\n sortExpression: 'lastName',\r\n sortDescending: false,\r\n };\r\n \r\n const searchTimeout = 500;\r\n const minLenOfSearchValue = 3;\r\n export const SearchUserForMassEnrollment = (props: SearchUserForMassEnrollmentProps) => {\r\n const { \r\n label,\r\n onChanged,\r\n initialValue,\r\n multiple = true,\r\n } = props;\r\n \r\n const [value, setValue] = useState('');\r\n const [selectedValues, setSelectedValues] = useState([])\r\n \r\n const { data = [], isLoading, isFetching, refetch } = useUserHrgtQuery(\r\n getPagination(20),\r\n defaultSort,\r\n {\r\n isExternal: false,\r\n personNameOrEmail: value,\r\n },\r\n {\r\n enabled: false\r\n }\r\n );\r\n \r\n useEffect(() => {\r\n if (initialValue !== value && value.length >= minLenOfSearchValue) {\r\n const timer = setTimeout(() => refetch(), searchTimeout);\r\n return () => clearTimeout(timer);\r\n }\r\n return undefined;\r\n }, [value]);\r\n \r\n const handleItemsChange = (\r\n e: ChangeEvent<{}>,\r\n value: AutocompleteFieldItem | AutocompleteFieldItem[],\r\n xxvalues: AutocompleteFieldItem[]\r\n ) => {\r\n xxvalues.splice(0, xxvalues.length)\r\n if (!Array.isArray(value) || value.length === 0)\r\n xxvalues.splice(0, xxvalues.length)\r\n else\r\n xxvalues.push(...value);\r\n \r\n const toSend = xxvalues.map((x) => (\r\n {\r\n id: (x.id ?? \"\").toString(),\r\n //@ts-ignore\r\n email: x.email ?? \"\",\r\n name: x.name ?? \"\"\r\n }\r\n ));\r\n onChanged(toSend);\r\n }\r\n \r\n return (\r\n \r\n )}\r\n onChange={(e, v, r, d) => {handleItemsChange(e, v, selectedValues)}}\r\n onInputChange={(event, eventValue) => setValue(eventValue)}\r\n />\r\n );\r\n };\r\n ","import { useState } from 'react';\r\nimport {\r\n Typography,\r\n DialogContent,\r\n TextField\r\n} from '@material-ui/core';\r\n\r\nimport { RoundButton } from 'components';\r\nimport { SearchUserForMassEnrollment } from 'MassEnrollment/component/SearchUserForMassEnrollment';\r\n\r\nimport Dialog from '@material-ui/core/Dialog';\r\nimport DialogActions from '@material-ui/core/DialogActions';\r\nimport DialogTitle from '@material-ui/core/DialogTitle';\r\n\r\n\r\nexport interface MassEnrollmentDialogProps {\r\n isDialogOpen: boolean,\r\n selectedProfiles: string[],\r\n isReminder: boolean,\r\n onClose: React.DispatchWithoutAction\r\n onDoSend: React.Dispatch\r\n}\r\n\r\nexport interface MassEnrollmentDialogState {\r\n from: string,\r\n subject: string,\r\n message: string,\r\n recipients: string\r\n}\r\n\r\nconst initialState = {\r\n from: \"PL-PCS2@abb.com\",\r\n subject: \"IMPORTANT: Additional information regarding your Certificate\",\r\n message: \"\",\r\n recipients: \"\"\r\n}\r\n\r\nexport const MassEnrollmentDialog = (props: MassEnrollmentDialogProps) => {\r\n\r\n const {\r\n isDialogOpen,\r\n selectedProfiles,\r\n onClose,\r\n onDoSend,\r\n isReminder\r\n } = props;\r\n\r\n const [state, setState] = useState(initialState);\r\n if (!isDialogOpen) return (<>)\r\n\r\n const handleOnEnrollWithMessage = () => {\r\n onDoSend(state);\r\n closeDialog();\r\n }\r\n\r\n const closeDialog = () => {\r\n onClose();\r\n reset();\r\n };\r\n\r\n const reset = () => setState(initialState);\r\n\r\n return (\r\n <>\r\n \r\n Enroll with customized notification\r\n \r\n \r\n \r\n setState({ ...state, recipients: x.map(r => r.email).join(\", \") })} />\r\n setState({ ...state, subject: event.target.value })} value={state.subject} />\r\n setState({ ...state, message: event.target.value })} value={state.message} multiline rows={4} />\r\n \r\n {isReminder ? \"External users will not receive the notification.\" \r\n : \"External users will be enrolled to the Certificates but will not receive the notification.\"}\r\n \r\n \r\n Please note that the recipients will also receive information related to the enrolled Certificates.\r\n \r\n \r\n \r\n \r\n Cancel\r\n \r\n \r\n {isReminder ? \"SEND REMINDER\" : \"SEND AND ENROLL\"}\r\n \r\n \r\n \r\n \r\n )\r\n}","import { useMemo } from 'react';\r\nimport { TextFieldProps } from '@material-ui/core';\r\nimport { ColumnDefinition, ColumnType } from 'Reports/model';\r\n\r\nexport enum FieldType {\r\n text,\r\n dateTime,\r\n select,\r\n unknown,\r\n}\r\n\r\nconst getFieldType = (colType: ColumnType): FieldType => {\r\n const { date, search, country, select } = colType;\r\n switch (true) {\r\n case !date && !search && !country && !select:\r\n return FieldType.text;\r\n case date:\r\n return FieldType.dateTime;\r\n case Boolean(select):\r\n return FieldType.select;\r\n default:\r\n return FieldType.unknown;\r\n }\r\n};\r\n\r\nexport const useColumnDefinition = (\r\n columnDefinition: ColumnDefinition\r\n): [TextFieldProps, FieldType] => {\r\n const results = useMemo(() => {\r\n const field: TextFieldProps = {\r\n helperText: columnDefinition.tooltip ?? ' ',\r\n label: columnDefinition.name,\r\n };\r\n return [field, getFieldType(columnDefinition.type)];\r\n }, [columnDefinition]);\r\n return [results[0] as TextFieldProps, results[1] as FieldType];\r\n};\r\n","import { useMemo } from 'react';\r\nimport { ReportingFilters } from 'Reports/components/@types';\r\nimport { ColumnDefinition } from 'Reports/model/ColumnDefinition';\r\n\r\nexport const useReportingFieldDisabled = (\r\n columnDefinition: ColumnDefinition,\r\n filters: ReportingFilters\r\n): boolean => {\r\n const disabled = useMemo(() => {\r\n const { dependsOn, cid } = columnDefinition;\r\n if (dependsOn && cid !== \"AA0GBAMEAgIPCgICBAsFBQ\" && cid !== \"CAgOCg0KAQQLDQUIBAQIDg\") {\r\n if (dependsOn.length > 0) {\r\n for (const dep of dependsOn) {\r\n if (!Object.keys(filters).some((k) => k === dep)) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n return false;\r\n }, [columnDefinition, filters]);\r\n return disabled;\r\n};\r\n","import { GridColDef } from '@material-ui/data-grid';\r\nimport { useMemo } from 'react';\r\nimport { ColumnDefinition, ReportPageTypes } from 'Reports/model';\r\nimport { capitalize } from 'utils';\r\n\r\nconst uncompletedRequirementsColumnsDefOverridesLookup: Record<\r\n string,\r\n Partial\r\n> = { \r\n CwQMDwcPBgYFDQwMBAYEAg: { hide: false },\r\n BQ4IBQQPDgwOCQgGBAgDBQ: { hide: false },\r\n AA0GBAMEAgIPCg2137sFBQ: { hide: true },\r\n AA0GBAMEAgIPCgICBAsFBQ: { hide: true },\r\n AA0GIMBAAgIPCg2137sFBQ: { hide: true },\r\n DgUACgQPCgsLAgYGBAsNDA: { hide: true },\r\n CAgOCg0KAQQLDQUIBAQIDg: { hide: true },\r\n CAgOCg0KAKAODQUIBAQIDg: { hide: true },\r\n AgAODQYODwkICwYKBAgHBA: { hide: true },\r\n AgEHBAIFDAQJDgsOBA4HDA: { hide: true },\r\n CwoFAwMKCQEHAgFOKAcNDw: { hide: true },\r\n CAoKBQkGAwMEAAIPBAsGDQ: { hide: true },\r\n BQ4IBwtskgwOCQgGBAgDBQ: { hide: true },\r\n BENIBwtskgwOCQgGBAgDBQ: { hide: true },\r\n uWuGDQAMBgIIDAoJBAYIAg: { hide: true },\r\n BQYGDQAMBgIIDAoJBAYIAg: { hide: true },\r\n BYqGDAqMBgIIDAoJBAYIAg: { hide: true },\r\n CgACAQYDDAMEDQkGBAwTSK: { hide: true },\r\n Bw4BAg0ECgALDAINBAAOAw: { hide: false },\r\n AwUDAQsMAgULCw0MBAYCBA: { hide: false },\r\n DwQHAQUIAgAAAw8KBAYPDQ: { hide: true },\r\n DQoNAAwJAAMBDQsOBAkODw: { hide: false },\r\n Cg8HAQIADgcFAgkEBAEEBQ: { hide: false },\r\n Bg8KCg8CAQADDwAEBAkJCw: { hide: true },\r\n BQ0CBQsHAQ4OABMEBAcLCK: { hide: true },\r\n BQ0CBQsHAQ4OABMEBAwtsK: { hide: true },\r\n CAgOCg0KAQQLDQUIBAQIwK: { hide: true },\r\n EA6xEbEHxJz9SNf0un2PIU: { hide: true },\r\n \r\n};\r\n\r\nconst certificationsStatusColumnsDefOverridesLookup: Record<\r\n string,\r\n Partial\r\n> = {\r\n wTSKAQ4MAQwCBAAABAYHBg: { width: 400 }, \r\n CgACAQYDDAMEDQkGBAkJBw: {\r\n headerName: 'Version',\r\n width: 80, \r\n }, \r\n DgwJAQoHDgwHDAACBAkGCA: {\r\n headerName: 'Level',\r\n width: 100, \r\n }, \r\n XgACAQYDDAMEDQkGBAkJBw: {\r\n headerName: 'Req. Count',\r\n width: 80,\r\n },\r\n Bw4BAg0ECgALDAINBAAOAw: {\r\n width: 140,\r\n },\r\n AwUDAQsMAgULCw0MBAYCBA: {\r\n width: 140,\r\n },\r\n AwwTSKsMAgULCw0MBAPASY: {\r\n width: 140,\r\n hide: true,\r\n },\r\n AwwTSKs1ligaCw0MBAPASY: {\r\n width: 140,\r\n hide: true,\r\n },\r\n AQ0CAQsHAQ4OAAMEBAcLCg: {\r\n headerName: 'Status',\r\n width: 140,\r\n },\r\n AA0GBAMEAgIPCg2137sFBQ: { headerName: 'Certificate Business Area', hide: true },\r\n AA0GBAMEAgIPCgICBAsFBQ: { headerName: 'Certificate Division', hide: true },\r\n AA0GIMBAAgIPCg2137sFBQ: { headerName: 'Certificate Product Group', hide: true },\r\n DwcFAQ0PBw0ODg0IBAUGBw: {\r\n headerName: 'Scope',\r\n width: 100,\r\n hide: true,\r\n },\r\n DwcFAQ0PBw0ODg0IBAUGBz: {\r\n headerName: 'Scope Details',\r\n width: 160,\r\n hide: true,\r\n },\r\n DA8BAQ4MAQwCBAAABAYHBg: {\r\n headerName: 'Selection',\r\n width: 400,\r\n hide: true,\r\n },\r\n DgUACgQPCgsLAgYGBAsNDA: {\r\n headerName: 'Country',\r\n width: 120,\r\n hide: true,\r\n },\r\n CwoFAwMKCQEHAgsOBAcNDw: {\r\n headerName: 'User Type',\r\n width: 120,\r\n hide: true,\r\n },\r\n AA8ODgMJDgsNCAsLBA8JAg: {\r\n headerName: 'Function',\r\n width: 200,\r\n hide: true,\r\n },\r\n BQIDAAkCDAANDgcKBA4FDA: {\r\n headerName: 'Channel Type',\r\n hide: true,\r\n },\r\n CgACAQYDejMEDQkGBAkJBw: {\r\n headerName: 'Expiration period',\r\n width: 120,\r\n hide: true,\r\n },\r\n CgACAQYDejMiTokGBAkJBw: {\r\n headerName: 'Est. Cert. Duration',\r\n width: 120,\r\n hide: true,\r\n },\r\n CAgOCg0KAQQLDQUIBAQIDg: {\r\n headerName: 'User Division',\r\n hide: true,\r\n },\r\n CAgOCg0KAKAODQUIBAQIDg: {\r\n headerName: 'User Business area',\r\n hide: true,\r\n },\r\n AgEHBAIFDAQJDgsOBA4HDA: {\r\n width: 120,\r\n hide: true,\r\n },\r\n CwoFAwMKCQEHAgFOKAcNDw: {\r\n width: 120,\r\n hide: true,\r\n }, \r\n uWuGDQAMBgIIDAoJBAYIAg: {\r\n headerName: 'User Employee Job Family',\r\n hide: true,\r\n },\r\n BQYGDQAMBgIIDAoJBAYIAg: {\r\n headerName: 'User Employee Job Role',\r\n hide: true,\r\n },\r\n BYqGDAqMBgIIDAoJBAYIAg: {\r\n headerName: 'Work Type',\r\n hide: true,\r\n }, \r\n CgACAQYDDAMEDQkGBAwTSK: {\r\n headerName: 'Training Set',\r\n hide: true,\r\n }, \r\n BQ0CBQsHAQ4OABMEBAcLCK: {\r\n headerName: 'Hierarchical manager',\r\n width: 240,\r\n hide: true,\r\n },\r\n BQ0CBQsHAQ4OABMEBAwtsK: {\r\n headerName: 'Functional manager',\r\n width: 240,\r\n hide: true,\r\n },\r\n CAgOCg0KAQQLDQUIBAQIwK: {\r\n width: 200,\r\n hide: true,\r\n },\r\n AgAODQYODwkICwYKBAgHBA: {\r\n hide: true,\r\n },\r\n CAoKBQkGAwMEAAIPBAsGDQ: {\r\n hide: true,\r\n },\r\n BQ4IBwtskgwOCQgGBAgDBQ: {\r\n hide: true,\r\n },\r\n BENIBwtskgwOCQgGBAgDBQ: {\r\n hide: true,\r\n },\r\n EA6xEbEHxJz9SNf0un2PIU: {\r\n headerName: 'User External Company Responsible',\r\n hide: true },\r\n};\r\n\r\n// const initGridColDef: GridColDef[] = [\r\n// { field: 'wTSKAQ4MAQwCBAAABAYHBg' }, // Certificate Title\r\n// { field: 'AA0GBAMEAgIPCgICBAsFBQ' }, // Certificate Business Unit\r\n// { field: 'DgwJAQoHDgwHDAACBAkGCA' }, // Certificate Level\r\n// { field: 'AQ0CAQsHAQ4OAAMEBAcLCg' }, // Certificate Status\r\n// { field: 'DwcFAQ0PBw0ODg0IBAUGBw' }, // Certificate Scope\r\n// { field: 'DwcFAQ0PBw0ODg0IBAUGBz' }, // Certificate Scope Details\r\n// { field: 'DA8BAQ4MAQwCBAAABAYHBg' }, // Certificate Selection\r\n// { field: 'DgUACgQPCgsLAgYGBAsNDA' }, // Certificate Country\r\n// { field: 'CwoFAwMKCQEHAgsOBAcNDw' }, // Certificate User Type\r\n// { field: 'AA8ODgMJDgsNCAsLBA8JAg' }, // Certificate Function\r\n// { field: 'BQIDAAkCDAANDgcKBA4FDA' }, // Certificate Channel Type\r\n// { field: 'CgACAQYDDAMEDQkGBAkJBw' }, // Certificate Version\r\n// { field: 'XgACAQYDDAMEDQkGBAkJBw' }, // Certificate Req. Count\r\n// { field: 'CAgOCg0KAQQLDQUIBAQIDg' }, // User Business Unit\r\n// { field: 'AgAODQYODwkICwYKBAgHBA' }, // User Country\r\n// { field: 'AgEHBAIFDAQJDgsOBA4HDA' }, // User Type\r\n// { field: 'CAoKBQkGAwMEAAIPBAsGDQ' }, // User Company\r\n// { field: 'BQ4IBQQPDgwOCQgGBAgDBQ' }, // User Email\r\n// { field: 'BQYGDQAMBgIIDAoJBAYIAg' }, // User Employee Job\r\n// { field: 'Bw4BAg0ECgALDAINBAAOAw' }, // Date Enrolled\r\n// { field: 'AwUDAQsMAgULCw0MBAYCBA' }, // Date Approved\r\n// { field: 'AwwTSKsMAgULCw0MBAPASY' }, // Date Expiration\r\n// { field: 'AwwTSKs1ligaCw0MBAPASY' }, // Date Due Date\r\n// { field: 'CwQMDwcPBgYFDQwMBAYEAg' }, // User Name\r\n// { field: 'BQ0CBQsHAQ4OABMEBAcLCK' }, // User Hierarchical manager\r\n// { field: 'CAgOCg0KAQQLDQUIBAQIwK' }, // User PG Unit\r\n// ];\r\n\r\nexport const useReportGridColumns = (\r\n columnsDefinitions: ColumnDefinition[],\r\n selectedColumns: string[] | null = null,\r\n reportType: ReportPageTypes\r\n): [defs: GridColDef[], allcolumns: string[]] => {\r\n const gridColDef = useMemo(() => {\r\n let colDefSettings: GridColDef[] = columnsDefinitions.map((x) => ({\r\n field: x.cid,\r\n }));\r\n\r\n if (Array.isArray(selectedColumns) && selectedColumns.length > 0) {\r\n colDefSettings = selectedColumns.map((c) => ({ field: c }));\r\n }\r\n const colDefs = colDefSettings.map((x) => {\r\n const colDefBase = (reportType === ReportPageTypes.StatusOfCertifications\r\n ? certificationsStatusColumnsDefOverridesLookup\r\n : uncompletedRequirementsColumnsDefOverridesLookup)[x.field];\r\n const colDef = columnsDefinitions.find((c) => c.cid === x.field);\r\n const headerName =\r\n colDefBase?.headerName ??\r\n `${capitalize(colDef?.scopeId as string)} ${colDef?.name}`;\r\n const width = colDefBase?.width ?? 200;\r\n let hide = x?.hide ?? colDefBase?.hide ?? false;\r\n if (selectedColumns?.some((c) => c === x.field)) {\r\n hide = false;\r\n }\r\n return {\r\n ...x,\r\n headerName,\r\n width,\r\n hide,\r\n sortable: Boolean(colDef?.sortable),\r\n };\r\n });\r\n return colDefs;\r\n }, [columnsDefinitions, selectedColumns]);\r\n return [gridColDef, columnsDefinitions.map((x) => x.cid)];\r\n};\r\n","import { ChangeEvent, useCallback, useEffect, useState } from 'react';\r\nimport { ColumnDefinition, ColumnValue, ReportPageTypes } from 'Reports/model';\r\nimport { Autocomplete } from '@material-ui/lab';\r\nimport { TextField, CircularProgress, TextFieldProps } from '@material-ui/core';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { FilterChangeHandler, ReportingFilters } from './@types';\r\nimport { useReportingFieldDisabled } from '../hooks';\r\nimport { reportsApi } from '../service/reports.api';\r\n\r\nexport interface ReportingAutocomplateProps {\r\n columnDefinition: ColumnDefinition;\r\n fieldProps: TextFieldProps;\r\n onFilterChange: FilterChangeHandler;\r\n filters: ReportingFilters;\r\n reportType: ReportPageTypes;\r\n}\r\n\r\nexport const ReportingAutocomplate = (props: ReportingAutocomplateProps) => {\r\n const {\r\n columnDefinition,\r\n fieldProps,\r\n onFilterChange,\r\n filters,\r\n reportType,\r\n } = props;\r\n const multiple = Boolean(columnDefinition.type.select?.multiple);\r\n const [loading, setLoading] = useState(false);\r\n const [values, setValues] = useState([]);\r\n const [options, setOptions] = useState([]);\r\n useEffect(() => {\r\n const values = filters[columnDefinition?.cid] as number[];\r\n if (values) {\r\n setValues(options.filter((o) => values.some((x) => o.vid === x)));\r\n } else {\r\n setValues([]);\r\n }\r\n }, [filters]);\r\n const disabled = useReportingFieldDisabled(columnDefinition, filters);\r\n const { showError } = useToasts();\r\n const loadValues = useCallback(async () => {\r\n try {\r\n setLoading(true);\r\n const qs: ReportingFilters = {};\r\n columnDefinition.dependsOn?.forEach((dep) => {\r\n const filter = filters[dep];\r\n if (filter) {\r\n qs[dep] = filter;\r\n }\r\n });\r\n if (Object.keys(qs).length > 0 || columnDefinition.cid === \"AA0GBAMEAgIPCgICBAsFBQ\" || columnDefinition.cid === \"CAgOCg0KAQQLDQUIBAQIDg\") {\r\n const values = await reportsApi.getValues(\r\n reportType,\r\n columnDefinition.cid,\r\n qs\r\n );\r\n setOptions(values);\r\n }\r\n } catch (error) {\r\n showError(`Cannot load values for ${columnDefinition.name}`);\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [columnDefinition, reportType, filters]);\r\n useEffect(() => {\r\n if (Array.isArray(columnDefinition.values)) {\r\n setOptions(columnDefinition.values);\r\n return;\r\n }\r\n if (columnDefinition.valuesApi) {\r\n loadValues();\r\n }\r\n }, [columnDefinition, filters]);\r\n const handleItemsChange = (\r\n e: ChangeEvent<{}>,\r\n value: ColumnValue | ColumnValue[] | null\r\n ) => {\r\n if (Array.isArray(value)) {\r\n onFilterChange(\r\n columnDefinition.cid,\r\n value.map((x) => x.vid)\r\n );\r\n setValues(values);\r\n return;\r\n }\r\n if (value) {\r\n onFilterChange(columnDefinition.cid, [value.vid]);\r\n } else {\r\n onFilterChange(columnDefinition.cid, null);\r\n }\r\n };\r\n return (\r\n (\r\n \r\n {loading ? (\r\n \r\n ) : null}\r\n {params.InputProps.endAdornment}\r\n \r\n ),\r\n }}\r\n />\r\n )}\r\n getOptionLabel={(option) => option?.label ?? ''}\r\n getOptionSelected={(option, value) => option?.vid === value?.vid}\r\n />\r\n );\r\n};\r\n","import { ColumnDefinition } from 'Reports/model';\r\nimport { TextFieldProps } from '@material-ui/core';\r\nimport { KeyboardDatePicker } from '@material-ui/pickers';\r\nimport { useEffect, useState } from 'react';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport { formatTemplate } from '../../utils';\r\nimport {\r\n FilterChangeHandler,\r\n FiltersDateRange,\r\n ReportingFilters,\r\n} from './@types';\r\n\r\nexport interface ReportingDatePickerProps {\r\n columnDefinition: ColumnDefinition;\r\n fieldProps: TextFieldProps;\r\n onFilterChange: FilterChangeHandler;\r\n filters: ReportingFilters;\r\n}\r\n\r\nexport const ReportingDatePicker = (props: ReportingDatePickerProps) => {\r\n const { columnDefinition, fieldProps, onFilterChange, filters } = props;\r\n const [before, setBefore] = useState(null);\r\n const [after, setAfter] = useState(null);\r\n useEffect(() => {\r\n const values = filters[columnDefinition?.cid] as FiltersDateRange;\r\n if (values?.start) {\r\n setBefore(values?.start ? dayjs(values?.start, formatTemplate) : null);\r\n } else {\r\n setBefore(null);\r\n }\r\n if (values?.end) {\r\n setAfter(values?.end ? dayjs(values?.end, formatTemplate) : null);\r\n } else {\r\n setAfter(null);\r\n }\r\n }, [filters]);\r\n const handleDatesChange = (before: Dayjs | null, after: Dayjs | null) => {\r\n const results: FiltersDateRange = {};\r\n if (before) {\r\n results.start = before.toISOString();\r\n }\r\n if (after) {\r\n results.end = after.toISOString();\r\n }\r\n if (Object.keys(results).length > 0) {\r\n onFilterChange(columnDefinition.cid, results);\r\n } else {\r\n onFilterChange(columnDefinition.cid, null);\r\n }\r\n };\r\n const handleBeforeChange = (date: Dayjs | null) => {\r\n setBefore(date);\r\n handleDatesChange(date, after);\r\n };\r\n const handleAfterChange = (date: Dayjs | null) => {\r\n setAfter(date);\r\n handleDatesChange(before, date);\r\n };\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n};\r\n","import { FocusEvent, useState, useEffect } from 'react';\r\nimport { TextField, TextFieldProps } from '@material-ui/core';\r\nimport { FilterChangeHandler, ReportingFilters } from './@types';\r\nimport { ColumnDefinition } from '../model';\r\nimport { useReportingFieldDisabled } from '../hooks';\r\n\r\nexport interface ReportingTextFieldProps {\r\n columnDefinition: ColumnDefinition;\r\n fieldProps: TextFieldProps;\r\n onFilterChange: FilterChangeHandler;\r\n filters: ReportingFilters;\r\n}\r\n\r\nexport const ReportingTextField = (props: ReportingTextFieldProps) => {\r\n const { filters, onFilterChange, columnDefinition, fieldProps } = props;\r\n const disabled = useReportingFieldDisabled(columnDefinition, filters);\r\n const [value, setValue] = useState('');\r\n useEffect(() => {\r\n const newValue = filters[columnDefinition?.cid] as string;\r\n setValue(newValue ?? '');\r\n }, [filters]);\r\n const handleTextFieldChange = (e: FocusEvent) =>\r\n setValue(e.target.value);\r\n const handleTextFieldBlur = () => onFilterChange(columnDefinition.cid, value);\r\n return (\r\n \r\n );\r\n};\r\n","import { ColumnDefinition, ReportPageTypes } from 'Reports/model';\r\nimport { ReportingAutocomplate } from './ReportingAutocomplate';\r\nimport { ReportingDatePicker } from './ReportingDatePicker';\r\nimport { ReportingTextField } from './ReportingTextField';\r\nimport { FieldType, useColumnDefinition } from '../hooks/useColumnDefinition';\r\nimport { FilterChangeHandler, ReportingFilters } from './@types';\r\n\r\nexport interface FilterFieldFactoryProps {\r\n columnDefinition: ColumnDefinition;\r\n onFilterChange: FilterChangeHandler;\r\n filters: ReportingFilters;\r\n reportType: ReportPageTypes;\r\n}\r\n\r\nexport const FilterFieldFactory = (props: FilterFieldFactoryProps) => {\r\n const { columnDefinition, onFilterChange, filters, reportType } = props;\r\n const [fieldProps, fieldType] = useColumnDefinition(columnDefinition);\r\n if (!columnDefinition) {\r\n return null;\r\n }\r\n switch (fieldType) {\r\n case FieldType.text:\r\n return (\r\n \r\n );\r\n case FieldType.select:\r\n return (\r\n \r\n );\r\n case FieldType.dateTime:\r\n return (\r\n \r\n );\r\n default:\r\n return null;\r\n }\r\n};\r\n","import { useMemo } from 'react';\r\nimport { Grid } from '@material-ui/core';\r\nimport { ColumnDefinition, ReportPageTypes } from 'Reports/model';\r\nimport { FilterFieldFactory } from './FilterFieldFactory';\r\nimport { FilterChangeHandler, ReportingFilters } from './@types';\r\n\r\nexport interface AdvancedFiltersScopeProps {\r\n columnsDefinition: ColumnDefinition[];\r\n onFilterChange: FilterChangeHandler;\r\n filters: ReportingFilters;\r\n reportType: ReportPageTypes;\r\n}\r\n\r\nexport const AdvancedFiltersScope = (props: AdvancedFiltersScopeProps) => {\r\n const { columnsDefinition, onFilterChange, filters, reportType } = props;\r\n const columnsScoped = useMemo(\r\n () => columnsDefinition.filter((x) => x.filter === 'advanced'),\r\n [columnsDefinition]\r\n );\r\n return (\r\n \r\n {columnsScoped.map((f) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\n","import { useMemo } from 'react';\r\nimport { Grid, GridSize, Typography, useTheme } from '@material-ui/core';\r\nimport { ColumnDefinition, FilterScope, ReportPageTypes } from 'Reports/model';\r\nimport { FilterFieldFactory } from './FilterFieldFactory';\r\nimport { FilterChangeHandler, ReportingFilters } from './@types';\r\n\r\nexport type FiltersScopeGridSize = boolean | GridSize | undefined;\r\n\r\nexport interface FiltersScopeProps {\r\n filters: ReportingFilters;\r\n reportType: ReportPageTypes;\r\n onFilterChange: FilterChangeHandler;\r\n filterScope: FilterScope;\r\n columnsDefinition: ColumnDefinition[];\r\n lg?: FiltersScopeGridSize;\r\n md?: FiltersScopeGridSize;\r\n sm?: FiltersScopeGridSize;\r\n xl?: FiltersScopeGridSize;\r\n xs?: FiltersScopeGridSize;\r\n}\r\n\r\nexport const FiltersScope = (props: FiltersScopeProps) => {\r\n const {\r\n filters,\r\n reportType,\r\n onFilterChange,\r\n filterScope,\r\n columnsDefinition,\r\n lg = 4,\r\n md = 4,\r\n sm = 6,\r\n xl = 4,\r\n xs = 12,\r\n } = props;\r\n const theme = useTheme();\r\n const columnsScoped = useMemo(\r\n () =>\r\n columnsDefinition.filter(\r\n (x) => x.scopeId === filterScope.id && x.filter === 'basic'\r\n ),\r\n [filterScope, columnsDefinition]\r\n );\r\n return filterScope?.visible ? (\r\n \r\n {`${filterScope.name} Attributes`}\r\n {columnsScoped.map((f) => (\r\n \r\n ))}\r\n \r\n ) : null;\r\n};\r\n","import { createContext } from 'react';\r\nimport { ColumnDefinition, ReportPageTypes } from '../../model';\r\n\r\nexport interface GridContextProps {\r\n reportType: ReportPageTypes;\r\n columnsDefinitions: ColumnDefinition[];\r\n onGroupByChange?: ((cid: string | null) => void) | null;\r\n onVisibleColumnsChange?:\r\n | ((columns: string[], allColumns: boolean) => void)\r\n | null;\r\n}\r\n\r\nexport const GridContext = createContext({\r\n reportType: ReportPageTypes.StatusOfCertifications,\r\n columnsDefinitions: [],\r\n onGroupByChange: null,\r\n onVisibleColumnsChange: null,\r\n});\r\n","import { useContext } from 'react';\r\nimport {\r\n useGridSlotComponentProps,\r\n GridPanelWrapper,\r\n} from '@material-ui/data-grid';\r\nimport {\r\n List,\r\n ListItemText,\r\n ListItem,\r\n ListItemIcon,\r\n IconButton,\r\n Button,\r\n Accordion,\r\n AccordionDetails,\r\n makeStyles,\r\n ListItemSecondaryAction,\r\n} from '@material-ui/core';\r\nimport {\r\n Visibility,\r\n VisibilityOff,\r\n Close,\r\n ExpandMore,\r\n ExpandLess,\r\n} from '@material-ui/icons';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\nimport { GridContext } from './GridContext';\r\n\r\nconst useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n root: {\r\n zIndex: 100,\r\n },\r\n topMenu: {\r\n display: 'flex',\r\n borderBottom: `1px solid ${theme.palette.divider}`,\r\n alignItems: 'center',\r\n margin: theme.spacing(0.5),\r\n minHeight: 52,\r\n },\r\n scroll: {\r\n padding: theme.spacing(0, 0, 1),\r\n },\r\n list: {\r\n width: '100%',\r\n padding: 0,\r\n },\r\n }),\r\n {\r\n name: 'ColumnsPanel',\r\n }\r\n);\r\n\r\nexport function ColumnsPanel(props: unknown) {\r\n const classes = useStyles();\r\n const { apiRef } = useGridSlotComponentProps();\r\n const { reportType } = useContext(GridContext);\r\n const api = apiRef.current;\r\n const handleShowAllColumns = () => {\r\n const columns = api.getAllColumns();\r\n api.updateColumns(columns.map((c) => ({ ...c, hide: false })));\r\n };\r\n const handleSaveAllColumns = () => {\r\n const columns = api.getAllColumns().map((x) => ({\r\n field: x.field,\r\n hide: x.hide,\r\n }));\r\n localStorage.setItem(`report.${reportType}`, JSON.stringify(columns));\r\n };\r\n const handleClose = () => api.hideFilterPanel();\r\n return (\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n {api.getAllColumns().map((c, index, { length }) => (\r\n \r\n \r\n {\r\n api.updateColumn({ field: c.field, hide: !c.hide });\r\n }}\r\n >\r\n {c.hide ? : }\r\n \r\n \r\n {c.headerName}\r\n \r\n {\r\n api.setColumnIndex(\r\n c.field,\r\n length === index ? 0 : index + 1\r\n );\r\n }}\r\n >\r\n \r\n \r\n {\r\n api.setColumnIndex(\r\n c.field,\r\n index === 0 ? length : index - 1\r\n );\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n","import { makeStyles } from '@material-ui/core';\r\nimport { GridPanelProps } from '@material-ui/data-grid';\r\nimport clsx from 'clsx';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\n\r\nconst useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n root: {\r\n display: 'none',\r\n width:'100%',\r\n maxWidth: 600,\r\n zIndex: 100,\r\n position: \"absolute\",\r\n '&$open': {\r\n display: 'block',\r\n },\r\n },\r\n open: {},\r\n }),\r\n { name: 'GridPanel' }\r\n);\r\n\r\nexport const GridPanel = (props: GridPanelProps) => {\r\n const { open, children, className, ...other } = props;\r\n const classes = useStyles();\r\n return (\r\n \r\n {children}\r\n
\r\n );\r\n};\r\n","import { useContext, useMemo } from 'react';\r\nimport {\r\n GridSortDirection,\r\n useGridSlotComponentProps,\r\n} from '@material-ui/data-grid';\r\nimport { MenuList, MenuItem } from '@material-ui/core';\r\nimport { GridContext } from './GridContext';\r\n\r\nexport const CustomColumnMenu = () => {\r\n const {\r\n state,\r\n apiRef: { current },\r\n } = useGridSlotComponentProps();\r\n const {\r\n onGroupByChange,\r\n columnsDefinitions,\r\n onVisibleColumnsChange,\r\n } = useContext(GridContext);\r\n const {\r\n columnMenu: { field },\r\n } = state;\r\n const col = field ? state.columns.lookup[field] : null;\r\n const sortable = col ? col.sortable : false;\r\n const groupable = useMemo(() => {\r\n const def = columnsDefinitions.find((x) => x.cid === col?.field);\r\n return def?.groupable;\r\n }, [columnsDefinitions]);\r\n const sortModel = current.getSortModel();\r\n const handleColumnVisibilityChange = () =>\r\n onVisibleColumnsChange &&\r\n onVisibleColumnsChange(\r\n current\r\n .getAllColumns()\r\n .filter((x) => !x.hide)\r\n .map((x) => x.field),\r\n false\r\n );\r\n const sortDirection: GridSortDirection =\r\n sortModel?.find((s) => s.field === field)?.sort ?? null;\r\n const handleShowAllColumns = () => {\r\n current.hideColumnMenu();\r\n setTimeout(() => {\r\n const columns = current.getAllColumns();\r\n current.updateColumns(columns.map((c) => ({ ...c, hide: false })));\r\n onVisibleColumnsChange &&\r\n onVisibleColumnsChange(\r\n columns.map((x) => x.field),\r\n true\r\n );\r\n }, 200);\r\n };\r\n const handleHideColumn = () => {\r\n if (col) {\r\n current.hideColumnMenu();\r\n setTimeout(() => {\r\n current.setColumnHeaderFocus({\r\n colIndex: -1,\r\n });\r\n col.hide = true;\r\n current.updateColumn(col);\r\n handleColumnVisibilityChange();\r\n }, 200);\r\n }\r\n };\r\n const handleUnsort = () => {\r\n current.setSortModel([]);\r\n };\r\n const handleAscSort = () => {\r\n current.setSortModel([{ field: field ?? '', sort: 'asc' }]);\r\n };\r\n const handleDescSort = () => {\r\n current.setSortModel([{ field: field ?? '', sort: 'desc' }]);\r\n };\r\n const menuItems: Array<{\r\n label: string;\r\n action?: () => void;\r\n disabled?: boolean;\r\n }> = [];\r\n if (sortable) {\r\n menuItems.push({\r\n label: 'Unsort',\r\n action: handleUnsort,\r\n disabled: !sortModel?.some((s) => s.field === field),\r\n });\r\n menuItems.push({\r\n label: 'Sort by ASC',\r\n action: handleAscSort,\r\n disabled: sortDirection === 'asc',\r\n });\r\n menuItems.push({\r\n label: 'Sort by DESC',\r\n action: handleDescSort,\r\n disabled: sortDirection === 'desc',\r\n });\r\n }\r\n menuItems.push({ label: 'Hide column', action: handleHideColumn });\r\n menuItems.push({ label: 'Show all columns', action: handleShowAllColumns });\r\n if (onGroupByChange && groupable) {\r\n menuItems.push({\r\n label: 'Group by',\r\n action: () => onGroupByChange(field ?? null),\r\n });\r\n }\r\n return (\r\n \r\n {menuItems.map(({ label, action, disabled }, i) => (\r\n action && action()}\r\n disabled={disabled}\r\n >\r\n {label}\r\n \r\n ))}\r\n \r\n );\r\n};\r\n","import { makeStyles } from '@material-ui/core';\r\nimport {\r\n DataGrid,\r\n GridColDef,\r\n GridPageChangeParams,\r\n GridRowParams,\r\n GridSortDirection,\r\n GridSortModelParams,\r\n} from '@material-ui/data-grid';\r\nimport { ElementType, useMemo } from 'react';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\nimport { certificationPlansDetailsRoute } from 'route';\r\nimport {\r\n ColumnDefinition,\r\n ReportPageTypes,\r\n ReportQueryResponseFlat,\r\n ReportSortQuery,\r\n} from '../../model';\r\nimport { ColumnsPanel } from './ColumnsPanel';\r\nimport { GridPanel } from './GridPanel';\r\nimport { GridContext } from './GridContext';\r\nimport { CustomColumnMenu } from './CustomColumnMenu';\r\n\r\nexport interface ReportDataGridProps {\r\n reportType: ReportPageTypes;\r\n columnsDefinitions: ColumnDefinition[];\r\n columns?: GridColDef[];\r\n page: number;\r\n pageSize: number;\r\n loading: boolean;\r\n report: ReportQueryResponseFlat;\r\n sort?: ReportSortQuery;\r\n onPageChange?: (param: GridPageChangeParams) => void;\r\n onPageSizeChange?: (param: GridPageChangeParams) => void;\r\n onSortModelChange: (params: GridSortModelParams) => void;\r\n onGroupByChange?: ((cid: string | null) => void) | null;\r\n onVisibleColumnsChange?: (columns: string[], allColumns: boolean) => void;\r\n}\r\n\r\nconst useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n root: {\r\n backgroundColor: theme.palette.common.white,\r\n '& .MuiDataGrid-colCellTitle': {\r\n fontSize: theme.typography.caption.fontSize,\r\n color: theme.palette.grey[600],\r\n },\r\n '& .MuiDataGridPanel-root': {\r\n zIndex: theme.zIndex.tooltip,\r\n },\r\n },\r\n }),\r\n { name: 'ReportDataGrid' }\r\n);\r\n\r\nconst rowHeight = 42;\r\n\r\nexport const ReportDataGrid = (props: ReportDataGridProps) => {\r\n const {\r\n page,\r\n pageSize,\r\n report,\r\n loading,\r\n sort,\r\n onPageChange,\r\n onPageSizeChange,\r\n onSortModelChange,\r\n onGroupByChange,\r\n onVisibleColumnsChange,\r\n reportType,\r\n columnsDefinitions,\r\n columns,\r\n } = props;\r\n const classes = useStyles(this);\r\n const sortModel = useMemo(\r\n () =>\r\n sort\r\n ? [\r\n {\r\n field: String(sort.column),\r\n sort: (sort.direction ? 'asc' : 'desc') as GridSortDirection,\r\n },\r\n ]\r\n : [],\r\n [sort]\r\n );\r\n const total = report?.total ?? 0;\r\n const rows = report?.data ?? [];\r\n const pageSizeSafe = total < pageSize ? total : pageSize;\r\n const handleRowClick = (param: GridRowParams) => {\r\n const certId = param?.getValue('id');\r\n if (param?.id) {\r\n const pathName = certificationPlansDetailsRoute.createRoute({\r\n certificationPlanId: String(certId),\r\n });\r\n window.open(window.location.origin + pathName, '_blank');\r\n }\r\n };\r\n return (\r\n \r\n r?.guid}\r\n classes={{ root: classes.root }}\r\n autoHeight={true}\r\n rows={rows}\r\n columns={columns ?? []}\r\n rowHeight={rowHeight}\r\n page={page}\r\n pageSize={pageSizeSafe}\r\n rowCount={total}\r\n loading={loading}\r\n paginationMode=\"server\"\r\n rowsPerPageOptions={[]}\r\n disableSelectionOnClick={true}\r\n disableColumnFilter={true}\r\n disableColumnSelector={true}\r\n disableMultipleColumnsSorting={true}\r\n editMode=\"server\"\r\n sortingMode=\"server\"\r\n sortModel={sortModel}\r\n onRowClick={handleRowClick}\r\n components={{\r\n ColumnsPanel: ColumnsPanel as ElementType,\r\n Panel: GridPanel as ElementType,\r\n ColumnMenu: CustomColumnMenu as ElementType,\r\n }}\r\n onSortModelChange={onSortModelChange}\r\n onPageChange={onPageChange}\r\n onPageSizeChange={onPageSizeChange}\r\n />\r\n \r\n );\r\n};\r\n","import { FC, HtmlHTMLAttributes } from 'react';\r\nimport { makeStyles } from '@material-ui/core';\r\nimport clsx from 'clsx';\r\n\r\nconst useStyles = makeStyles(\r\n (theme) => ({\r\n root: {\r\n display: 'flex',\r\n marginTop: theme.spacing(1),\r\n justifyContent: 'flex-end',\r\n width: '100%',\r\n height: 42,\r\n },\r\n }),\r\n { name: 'ActionPanel' }\r\n);\r\n\r\nexport const ActionsPanel: FC> = (props) => {\r\n const { className: classNameProp, children, ...other } = props;\r\n const classes = useStyles();\r\n return (\r\n
\r\n {children}\r\n
\r\n );\r\n};\r\n","import { useState } from 'react';\r\nimport { Button, Typography, ChipButton } from \"components\"\r\n\r\n\r\nimport {\r\n ReportSetting,\r\n} from 'Reports/model';\r\n\r\nimport { DateRange } from '@material-ui/icons';\r\nimport { ModalContent } from 'components/Page';\r\nimport { useModal } from 'hooks';\r\nimport { ActionsPanel } from './ActionsPanel';\r\n\r\nexport interface SelectedSetting {\r\n name: string;\r\n index: number;\r\n}\r\n\r\nexport interface ReportSettingsListProps {\r\n selectedSetting?: SelectedSetting;\r\n inEditMode: boolean\r\n settings: ReportSetting[];\r\n onSelect: (name: string, index: number) => void;\r\n onDelete: (name: string, index: number) => void;\r\n onAccept: (name: string, index: number) => void;\r\n onAddNewSetting: (name: string) => void;\r\n}\r\n\r\nexport const ReportSettingsList = (props: ReportSettingsListProps) => {\r\n const {\r\n settings,\r\n inEditMode,\r\n selectedSetting,\r\n onSelect,\r\n onAccept,\r\n onDelete,\r\n onAddNewSetting,\r\n } = props;\r\n\r\n const [deleting, setDeleting] = useState(null)\r\n const { Modal, openModal, closeModal } = useModal(() => (\r\n (<>\r\n \r\n { onDelete('', deleting!); closeModal() }}>\r\n Delete\r\n \r\n )}\r\n >\r\n \r\n Do you want to delete it?\r\n \r\n\r\n\r\n \r\n ));\r\n\r\n const handleSelect = (settingName: string, index: number) => {\r\n setDeleting(index)\r\n onSelect(settingName, index);\r\n };\r\n\r\n const handleDelete = (settingName: string, index: number) => {\r\n openModal()\r\n\r\n }\r\n\r\n const handleAddNewSettings = () => {\r\n const newName = `New setting ${settings.length}`\r\n onAddNewSetting(newName);\r\n };\r\n\r\n return (\r\n <>\r\n\r\n Saved settings ({props.settings.length})\r\n\r\n {settings?.map((s, index) => {\r\n const setting = settings[index]\r\n const isSelected = selectedSetting?.name === s.name\r\n return (\r\n handleSelect(s.name, index)}\r\n onDelete={() => handleDelete(s.name, index)}\r\n disabled={inEditMode}\r\n icon={setting.schedule && setting.schedule.active ? : <>}\r\n />\r\n )\r\n }\r\n )}\r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n );\r\n};\r\n","import {\r\n Button,\r\n TextField,\r\n List,\r\n ListItem,\r\n ListItemText,\r\n ListItemSecondaryAction,\r\n IconButton,\r\n Typography,\r\n Chip,\r\n useTheme,\r\n Tooltip,\r\n} from '@material-ui/core';\r\nimport { Close, Save, Clear } from '@material-ui/icons';\r\nimport { Autocomplete } from '@material-ui/lab';\r\nimport { ChangeEvent, useEffect, useMemo, useState } from 'react';\r\nimport { deepCopy, getColDefName } from 'utils';\r\nimport {\r\n DragDropContext,\r\n Droppable,\r\n Draggable,\r\n DropResult,\r\n} from 'react-beautiful-dnd';\r\nimport { ColumnDefinition, ReportSetting } from '../../model';\r\nimport { FiltersDateRange, ReportingFilters } from '../@types';\r\nimport { ActionsPanel } from './ActionsPanel';\r\n\r\nexport interface ReportSettingsDetailsProps {\r\n selectedIndex: number | null;\r\n selected: ReportSetting | null;\r\n inEditMode?: boolean;\r\n chosenFilters: ReportingFilters;\r\n columnDefinitions: ColumnDefinition[];\r\n onFiltersRestore: (filters: Partial) => void;\r\n onColumnsRestore: (columns: string[]) => void;\r\n onSettingsChange: (settings: ReportSetting, index: number | null) => void;\r\n onSettingNameChange: (settings: ReportSetting, index: number | null) => void;\r\n}\r\n\r\nexport const ReportSettingsDetails = (props: ReportSettingsDetailsProps) => {\r\n const {\r\n selectedIndex,\r\n columnDefinitions,\r\n selected,\r\n chosenFilters,\r\n inEditMode,\r\n onFiltersRestore,\r\n onColumnsRestore,\r\n onSettingsChange,\r\n onSettingNameChange,\r\n } = props;\r\n const theme = useTheme();\r\n const [selectedColDef, setSelectedColDef] = useState([]);\r\n const [settingName, setSettingName] = useState('');\r\n const filters: {\r\n name: string;\r\n cid: string;\r\n tooltip: string | null;\r\n }[] = useMemo(() => {\r\n const f = selected?.filters ?? {};\r\n if (f) {\r\n return Object.keys(f).map((k) => {\r\n const colDef = columnDefinitions.find((c) => c.cid === k) ?? null;\r\n const name = getColDefName(colDef);\r\n const values = selected?.filters[k];\r\n let tooltip = typeof values === 'string' ? values || null : null;\r\n if (colDef?.type?.date && values) {\r\n const v = values as FiltersDateRange;\r\n tooltip = v?.start ? `Start date: ${v?.start ?? 'no date'},` : '';\r\n tooltip =\r\n tooltip + v?.start ? ` End date: ${v?.start ?? 'no date'},` : '';\r\n }\r\n if (Array.isArray(values) && Array.isArray(colDef?.values)) {\r\n tooltip = values.reduce((prev, value) => {\r\n const label = colDef?.values?.find((v) => v.vid === value)?.label;\r\n return label ? `${prev} ${label},` : prev;\r\n }, '');\r\n }\r\n tooltip = tooltip?.trim() ?? null;\r\n tooltip = tooltip?.replace(/(^,)|(,$)/g, '') ?? null;\r\n return { name, cid: colDef?.cid ?? '', tooltip };\r\n });\r\n }\r\n return [];\r\n }, [selected]);\r\n useEffect(() => {\r\n setSettingName(selected?.name ?? '');\r\n }, [selected]);\r\n const colDefFiltred = useMemo(() => {\r\n const length = selected?.columns?.length ?? 0;\r\n if (length <= 0) {\r\n return columnDefinitions;\r\n }\r\n\r\n return columnDefinitions.filter((c) =>\r\n selected?.columns.some((cid) => c.cid !== cid)\r\n );\r\n }, [columnDefinitions]);\r\n const handleItemsChange = (\r\n e: ChangeEvent,\r\n value: (string | ColumnDefinition)[]\r\n ) => {\r\n setSelectedColDef(value as ColumnDefinition[]);\r\n };\r\n const handleAddColumns = () => {\r\n if (selectedColDef.length <= 0) {\r\n return;\r\n }\r\n const currentCols = selected?.columns ?? [];\r\n const next = deepCopy(selected) as ReportSetting;\r\n next.columns = [...selectedColDef.map((c) => c.cid), ...currentCols];\r\n onSettingsChange(next, selectedIndex);\r\n setSelectedColDef([]);\r\n };\r\n const handleRemoveColumn = (cid: string) => {\r\n const next = deepCopy(selected) as ReportSetting;\r\n next.columns = next.columns.filter((c) => c !== cid);\r\n onSettingsChange(next, selectedIndex);\r\n };\r\n const handleColumnDragEnd = (results: DropResult) => {\r\n if (\r\n !Number.isInteger(results.destination?.index) ||\r\n !results?.destination\r\n ) {\r\n return;\r\n }\r\n const next = deepCopy(selected) as ReportSetting;\r\n\r\n const element = next.columns[results.source.index];\r\n next.columns.splice(results.source.index, 1);\r\n next.columns.splice(results.destination.index, 0, element);\r\n\r\n onSettingsChange(next, selectedIndex);\r\n };\r\n const handleCollectFilters = () => {\r\n const next = deepCopy(selected) as ReportSetting;\r\n next.filters = { ...chosenFilters };\r\n onSettingsChange(next, selectedIndex);\r\n };\r\n const handleDeleteFilter = (cid: string) => {\r\n const next = deepCopy(selected) as ReportSetting;\r\n const filters = next?.filters;\r\n if (filters && Object.keys(filters).some((k) => k === cid)) {\r\n delete next.filters[cid];\r\n onSettingsChange(next, selectedIndex);\r\n }\r\n };\r\n\r\n const onNameChange = (newName: string) => {\r\n setSettingName(newName)\r\n selected!.name = newName\r\n }\r\n return selected ? (\r\n <>\r\n\r\n \r\n Setting details\r\n \r\n ) => onNameChange(e.target?.value)}\r\n />\r\n\r\n {Array.isArray(filters) && (\r\n
\r\n \r\n Filters\r\n \r\n {filters.map((f) => (\r\n \r\n \r\n handleDeleteFilter(f.cid)}\r\n />\r\n \r\n \r\n ))}\r\n \r\n
\r\n )}\r\n \r\n Columns\r\n \r\n\r\n c.cid !== \"CgACAQYDDAMEDQkGBAwTSK\")}\r\n multiple={true}\r\n disabled={!props.inEditMode} hidden={!inEditMode}\r\n onChange={handleItemsChange}\r\n renderInput={(params) => (\r\n \r\n )}\r\n getOptionLabel={(option) => getColDefName(option)}\r\n getOptionSelected={(option, value) => option?.cid === value?.cid}\r\n />\r\n \r\n \r\n \r\n {(provided) => (\r\n \r\n {selected?.columns?.map((c, index) => {\r\n const name = getColDefName(\r\n columnDefinitions.find((d) => d.cid === c) ?? null\r\n );\r\n return (\r\n \r\n {(provided) => (\r\n \r\n \r\n \r\n handleRemoveColumn(c)}>\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n })}\r\n {provided.placeholder}\r\n \r\n )}\r\n \r\n \r\n \r\n ) : (\r\n Select settings to display details...\r\n );\r\n};\r\n","import React, { useEffect, useState, ChangeEvent } from 'react';\r\nimport {\r\n AutocompleteField,\r\n AutocompleteFieldItem,\r\n} from '../Field/AutocompleteField/AutocompleteField';\r\n\r\nimport { useUserHrgtQuery } from '../../MyProfile/query/myProfile.query';\r\nimport { mapToAutocompleteFieldItems } from '../../Dictionary/component/HrgtUserSelectField/utils';\r\nimport { getPagination, PaginatedList, Sort } from '../../model';\r\nimport { MyProfile } from '../../MyProfile/model/MyProfile';\r\n\r\n\r\nexport interface UserSearchProps {\r\n label: string;\r\n onChanged: React.Dispatch<{ id: string, email: string, name: string }[]>;\r\n initialValue?: string[];\r\n multiple?: boolean;\r\n helperText?: string;\r\n required?: boolean\r\n disabled?: boolean\r\n}\r\n\r\nconst defaultSort: Sort = {\r\n sortExpression: 'lastName',\r\n sortDescending: false,\r\n};\r\nconst searchTimeout = 500;\r\nconst minLenOfSearchValue = 3;\r\nexport const UserSearch = (props: UserSearchProps) => {\r\n const {\r\n label,\r\n onChanged,\r\n initialValue,\r\n multiple = true,\r\n required,\r\n disabled,\r\n helperText\r\n } = props;\r\n\r\n const [value, setValue] = useState('');\r\n const inv = (initialValue ?? []).map((x) => (\r\n {\r\n id: `${x ?? Math.random()}-`,\r\n //@ts-ignore\r\n email: x ?? \"\",\r\n name: x\r\n }\r\n ))\r\n const [selectedValues, setSelectedValues] = useState(inv)\r\n\r\n const { data = [], isLoading, refetch } = useUserHrgtQuery(\r\n getPagination(20),\r\n defaultSort,\r\n {\r\n isExternal: false,\r\n personNameOrEmail: value,\r\n },\r\n {\r\n enabled: false\r\n }\r\n );\r\n\r\n\r\n useEffect(() => {\r\n\r\n if (value.length >= minLenOfSearchValue) {\r\n const timer = setTimeout(() => refetch(), searchTimeout);\r\n return () => clearTimeout(timer);\r\n }\r\n return undefined;\r\n }, [value]);\r\n\r\n const handleItemsChange = (\r\n e: ChangeEvent<{}>,\r\n value: AutocompleteFieldItem | AutocompleteFieldItem[],\r\n xxvalues: AutocompleteFieldItem[]\r\n ) => {\r\n xxvalues.splice(0, xxvalues.length)\r\n if (!Array.isArray(value) || value.length === 0)\r\n xxvalues.splice(0, xxvalues.length)\r\n else\r\n xxvalues.push(...value);\r\n\r\n const toSend = xxvalues.map((x) => (\r\n {\r\n id: (x.id ?? \"\").toString(),\r\n //@ts-ignore\r\n email: x.email ?? \"\",\r\n name: x.name ?? \"\"\r\n }\r\n ));\r\n onChanged(toSend);\r\n }\r\n\r\n return (\r\n\r\n )}\r\n onChange={(e, v, r, d) => { handleItemsChange(e, v, selectedValues) }}\r\n onInputChange={(event, eventValue) => setValue(eventValue)}\r\n />\r\n );\r\n};\r\n","import { useState } from 'react';\r\nimport {\r\n Button,\r\n Grid,\r\n Switch,\r\n Tooltip,\r\n Typography\r\n} from '@material-ui/core';\r\nimport { KeyboardDatePicker } from '@material-ui/pickers';\r\nimport { Dayjs } from 'dayjs';\r\nimport { ReportSetting } from 'Reports/model';\r\nimport { useMyProfileQuery } from 'MyProfile/query/myProfile.query';\r\nimport { UserSearch } from '../../../components/UserSearch/UserSearch';\r\nimport { AutocompleteField, AutocompleteFieldItem } from '../../../components/Field/AutocompleteField/AutocompleteField';\r\nimport { ActionsPanel } from './ActionsPanel';\r\nimport { formatTemplate } from '../../../utils';\r\n\r\nexport const frequencyOptions: AutocompleteFieldItem[] = [\r\n { id: \"once\", name: 'Once' },\r\n { id: \"daily\", name: 'Daily' },\r\n { id: \"weekly\", name: 'Weekly' },\r\n { id: \"biweekly\", name: 'Biweekly' },\r\n { id: \"monthly\", name: 'Monthly' },\r\n { id: \"quarterly\", name: 'Quarterly' },\r\n\r\n];\r\n\r\nfunction useForceUpdate() {\r\n const [value, setValue] = useState(0); // integer state\r\n return () => setValue(value => value + 1); // update state to force render\r\n}\r\n\r\nexport interface ReportSettingEditorProps{\r\n setting?: ReportSetting| null\r\n inEditMode?: boolean\r\n onActiveChange: React.Dispatch\r\n }\r\n \r\nexport const ScheduleSettings = (props: ReportSettingEditorProps) => {\r\n const forceUpdate = useForceUpdate();\r\n const schedule = props.setting?.schedule;\r\n const currentUser = useMyProfileQuery().data;\r\n const setFrequency = (v: AutocompleteFieldItem) => {\r\n schedule!.frequency = (v.id ?? \"once\").toString()\r\n forceUpdate()\r\n }\r\n\r\n const setstartDate = (v: Dayjs | null) => {\r\n schedule!.startDate = v ? v.toISOString() : undefined\r\n forceUpdate()\r\n }\r\n const setendDate = (v: Dayjs | null) => {\r\n schedule!.endDate = v ? v.toISOString() : undefined\r\n forceUpdate()\r\n }\r\n\r\n const setsendTo = (v: { id: string, email: string, name: string }[]) => {\r\n schedule!.sendTo = v.map(x => x.email)\r\n forceUpdate()\r\n }\r\n\r\n const setactive = (active: boolean) => {\r\n schedule!.active = active\r\n props.onActiveChange(active)\r\n forceUpdate()\r\n }\r\n\r\n const addSchedule = () => {\r\n const x = props.setting!\r\n\r\n x.schedule = {\r\n active: true,\r\n frequency: \"once\"\r\n }\r\n if (currentUser)\r\n x.schedule.sendTo = [currentUser?.email]\r\n\r\n forceUpdate()\r\n }\r\n const removeSchedule = () => {\r\n const x = props.setting!\r\n x.schedule = undefined\r\n forceUpdate()\r\n }\r\n\r\n const renderActivateButton = () => {\r\n if (props.inEditMode) return (<>)\r\n return (\r\n \r\n\r\n setactive(c)}\r\n />\r\n\r\n )\r\n }\r\n\r\n if (!props.setting) return (<>)\r\n if (!schedule) return (<>\r\n \r\n Schedule is not set up\r\n \r\n\r\n \r\n \r\n \r\n )\r\n return (\r\n <>\r\n \r\n Schedule\r\n {renderActivateButton()}\r\n \r\n\r\n \r\n x.id === schedule.frequency)}\r\n onChange={(e, v) => setFrequency(v as AutocompleteFieldItem)}\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n setsendTo(v)}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n )\r\n}","import { useState, useEffect } from 'react';\r\nimport {\r\n Grid,\r\n Accordion,\r\n AccordionSummary,\r\n AccordionDetails,\r\n Typography, Tooltip,\r\n useTheme,\r\n Button,\r\n AccordionActions,\r\n} from '@material-ui/core';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { ExpandMore, Settings } from '@material-ui/icons';\r\nimport {\r\n ColumnDefinition,\r\n ReportPageTypes,\r\n ReportSetting,\r\n} from 'Reports/model';\r\nimport {\r\n useFilterSettingsQuery,\r\n useFilterSettingsMutation,\r\n} from 'Reports/query';\r\nimport { ReportSettingsList } from './ReportSettingsList';\r\nimport { ReportSettingsDetails } from './ReportSettingsDetails';\r\nimport { ReportingFilters } from '../@types';\r\nimport { ScheduleSettings } from './ScheduleSettings';\r\n\r\nexport interface ReportSettingsProps {\r\n chosenFilters: ReportingFilters;\r\n reportType: ReportPageTypes;\r\n columnDefinitions: ColumnDefinition[];\r\n onFiltersRestore: (filters: Partial) => void;\r\n onColumnsRestore: (columns: string[]) => void;\r\n}\r\n\r\nfunction useForceUpdate() {\r\n const [value, setValue] = useState(0); // integer state\r\n return () => setValue(value => value + 1); // update state to force render\r\n}\r\n\r\nexport const ReportSettingsPanel = (props: ReportSettingsProps) => {\r\n const {\r\n reportType,\r\n columnDefinitions,\r\n chosenFilters,\r\n onFiltersRestore,\r\n onColumnsRestore,\r\n } = props;\r\n const forceUpdate = useForceUpdate();\r\n const theme = useTheme();\r\n const [selectedSetting, setSelectedSetting] = useState(null);\r\n const [orgValues, setOrgValues] = useState(null);\r\n const [inEditMode, setInEditMode] = useState(false);\r\n const [settings, setSettings] = useState([]);\r\n const [selectedIndex, setSelectedIndex] = useState(null);\r\n const { isLoading, data, dataUpdatedAt, refetch } = useFilterSettingsQuery();\r\n useEffect(() => {\r\n const settingsSet = (data ? data[reportType] : null);\r\n\r\n setSettings(settingsSet ?? [])\r\n setSelectedSetting(null)\r\n setSelectedIndex(null)\r\n\r\n forceUpdate();\r\n }, [dataUpdatedAt]);\r\n const { isLoading: saving, mutate } = useFilterSettingsMutation();\r\n\r\n const handleAddNewSettings = (name: string) => {\r\n const newSetting = { name, filters: {}, columns: [] }\r\n setSettings((prev) => [newSetting, ...prev])\r\n\r\n setSelectedSetting(newSetting)\r\n setSelectedIndex(0)\r\n edit()\r\n };\r\n const handleSelect = (name: string, index: number) => {\r\n setSelectedSetting(settings[index] ?? null);\r\n setSelectedIndex(index);\r\n };\r\n const handleSettingsChnage = (\r\n newSet: ReportSetting,\r\n index: number | null\r\n ) => {\r\n if (!newSet && !index) {\r\n return;\r\n }\r\n setSettings((prev) =>\r\n prev.map((s, i) =>\r\n s.name === newSet.name && i === selectedIndex ? newSet : s\r\n )\r\n );\r\n setSelectedSetting(newSet);\r\n };\r\n const handleSettingNameChange = (\r\n newSet: ReportSetting,\r\n index: number | null\r\n ) => {\r\n if (!Number.isInteger(index)) {\r\n return;\r\n }\r\n setSettings((prev) =>\r\n prev.map((s, i) => (i === selectedIndex ? newSet : s))\r\n );\r\n };\r\n\r\n const { showSuccess, showError } = useToasts();\r\n const handleSaveSettings = () => {\r\n const settingNames = settings.map(x => x.name)\r\n const duplicatedNames = settingNames.filter((item, index) => settingNames.indexOf(item) != index)\r\n if (duplicatedNames.length > 0) {\r\n showError('There are duplicates in the settings names. Settings names must be unique.')\r\n return\r\n }\r\n\r\n if ((selectedSetting?.name ?? \"\") == \"\") {\r\n showError('Setting name is required!')\r\n return\r\n }\r\n\r\n if (selectedSetting?.schedule) {\r\n\r\n if (!(selectedSetting?.schedule.startDate)) {\r\n showError('Setting schedule start date is required!');\r\n return\r\n }\r\n\r\n if ((selectedSetting?.schedule.sendTo ?? []).length == 0) {\r\n showError('Scheduled report receiver is required!')\r\n return\r\n }\r\n\r\n }\r\n doPersist()\r\n };\r\n\r\n const doPersist = (toSave?: ReportSetting[]) => {\r\n if (data) {\r\n const next = { ...data };\r\n next[reportType] = [...(toSave ?? settings)];\r\n mutate(next);\r\n setInEditMode(false)\r\n }\r\n }\r\n\r\n const handleAccept = (name: string, index: number) => {\r\n const selectedSetting = settings[index];\r\n if (selectedSetting) {\r\n if(selectedSetting.columns.length > 0)\r\n onColumnsRestore(selectedSetting.columns);\r\n onFiltersRestore(selectedSetting.filters);\r\n }\r\n };\r\n const handleDelete = (name: string, index: number) => {\r\n const array = [...settings]\r\n if (index >= 0) {\r\n array.splice(index, 1)\r\n setSettings(array)\r\n setSelectedSetting(null)\r\n setSelectedIndex(null)\r\n doPersist(array)\r\n }\r\n };\r\n const edit = () => {\r\n setInEditMode(true)\r\n forceUpdate()\r\n }\r\n\r\n const cancelEdit = () => {\r\n setInEditMode(false)\r\n setSelectedSetting(null)\r\n refetch()\r\n }\r\n\r\n const doRunsetting = () => {\r\n if (selectedSetting) {\r\n if(selectedSetting.columns.length > 0)\r\n onColumnsRestore(selectedSetting.columns);\r\n onFiltersRestore(selectedSetting.filters);\r\n }\r\n }\r\n\r\n const onSchedulerActiveChange = (isActive: boolean) => {\r\n handleSaveSettings()\r\n }\r\n\r\n const renderActions = () => {\r\n\r\n if (inEditMode)\r\n return (<>\r\n doRunsetting()}\r\n color=\"secondary\"\r\n >\r\n Run current settings\r\n \r\n\r\n \r\n Cancel\r\n \r\n \r\n Save settings\r\n \r\n )\r\n\r\n if (selectedSetting)\r\n return (<>\r\n \r\n
\r\n edit()}\r\n color=\"primary\"\r\n >\r\n Edit\r\n \r\n
\r\n
\r\n doRunsetting()}\r\n color=\"secondary\"\r\n >\r\n Run settings\r\n \r\n\r\n )\r\n\r\n\r\n return (<>)\r\n }\r\n\r\n return (\r\n \r\n\r\n }>\r\n \r\n Report settings\r\n \r\n \r\n {isLoading ? (\r\n 'Loaidng...'\r\n ) : (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {renderActions()}\r\n \r\n \r\n );\r\n};\r\n","import { useToasts } from 'components/ToastProvider';\r\nimport { useQuery, UseQueryOptions } from 'react-query';\r\nimport {\r\n ColumnDefinition,\r\n ReportQuery,\r\n ReportQueryResponseFlat,\r\n ReportSettings,\r\n} from 'Reports/model';\r\nimport { FilterScope } from '../model/FilterScope';\r\nimport { ReportPageTypes } from '../model/ReportPageTypes';\r\nimport { reportsApi } from '../service/reports.api';\r\n\r\nexport const filterKey = 'filterKey';\r\n\r\nexport const useFilterSettingsQuery = (\r\n options: UseQueryOptions = {}\r\n) => {\r\n const { showError } = useToasts();\r\n return useQuery(filterKey, () => reportsApi.getFilters(), {\r\n ...options,\r\n onError: () => showError('Cannot load settings'),\r\n });\r\n};\r\n\r\nexport const filterScopesKey = 'filterScopesKey';\r\n\r\nexport const useFilterScopesQuery = (pageId: ReportPageTypes) =>\r\n useQuery([filterScopesKey, pageId], () =>\r\n reportsApi.getFilterScopes(pageId)\r\n );\r\n\r\nexport const reportColumnDefinitionsKey = 'reportColumnDefinitionsKey';\r\n\r\nexport const useReportColumnDefinitionsQuery = (pageId: ReportPageTypes) =>\r\n useQuery([reportColumnDefinitionsKey, pageId], () =>\r\n reportsApi.getColumns(pageId)\r\n );\r\n\r\nexport const filterCertificationPlansQueryKey =\r\n 'reportFilterCertificationPlansKey';\r\n\r\nexport const useReportDataQuery = (\r\n query: ReportQuery,\r\n reportType: ReportPageTypes = ReportPageTypes.StatusOfCertifications,\r\n options = {}\r\n) => {\r\n let api = null;\r\n switch (reportType) {\r\n case ReportPageTypes.StatusOfCertifications:\r\n api = () => reportsApi.getFilterCertificationPlans(query);\r\n break;\r\n case ReportPageTypes.UncompletedRequirements:\r\n api = () => reportsApi.getFilterCertificationPlans(query);\r\n break;\r\n case ReportPageTypes.KpiReports:\r\n api = () => reportsApi.getFilterCertificationPlans(query);\r\n break;\r\n case ReportPageTypes.CertificationsByPerson:\r\n api = () => reportsApi.getFilterCertificationPlans(query);\r\n break;\r\n }\r\n return useQuery(\r\n filterCertificationPlansQueryKey,\r\n api,\r\n { ...options }\r\n );\r\n};\r\n","import { useToasts } from 'components/ToastProvider';\r\nimport { useMutation } from 'react-query';\r\nimport { reportsApi } from '../service/reports.api';\r\n\r\nexport const saveFilterKey = 'saveFilterKey';\r\n\r\nexport const useFilterSettingsMutation = () => {\r\n const { showSuccess, showError } = useToasts();\r\n return useMutation(reportsApi.saveFilters, {\r\n onError: () => showError('Cannot save settings'),\r\n onSuccess: () => showSuccess('Settings save'),\r\n });\r\n};\r\n","import { TransitionProps } from '@material-ui/core/transitions';\r\nimport {\r\n AppBar,\r\n Dialog,\r\n IconButton,\r\n makeStyles,\r\n Slide,\r\n Toolbar,\r\n Typography,\r\n ListItem,\r\n ListItemText,\r\n List,\r\n TablePagination,\r\n} from '@material-ui/core';\r\nimport { Content } from 'components/Page';\r\nimport {\r\n forwardRef,\r\n Ref,\r\n useEffect,\r\n useMemo,\r\n useState,\r\n MouseEvent,\r\n} from 'react';\r\nimport { Close } from '@material-ui/icons';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\nimport { getColDefName } from 'utils';\r\nimport clsx from 'clsx';\r\nimport { useQuery } from 'react-query';\r\nimport {\r\n GridColDef,\r\n GridPageChangeParams,\r\n GridSortModelParams,\r\n} from '@material-ui/data-grid';\r\nimport {\r\n ColumnDefinition,\r\n ReportPageTypes,\r\n ReportQuery,\r\n ReportQueryResponseFlat,\r\n ReportSortQuery,\r\n} from '../../model';\r\nimport { ReportingFilters } from '../@types';\r\nimport { ReportDataGrid } from './ReportDataGrid';\r\n\r\nexport interface GroupByDialogProps {\r\n groupByCid: string | null;\r\n onClose: () => void;\r\n columnsDefinitions: ColumnDefinition[];\r\n filters: ReportingFilters;\r\n sort: ReportSortQuery;\r\n reportType: ReportPageTypes;\r\n reportApi: (query: ReportQuery) => Promise;\r\n gridColDef: GridColDef[];\r\n}\r\n\r\nconst Transition = forwardRef((props: TransitionProps, ref: Ref) => (\r\n \r\n));\r\n\r\nconst useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n appBar: {\r\n position: 'fixed',\r\n },\r\n toolbar: {\r\n color: theme.palette.text.primary,\r\n backgroundColor: theme.palette.common.white,\r\n },\r\n title: {\r\n marginLeft: theme.spacing(2),\r\n flex: 1,\r\n },\r\n paper: {\r\n backgroundColor: '#fafafa',\r\n },\r\n content: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n marginTop: 64,\r\n width: '100%',\r\n margin: theme.spacing(-4, 2, 0, 0),\r\n },\r\n pagination: {\r\n marginBottom: theme.spacing(4),\r\n },\r\n groupsList: {\r\n position: 'fixed',\r\n height: `calc(100vh - 64px)`,\r\n overflowY: 'scroll',\r\n overflowX: 'hidden',\r\n backgroundColor: theme.palette.common.white,\r\n width: 280,\r\n marginRight: theme.spacing(2),\r\n },\r\n column: {\r\n width: 280,\r\n minHeight: `calc(100vh - 64px)`,\r\n },\r\n dataGrid: {\r\n boxSizing: 'border-box',\r\n margin: theme.spacing(0, 2),\r\n width: `calc(100% - 280px)`,\r\n },\r\n resultsTitle: {\r\n margin: theme.spacing(4, 0, 2, 0),\r\n },\r\n }),\r\n {\r\n name: 'GroupByDialog',\r\n }\r\n);\r\n\r\nexport const GroupByDialog = (props: GroupByDialogProps) => {\r\n const {\r\n groupByCid,\r\n onClose,\r\n columnsDefinitions,\r\n filters,\r\n sort,\r\n reportApi,\r\n reportType,\r\n gridColDef,\r\n } = props;\r\n const classes = useStyles();\r\n const [pageGroups, setPageGroups] = useState(0);\r\n const [selectedValue, setSelectedValue] = useState(null);\r\n const [pageSizeGroups] = useState(50);\r\n const [groupSort, setGroupSort] = useState({});\r\n const [page, setPage] = useState(0);\r\n const [pageSize, setPageSize] = useState(50);\r\n const title = useMemo(() => {\r\n const col = columnsDefinitions.find((c) => c.cid === groupByCid);\r\n if (col) {\r\n return `Group by ${getColDefName(col)}`;\r\n }\r\n return 'Group by';\r\n }, [groupByCid, columnsDefinitions]);\r\n const {\r\n isLoading: reportLoading,\r\n data: report,\r\n refetch: getReport,\r\n } = useQuery(\r\n [reportType, page, pageSize, groupByCid, selectedValue, selectedValue],\r\n () =>\r\n reportApi({\r\n filters,\r\n grouping: {},\r\n groupings: [\r\n {\r\n columnId: groupByCid ?? '',\r\n isChosen: true,\r\n value: selectedValue as string,\r\n },\r\n ],\r\n sort,\r\n columns: gridColDef.map((x) => x.field),\r\n offset: page - 1,\r\n limit: pageSize,\r\n }),\r\n {\r\n staleTime: 0,\r\n keepPreviousData: false,\r\n refetchOnMount: false,\r\n enabled: Boolean(groupByCid && selectedValue && gridColDef.length > 0),\r\n }\r\n );\r\n const handleSort = (p: GridSortModelParams) => {\r\n const sortSettings = p?.sortModel[0];\r\n if (sortSettings) {\r\n setGroupSort({\r\n column: sortSettings?.field,\r\n direction: sortSettings.sort === 'asc',\r\n });\r\n } else {\r\n setGroupSort({});\r\n }\r\n };\r\n const {\r\n isLoading: groupsLoading,\r\n data: groups,\r\n refetch: getGroups,\r\n } = useQuery(\r\n [reportType, pageGroups, pageSizeGroups, groupByCid],\r\n () =>\r\n reportApi({\r\n filters,\r\n grouping: {},\r\n groupings: [{ columnId: groupByCid ?? '', isChosen: false }],\r\n sort,\r\n columns: [groupByCid ?? ''],\r\n offset: pageGroups,\r\n limit: pageSizeGroups,\r\n }),\r\n {\r\n staleTime: 0,\r\n keepPreviousData: false,\r\n refetchOnMount: false,\r\n enabled: Boolean(groupByCid),\r\n }\r\n );\r\n const handleChangePageGroup = (\r\n event: MouseEvent | null,\r\n page: number\r\n ) => {\r\n setPageGroups(page);\r\n };\r\n useEffect(() => {\r\n if (groupByCid && selectedValue) {\r\n getReport();\r\n }\r\n }, [selectedValue]);\r\n useEffect(() => {\r\n if (groupByCid) {\r\n getGroups();\r\n }\r\n }, [groupByCid, pageGroups]);\r\n useEffect(\r\n () => () => {\r\n setPageGroups(0);\r\n setSelectedValue(null);\r\n },\r\n []\r\n );\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n {groups?.data.map(({ id, count, label }) => (\r\n setSelectedValue(id as string)}\r\n selected={selectedValue === id}\r\n button\r\n >\r\n \r\n \r\n ))}\r\n \r\n {pageSizeGroups < (groups?.total ?? 0) && (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n {selectedValue ? (\r\n <>\r\n \r\n Results\r\n \r\n {\r\n setPage(p.page);\r\n }}\r\n onPageSizeChange={(p: GridPageChangeParams) => {\r\n setPageSize(p.pageSize);\r\n }}\r\n onSortModelChange={handleSort}\r\n onGroupByChange={null}\r\n columnsDefinitions={columnsDefinitions ?? []}\r\n />\r\n \r\n ) : (\r\n \r\n Select group to display results…\r\n \r\n )}\r\n
\r\n
\r\n \r\n \r\n );\r\n};\r\n","import { Content } from 'components/Page';\r\nimport { useEffect, useMemo, useState } from 'react';\r\nimport {\r\n Typography,\r\n Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n makeStyles,\r\n AccordionActions,\r\n Button,\r\n Grid,\r\n} from '@material-ui/core';\r\nimport { ExpandMore } from '@material-ui/icons';\r\nimport FilterAltIcon from '@mui/icons-material/FilterAlt';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\nimport {\r\n GridPageChangeParams,\r\n GridSortModelParams,\r\n} from '@material-ui/data-grid';\r\n\r\nimport { certificationListApi } from 'CertificationList/service/certificationList.api';\r\nimport { MassEnrollmentDialog, MassEnrollmentDialogState } from 'MassEnrollment/component/MassEnrollmentDialog';\r\n\r\nimport { useReportGridColumns } from 'Reports/hooks';\r\nimport { useQuery } from 'react-query';\r\nimport {\r\n ReportQuery,\r\n ReportQueryResponseFlat,\r\n ReportSortQuery,\r\n} from 'Reports/model';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { ReportExportFileType } from 'Reports/service/reports.api';\r\nimport { ReportPageTypes } from '../model/ReportPageTypes';\r\nimport { AdvancedFiltersScope } from './AdvancedFiltersScope';\r\nimport { FiltersScope } from './FiltersScope';\r\nimport {\r\n useFilterScopesQuery,\r\n useReportColumnDefinitionsQuery,\r\n} from '../query/report.query';\r\nimport { FilterChangeValues, ReportingFilters } from './@types';\r\nimport { ReportDataGrid } from './ReportDataGrid';\r\nimport { ReportSettingsPanel } from './Settings';\r\nimport { GroupByDialog } from './ReportDataGrid/GroupByDialog';\r\nimport { RoundButton } from '../../components';\r\n\r\n\r\nconst useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n filterIcon: {\r\n marginRight: theme.spacing(2),\r\n },\r\n resultsTitle: {\r\n margin: theme.spacing(4, 0, 2, 0),\r\n },\r\n }),\r\n {\r\n name: 'ReportBasePage',\r\n }\r\n);\r\n\r\nexport interface ReportBasePageProps {\r\n reportType: ReportPageTypes;\r\n reportApi: (query: ReportQuery) => Promise;\r\n reportToFileApi: (\r\n query: ReportQuery,\r\n exportFileType: ReportExportFileType\r\n ) => Promise;\r\n}\r\n\r\nexport const ReportBasePage = (props: ReportBasePageProps) => {\r\n const { reportType, reportApi, reportToFileApi } = props;\r\n const {\r\n isLoading: filterScopesLoading,\r\n data: filterScopes,\r\n } = useFilterScopesQuery(reportType);\r\n const [\r\n exportingReport,\r\n setExportReport,\r\n ] = useState(null);\r\n const [groupBy, setGroupBy] = useState(null);\r\n const [sort, setSort] = useState({});\r\n const { showSuccess, showError, showInfo } = useToasts();\r\n const [customColumns, setCustomColumns] = useState(null);\r\n const [filters, setFilters] = useState({});\r\n const [pageNumber, setPageNumber] = useState(0);\r\n const [pageNumberLoaded, setPageNumberLoaded] = useState(0);\r\n const [pageSize, setPageSize] = useState(50);\r\n const {\r\n isLoading: columnDefinitionsLoading,\r\n data: columnDefinitions,\r\n } = useReportColumnDefinitionsQuery(reportType);\r\n const [gridColDef, allColumns] = useReportGridColumns(\r\n columnDefinitions ?? [],\r\n customColumns,\r\n reportType\r\n );\r\n const {\r\n isLoading: reportLoading,\r\n data: report,\r\n refetch: getReport,\r\n } = useQuery(\r\n [reportType, pageNumber, pageSize],\r\n () =>\r\n reportApi({\r\n filters,\r\n grouping: {},\r\n groupings: [],\r\n sort,\r\n columns: allColumns,\r\n offset: pageNumber,\r\n limit: pageSize,\r\n }).then((x) => {\r\n setPageNumberLoaded(pageNumber);\r\n return x;\r\n }),\r\n {\r\n staleTime: 0,\r\n keepPreviousData: false,\r\n refetchOnMount: false,\r\n enabled:\r\n !columnDefinitionsLoading &&\r\n !filterScopesLoading &&\r\n gridColDef.length > 0,\r\n }\r\n );\r\n useEffect(() => {\r\n if (\r\n !reportLoading &&\r\n !columnDefinitionsLoading &&\r\n !filterScopesLoading &&\r\n gridColDef.length > 0\r\n ) {\r\n getReport();\r\n }\r\n }, [pageNumber, pageSize, sort, gridColDef]);\r\n const classes = useStyles(props);\r\n const title = useMemo(() => {\r\n switch (reportType) {\r\n case ReportPageTypes.StatusOfCertifications:\r\n return 'Status of Certifications';\r\n case ReportPageTypes.UncompletedRequirements:\r\n return 'Uncompleted Requirements';\r\n case ReportPageTypes.CertificationsByPerson:\r\n return 'Certifications By Person';\r\n case ReportPageTypes.KpiReports:\r\n return 'KPI Reports';\r\n default:\r\n return 'unknown';\r\n }\r\n }, []);\r\n const handleSort = (p: GridSortModelParams) => {\r\n const sortSettings = p?.sortModel[0];\r\n if (sortSettings?.field !== \"undefined\") {\r\n setSort({\r\n column: sortSettings?.field,\r\n direction: sortSettings.sort === 'asc',\r\n });\r\n } else {\r\n setSort({});\r\n }\r\n };\r\n const handleFilterChange = (key: string, value: FilterChangeValues) => {\r\n setFilters((prev) => {\r\n const next = { ...prev };\r\n if (value) {\r\n next[key] = value;\r\n } else {\r\n delete next[key];\r\n }\r\n return next;\r\n });\r\n };\r\n\r\n const handleExportReport = async (reportExportType: ReportExportFileType) => {\r\n try {\r\n setExportReport(reportExportType);\r\n await reportToFileApi(\r\n {\r\n filters,\r\n grouping: {},\r\n groupings: [],\r\n sort,\r\n columns:\r\n customColumns ??\r\n gridColDef.filter((x) => !x.hide).map((x) => x.field),\r\n offset: 0,\r\n limit: 50000,\r\n },\r\n reportExportType\r\n );\r\n showSuccess('Report file was exported');\r\n } catch (error) {\r\n showError(\"Report file wasn't exported\");\r\n } finally {\r\n setExportReport(null);\r\n }\r\n };\r\n\r\n const [selectedProfiles, setSelectedProfiles] = useState([]);\r\n const [isDialogOpen, setIsDialogOpen] = useState(false);\r\n const openDialog = () => {\r\n\r\n const emails = report?.data.map((r) => r.BQ4IBQQPDgwOCQgGBAgDBQ as string).filter((value, index, self) => self.indexOf(value) === index) ?? [];\r\n setSelectedProfiles(emails);\r\n setIsDialogOpen(true);\r\n };\r\n\r\n const closeDialog = () => {\r\n setIsDialogOpen(false);\r\n };\r\n\r\n const doSend = (data: MassEnrollmentDialogState)=>{\r\n const ids = report?.data.map((r) => r.id as number).filter((value, index, self) => self.indexOf(value) === index) ?? [];\r\n const dto = {\r\n planIds: ids,\r\n\r\n notificationSubject: data?.subject,\r\n notificationMessage: data?.message,\r\n additionalRecipients: data?.recipients.split(\",\").map((r) => r.trim()).filter((r) => r),\r\n };\r\n certificationListApi.sendReminder(dto);\r\n showInfo('Remind action queued');\r\n };\r\n\r\n function UserGreeting() {\r\n if (reportType != ReportPageTypes.StatusOfCertifications)\r\n return (<>);\r\n\r\n return (\r\n <>\r\n \r\n SEND REMINDER\r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n (\r\n <>\r\n \r\n {/* handleExportReport('pdf')}\r\n >\r\n Export Pdf\r\n */}\r\n handleExportReport('excel')}\r\n >\r\n Export Excel\r\n \r\n \r\n )}\r\n mutating={Boolean(exportingReport)}\r\n mutatingLabel={\r\n exportingReport === 'pdf'\r\n ? 'Export report to pdf...'\r\n : 'Export report to excel...'\r\n }\r\n >\r\n {\r\n setFilters({ ...(filters as ReportingFilters) });\r\n }}\r\n onColumnsRestore={(columns) => {\r\n setCustomColumns(columns);\r\n }}\r\n />\r\n \r\n }>\r\n \r\n Filters\r\n \r\n\r\n \r\n \r\n {filterScopes?.map((s) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n }>\r\n \r\n Advanced filters\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setFilters({});\r\n }}\r\n >\r\n Clear\r\n \r\n {\r\n setPageNumber(0);\r\n getReport();\r\n }}\r\n >\r\n Search\r\n \r\n \r\n \r\n\r\n \r\n Results\r\n \r\n {\r\n setPageNumber(p.page);\r\n }}\r\n onPageSizeChange={(p: GridPageChangeParams) => {\r\n setPageSize(p.pageSize);\r\n }}\r\n onSortModelChange={handleSort}\r\n onGroupByChange={(cid: string | null) => {\r\n setGroupBy(cid);\r\n }}\r\n columnsDefinitions={columnDefinitions ?? []}\r\n onVisibleColumnsChange={(columns, all) => {\r\n setCustomColumns(all ? [...allColumns] : columns);\r\n }}\r\n />\r\n setGroupBy(null)}\r\n sort={sort ?? {}}\r\n filters={filters ?? []}\r\n columnsDefinitions={columnDefinitions ?? []}\r\n reportApi={reportApi}\r\n reportType={reportType}\r\n gridColDef={gridColDef}\r\n />\r\n \r\n \r\n \r\n );\r\n};\r\n","import { reportsApi } from 'Reports/service/reports.api';\r\nimport { ReportBasePage } from '../../Reports/components/ReportBasePage';\r\nimport { ReportPageTypes } from '../../Reports/model/ReportPageTypes';\r\n\r\nexport const StatusOfCertificationsPage = () => (\r\n \r\n);\r\n","import { reportsApi } from 'Reports/service/reports.api';\r\nimport { ReportBasePage } from '../../Reports/components/ReportBasePage';\r\nimport { ReportPageTypes } from '../../Reports/model/ReportPageTypes';\r\n\r\nexport const UncompletedRequirementsPage = () => (\r\n \r\n);\r\n","import { FC } from 'react';\r\nimport { formatDate } from 'utils';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport {\r\n getFullName,\r\n getIsExternalLabel,\r\n MyProfile,\r\n} from 'MyProfile/model/MyProfile';\r\nimport { BoldTypography } from 'components/Page';\r\nimport { getCompanyName } from 'Dictionary/model/Company';\r\n\r\nexport const enrollmentColumns: DataTableColumn[] = [\r\n {\r\n field: 'lastName',\r\n headerName: 'Name',\r\n renderField: (user) => (\r\n <>\r\n {getFullName(user)}\r\n {user.email}\r\n \r\n ),\r\n },\r\n {\r\n field: 'employeeJobs',\r\n headerName: 'Jobs',\r\n notSortable: true,\r\n renderField: (user) => ( \r\n \r\n {user.employeeJobs.map((job) => job.name).join(', ')}\r\n \r\n ),\r\n },\r\n];\r\n\r\nexport const managementColumns: DataTableColumn[] = [\r\n {\r\n field: 'lastName',\r\n headerName: 'Name',\r\n width: 400,\r\n renderField: (user) => (\r\n <>\r\n {getFullName(user)}\r\n {user.email}\r\n \r\n ),\r\n },\r\n {\r\n field: 'businessUnit',\r\n headerName: 'User Division',\r\n renderField: ({ businessUnit }) => businessUnit?.description ?? '...',\r\n },\r\n {\r\n field: 'company',\r\n headerName: 'User Company',\r\n renderField: ({ company }) => getCompanyName(company),\r\n },\r\n {\r\n field: 'country',\r\n headerName: 'User Country',\r\n notSortable: true,\r\n renderField: ({ country }) => country?.name ?? '...',\r\n },\r\n {\r\n field: 'city',\r\n headerName: 'User City',\r\n renderField: ({ city }) => city ?? '...',\r\n }, \r\n {\r\n field: 'state',\r\n headerName: 'User State',\r\n width: 100,\r\n renderField: ({ state }) => state ?? '...',\r\n },\r\n];\r\n\r\nexport const archivedUsersColumns: DataTableColumn[] = [\r\n {\r\n field: 'lastName',\r\n headerName: 'Name',\r\n width: 400,\r\n renderField: (user) => (\r\n <>\r\n {getFullName(user)}\r\n {user.email}\r\n \r\n ),\r\n },\r\n {\r\n field: 'businessUnit',\r\n headerName: 'User Division',\r\n renderField: ({ businessUnit }) => businessUnit?.description ?? '...',\r\n },\r\n {\r\n field: 'company',\r\n headerName: 'User Company',\r\n renderField: ({ company }) => getCompanyName(company),\r\n },\r\n {\r\n field: 'country',\r\n headerName: 'User Country',\r\n notSortable: true,\r\n renderField: ({ country }) => country?.name ?? '...',\r\n },\r\n {\r\n field: 'isExternal',\r\n headerName: 'Internal/External',\r\n renderField: (user) => getIsExternalLabel(user),\r\n },\r\n {\r\n field: 'deactivatedByUser',\r\n headerName: 'Archived by',\r\n renderField: (user) => user?.deactivatedByUser?.email ?? 'No data',\r\n },\r\n {\r\n field: 'deactivateDate',\r\n headerName: 'Archived Date',\r\n renderField: (user) => user.deactivateDate ? formatDate(user.deactivateDate) : 'No data',\r\n },\r\n];\r\n\r\nexport interface UserTableProps extends DataTableProps {}\r\n\r\nexport const UserTable: FC = (props) => (\r\n row.id}\r\n noDataMessage=\"No users to display\"\r\n hideCollapseColumn\r\n {...props}\r\n />\r\n);\r\n","import { FC } from 'react';\r\nimport { Formik, FormikConfig, FormikState } from 'formik';\r\n\r\nimport { FieldRoot } from 'components/SearchFiltersForm/SearchFiltersForm.style';\r\nimport {\r\n BusinessUnitSelectField,\r\n CompanyWithFiltersField,\r\n CountriesSelectWithAllField,\r\n ScopeSelectField,\r\n} from 'Dictionary/component';\r\nimport { Button } from 'components';\r\nimport {\r\n AutocompleteField,\r\n AutocompleteFieldItem,\r\n} from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport { RoleType } from 'MyProfile/enum/RoleType';\r\nimport { ActionsRoot } from 'components/Page/ModalContent/ModalContent.style';\r\nimport { mapCompanyFilterParams } from 'Dictionary/component/CompanyWithFiltersField/CompanyWithFiltersField';\r\nimport { Loader } from 'components/Loader/Loader';\r\n\r\nexport interface RoleDetailsFormData {\r\n businessUnit: AutocompleteFieldItem;\r\n country: AutocompleteFieldItem;\r\n company: AutocompleteFieldItem;\r\n scope: AutocompleteFieldItem;\r\n}\r\n\r\nconst buRoles: RoleType[] = [\r\n RoleType.CertificationAuthority,\r\n RoleType.CertificateBuilder,\r\n RoleType.Contact,\r\n RoleType.Reader,\r\n RoleType.Supervisor,\r\n RoleType.ABBTrainingManager,\r\n RoleType.ChannelPartnerManager,\r\n RoleType.PartnerSupervisor,\r\n];\r\nconst countryRoles: RoleType[] = [\r\n RoleType.Reader,\r\n RoleType.Supervisor,\r\n RoleType.ABBTrainingManager,\r\n RoleType.ChannelPartnerManager,\r\n RoleType.PartnerSupervisor,\r\n];\r\nconst companyRoles: RoleType[] = [\r\n RoleType.ABBTrainingManager,\r\n RoleType.ChannelPartnerManager,\r\n RoleType.PartnerSupervisor,\r\n];\r\nconst scopeRoles: RoleType[] = [\r\n RoleType.Contact,\r\n RoleType.Supervisor,\r\n];\r\nconst isValueCorrect = (\r\n value: AutocompleteFieldItem,\r\n role: RoleType,\r\n fieldRoles: RoleType[]\r\n): boolean => (fieldRoles.includes(role) ? typeof value.id === 'number' : true);\r\nconst isAddRoleEnabled = (\r\n values: FormikState['values'],\r\n role: RoleType\r\n): boolean =>\r\n isValueCorrect(values.businessUnit, role, buRoles) &&\r\n isValueCorrect(values.country, role, countryRoles) &&\r\n isValueCorrect(values.company, role, companyRoles) &&\r\n isValueCorrect(values.scope, role, scopeRoles);\r\n\r\nexport interface RoleDetailsFormProps {\r\n role: RoleType;\r\n loading: boolean;\r\n onSubmit: FormikConfig['onSubmit'];\r\n}\r\n\r\nexport const RoleDetailsForm: FC = ({\r\n role,\r\n loading,\r\n onSubmit,\r\n}) => (\r\n \r\n {({ values, submitForm, setFieldValue }) => (\r\n <>\r\n {buRoles.includes(role) && (\r\n \r\n {\r\n setFieldValue('country', []);\r\n setFieldValue('company', []);\r\n setFieldValue('scope', []);\r\n }}\r\n />\r\n \r\n )}\r\n {countryRoles.includes(role) && (\r\n \r\n {\r\n setFieldValue('company', []);\r\n setFieldValue('scope', []);\r\n }} \r\n />\r\n \r\n )}\r\n {companyRoles.includes(role) && (\r\n \r\n {values.country?.id && values.businessUnit?.id ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n {scopeRoles.includes(role) && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {loading ? : 'Add role'}\r\n \r\n \r\n \r\n )}\r\n \r\n);\r\n","import { FC, useState } from 'react';\r\nimport { useMutation } from 'react-query';\r\n\r\nimport { FieldRoot } from 'components/SearchFiltersForm/SearchFiltersForm.style';\r\nimport { userAuthorizationsKey } from 'MyProfile/query/myProfile.query';\r\nimport {\r\n AutocompleteField,\r\n AutocompleteFieldItem,\r\n} from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport { autocompleteInputStyles } from 'HelpAndSupport/component/BusinessUnitContacts/BusinessUnitContacts.style';\r\nimport { RoleType } from 'MyProfile/enum/RoleType';\r\nimport { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { myProfileApi } from 'MyProfile/service/myProfile.api';\r\nimport { ApiError } from 'model';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { UpdateAuthorizationsDto } from 'MyProfile/model/UpdateAuthorizationsDto';\r\nimport { queryClient } from 'service';\r\nimport { RoleDetailsForm } from 'MyProfile/component/RoleDetailsForm';\r\nimport { RoleDetailsFormData } from 'MyProfile/component/RoleDetailsForm/RoleDetailsForm';\r\n\r\nexport const addInternalUserRoleOptions: AutocompleteFieldItem[] = [\r\n { id: RoleType.Administrator, name: 'Administrator' },\r\n { id: RoleType.CertificationAuthority, name: 'Certification Authority' },\r\n { id: RoleType.CertificateBuilder, name: 'Certificate Builder' },\r\n { id: RoleType.Contact, name: 'Contact' },\r\n { id: RoleType.Reader, name: 'Reader' },\r\n { id: RoleType.Supervisor, name: 'Supervisor' },\r\n { id: RoleType.ChannelPartnerManager, name: 'Int/Ext Company Coordinator' },\r\n];\r\n\r\nexport const addExternalUserRoleOptions: AutocompleteFieldItem[] = [\r\n { id: RoleType.Reader, name: 'Reader' },\r\n { id: RoleType.PartnerSupervisor, name: 'External Company Responsible' },\r\n];\r\n\r\nexport const mapUpdateAuthorizationsDto = (\r\n formData: RoleDetailsFormData,\r\n role: RoleType,\r\n userId: number\r\n): UpdateAuthorizationsDto => {\r\n const partialUpdateDto: UpdateAuthorizationsDto = {\r\n userId,\r\n roleType: role,\r\n };\r\n switch (role) {\r\n case RoleType.CertificationAuthority:\r\n case RoleType.CertificateBuilder:\r\n return {\r\n ...partialUpdateDto,\r\n businessUnitId: Number(formData.businessUnit?.id),\r\n };\r\n case RoleType.Contact:\r\n return {\r\n ...partialUpdateDto,\r\n businessUnitId: Number(formData.businessUnit?.id),\r\n scopeId: Number(formData.scope?.id),\r\n };\r\n case RoleType.Reader:\r\n return {\r\n ...partialUpdateDto,\r\n businessUnitId: Number(formData.businessUnit?.id),\r\n countryId: Number(formData.country?.id),\r\n };\r\n case RoleType.Supervisor:\r\n return {\r\n ...partialUpdateDto,\r\n businessUnitId: Number(formData.businessUnit?.id),\r\n countryId: Number(formData.country?.id),\r\n scopeId: Number(formData.scope?.id),\r\n };\r\n case RoleType.ABBTrainingManager:\r\n case RoleType.ChannelPartnerManager:\r\n case RoleType.PartnerSupervisor:\r\n return {\r\n ...partialUpdateDto,\r\n businessUnitId: Number(formData.businessUnit?.id),\r\n companyId: Number(formData.company?.id),\r\n countryId: Number(formData.country?.id),\r\n };\r\n case RoleType.Administrator:\r\n default:\r\n return partialUpdateDto;\r\n }\r\n};\r\n\r\nexport interface AddUserRoleProps {\r\n user: MyProfile;\r\n roleOptions: AutocompleteFieldItem[];\r\n}\r\n\r\nexport const AddUserRole: FC = ({ user, roleOptions }) => {\r\n const { showError, showSuccess } = useToasts();\r\n const [selectedRole, setRole] = useState({});\r\n const { mutate: addUserRole, isLoading } = useMutation<\r\n unknown,\r\n ApiError,\r\n RoleDetailsFormData\r\n >(\r\n (formData) =>\r\n myProfileApi.updateAuthorizations(\r\n mapUpdateAuthorizationsDto(\r\n formData,\r\n selectedRole.id as RoleType,\r\n user.id\r\n )\r\n ),\r\n {\r\n onSuccess: async () => {\r\n await queryClient.invalidateQueries([userAuthorizationsKey, user.id]);\r\n showSuccess('Add user role action success');\r\n },\r\n onError: (error) => showError(error.message),\r\n }\r\n );\r\n\r\n return (\r\n <>\r\n \r\n setRole(value as AutocompleteFieldItem)}\r\n disabled={isLoading}\r\n />\r\n \r\n {selectedRole && (\r\n addUserRole(values)}\r\n />\r\n )}\r\n \r\n );\r\n};\r\n","import { FC, useState } from 'react';\r\nimport { Grid, Typography } from '@material-ui/core';\r\nimport { useIsFetching } from 'react-query';\r\n\r\nimport {\r\n EmployeeJobSelectField,\r\n EmployeeJobFamilySelectField,\r\n DivisionSelectField,\r\n PGUnitSelectField,\r\n IsExternalType,\r\n CountriesSelectField,\r\n BusinessUnitSelectField,\r\n CountriesSelectWithAllField,\r\n CompanyWithFiltersField,\r\n ScopeSelectField,\r\n} from 'Dictionary/component';\r\n\r\nimport {\r\n getIsExternal,\r\n IsExternalSelectField,\r\n} from 'Dictionary/component/IsExternalSelectField/IsExternalSelectField';\r\nimport { SearchFiltersForm, SearchFiltersFormProps } from 'components';\r\nimport { FieldRoot } from 'components/SearchFiltersForm/SearchFiltersForm.style';\r\nimport { UserSearchFilters } from 'MyProfile/model/UserSearchFilters';\r\nimport { UserFiltersFormData } from 'MyProfile/model/UserFiltersFormData';\r\nimport { mapCompanyFilterParams } from 'Dictionary/component/CompanyWithFiltersField/CompanyWithFiltersField';\r\nimport { userKey } from 'MyProfile/query/myProfile.query';\r\nimport {\r\n addExternalUserRoleOptions,\r\n addInternalUserRoleOptions,\r\n} from 'MyProfile/component/AddUserRole/AddUserRole';\r\nimport { FormikAutocompleteField } from '../../../components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\n\r\nexport interface UserSearchFiltersFormProps \r\n extends Pick<\r\n SearchFiltersFormProps,\r\n 'renderPageActions'\r\n > {\r\n onFiltersSubmit: (formData: UserSearchFilters) => void;\r\n fullScreenList?: boolean;\r\n isExternalType?: IsExternalType;\r\n isForAction?: boolean;\r\n displayRoleFilters?: boolean;\r\n withFilterSaveKey?: string;\r\n}\r\n\r\nexport const initialValues: UserFiltersFormData = {\r\n searchText: '',\r\n businessUnit: { id: 0, name: 'All Divisions' },\r\n division: { id: 0, name: 'All Business Areas' },\r\n productGroups: [],\r\n employeeJobs: [],\r\n employeeJobFamilies: [],\r\n isExternal: { id: IsExternalType.All, name: 'All users' },\r\n companyList: [],\r\n countryList: [],\r\n\r\n role: { id: '', name: 'Select role' },\r\n roleBusinessUnit: { id: 0, name: 'All Divisions' },\r\n roleCountry: { id: 0, name: 'All countries' },\r\n roleCompany: { id: 0, name: 'All companies' },\r\n roleScope: { id: 0, name: 'All scopes' },\r\n};\r\n\r\nexport const mapFiltersFormData = (\r\n formData: UserFiltersFormData\r\n): UserSearchFilters => {\r\n const businessUnit = Number(formData?.businessUnit?.id);\r\n const division = Number(formData?.division?.id);\r\n return {\r\n personName: formData.searchText ?? '',\r\n businessUnitId: !isNaN(businessUnit) ? businessUnit : 0,\r\n divisionId: !isNaN(division) ? division : 0,\r\n productGroupList: formData.productGroups.map((pg) => Number(pg.id)),\r\n isExternal: getIsExternal(formData?.isExternal?.id as IsExternalType),\r\n isForAction: false,\r\n companyList: formData.companyList.map((company) => Number(company.id)),\r\n countryList: formData.countryList.map((country) => Number(country.id)),\r\n userJobList: formData.employeeJobs.map((job) => Number(job.id)),\r\n userJobFamilyList: formData.employeeJobFamilies.map((job) => Number(job.id)),\r\n\r\n role: String(formData.role?.id ?? ''),\r\n roleBusinessUnit: Number(formData.roleBusinessUnit?.id ?? 0),\r\n roleCountry: Number(formData.roleCountry?.id ?? 0),\r\n roleCompany: Number(formData.roleCompany?.id ?? 0),\r\n roleScope: Number(formData.roleScope?.id ?? 0),\r\n };\r\n};\r\n\r\nexport const mapExternalFiltersFormData = (\r\n formData: UserFiltersFormData\r\n): UserSearchFilters => ({\r\n ...mapFiltersFormData(formData),\r\n isExternal: true,\r\n});\r\n\r\nexport const mapAbbFiltersFormData = (\r\n formData: UserFiltersFormData\r\n): UserSearchFilters => ({\r\n ...mapFiltersFormData(formData),\r\n isExternal: false,\r\n});\r\n\r\nexport const UserSearchFiltersForm: FC = ({\r\n onFiltersSubmit,\r\n renderPageActions,\r\n fullScreenList = true,\r\n displayRoleFilters = true,\r\n isExternalType = IsExternalType.All,\r\n withFilterSaveKey\r\n}) => {\r\n const fetchingKeys = useIsFetching(userKey);\r\n const lgValue = fullScreenList ? 6 : 12;\r\n\r\n const handleOnFiltersSubmit: SearchFiltersFormProps['onSubmit'] = (\r\n values\r\n ) => {\r\n if (isExternalType === IsExternalType.External)\r\n return onFiltersSubmit(mapExternalFiltersFormData(values));\r\n if (isExternalType === IsExternalType.Abb)\r\n return onFiltersSubmit(mapAbbFiltersFormData(values));\r\n return onFiltersSubmit(mapFiltersFormData(values));\r\n };\r\n\r\n return (\r\n \r\n {({ setFieldValue, values }) => {\r\n const handleResetCompany = () =>\r\n setFieldValue('companyList', initialValues.companyList);\r\n const handleOnDivisionChange = () => {\r\n setFieldValue('businessUnit', initialValues.businessUnit);\r\n setFieldValue('productGroups', initialValues.productGroups);\r\n setFieldValue('companyList', initialValues.companyList);\r\n }\r\n const handleOnBusinessUnitChange = () => {\r\n setFieldValue('productGroups', initialValues.productGroups);\r\n setFieldValue('companyList', initialValues.companyList);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n User filters\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isExternalType === IsExternalType.All && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n {displayRoleFilters && (\r\n <>\r\n \r\n PCS2 Role filters\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isExternalType === IsExternalType.Abb &&\r\n \r\n \r\n \r\n \r\n \r\n } \r\n \r\n \r\n )}\r\n \r\n );\r\n }}\r\n \r\n );\r\n};\r\n","import { IsExternalType } from 'Dictionary/component';\r\n\r\nexport interface UserSearchFilters {\r\n personName: string;\r\n businessUnitId: number;\r\n divisionId: number;\r\n productGroupList?: number[];\r\n isExternal: boolean | null;\r\n isForAction: boolean | null;\r\n countryList?: number[];\r\n userJobList?: number[];\r\n userJobFamilyList?: number[];\r\n companyList?: number[];\r\n\r\n role?: string;\r\n roleBusinessUnit?: number|undefined;\r\n roleCountry?: number;\r\n roleCompany?: number;\r\n roleScope?: number;\r\n}\r\n\r\nexport const defaultSearchFilters: UserSearchFilters = {\r\n personName: '',\r\n businessUnitId: 0,\r\n divisionId: 0,\r\n isExternal: null,\r\n isForAction: false\r\n};\r\n\r\nexport const getDefaultSearchFilters = (\r\n isExternalType?: IsExternalType,\r\n isForAction? :boolean\r\n): UserSearchFilters => {\r\n const result = {\r\n ...defaultSearchFilters,\r\n isExternal: (isExternalType !== undefined) ? isExternalType === IsExternalType.External : null,\r\n isForAction: isForAction ?? false\r\n }\r\n\r\n return result;\r\n};\r\n","import styled from 'styled-components';\r\n\r\nexport const TableRoot = styled.div`\r\n margin: ${({ theme }) => theme.spacing(1, 0, 0)};\r\n`;\r\n","import { FC, useState } from 'react';\r\nimport { useMutation, useQueryClient } from 'react-query';\r\nimport { Dialog, DialogContent, DialogTitle } from '@material-ui/core';\r\nimport { makeStyles } from \"@material-ui/core/styles\";\r\nimport PersonIcon from '@material-ui/icons/Person';\r\nimport ExportIcon from '@material-ui/icons/VerticalAlignBottom';\r\n\r\nimport { UserTable } from 'MyProfile/component/UserTable';\r\nimport { userKey, useUserQuery } from 'MyProfile/query/myProfile.query';\r\nimport { ApiError, getPagination, PaginatedList, Pagination, Sort } from 'model';\r\nimport { DataTableProps } from 'components/DataTable/DataTable';\r\nimport { getFullName, MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { TablePagination } from 'components/Table';\r\nimport {\r\n UserSearchFiltersForm,\r\n UserSearchFiltersFormProps,\r\n} from 'MyProfile/component/UserSearchFiltersForm';\r\nimport {\r\n getDefaultSearchFilters,\r\n UserSearchFilters,\r\n} from 'MyProfile/model/UserSearchFilters';\r\nimport { SearchResults } from 'components/DataTable/SearchResults/SearchResults';\r\nimport { Button, DataObjectView } from 'components';\r\nimport { MergeUsersDto, myProfileApi } from 'MyProfile/service/myProfile.api';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { List, ListItem } from 'components/List';\r\nimport { Loader } from 'components/Loader/Loader';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport {\r\n DataObjectList,\r\n DataObjectListProps,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\nimport { TableRoot } from './SearchUsers.style';\r\n\r\nexport enum SearchUsersRowActions {\r\n Edit = 0,\r\n ManageRole = 1,\r\n RoleList = 2,\r\n}\r\n\r\nconst initialSort: Sort = {\r\n sortExpression: 'lastName',\r\n sortDescending: false,\r\n};\r\n\r\nexport interface SearchUsersProps {\r\n initialPageSize: number;\r\n DataTableProps: Omit, 'rows'>;\r\n DataObjectListProps?: Omit<\r\n DataObjectListProps,\r\n 'items' | 'renderDataObjectView'\r\n >;\r\n SearchFiltersFormProps?: Omit<\r\n UserSearchFiltersFormProps,\r\n 'onFiltersSubmit' | 'renderPageActions'\r\n >;\r\n displaySearchResults?: boolean;\r\n displaySelectedActions?: boolean;\r\n hideExcelExport?: boolean;\r\n mobileView?: boolean;\r\n}\r\n\r\nexport const mapMergeUsersDto = (\r\n destinationUserId: number,\r\n selectedUserIds: string[]\r\n): MergeUsersDto => ({\r\n destinationUserId,\r\n sourceUsersIds: selectedUserIds\r\n .map((id) => Number(id))\r\n .filter((id) => id !== destinationUserId),\r\n});\r\n\r\nexport const SearchUsers: FC = ({\r\n initialPageSize,\r\n DataTableProps,\r\n hideExcelExport = false,\r\n displaySearchResults = false,\r\n displaySelectedActions = true,\r\n mobileView = true,\r\n SearchFiltersFormProps = {},\r\n DataObjectListProps = {},\r\n}) => {\r\n const queryClient = useQueryClient();\r\n const { showSuccess, showError } = useToasts();\r\n const [isMergeDialogOpen, setIsMergeDialogOpen] = useState(false);\r\n const [pageSize, setPageSize] = useState(initialPageSize);\r\n const [pagination, setPagination] = useState(\r\n getPagination(pageSize)\r\n ); \r\n const [sort, setSort] = useState>(\r\n initialSort\r\n );\r\n const [filters, setFilters] = useState(\r\n getDefaultSearchFilters(SearchFiltersFormProps?.isExternalType, SearchFiltersFormProps?.isForAction)\r\n );\r\n const { data, isLoading, isFetching, refetch } = useUserQuery(\r\n pagination,\r\n sort,\r\n filters,\r\n {\r\n onSuccess: (newData) => setPagination(getPagination(pageSize, newData)),\r\n }\r\n );\r\n const { mutate: archiveUsers, isLoading: isArchivingUsers } = useMutation<\r\n unknown,\r\n ApiError,\r\n number[]\r\n >((userIds) => myProfileApi.archiveUsers(userIds), {\r\n onSuccess: () => {\r\n refetch();\r\n showSuccess('Users archive action success');\r\n },\r\n onError: () => showError('Users archive action fail'),\r\n });\r\n const { mutate: mergeUsers, isLoading: isMergingUsers } = useMutation<\r\n unknown,\r\n ApiError,\r\n MergeUsersDto\r\n >((dto) => myProfileApi.mergeUsers(dto));\r\n\r\n const {\r\n mutate: exportToExcel,\r\n isLoading: isExportToExcelLoading,\r\n } = useMutation(() => myProfileApi.exportToExcel(filters), {\r\n onSuccess: () => showSuccess('Export to excel success'),\r\n onError: () => showError('Export to excel failed. Too many records on search. Must be less than 10000.'),\r\n });\r\n\r\n const getSelectedUserProfiles = (selectedRows: string[]): MyProfile[] => {\r\n const usersCache = queryClient\r\n .getQueryCache()\r\n .findAll(userKey)\r\n .reduce(\r\n (acc, query) => [\r\n ...acc,\r\n ...((query.state.data as PaginatedList)?.result ?? []),\r\n ],\r\n []\r\n );\r\n return selectedRows.map(\r\n (stringId) =>\r\n usersCache.find((user) => user.id.toString() === stringId) as MyProfile\r\n );\r\n };\r\n \r\n const renderUserTable = () => (\r\n \r\n setSort({\r\n sortExpression,\r\n sortDescending: direction === 'desc',\r\n })\r\n }\r\n defaultSort={initialSort}\r\n enableSort\r\n rowSelector={(row) => row.id}\r\n renderSelectedActions={(selectedRows, clearSelected) =>\r\n displaySelectedActions && (\r\n <>\r\n \r\n archiveUsers(\r\n selectedRows.map((id) => Number(id)),\r\n {\r\n onSuccess: () => {\r\n clearSelected();\r\n },\r\n }\r\n )\r\n }\r\n disabled={isArchivingUsers || isMergingUsers}\r\n >\r\n Archive selected\r\n \r\n {selectedRows.length > 1 && (\r\n setIsMergeDialogOpen(true)}\r\n disabled={isArchivingUsers || isMergingUsers}\r\n >\r\n Merge selected\r\n \r\n )}\r\n setIsMergeDialogOpen(false)}\r\n open={isMergeDialogOpen}\r\n >\r\n Pick destination User\r\n \r\n \r\n items={getSelectedUserProfiles(selectedRows)}\r\n renderItem={(user) => (\r\n \r\n mergeUsers(mapMergeUsersDto(user.id, selectedRows), {\r\n onSuccess: () => {\r\n refetch();\r\n showSuccess('Merge Users action success');\r\n setIsMergeDialogOpen(false);\r\n clearSelected();\r\n },\r\n onError: () => showError('Merge Users action fail'),\r\n })\r\n }\r\n button\r\n />\r\n )}\r\n />\r\n \r\n \r\n \r\n )\r\n }\r\n {...DataTableProps}\r\n />\r\n );\r\n const loading = isLoading || isFetching;\r\n\r\n const useStyles = makeStyles({\r\n selectIcon: {\r\n position: \"relative\"\r\n }\r\n });\r\n const classes = useStyles();\r\n\r\n return (\r\n <>\r\n !hideExcelExport &&(\r\n exportToExcel()}\r\n disabled={isExportToExcelLoading}\r\n >\r\n {isExportToExcelLoading ? (\r\n \r\n ) : (\r\n <>\r\n  Export to excel\r\n \r\n )}\r\n \r\n )}\r\n onFiltersSubmit={(searchFilters) => {\r\n setFilters(searchFilters);\r\n setPagination(getPagination(pageSize));\r\n }}\r\n {...SearchFiltersFormProps}\r\n />\r\n {displaySearchResults && (\r\n \r\n )}\r\n \r\n {mobileView ? (\r\n <>\r\n {renderUserTable()}\r\n \r\n (\r\n \r\n )}\r\n renderActions={(item) => (\r\n archiveUsers([item.id])}\r\n disabled={isArchivingUsers}\r\n >\r\n Archive user\r\n \r\n )}\r\n noDataMessage={DataTableProps.noDataMessage}\r\n {...DataObjectListProps}\r\n />\r\n \r\n \r\n ) : (\r\n renderUserTable()\r\n )}\r\n \r\n {!isFetching && (\r\n {\r\n setPageSize(parseInt(event.target.value,10));\r\n setPagination(getPagination(parseInt(event.target.value,10))); \r\n }}\r\n classes={{selectIcon: classes.selectIcon}}\r\n pagination={pagination}\r\n onChangePage={(event, currentPageIndex) =>\r\n setPagination((prevPagination) => ({\r\n ...prevPagination,\r\n currentPageIndex,\r\n }))\r\n } \r\n />\r\n )}\r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\nimport { Card } from 'components/Page';\r\nimport { CardProps } from 'components/Page/Card/Card';\r\n\r\nexport const StyledCard = styled(Card)`\r\n height: 100%;\r\n box-sizing: border-box;\r\n`;\r\n","import { FC, useState } from 'react';\r\nimport { useMutation } from 'react-query';\r\nimport {\r\n Grid,\r\n Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n Typography,\r\n useTheme,\r\n} from '@material-ui/core';\r\nimport { ExpandMore, Settings } from '@material-ui/icons';\r\nimport { KeyboardDatePicker } from '@material-ui/pickers';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\n\r\nimport { Content } from 'components/Page';\r\nimport { RoundButton } from 'components';\r\nimport { MassEnrollResponse } from 'CertificationList/model/MassEnrollResponse';\r\nimport { ApiError } from 'model';\r\nimport { SearchCertificates } from 'Catalog/component/SearchCertificates';\r\nimport { MassEnrollmentDialog, MassEnrollmentDialogState } from 'MassEnrollment/component/MassEnrollmentDialog';\r\n\r\nimport { massEnrollmentColumns } from 'Catalog/component/CatalogCertificateTable';\r\nimport { SearchUsers } from 'MyProfile/component/SearchUsers/SearchUsers';\r\nimport { enrollmentColumns } from 'MyProfile/component/UserTable';\r\nimport { certificationListApi } from 'CertificationList/service/certificationList.api';\r\nimport { useToasts } from 'components/ToastProvider';\r\n\r\nimport { formatTemplate } from '../../utils';\r\nimport { StyledCard } from './MassEnrollmentPage.style';\r\n\r\n\r\nconst pageSize = 10;\r\n\r\nexport const MassEnrollmentPage: FC = () => {\r\n const { showSuccess, showInfo, showError, showMany } = useToasts();\r\n const [selectedCertificates, setSelectedCertificates] = useState(\r\n []\r\n );\r\n const theme = useTheme();\r\n const [dueDate, setDueDate] = useState(null);\r\n const [selectedUsers, setSelectedUsers] = useState([]);\r\n const [selectedProfiles, setSelectedProfiles] = useState([]);\r\n\r\n const { mutate: massEnroll } = useMutation<\r\n MassEnrollResponse,\r\n ApiError, \r\n MassEnrollmentDialogState|undefined\r\n >(\r\n (data?:MassEnrollmentDialogState) =>\r\n data ?\r\n certificationListApi.massEnroll({\r\n certificationIds: selectedCertificates.map((id) => parseInt(id, 10)),\r\n usersIds: selectedUsers.map((id) => parseInt(id, 10)),\r\n notificationSubject: data?.subject,\r\n notificationMessage: data?.message,\r\n additionalRecipients: data?.recipients.split(\",\").map((r) => r.trim()).filter((r) => r),\r\n dueDate: dueDate ? dayjs(dueDate).toISOString() : null\r\n }) :\r\n certificationListApi.massEnroll({\r\n certificationIds: selectedCertificates.map((id) => parseInt(id, 10)),\r\n usersIds: selectedUsers.map((id) => parseInt(id, 10)),\r\n dueDate: dueDate ? dayjs(dueDate).toISOString() : null\r\n }),\r\n {\r\n onSuccess: (response) => {\r\n if (response.failed.length && !response.success.length) { \r\n showMany('All enrollments failed', \r\n response.failed.map(response => `User ${response.userEmail} was not enrolled with message: ${response.message}`)\r\n , true); \r\n }\r\n if (!response.failed.length && response.success.length) {\r\n showSuccess('Users have been enrolled to Certifications');\r\n }\r\n if (response.failed.length && response.success.length) {\r\n showSuccess('Users have been enrolled to Certifications');\r\n showMany('Some enrollments failed', \r\n response.failed.map(response => `User ${response.userEmail} was not enrolled with message: ${response.message}`)\r\n , true); \r\n }\r\n },\r\n onError: (error) => showError(`Enroll Users to Certifications action failed with message: ${error.message}`),\r\n }\r\n );\r\n\r\n const handleOnEnroll = () => { \r\n massEnroll(undefined);\r\n showInfo('Enroll Users to Certifications action queued');\r\n setSelectedUsers([]);\r\n setSelectedCertificates([]); \r\n };\r\n\r\n const doSend = (data: MassEnrollmentDialogState)=>{\r\n massEnroll(data);\r\n showInfo('Enroll Users to Certifications action queued');\r\n }\r\n\r\n const [isDialogOpen, setIsDialogOpen] = useState(false);\r\n const openDialog = () => {\r\n setIsDialogOpen(true);\r\n };\r\n const closeDialog = () => {\r\n setIsDialogOpen(false);\r\n };\r\n\r\n const disableEnroll = !selectedCertificates.length || !selectedUsers.length;\r\n return (<>\r\n (\r\n
\r\n \r\n Enroll with customized notification\r\n \r\n\r\n \r\n Enroll\r\n \r\n
\r\n )}\r\n >\r\n \r\n }>\r\n \r\n Define due date here\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n setSelectedProfiles(x.map(p=> p.email)),\r\n checkboxSelection: true,\r\n }}\r\n SearchFiltersFormProps={{ fullScreenList: false, displayRoleFilters: false, isForAction: true, withFilterSaveKey: \"MassEnrolment\" }}\r\n displaySelectedActions={false}\r\n mobileView={false} \r\n hideExcelExport={true}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {(renderSearchFilters, renderTable) => (\r\n <>\r\n {renderSearchFilters()}\r\n {renderTable()}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import styled from 'styled-components';\r\n\r\nexport const ActionsRoot = styled.div`\r\n display: flex;\r\n justify-content: flex-end;\r\n`;\r\n","import { useState } from 'react';\r\nimport { Content, Card } from 'components/Page';\r\nimport { DropzoneDialog, DropzoneDialogProps } from 'material-ui-dropzone';\r\nimport ExportIcon from '@material-ui/icons/VerticalAlignBottom';\r\nimport { useMutation } from 'react-query';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { Button } from 'components';\r\nimport { Loader } from 'components/Loader/Loader';\r\nimport { Anchor } from 'components/Page/Anchor/Anchor';\r\nimport { Grid, Typography } from '@material-ui/core';\r\nimport { attachmentApi } from 'Attachment/service/attachment.api';\r\nimport { ActionsRoot } from './BulkUploadPage.style';\r\n\r\nconst filesLimit = 3;\r\nconst acceptedFiles = [\r\n 'application/vnd.ms-excel',\r\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\r\n];\r\n\r\nexport const BulkUploadPage = () => {\r\n\r\n const { showInfo, showError, showSuccess } = useToasts();\r\n\r\n const {\r\n mutate: downloadBulkTemplateFile,\r\n isLoading: isTemplateLoading,\r\n } = useMutation(() => attachmentApi.getBulkTemplate()\r\n );\r\n\r\n const { mutate: uploadFiles } = useMutation(\r\n (files: File[]) => attachmentApi.uploadBulk(files),\r\n {\r\n onSuccess: () => showSuccess('Enrollment status update complete - more details in email notification'),\r\n onError: () => showError('Enrollment status update failed'),\r\n }\r\n );\r\n\r\n const [isDropzoneOpen, setIsDropzoneOpen] = useState(false);\r\n\r\n const handleOnDropzoneSave: DropzoneDialogProps['onSave'] = (\r\n files\r\n ) => {\r\n uploadFiles(files);\r\n showInfo('Enrollment status update action queued');\r\n setIsDropzoneOpen(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n The possibilities of bulk upload differ based on your role in the system.\r\n
\r\n
\r\n Please find detailed guide how to fill in the file correctly and upload it to the system in\r\n \r\n PCS2 INSTRUCTIONS - BULK UPLOAD\r\n \r\n
\r\n
\r\n
\r\n \r\n downloadBulkTemplateFile()}\r\n disabled={isTemplateLoading}\r\n color=\"secondary\"\r\n >\r\n {isTemplateLoading ? (\r\n \r\n ) : (\r\n <>\r\n  Download template\r\n \r\n )}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n Once the data is uploaded in the system, you will be notified with email notification.\r\n
\r\n
\r\n If any record are rejected, you will receive details in the notification.\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n setIsDropzoneOpen(false)}\r\n showPreviewsInDropzone\r\n showPreviews={false}\r\n showAlerts={false}\r\n maxFileSize={110000000}\r\n />\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\nimport { useMutation } from 'react-query';\r\nimport * as Yup from 'yup';\r\n\r\nimport { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { myProfileApi } from 'MyProfile/service/myProfile.api';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { EditUserForm } from 'MyProfile/component/EditUserForm';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { EditUserFormData } from 'MyProfile/component/EditUserForm/EditUserForm';\r\nimport { queryClient } from 'service';\r\nimport { userKey } from 'MyProfile/query/myProfile.query';\r\nimport { IsExternalType } from 'Dictionary/component';\r\nimport { EditExternalUserDto } from 'MyProfile/model/EditExternalUserDto';\r\n\r\nexport interface EditInternalUserFormProps {\r\n user: MyProfile;\r\n}\r\n\r\nexport const formValidationSchema = Yup.object().shape({\r\n firstName: Yup.string().required('Enter user first name'),\r\n lastName: Yup.string().required('Enter user last name'),\r\n country: Yup.object().required().typeError('Select country'),\r\n company: Yup.object().required().typeError('Select company'), \r\n manager: Yup.object().required().typeError('Select Manager'), \r\n preferredLanguages: Yup.array().min(1,'Select at least one language'),\r\n employeeJobs: Yup.array().min(1, 'Select at least one Employee job'),\r\n});\r\n\r\nexport const mapEditUserDto = (\r\n user: MyProfile,\r\n profileInformationForm: EditUserFormData\r\n): EditExternalUserDto => ({\r\n firstName: profileInformationForm.firstName,\r\n lastName: profileInformationForm.lastName,\r\n email: user.email,\r\n notes: profileInformationForm.notes,\r\n city: profileInformationForm.city,\r\n state: profileInformationForm.state,\r\n trainingManagerEmail: (profileInformationForm.manager?.group ?? '').toString(),\r\n trainingManagerGeid: (profileInformationForm.manager?.id ?? '').toString(),\r\n companyId: Number(profileInformationForm.company?.id),\r\n divisionId: Number(profileInformationForm.division?.id),\r\n businessUnitId: Number(profileInformationForm.businessUnit?.id),\r\n pgUnitId: Number(profileInformationForm.pgUnit?.id),\r\n employeeJobsIds: profileInformationForm.employeeJobs?.map((job) =>\r\n Number(job?.id)\r\n ),\r\n employeeJobFamiliesIds: profileInformationForm.jobFamilies?.map((job) =>\r\n Number(job?.id)\r\n ),\r\n preferredLanguagesIds: profileInformationForm.preferredLanguages.map(\r\n (language) => Number(language?.id)\r\n ),\r\n countryId: (profileInformationForm.country?.id as number) ?? null,\r\n});\r\n\r\nexport const EditExternalUserForm: FC = ({\r\n user,\r\n}) => {\r\n const { showError, showSuccess } = useToasts();\r\n const { mutate, isLoading } = useMutation<\r\n unknown,\r\n ApiError,\r\n EditUserFormData\r\n >(\r\n (formData) =>\r\n myProfileApi.updateExternalUser(user.id, mapEditUserDto(user, formData)),\r\n {\r\n onSuccess: () => {\r\n showSuccess('User profile has been updated');\r\n queryClient.invalidateQueries(userKey);\r\n },\r\n onError: (error) => showError(error.message),\r\n }\r\n );\r\n\r\n return (\r\n {\r\n try {\r\n await mutate(values);\r\n resetForm({ values });\r\n } catch (e) {\r\n resetForm();\r\n }\r\n }}\r\n />\r\n );\r\n};\r\n","import React, { FC } from 'react';\r\nimport { Skeleton } from '@material-ui/lab';\r\n\r\nimport { useUserAuthorizationsQuery } from 'MyProfile/query/myProfile.query';\r\nimport { RolesList } from 'MyProfile/component/RolesList';\r\nimport { mapUserAuthorizationToRoles } from 'MyProfile/model/UserAuthorization';\r\nimport { Card } from 'components/Page';\r\n\r\nexport interface UserRolesListProps {\r\n userId: number;\r\n removable: boolean;\r\n}\r\n\r\nexport const UserRolesList: FC = ({\r\n userId,\r\n removable,\r\n}) => {\r\n const { data, isLoading } = useUserAuthorizationsQuery(userId);\r\n\r\n const renderList = () =>\r\n (data ?? []).length ? (\r\n \r\n \r\n \r\n ) : (\r\n User got no roles\r\n );\r\n\r\n return (\r\n \r\n {isLoading ? : renderList()}\r\n \r\n );\r\n};\r\n","import { Role, RoleDetails } from 'MyProfile/model/Role';\r\n\r\nexport interface UserAuthorization {\r\n id: number;\r\n roleType: string;\r\n type: string;\r\n details: RoleDetails[];\r\n}\r\n\r\nexport const mapUserAuthorizationToRoles = (\r\n userAuthorizations: UserAuthorization[]\r\n): Role[] =>\r\n userAuthorizations.map((authorization) => ({\r\n id: authorization.id,\r\n type: authorization.type,\r\n details: authorization.details,\r\n }));\r\n","import { FC } from 'react';\r\n\r\nimport { Card } from 'components/Page';\r\nimport { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { AddUserRole } from 'MyProfile/component/AddUserRole';\r\nimport { UserRolesList } from 'MyProfile/component/UserRolesList';\r\nimport { IsExternalType } from 'Dictionary/component';\r\nimport {\r\n addExternalUserRoleOptions,\r\n addInternalUserRoleOptions,\r\n} from 'MyProfile/component/AddUserRole/AddUserRole';\r\n\r\nexport interface ManageUserRoleProps {\r\n user: MyProfile;\r\n isExternalType: IsExternalType;\r\n}\r\n\r\nexport const ManageUserRole: FC = ({\r\n user,\r\n isExternalType,\r\n}) => (\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n);\r\n","import { FC } from 'react';\r\nimport { useMutation } from 'react-query';\r\nimport * as Yup from 'yup';\r\n\r\nimport { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { myProfileApi } from 'MyProfile/service/myProfile.api';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { EditUserForm } from 'MyProfile/component/EditUserForm';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport {\r\n EditUserFormData,\r\n mapEditUserDto,\r\n} from 'MyProfile/component/EditUserForm/EditUserForm';\r\nimport { queryClient } from 'service';\r\nimport { userKey } from 'MyProfile/query/myProfile.query';\r\n\r\nexport interface EditInternalUserFormProps {\r\n user: MyProfile;\r\n}\r\n\r\nexport const formValidationSchema = Yup.object().shape({\r\n manager: Yup.object().typeError('Select Manager'),\r\n businessUnit: Yup.object().typeError('Select Division'),\r\n preferredLanguages: Yup.array().min(1,'Select at least one language'),\r\n company: Yup.object().required().typeError('Select company'), \r\n employeeJobs: Yup.array().min(1, 'Select at least one Employee job'),\r\n});\r\n\r\nexport const EditInternalUserForm: FC = ({\r\n user,\r\n}) => {\r\n const { showError, showSuccess } = useToasts();\r\n const { mutate, isLoading } = useMutation<\r\n unknown,\r\n ApiError,\r\n EditUserFormData\r\n >((formData) => myProfileApi.updateUser(user.id, mapEditUserDto(formData)), {\r\n onSuccess: () => {\r\n showSuccess('User profile has been updated');\r\n queryClient.invalidateQueries(userKey);\r\n },\r\n onError: (error) => showError(error.message),\r\n });\r\n\r\n return (\r\n {\r\n try {\r\n await mutate(values);\r\n resetForm({ values });\r\n } catch (e) {\r\n resetForm();\r\n }\r\n }}\r\n />\r\n );\r\n};\r\n","import { FC, useState } from 'react';\r\n\r\nimport { Card } from 'components/Page';\r\nimport { IsExternalType } from 'Dictionary/component';\r\nimport { EditInternalUserForm } from 'MyProfile/component/EditInternalUserForm';\r\nimport { UserRolesList } from 'MyProfile/component/UserRolesList';\r\nimport { ManageUserRole } from 'MyProfile/component/ManageUserRole/ManageUserRole';\r\nimport { TabsView, TabsViewProps } from 'components/TabsView';\r\nimport { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { EditExternalUserForm } from 'MyProfile/component/EditExternalUserForm';\r\n\r\nconst labels = ['Edit', 'Show roles'];\r\nconst adminLabels = [...labels, 'Manage Roles'];\r\n\r\nexport interface ManageUserTabsProps extends Omit {\r\n isAdmin: boolean;\r\n user: MyProfile;\r\n isExternalType: IsExternalType;\r\n}\r\n\r\nexport const ManageUserTabs: FC = ({\r\n user,\r\n isAdmin,\r\n isExternalType,\r\n ...tabViewProps\r\n}) => {\r\n const [tab, setTab] = useState(0);\r\n return (\r\n \r\n \r\n {isExternalType === IsExternalType.External ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { IconButton } from '@material-ui/core';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport ManageRoleIcon from '@material-ui/icons/Security';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport RoleListIcon from '@material-ui/icons/Policy';\r\n\r\nimport { useCollapseRowActions } from 'hooks';\r\nimport { Card, Content } from 'components/Page';\r\nimport {\r\n SearchUsers,\r\n SearchUsersRowActions,\r\n} from 'MyProfile/component/SearchUsers/SearchUsers';\r\nimport { managementColumns } from 'MyProfile/component/UserTable';\r\nimport { IsExternalType } from 'Dictionary/component';\r\nimport { RoundButton } from 'components';\r\nimport { addExternalUsersRoute } from 'route';\r\nimport { EditExternalUserForm } from 'MyProfile/component/EditExternalUserForm';\r\nimport { UserRolesList } from 'MyProfile/component/UserRolesList';\r\nimport { useMyProfileQuery } from 'MyProfile/query/myProfile.query';\r\nimport { ManageUserRole } from 'MyProfile/component/ManageUserRole/ManageUserRole';\r\nimport { ManageUserTabs } from 'MyProfile/component/ManageUserTabs';\r\n\r\nconst pageSize = 20;\r\n\r\nexport const ExternalUsersPage: FC = () => {\r\n const history = useHistory();\r\n const { data: myProfile } = useMyProfileQuery();\r\n const handleOpenAddUsers = () => history.push(addExternalUsersRoute.path);\r\n const {\r\n openRow,\r\n closeRow,\r\n collapseRecords,\r\n } = useCollapseRowActions();\r\n return (\r\n (\r\n Add User\r\n )}\r\n >\r\n \r\n isExpanded ? (\r\n {\r\n closeRow(row.id);\r\n collapseRow();\r\n }}\r\n >\r\n \r\n \r\n ) : (\r\n <>\r\n {\r\n openRow(row.id, SearchUsersRowActions.RoleList);\r\n collapseRow();\r\n }}\r\n >\r\n \r\n \r\n {myProfile?.isAdmin && (\r\n {\r\n openRow(row.id, SearchUsersRowActions.ManageRole);\r\n collapseRow();\r\n }}\r\n >\r\n \r\n \r\n )}\r\n {\r\n openRow(row.id, SearchUsersRowActions.Edit);\r\n collapseRow();\r\n }}\r\n >\r\n \r\n \r\n \r\n ),\r\n renderCollapseRow: (row) => {\r\n if (collapseRecords[row.id] === SearchUsersRowActions.RoleList) {\r\n return ;\r\n }\r\n if (collapseRecords[row.id] === SearchUsersRowActions.ManageRole) {\r\n return (\r\n \r\n );\r\n }\r\n if (collapseRecords[row.id] === SearchUsersRowActions.Edit) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return null;\r\n },\r\n }}\r\n DataObjectListProps={{\r\n renderDetails: (item) => (\r\n \r\n ),\r\n }}\r\n displaySearchResults\r\n />\r\n \r\n );\r\n};\r\n","import { FC } from 'react';\r\nimport { IconButton } from '@material-ui/core';\r\nimport CloseIcon from '@material-ui/icons/Close';\r\nimport ManageRoleIcon from '@material-ui/icons/Security';\r\nimport EditIcon from '@material-ui/icons/Edit';\r\nimport { useHistory } from 'react-router-dom';\r\nimport RoleListIcon from '@material-ui/icons/Policy';\r\n\r\nimport { useCollapseRowActions } from 'hooks';\r\nimport { addInternalUsersRoute } from 'route';\r\nimport { Card, Content } from 'components/Page';\r\nimport {\r\n SearchUsers,\r\n SearchUsersRowActions,\r\n} from 'MyProfile/component/SearchUsers/SearchUsers';\r\nimport { managementColumns } from 'MyProfile/component/UserTable';\r\nimport { IsExternalType } from 'Dictionary/component';\r\nimport { RoundButton } from 'components';\r\nimport { EditInternalUserForm } from 'MyProfile/component/EditInternalUserForm';\r\nimport { UserRolesList } from 'MyProfile/component/UserRolesList';\r\nimport { useMyProfileQuery } from 'MyProfile/query/myProfile.query';\r\nimport { ManageUserRole } from 'MyProfile/component/ManageUserRole/ManageUserRole';\r\nimport { ManageUserTabs } from 'MyProfile/component/ManageUserTabs';\r\n\r\nconst pageSize = 20;\r\n\r\nexport const InternalUsersPage: FC = () => {\r\n const history = useHistory();\r\n const { data: myProfile } = useMyProfileQuery();\r\n const handleOpenAddUsers = () => history.push(addInternalUsersRoute.path);\r\n const {\r\n openRow,\r\n closeRow,\r\n collapseRecords,\r\n } = useCollapseRowActions();\r\n return (\r\n (\r\n Add User\r\n )}\r\n >\r\n \r\n isExpanded ? (\r\n {\r\n closeRow(row.id);\r\n collapseRow();\r\n }}\r\n >\r\n \r\n \r\n ) : (\r\n <>\r\n {\r\n openRow(row.id, SearchUsersRowActions.RoleList);\r\n collapseRow();\r\n }}\r\n >\r\n \r\n \r\n {myProfile?.isAdmin && (\r\n {\r\n openRow(row.id, SearchUsersRowActions.ManageRole);\r\n collapseRow();\r\n }}\r\n >\r\n \r\n \r\n )}\r\n {\r\n openRow(row.id, SearchUsersRowActions.Edit);\r\n collapseRow();\r\n }}\r\n >\r\n \r\n \r\n \r\n ),\r\n renderCollapseRow: (row) => {\r\n if (collapseRecords[row.id] === SearchUsersRowActions.RoleList) {\r\n return ;\r\n }\r\n if (collapseRecords[row.id] === SearchUsersRowActions.ManageRole) {\r\n return (\r\n \r\n );\r\n }\r\n if (collapseRecords[row.id] === SearchUsersRowActions.Edit) {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n return null;\r\n },\r\n }}\r\n DataObjectListProps={{\r\n renderDetails: (item) => (\r\n \r\n ),\r\n }}\r\n displaySearchResults\r\n />\r\n \r\n );\r\n};\r\n","import { allBusinessUnitField } from 'Dictionary/component/ActiveBusinessUnitSelectField/ActiveBusinessUnitSelectField';\r\n\r\nexport interface UserDeactivatedSearchFilters {\r\n personName: string;\r\n businessUnitId: number;\r\n divisionId: number;\r\n productGroupList?: number[];\r\n companyId?: number;\r\n isExternal?: boolean | null;\r\n deactivatedByName?: string;\r\n deactivateDate?: string | null; \r\n}\r\n\r\nexport const defaultSearchFilters: UserDeactivatedSearchFilters = {\r\n personName: '',\r\n businessUnitId: Number(allBusinessUnitField.id),\r\n divisionId: 0,\r\n};\r\n","import { FC, useState } from 'react';\r\nimport { useIsFetching } from 'react-query';\r\n\r\nimport {\r\n BusinessUnitSelectField,\r\n DivisionSelectField,\r\n PGUnitSelectField,\r\n CountriesSelectField,\r\n CompanyWithFiltersField,\r\n} from 'Dictionary/component';\r\nimport { formatTemplate } from 'utils';\r\nimport dayjs, { Dayjs } from 'dayjs';\r\nimport { FormikTextField } from 'components/FormikField';\r\nimport { KeyboardDatePicker } from '@material-ui/pickers';\r\nimport { SearchFiltersForm, SearchFiltersFormProps } from 'components';\r\nimport { FieldRoot } from 'components/SearchFiltersForm/SearchFiltersForm.style';\r\nimport { mapCompanyFilterParams } from 'Dictionary/component/CompanyWithFiltersField/CompanyWithFiltersField';\r\nimport { UserDeactivatedFiltersFormData } from 'MyProfile/model/UserDeactivatedFiltersFormData';\r\nimport { UserDeactivatedSearchFilters } from 'MyProfile/model/UserDeactivatedSearchFilters';\r\nimport { allBusinessUnitField } from 'Dictionary/component/ActiveBusinessUnitSelectField/ActiveBusinessUnitSelectField';\r\nimport { userDeactivatedKey } from 'MyProfile/query/myProfile.query';\r\nimport { IsExternalSelectField, IsExternalType, getIsExternal } from 'Dictionary/component/IsExternalSelectField/IsExternalSelectField';\r\n\r\nexport interface UserDeactivatedSearchFiltersFormProps\r\n extends Pick<\r\n SearchFiltersFormProps,\r\n 'renderPageActions'\r\n > {\r\n onFiltersSubmit: (formData: UserDeactivatedSearchFilters) => void;\r\n}\r\n\r\nconst initialValues: UserDeactivatedFiltersFormData = {\r\n searchText: '',\r\n businessUnit: allBusinessUnitField,\r\n division: { id: 0, name: 'All Business Areas' },\r\n productGroups: [],\r\n company: {},\r\n countryList: [],\r\n isExternal: { id: IsExternalType.All, name: 'All users' },\r\n deactivateDate: null,\r\n deactivatedBy: '',\r\n};\r\nconst mapFiltersFormData = (\r\n formData: UserDeactivatedFiltersFormData\r\n): UserDeactivatedSearchFilters => {\r\n const businessUnit = Number(formData?.businessUnit?.id);\r\n const division = Number(formData?.division?.id);\r\n return {\r\n personName: formData.searchText,\r\n businessUnitId: !isNaN(businessUnit) ? businessUnit : 0,\r\n divisionId: !isNaN(division) ? division : 0,\r\n productGroupList: (formData.productGroups ?? []).map((pg) =>\r\n Number(pg.id)\r\n ),\r\n ...(formData.company && { companyId: Number(formData.company.id ?? 0) }),\r\n isExternal: getIsExternal(formData?.isExternal?.id as IsExternalType),\r\n deactivateDate: formData.deactivateDate,\r\n deactivatedByName: formData.deactivatedBy\r\n };\r\n};\r\n\r\n// eslint-disable-next-line max-len\r\nexport const UserDeactivatedSearchFiltersForm: FC = ({\r\n onFiltersSubmit, \r\n renderPageActions\r\n}) => {\r\n const [deactivateDate, setDeactivateDate] = useState(null);\r\n const fetchingKeys = useIsFetching(userDeactivatedKey);\r\n return (\r\n onFiltersSubmit(mapFiltersFormData(values))}\r\n >\r\n {({ values, setFieldValue }) => {\r\n const handleResetCompany = () =>\r\n setFieldValue('company', initialValues.company);\r\n\r\n const handleOnDivisionChange = () => {\r\n setFieldValue('businessUnit', initialValues.businessUnit);\r\n setFieldValue('productGroups', initialValues.productGroups);\r\n setFieldValue('company', initialValues.company);\r\n }\r\n\r\n const handleOnBusinessUnitChange = () => {\r\n setFieldValue('productGroups', initialValues.productGroups);\r\n setFieldValue('company', initialValues.company);\r\n };\r\n\r\n const handleDeactivateDateChange = (date: Dayjs | null) => {\r\n setDeactivateDate(date);\r\n setFieldValue('deactivateDate', date && date.isValid() ? dayjs(date).toISOString() : null);\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n \r\n );\r\n};\r\n","import { FC, useState } from 'react';\r\n\r\nimport { Content } from 'components/Page';\r\nimport { useUserDeactivatedQuery } from 'MyProfile/query/myProfile.query';\r\nimport { ApiError, getPagination, Pagination } from 'model';\r\nimport {\r\n defaultSearchFilters,\r\n UserDeactivatedSearchFilters,\r\n} from 'MyProfile/model/UserDeactivatedSearchFilters';\r\nimport ExportIcon from '@material-ui/icons/VerticalAlignBottom';\r\nimport { archivedUsersColumns, UserTable } from 'MyProfile/component/UserTable';\r\nimport { TablePagination } from 'components/Table';\r\nimport { Loader } from 'components/Loader/Loader';\r\nimport { SearchResults } from 'components/DataTable/SearchResults/SearchResults';\r\nimport { Button, DataObjectView } from 'components';\r\nimport { UserDeactivatedSearchFiltersForm } from 'MyProfile/component/UserDeactivatedSearchFiltersForm';\r\nimport { useMutation } from 'react-query';\r\nimport { myProfileApi } from 'MyProfile/service/myProfile.api';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport { getFullName } from 'MyProfile/model/MyProfile';\r\nimport {\r\n DataObjectList,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\n\r\nconst pageSize = 20;\r\n\r\nexport const ArchivedUsersPage: FC = () => {\r\n const { showError, showSuccess } = useToasts();\r\n const [pagination, setPagination] = useState(\r\n getPagination(pageSize)\r\n );\r\n const [filters, setFilters] = useState(\r\n defaultSearchFilters\r\n );\r\n const { data, isLoading, isFetching, refetch } = useUserDeactivatedQuery(\r\n pagination,\r\n filters,\r\n {\r\n onSuccess: (newData) => setPagination(getPagination(pageSize, newData)),\r\n }\r\n );\r\n const {\r\n mutate: exportToExcel,\r\n isLoading: isExportToExcelLoading,\r\n } = useMutation(() => myProfileApi.exportToExcelDeactivated(filters), {\r\n onSuccess: () => showSuccess('Export to excel success'),\r\n onError: () => showError('Export to excel failed. Too many records on search. Must be less than 10000.'),\r\n });\r\n const {\r\n mutate: reactivateUsers,\r\n isLoading: isReactivateLoading,\r\n } = useMutation(\r\n (userIds) => myProfileApi.reactiveUsers(userIds),\r\n {\r\n onSuccess: () => {\r\n showSuccess('Reactivate Users action success');\r\n refetch();\r\n },\r\n onError: () => showError('Reactivate Users action fail'),\r\n }\r\n );\r\n const loading = isFetching || isLoading;\r\n // @ts-ignore\r\n return (\r\n \r\n \r\n exportToExcel()}\r\n disabled={isExportToExcelLoading}\r\n >\r\n {isExportToExcelLoading ? (\r\n \r\n ) : (\r\n <>\r\n  Export to excel\r\n \r\n )}\r\n \r\n }\r\n />\r\n \r\n \r\n user.id}\r\n renderSelectedActions={(selectedRows, clearSelected) => (\r\n \r\n reactivateUsers(\r\n selectedRows.map((id) => Number(id)),\r\n {\r\n onSuccess: () => {\r\n clearSelected();\r\n },\r\n }\r\n )\r\n }\r\n >\r\n Reactivate\r\n \r\n )}\r\n checkboxSelection\r\n />\r\n \r\n \r\n (\r\n (\r\n reactivateUsers([item.id])}\r\n disabled={isReactivateLoading}\r\n >\r\n Reactivate user\r\n \r\n )}\r\n />\r\n )}\r\n />\r\n \r\n {!isFetching && (\r\n \r\n setPagination((prevPagination) => ({\r\n ...prevPagination,\r\n currentPageIndex,\r\n }))\r\n }\r\n />\r\n )}\r\n \r\n );\r\n};\r\n","import { IsExternalType } from 'Dictionary/component';\r\n\r\nexport interface UserHrgtSearchFilters {\r\n personNameOrEmail: string;\r\n isExternal: boolean | null;\r\n}\r\n\r\nexport const getDefaultSearchFilters = (\r\n isExternalType: IsExternalType\r\n): UserHrgtSearchFilters => {\r\n if (isExternalType === IsExternalType.External) {\r\n return {\r\n personNameOrEmail: '',\r\n isExternal: true,\r\n };\r\n }\r\n if (isExternalType === IsExternalType.Abb) {\r\n return {\r\n personNameOrEmail: '',\r\n isExternal: false,\r\n };\r\n }\r\n return {\r\n personNameOrEmail: '',\r\n isExternal: null,\r\n };\r\n};\r\n","import { FC, ReactNode, useState } from 'react';\r\nimport {\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogTitle,\r\n Grid,\r\n IconButton,\r\n} from '@material-ui/core';\r\nimport AddIcon from '@material-ui/icons/Add';\r\nimport RemoveIcon from '@material-ui/icons/Remove';\r\nimport CheckIcon from '@material-ui/icons/Check';\r\n\r\nimport { Card } from 'components/Page';\r\nimport { Button, DataObjectView, SearchBar } from 'components';\r\nimport {\r\n archivedUsersColumns,\r\n managementColumns,\r\n UserTable,\r\n} from 'MyProfile/component/UserTable';\r\nimport { getFullName, MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { useUserHrgtQuery } from 'MyProfile/query/myProfile.query';\r\nimport { getPagination, Pagination, Sort } from 'model';\r\nimport {\r\n getDefaultSearchFilters,\r\n UserHrgtSearchFilters,\r\n} from 'MyProfile/model/UserHrgtSearchFilters';\r\nimport { IsExternalType } from 'Dictionary/component';\r\nimport { TablePagination } from 'components/Table';\r\nimport { EditUserForm } from 'MyProfile/component/EditUserForm';\r\nimport { EditUserFormData } from 'MyProfile/component/EditUserForm/EditUserForm';\r\nimport { Language } from 'Dictionary/model/Language';\r\nimport { EmployeeJob, EmployeeJobFamily } from 'Dictionary/model/EmployeeJob';\r\nimport { formValidationSchema as externalFormValidationSchema } from 'MyProfile/component/EditExternalUserForm/EditExternalUserForm';\r\nimport { formValidationSchema as internalFormValidationSchema } from 'MyProfile/component/EditInternalUserForm/EditInternalUserForm';\r\nimport {\r\n DataObjectList,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\n\r\nexport interface AddUsersProps {\r\n isExternalType: IsExternalType;\r\n selectedUsers: MyProfile[];\r\n setSelectedUsers: (users: MyProfile[]) => void;\r\n}\r\n\r\nconst initialSort: Sort = {\r\n sortExpression: 'lastName',\r\n sortDescending: false,\r\n};\r\n\r\nexport const boostUser = (\r\n user: MyProfile,\r\n formData: EditUserFormData\r\n): MyProfile => ({\r\n ...user,\r\n firstName: formData.firstName ?? user.firstName,\r\n lastName: formData.lastName ?? user.lastName,\r\n notes: formData.notes ?? user.notes,\r\n city: formData.city ?? user.city,\r\n state: formData.state ?? user.state,\r\n businessUnit: {\r\n id: formData.businessUnit.id as number,\r\n description: formData.businessUnit.name as string,\r\n }, \r\n manager: {\r\n ...user.manager,\r\n ...(formData.manager?.id && { geid: formData.manager.id as string }),\r\n ...(formData.manager?.group && { email: formData.manager.group as string }),\r\n },\r\n functionalManager: {\r\n ...user.functionalManager,\r\n ...(formData.functionalmanager?.id && { geid: formData.functionalmanager.id as string }),\r\n ...(formData.functionalmanager?.group && { email: formData.functionalmanager.group as string }),\r\n },\r\n employeeJobs: formData.employeeJobs as EmployeeJob[],\r\n employeeJobFamilies: formData.jobFamilies as EmployeeJobFamily[],\r\n preferredLanguages: formData.preferredLanguages as Language[],\r\n ...(formData.company\r\n ? {\r\n company: {\r\n id: formData.company.id as number,\r\n description: formData.company.name as string,\r\n location: '',\r\n },\r\n }\r\n : user.company),\r\n ...(formData.division\r\n ? {\r\n division: {\r\n id: formData.division.id as number,\r\n name: formData.division.name as string, \r\n },\r\n }\r\n : user.division),\r\n ...(formData.pgUnit\r\n ? {\r\n pgUnit: {\r\n id: formData.pgUnit.id as number,\r\n name: formData.pgUnit.name as string,\r\n code: '',\r\n },\r\n }\r\n : user.pgUnit),\r\n ...(formData.country\r\n ? {\r\n country: {\r\n id: formData.country.id as number,\r\n name: formData.country.name as string,\r\n code: '',\r\n },\r\n }\r\n : user.country),\r\n});\r\n\r\nconst pageSize = 10;\r\n\r\nexport const AddUsers: FC = ({\r\n isExternalType,\r\n selectedUsers,\r\n setSelectedUsers,\r\n}) => {\r\n const [personNameOrEmail, setPersonNameOrEmail] = useState('');\r\n const [userToEdit, setUserToEdit] = useState(null);\r\n const [pagination, setPagination] = useState(\r\n getPagination(pageSize)\r\n );\r\n const [sort, setSort] = useState>(\r\n initialSort\r\n );\r\n const [filters, setFilters] = useState(\r\n getDefaultSearchFilters(isExternalType)\r\n );\r\n const { data, isLoading, isFetching } = useUserHrgtQuery(\r\n pagination,\r\n sort,\r\n filters,\r\n {\r\n onSuccess: (newData) => setPagination(getPagination(pageSize, newData)),\r\n }\r\n );\r\n const handleOpenDialog = (user: MyProfile): void => setUserToEdit(user);\r\n const handleCloseDialog = (): void => setUserToEdit(null);\r\n const renderEditUserDialog = (): ReactNode => (\r\n \r\n Provide user information\r\n \r\n {userToEdit && (\r\n \r\n setSelectedUsers([\r\n ...selectedUsers,\r\n boostUser(userToEdit, values),\r\n ])\r\n }\r\n renderActions={(submitForm, disableSubmit) => (\r\n \r\n \r\n {\r\n await submitForm();\r\n handleCloseDialog();\r\n }}\r\n disabled={disableSubmit}\r\n >\r\n Add to the list\r\n \r\n \r\n )}\r\n />\r\n )}\r\n \r\n \r\n );\r\n const renderHrgtActions = (row: MyProfile): ReactNode =>\r\n isUserSelected(row) ? (\r\n \r\n \r\n \r\n ) : (\r\n <>\r\n handleOpenDialog(row)}>\r\n \r\n \r\n \r\n );\r\n const renderSelectedActions = (row: MyProfile): ReactNode => (\r\n \r\n setSelectedUsers(selectedUsers.filter((user) => user.geid !== row.geid))\r\n }\r\n >\r\n \r\n \r\n );\r\n const isUserSelected = (user: MyProfile): boolean =>\r\n selectedUsers.some(({ geid }) => geid === user.geid);\r\n const isExternalTitle =\r\n isExternalType === IsExternalType.Abb ? 'ABB' : 'External';\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n (\r\n renderSelectedActions(item)}\r\n />\r\n )}\r\n noDataMessage={`Select ${isExternalTitle} users`}\r\n />\r\n \r\n \r\n row.geid}\r\n renderRowActions={renderSelectedActions}\r\n noDataMessage={`Select ${isExternalTitle} users`}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setPersonNameOrEmail('');\r\n setFilters(getDefaultSearchFilters(isExternalType));\r\n }}\r\n onChange={(text) => setPersonNameOrEmail(text)}\r\n onEnter={() =>\r\n setFilters((prevState) => ({\r\n ...prevState,\r\n personNameOrEmail,\r\n }))\r\n }\r\n />\r\n \r\n (\r\n renderHrgtActions(item)}\r\n />\r\n )}\r\n />\r\n \r\n \r\n \r\n setSort({\r\n sortExpression,\r\n sortDescending: direction === 'desc',\r\n })\r\n }\r\n defaultSort={initialSort}\r\n enableSort\r\n />\r\n \r\n {!isFetching && (\r\n \r\n setPagination((prevPagination) => ({\r\n ...prevPagination,\r\n currentPageIndex,\r\n }))\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n {renderEditUserDialog()}\r\n \r\n );\r\n};\r\n","import { FC, useState } from 'react';\r\nimport { useMutation } from 'react-query';\r\n\r\nimport { ApiError } from 'model';\r\nimport { AppShellBaseProps, DetailsAppShell } from 'components/AppShell';\r\nimport { Content } from 'components/Page';\r\nimport { RoundButton } from 'components';\r\nimport { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { IsExternalType } from 'Dictionary/component';\r\nimport { myProfileApi } from 'MyProfile/service/myProfile.api';\r\nimport { AddInternalDto, mapUsersToDto } from 'MyProfile/model/AddInternalDto';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { AddUserResponse } from 'MyProfile/model/AddUserResponse';\r\nimport { AddUsers } from 'MyProfile/component/AddUsers';\r\nimport { internalUsersRoute } from 'route';\r\n\r\nexport interface AddInternalUsersPageProps extends AppShellBaseProps {}\r\n\r\nexport const AddInternalUsersPage: FC = ({\r\n logout,\r\n}) => {\r\n const { showError, showMany, showWarning } = useToasts();\r\n const [selectedUsers, setSelectedUsers] = useState([]);\r\n const { mutate: addUsersToPcs, isLoading: addingUsersLoading } = useMutation<\r\n AddUserResponse,\r\n ApiError,\r\n AddInternalDto[]\r\n >((usersToAdd) => myProfileApi.addInternals(usersToAdd), {\r\n onSuccess: (response) => {\r\n if (response.failed.length && !response.success.length) {\r\n showMany(\"Action failed for all users\", response.failed.map(response => response.message), true);\r\n }\r\n if (!response.failed.length && response.success.length) {\r\n showMany(\"Users were added successfully\", response.success.map(response => response.userEmail), false); \r\n setSelectedUsers([]);\r\n }\r\n if (response.failed.length && response.success.length) {\r\n const addedUserEmails: string[] = response.success.map(\r\n (userResponse) => userResponse.userEmail\r\n );\r\n showWarning('Some users were not added to PCS2');\r\n showMany(\"Added users\", response.success.map(response => response.userEmail), false);\r\n showMany(\"Failed users\", response.failed.map(response => response.message), true); \r\n setSelectedUsers((prevState) =>\r\n prevState.filter((user) => !addedUserEmails.includes(user.email))\r\n );\r\n }\r\n },\r\n onError: () => showError('Add users to PCS2 action failed'),\r\n });\r\n const handleOnAddUsers = () => addUsersToPcs(mapUsersToDto(selectedUsers));\r\n const handleSetSelectedUsers = (users: MyProfile[]) =>\r\n setSelectedUsers(users);\r\n return (\r\n \r\n (\r\n \r\n Add users to PCS2\r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n","import { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { EditUserDto } from 'MyProfile/model/EditUserDto';\r\n\r\nexport interface AddInternalDto extends EditUserDto {\r\n email: string;\r\n geid: string;\r\n}\r\n\r\nexport const mapUsersToDto = (users: MyProfile[]): AddInternalDto[] =>\r\n users.map((user) => ({\r\n email: user.email,\r\n geid: user.geid,\r\n notes: user.notes,\r\n city: user.city,\r\n state: user.state,\r\n managerGeid: user.manager.geid,\r\n managerEmail: user.manager.email,\r\n functionalmanagerGeid: user.functionalManager.geid,\r\n functionalmanagerEmail: user.functionalManager.email,\r\n divisionId: user.division?.id,\r\n businessUnitId: user.businessUnit.id,\r\n pgUnitId: user.pgUnit?.id ?? null,\r\n companyId: user.company?.id ?? null,\r\n employeeJobsIds: (user.employeeJobs ?? []).map((job) => job.id),\r\n employeeJobFamiliesIds: (user.employeeJobFamilies ?? []).map((job) => job.id),\r\n preferredLanguagesIds: (user.preferredLanguages ?? []).map(\r\n (lang) => lang.id\r\n ),\r\n }));\r\n","import { FC, useState } from 'react';\r\n\r\nimport { AppShellBaseProps, DetailsAppShell } from 'components/AppShell';\r\nimport { Content } from 'components/Page';\r\nimport { RoundButton } from 'components';\r\nimport { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { IsExternalType } from 'Dictionary/component';\r\nimport { AddUsers } from 'MyProfile/component/AddUsers';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { useMutation } from 'react-query';\r\nimport { AddUserResponse } from 'MyProfile/model/AddUserResponse';\r\nimport { ApiError } from 'model';\r\nimport { myProfileApi } from 'MyProfile/service/myProfile.api';\r\nimport { AddExternalDto, mapUsersToDto } from 'MyProfile/model/AddExternalDto';\r\nimport { externalUsersRoute } from 'route';\r\n\r\nexport interface AddExternalUsersPageProps extends AppShellBaseProps { }\r\n\r\nexport const AddExternalUsersPage: FC = ({\r\n logout,\r\n}) => {\r\n const { showError, showWarning, showMany } = useToasts();\r\n const [selectedUsers, setSelectedUsers] = useState([]);\r\n const { mutate: addUsersToPcs, isLoading: addingUsersLoading } = useMutation<\r\n AddUserResponse,\r\n ApiError,\r\n AddExternalDto[]\r\n >((usersToAdd) => myProfileApi.addExternals(usersToAdd), {\r\n onSuccess: (response) => {\r\n if (response.failed.length && !response.success.length) {\r\n showMany(\"Action failed for all users\", response.failed.map(response => response.message), true);\r\n }\r\n if (!response.failed.length && response.success.length) {\r\n showMany(\"Users were added successfully\", response.success.map(response => response.userEmail), false); \r\n setSelectedUsers([]);\r\n }\r\n if (response.failed.length && response.success.length) {\r\n const addedUserEmails: string[] = response.success.map(\r\n (userResponse) => userResponse.userEmail\r\n );\r\n showWarning('Some users were not added to PCS2'); \r\n showMany(\"Added users\", response.success.map(response => response.userEmail), false);\r\n showMany(\"Failed users\", response.failed.map(response => response.message), true); \r\n setSelectedUsers((prevState) =>\r\n prevState.filter((user) => !addedUserEmails.includes(user.email))\r\n );\r\n }\r\n },\r\n onError: () => showError('Add users to PCS action failed'),\r\n });\r\n const handleOnAddUsers = () => addUsersToPcs(mapUsersToDto(selectedUsers));\r\n const handleSetSelectedUsers = (users: MyProfile[]) =>\r\n setSelectedUsers(users);\r\n return (\r\n \r\n (\r\n \r\n Add users to PCS2\r\n \r\n )}\r\n >\r\n \r\n \r\n \r\n );\r\n};\r\n","import { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { EditUserDto } from 'MyProfile/model/EditUserDto';\r\n\r\nexport interface AddExternalDto extends Omit {\r\n firstName: string;\r\n lastName: string;\r\n countryId: number;\r\n email: string;\r\n trainingManagerGeid: string;\r\n trainingManagerEmail: string;\r\n}\r\n\r\nexport const mapUsersToDto = (users: MyProfile[]): AddExternalDto[] =>\r\n users.map((user) => ({\r\n firstName: user.firstName,\r\n lastName: user.lastName,\r\n notes: user.notes,\r\n city: user.city,\r\n state: user.state,\r\n countryId: user.country.id,\r\n email: user.email,\r\n geid: user.geid,\r\n trainingManagerGeid: user.manager.geid,\r\n trainingManagerEmail: user.manager.email,\r\n divisionId: user.division?.id,\r\n businessUnitId: user.businessUnit.id,\r\n companyId: user.company?.id ?? null,\r\n pgUnitId: user.pgUnit?.id ?? null,\r\n employeeJobsIds: (user.employeeJobs ?? []).map((job) => job.id),\r\n employeeJobFamiliesIds: (user.employeeJobFamilies ?? []).map((job) => job.id),\r\n preferredLanguagesIds: (user.preferredLanguages ?? []).map(\r\n (lang) => lang.id\r\n ),\r\n }));\r\n","import { ApprovalGroup, ApprovalGroupDetails, UpdateApprovalGroupQuery } from '../model';\r\nimport { apiClient } from '../../service';\r\nimport { ApiError } from '../../model/ApiError';\r\n\r\nconst getApprovalGroups = async (\r\n buId: number | null\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `/approval-groups/business-unit/${buId}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst getApprovalGroupDetails = async (\r\n id: number\r\n): Promise => {\r\n try {\r\n const response = await apiClient.get(\r\n `/approval-groups/${id}`\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst addApprovalGroup = async (query: ApprovalGroup): Promise => {\r\n try {\r\n const response = await apiClient.post(`/approval-groups/add`, {\r\n ...query,\r\n });\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst updateApprovalGroup = async (query: ApprovalGroup): Promise => {\r\n try {\r\n const response = await apiClient.put('/approval-groups/update', {\r\n ...query,\r\n });\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst deleteApprovalGroup = async (query: ApprovalGroup): Promise => {\r\n try {\r\n const response = await apiClient.put(\r\n `/approval-groups/remove`,\r\n\r\n {\r\n ...query,\r\n }\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst updateApprovalGroupUsers = async (\r\n query: UpdateApprovalGroupQuery\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `/approval-groups/update-users`,\r\n {\r\n ...query,\r\n }\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport {\r\n getApprovalGroups,\r\n getApprovalGroupDetails,\r\n updateApprovalGroup,\r\n addApprovalGroup,\r\n deleteApprovalGroup,\r\n updateApprovalGroupUsers,\r\n};\r\n","import { ApprovalGroupDetails } from 'ApprovalGroupsPage/model';\r\nimport { useQuery } from 'react-query';\r\nimport { ApprovalGroup } from '../model/ApprovalGroup';\r\nimport {\r\n getApprovalGroups,\r\n getApprovalGroupDetails,\r\n} from '../service/approvalGroup.api';\r\n\r\nexport const approvalGroupsKey = 'approval-groups-key';\r\nexport const useApprovalGroupsQuery = (buId: number | null) =>\r\n useQuery(\r\n [approvalGroupsKey],\r\n () => getApprovalGroups(buId),\r\n { enabled: false }\r\n );\r\n\r\nexport const approvalGroupsDetailsKey = 'approval-groups-details-key';\r\nexport const useApprovalGroupsDetailsQuery = (groupId: number) =>\r\n useQuery(\r\n [approvalGroupsDetailsKey],\r\n () => getApprovalGroupDetails(groupId),\r\n { enabled: false }\r\n );\r\n","import { AccordionActions, Grid, Button } from '@material-ui/core';\r\nimport { Form, Formik, FormikConfig } from 'formik';\r\nimport { FormikTextField } from 'components/FormikField';\r\nimport { ActiveBusinessUnitSelectField } from 'Dictionary/component';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport { Card } from '../../components/Page/Card/Card';\r\n\r\nexport interface ApprovalGroupFormData {\r\n businessUnit: AutocompleteFieldItem;\r\n description: string;\r\n}\r\n\r\nexport interface ApprovalGroupEditProps\r\n extends Omit, 'onReset'> {\r\n title: string;\r\n actionLabel?: string;\r\n className?: string;\r\n onClose: () => void;\r\n}\r\n\r\nexport const ApprovalGroupEdit = (props: ApprovalGroupEditProps) => {\r\n const {\r\n title,\r\n actionLabel = 'Add group',\r\n className,\r\n onClose,\r\n ...other\r\n } = props;\r\n const formikProps = { ...other, onReset: () => {} };\r\n return (\r\n \r\n {(formikProps) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {actionLabel}\r\n \r\n \r\n \r\n
\r\n )}\r\n
\r\n );\r\n};\r\n","import {\r\n makeStyles,\r\n Typography,\r\n Button,\r\n IconButton,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n} from '@material-ui/core';\r\nimport { Edit, Group, Delete } from '@material-ui/icons';\r\nimport { ApprovalGroup } from 'ApprovalGroupsPage/model/ApprovalGroup';\r\nimport { DataTable, DataTableColumn } from 'components/DataTable/DataTable';\r\nimport { useEffect, useState } from 'react';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\nimport {\r\n BusinessUnit,\r\n toAutocomplateField,\r\n} from 'Dictionary/model/BusinessUnit';\r\nimport { useMutation } from 'react-query';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { DesktopSection, MobileSection } from 'components/MediaQuery';\r\nimport { DataObjectView } from 'components';\r\nimport { ApiError } from 'model';\r\nimport {\r\n DataObjectList,\r\n mapToDataSetMap,\r\n} from 'components/DataObjectView/DataObjectList';\r\nimport { useApprovalGroupsQuery } from '../query/approvalGroup.query';\r\nimport {\r\n addApprovalGroup,\r\n updateApprovalGroup,\r\n deleteApprovalGroup,\r\n} from '../service/approvalGroup.api';\r\nimport { ApprovalGroupEdit, ApprovalGroupFormData } from './ApprovalGroupEdit';\r\nimport { ReactComponent as NotFoundSvg } from '../../components/QueryErrorResetBoundary/svg/NotFound.svg';\r\nimport { approvalGroupsDetailsRoute } from '../../route';\r\n\r\nconst useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n header: {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n },\r\n empty: {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flexDirection: 'column',\r\n },\r\n addGroup: {\r\n margin: theme.spacing(2, 0),\r\n border: `1px solid ${theme.palette.divider}`,\r\n borderRadius: theme.shape.borderRadius,\r\n },\r\n }),\r\n { name: 'ApprovalGroupsTable' }\r\n);\r\n\r\nexport interface ApprovalGroupsTableProps {\r\n businessUnit: BusinessUnit | null;\r\n}\r\n\r\nconst approvalGroupsColumns: DataTableColumn[] = [\r\n {\r\n field: 'businessUnit',\r\n headerName: 'Division',\r\n renderField: ({ businessUnit }) => businessUnit?.description ?? '',\r\n width: 240,\r\n },\r\n {\r\n field: 'description',\r\n headerName: 'Description',\r\n },\r\n];\r\n\r\nexport const editApprovalGroupMutationKey: string =\r\n 'edit-approval-group-mutation';\r\n\r\nconst mapFormDataToApprovalGroup = (\r\n values: ApprovalGroupFormData,\r\n approvalGroup: ApprovalGroup = {\r\n id: -1,\r\n isUsed: true,\r\n sequence: 0,\r\n description: '',\r\n businessUnit: null,\r\n }\r\n): ApprovalGroup => ({\r\n ...approvalGroup,\r\n businessUnit: {\r\n id: Number(values?.businessUnit?.id ?? -1),\r\n description: values?.businessUnit?.name ?? '',\r\n },\r\n description: values?.description ?? approvalGroup?.description ?? '',\r\n});\r\n\r\nexport const ApprovalGroupsTable = (props: ApprovalGroupsTableProps) => {\r\n const { businessUnit = null } = props;\r\n const [addMode, setAddMode] = useState(false);\r\n const classes = useStyles(props);\r\n const history = useHistory();\r\n const [rowToDelete, setRowToDelete] = useState(null);\r\n const { showSuccess, showError } = useToasts();\r\n const onError = async (error: ApiError) => showError(error.message);\r\n const {\r\n data: approvalGroups = [],\r\n isLoading,\r\n refetch,\r\n } = useApprovalGroupsQuery(businessUnit?.id ?? 0);\r\n useEffect(() => {\r\n if (businessUnit) {\r\n refetch();\r\n }\r\n }, [businessUnit]);\r\n const { mutate: addApprovalGroupMutation } = useMutation({\r\n mutationKey: editApprovalGroupMutationKey,\r\n mutationFn: addApprovalGroup,\r\n onSuccess: () => {\r\n refetch();\r\n showSuccess('Approval group was added');\r\n }, \r\n onError: () => {\r\n showError('Cannot add approval group'); \r\n },\r\n });\r\n const { mutate: updateApprovalGroupMutation } = useMutation({\r\n mutationKey: editApprovalGroupMutationKey,\r\n mutationFn: updateApprovalGroup,\r\n onSuccess: () => {\r\n refetch();\r\n showSuccess('Approval group was updated');\r\n },\r\n onError: () => {\r\n showError('Cannot update approval group');\r\n },\r\n });\r\n const {\r\n mutate: deleteApprovalGroupMutation,\r\n isLoading: isDeleteLoading,\r\n } = useMutation({\r\n mutationKey: editApprovalGroupMutationKey,\r\n mutationFn: deleteApprovalGroup,\r\n onSuccess: () => {\r\n refetch();\r\n showSuccess('Approval group was deleted');\r\n },\r\n onError\r\n // onError: () => {\r\n // showError('Cannot delete approval group');\r\n // },\r\n });\r\n const handleOpenGroup = (row: ApprovalGroup) =>\r\n history.push(\r\n approvalGroupsDetailsRoute.createRoute({ groupId: String(row.id) })\r\n );\r\n\r\n return (\r\n <>\r\n {businessUnit && (\r\n <>\r\n {addMode && (\r\n \r\n addApprovalGroupMutation(mapFormDataToApprovalGroup(values))\r\n }\r\n className={classes.addGroup}\r\n title=\"Add approval group\"\r\n onClose={() => setAddMode(false)}\r\n />\r\n )}\r\n
\r\n {`Search results: ${\r\n approvalGroups?.length ?? 0\r\n }`}\r\n \r\n {!addMode && (\r\n \r\n )}\r\n
\r\n \r\n ) \r\n }\r\n {((businessUnit && approvalGroups.length) || isLoading) > 0 ? (\r\n <>\r\n \r\n row.id}\r\n enableSort\r\n onSortRequest={(direction, fieldName) => \r\n approvalGroups.sort((a,b) => { \r\n const left = a[fieldName];\r\n const right = b[fieldName]; \r\n \r\n if(left === null && right === null) \r\n return 0;\r\n if(left === null) \r\n return direction === \"asc\" ? -1 : 1;\r\n if(right === null) \r\n return direction === \"asc\" ? 1 : -1;\r\n\r\n if(left > right)\r\n return direction === \"asc\" ? 1 : -1;\r\n if(left < right)\r\n return direction === \"asc\" ? -1 : 1;\r\n return 0;\r\n })\r\n }\r\n renderCollapseRow={(row, collapseRow) => (\r\n \r\n updateApprovalGroupMutation(\r\n mapFormDataToApprovalGroup(values, row)\r\n )\r\n }\r\n onClose={collapseRow}\r\n />\r\n )}\r\n renderRowActions={(row, collapseRow) => (\r\n <>\r\n handleOpenGroup(row)}>\r\n \r\n \r\n setRowToDelete(row)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n hideCollapseColumn\r\n />\r\n \r\n \r\n \r\n loading={isLoading}\r\n items={approvalGroups ?? []}\r\n renderDataObjectView={(item) => (\r\n \r\n )}\r\n renderActions={(item) => (\r\n <>\r\n deleteApprovalGroupMutation(item)}\r\n disabled={isDeleteLoading}\r\n >\r\n Remove group\r\n \r\n \r\n \r\n )}\r\n renderDetails={(item) => (\r\n \r\n updateApprovalGroupMutation(\r\n mapFormDataToApprovalGroup(values, item)\r\n )\r\n }\r\n onClose={() => null}\r\n />\r\n )}\r\n />\r\n \r\n setRowToDelete(null)}>\r\n Delete approval group\r\n \r\n \r\n Are you sure to delete {rowToDelete?.description}{' '}\r\n {rowToDelete?.businessUnit\r\n ? `(${rowToDelete.businessUnit.description})`\r\n : ''}{' '}\r\n approval group?\r\n \r\n \r\n \r\n \r\n {\r\n rowToDelete && deleteApprovalGroupMutation(rowToDelete);\r\n setRowToDelete(null);\r\n }}\r\n >\r\n Delete\r\n \r\n \r\n \r\n \r\n ) : (\r\n
\r\n \r\n \r\n {businessUnit\r\n ? 'No approval groups for selected Division...'\r\n : 'Select Division first...'}\r\n \r\n
\r\n )}\r\n \r\n );\r\n};\r\n","import { makeStyles } from '@material-ui/core';\r\nimport { useAutocomplete } from '@material-ui/lab';\r\nimport { BusinessUnit } from 'Dictionary/model/BusinessUnit';\r\nimport { useActiveBusinessUnitsQuery } from 'Dictionary/query/dictionaryQuery';\r\nimport { useEffect } from 'react';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\nimport { SearchBarBase } from '../../components/SearchBar';\r\n\r\nconst useStyles = makeStyles(\r\n (theme: AbbTheme) => ({\r\n root: {\r\n marginBottom: theme.spacing(4),\r\n },\r\n list: {\r\n borderTop: `1px solid ${theme.palette.divider}`,\r\n width: '100%',\r\n margin: 0,\r\n padding: 0,\r\n zIndex: 1,\r\n top: 42,\r\n left: 0,\r\n position: 'absolute',\r\n listStyle: 'none',\r\n backgroundColor: theme.palette.background.paper,\r\n overflow: 'auto',\r\n maxHeight: '60vh',\r\n boxShadow: theme.shadows[3],\r\n '& li': {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n padding: theme.spacing(1),\r\n ...theme.typography.body1,\r\n },\r\n '& li[data-focus=\"true\"]': {\r\n backgroundColor: theme.palette.grey[100],\r\n cursor: 'pointer',\r\n },\r\n '& li:active': {\r\n backgroundColor: theme.palette.grey[100],\r\n },\r\n },\r\n }),\r\n {\r\n name: 'BusinessUnitSearchBar',\r\n }\r\n);\r\n\r\nexport interface BusinessUnitSearchBarProps {\r\n disabled?:boolean;\r\n onBuChange: (businessUnit:BusinessUnit) => void;\r\n}\r\n\r\nexport const BusinessUnitSearchBar = (props: BusinessUnitSearchBarProps) => {\r\n const { disabled=false, onBuChange } = props;\r\n const classes = useStyles(props);\r\n const { data, isLoading, refetch } = useActiveBusinessUnitsQuery(0);\r\n useEffect(() => {\r\n refetch();\r\n }, []);\r\n const {\r\n getRootProps,\r\n getInputProps,\r\n popupOpen,\r\n groupedOptions,\r\n getListboxProps,\r\n getOptionProps,\r\n } = useAutocomplete({\r\n options: data ?? [],\r\n getOptionLabel: (option) => option.description,\r\n getOptionSelected: (option, value) => option.id === value.id,\r\n onChange: (e, bu) => {\r\n bu && onBuChange(bu);\r\n },\r\n });\r\n return (\r\n \r\n {popupOpen && groupedOptions.length > 0 ? (\r\n
    \r\n {groupedOptions.map((option, index) => (\r\n
  • \r\n {option.description}\r\n
  • \r\n ))}\r\n
\r\n ) : null}\r\n \r\n );\r\n};\r\n","import {\r\n Typography,\r\n List,\r\n ListItem,\r\n ListItemText,\r\n ListItemSecondaryAction,\r\n IconButton,\r\n Paper,\r\n} from '@material-ui/core';\r\nimport { Delete } from '@material-ui/icons';\r\nimport { ApprovalGroupUser } from '../model';\r\n\r\nexport interface ApprovalGroupUserListProps {\r\n items: ApprovalGroupUser[] | null;\r\n onDelete: (user: ApprovalGroupUser) => void;\r\n}\r\n\r\nexport const ApprovalGroupUserList = (props: ApprovalGroupUserListProps) => {\r\n const { items, onDelete } = props;\r\n if (!Array.isArray(items)) {\r\n return null;\r\n }\r\n return items.length > 0 ? (\r\n \r\n \r\n {items.map((u) => (\r\n \r\n \r\n \r\n onDelete(u)}>\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n ) : (\r\n No users in approval group...\r\n );\r\n};\r\n","import { FC, useEffect, useState } from 'react';\r\n\r\nimport { getPagination, PaginatedList, Sort } from 'model';\r\nimport { MyProfile } from 'MyProfile/model/MyProfile';\r\nimport { useUserHrgtQuery } from 'MyProfile/query/myProfile.query';\r\nimport { FormikAutocompleteField } from '../../../components/FormikField/FormikAutocompleteField/FormikAutocompleteField';\r\nimport { mapToAutocompleteFieldItems } from './utils';\r\n\r\nexport interface HrgtUserSelectFieldProps {\r\n name: string;\r\n initialValue?: string;\r\n disabled?: boolean;\r\n}\r\n\r\nconst defaultSort: Sort = {\r\n sortExpression: 'lastName',\r\n sortDescending: false,\r\n};\r\n\r\nconst searchTimeout = 1000;\r\nconst minLenOfSearchValue = 3;\r\n\r\n\r\nexport const HrgtUserSelectField: FC = ({\r\n name,\r\n initialValue,\r\n disabled = false\r\n}) => {\r\n const [value, setValue] = useState('');\r\n const { data = [], isLoading, isFetching, refetch } = useUserHrgtQuery(\r\n getPagination(20),\r\n defaultSort,\r\n {\r\n isExternal: false,\r\n personNameOrEmail: value,\r\n },\r\n {\r\n enabled: false\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n if (initialValue !== value && value.length >= minLenOfSearchValue) {\r\n const timer = setTimeout(() => refetch(), searchTimeout);\r\n return () => clearTimeout(timer);\r\n }\r\n return undefined;\r\n }, [value]);\r\n\r\n return (\r\n )}\r\n loading={isLoading || isFetching}\r\n onInputChange={(event, eventValue) => setValue(eventValue)}\r\n required\r\n disableClearable\r\n />\r\n );\r\n};\r\n","import { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport { Form, Formik } from 'formik';\r\nimport { AccordionActions, Grid, Button } from '@material-ui/core';\r\nimport { ApprovalGroupUser } from '../model';\r\nimport { CountriesSelectWithAllField } from '../../Dictionary/component';\r\nimport { HrgtUserSelectField } from '../../Dictionary/component/HrgtUserSelectField/HrgtUserSelectField';\r\nimport { Card } from '../../components/Page/Card/Card';\r\nimport { uuid } from '../../utils';\r\n\r\ninterface UserAutocompleteFieldItem extends AutocompleteFieldItem {\r\n geid?: string;\r\n email?: string;\r\n}\r\n\r\ninterface ApprovalGroupUserAddFormData {\r\n country: AutocompleteFieldItem;\r\n user: UserAutocompleteFieldItem;\r\n}\r\n\r\nconst useApprovalGroupUserAddFormInitialValues: ApprovalGroupUserAddFormData = {\r\n country: {},\r\n user: {},\r\n};\r\n\r\nexport interface ApprovalGroupUserAddFormProps {\r\n className?: string;\r\n onAddUser: (user: ApprovalGroupUser) => void;\r\n}\r\n\r\nexport const ApprovalGroupUserAddForm = (\r\n props: ApprovalGroupUserAddFormProps\r\n) => {\r\n const { className, onAddUser } = props;\r\n return (\r\n {\r\n helpers.resetForm();\r\n const countryId = Number(values?.country?.id);\r\n const countryName = String(values?.country?.name);\r\n const userID = Number(values?.user?.id === values?.user?.geid ? 0 : values?.user?.id);\r\n const userGeid = String(values?.user?.geid);\r\n const user: ApprovalGroupUser = {\r\n country: { id: countryId, code: '', name: countryName },\r\n userId: userID,\r\n displayName: `${values?.user?.name} - ${countryName}`,\r\n userName: values?.user?.email ?? '',\r\n userAuthorizationId: -1,\r\n geid: userGeid,\r\n id: uuid(),\r\n };\r\n onAddUser(user);\r\n }}\r\n >\r\n {({ resetForm, values }) => (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n","import { useState } from 'react';\r\nimport { Content } from 'components/Page';\r\nimport {\r\n ApprovalGroupsTable,\r\n BusinessUnitSearchBar,\r\n editApprovalGroupMutationKey,\r\n} from 'ApprovalGroupsPage/components';\r\nimport { BusinessUnit } from 'Dictionary/model/BusinessUnit';\r\nimport { useIsMutating } from 'react-query';\r\n\r\nexport const ApprovalGroupsPage = () => {\r\n const [businessUnit, setBusinessUnit] = useState(null);\r\n const mutating = useIsMutating({ mutationKey: editApprovalGroupMutationKey });\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","import { makeStyles, Typography } from '@material-ui/core';\r\nimport { ApprovalGroupUser } from 'ApprovalGroupsPage/model';\r\nimport { useApprovalGroupsDetailsQuery } from 'ApprovalGroupsPage/query/approvalGroup.query';\r\nimport { updateApprovalGroupUsers } from 'ApprovalGroupsPage/service/approvalGroup.api';\r\nimport { RoundButton } from 'components';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { useEffect, useState } from 'react';\r\nimport { useMutation } from 'react-query';\r\nimport { useParams } from 'react-router-dom';\r\nimport { ApprovalGroupsDetailsParams, approvalGroupsRoute } from 'route';\r\nimport { AbbTheme } from 'theme/createAbbTheme';\r\nimport {\r\n ApprovalGroupUserList,\r\n ApprovalGroupUserAddForm,\r\n} from '../../ApprovalGroupsPage/components';\r\nimport { AppShellBaseProps, DetailsAppShell } from '../../components/AppShell';\r\nimport { Content } from '../../components/Page';\r\n\r\nconst useStyles = makeStyles((theme: AbbTheme) => ({\r\n form: {\r\n borderRadius: theme.shape.borderRadius,\r\n border: `1px solid ${theme.palette.divider}`,\r\n marginBottom: theme.spacing(3),\r\n },\r\n subTitle: {\r\n marginBottom: theme.spacing(2),\r\n },\r\n}));\r\n\r\nexport interface ApprovalGroupDetailsPageProps extends AppShellBaseProps {}\r\n\r\nexport const ApprovalGroupDetailsPage = (\r\n props: ApprovalGroupDetailsPageProps\r\n) => {\r\n const { logout } = props;\r\n const classes = useStyles();\r\n const [approvalGroupUsers, setApprovalGroupUsers] = useState<\r\n ApprovalGroupUser[] | null\r\n >(null);\r\n const { groupId } = useParams();\r\n const { data, isLoading, refetch } = useApprovalGroupsDetailsQuery(\r\n Number(groupId)\r\n );\r\n const { showSuccess, showError } = useToasts();\r\n const { mutate: updateUsers, isLoading: mutating } = useMutation({\r\n mutationKey: 'update-approval-group-users',\r\n mutationFn: updateApprovalGroupUsers,\r\n onSuccess: () => {\r\n showSuccess('Approval group users were updated');\r\n refetch();\r\n setApprovalGroupUsers(null);\r\n },\r\n onError: () => {\r\n showError('Cannot update group of the users');\r\n },\r\n });\r\n useEffect(() => {\r\n if (groupId) {\r\n refetch();\r\n }\r\n }, [groupId]);\r\n useEffect(() => {\r\n if (data?.approvalGroupUsers) {\r\n setApprovalGroupUsers(data?.approvalGroupUsers.map((x) => ({ ...x })));\r\n }\r\n }, [data]);\r\n const handleDeleteUser = (user: ApprovalGroupUser) => {\r\n const index =\r\n approvalGroupUsers?.findIndex(\r\n (x) => x.userAuthorizationId === user.userAuthorizationId\r\n ) ?? -1;\r\n if (index > -1 && approvalGroupUsers) {\r\n const nextArr = [...approvalGroupUsers];\r\n nextArr.splice(index, 1);\r\n setApprovalGroupUsers(nextArr);\r\n }\r\n };\r\n const handleAddUser = (user: ApprovalGroupUser) => {\r\n setApprovalGroupUsers([{ ...user }, ...(approvalGroupUsers ?? [])]);\r\n };\r\n const handleUpdateUsers = () => {\r\n if (approvalGroupUsers) {\r\n updateUsers({\r\n approvalGroupId: Number(groupId),\r\n approvalGroupUsers,\r\n });\r\n }\r\n };\r\n return (\r\n \r\n (\r\n \r\n Save changes\r\n \r\n )}\r\n >\r\n \r\n {`Users in the group (${\r\n approvalGroupUsers?.length ?? 0\r\n })`}\r\n \r\n \r\n \r\n );\r\n};\r\n","import React, { Dispatch, DispatchWithoutAction } from 'react';\r\nimport {\r\n Content,\r\n DataTable,\r\n DataTableColumn,\r\n TablePagination,\r\n IconButton,\r\n UsedIcons,\r\n Button,\r\n Loader,\r\n SearchResults,\r\n useConfirmationModal,\r\n Card,\r\n Stack\r\n} from 'components'\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { PaginatedList, PaginationDto } from 'model';\r\nimport { useHistory } from 'react-router-dom';\r\n\r\nexport type { DataTableColumn }\r\n\r\ninterface State> {\r\n data?: PaginatedList\r\n query: TQueryModel\r\n loadedOn: number\r\n adding: boolean\r\n}\r\n\r\ninterface ViewPorts {\r\n doDelete: Dispatch\r\n doEdit: Dispatch\r\n doGoToDetails: Dispatch<{ item: TDataModel, newWindow?: boolean }>\r\n doRefreshList: DispatchWithoutAction\r\n}\r\n\r\nexport interface RowContext {\r\n item: TDataModel\r\n isExpanded: boolean\r\n ports: ViewPorts\r\n}\r\n\r\nexport interface PagePorts {\r\n showSuccess: (success: string) => void\r\n showError: (error: string) => void\r\n reloadData: () => void\r\n}\r\n\r\ntype InRowActionType = 'EDIT' | 'DETAILS'\r\nexport function PageBase>(p: {\r\n defaultQuery: TQueryModel\r\n pageSettings: {\r\n title: string\r\n subtitle: string\r\n editTitle?: string\r\n addTitle?: string\r\n details?: {\r\n route: (item: TDataModel) => string\r\n }\r\n menu?: {\r\n component: (item: TDataModel) => JSX.Element\r\n }\r\n newItem?: {\r\n actionCaption: string\r\n route?: () => string\r\n inPageAsRowView?: boolean\r\n }\r\n rowActionComponent?: (p: RowContext) => JSX.Element\r\n selectedActionComponent?: (p: { selectedRows: string[], pagePorts: PagePorts }) => JSX.Element\r\n inRowAction?: InRowActionType\r\n editorWithPrefetch?: boolean\r\n deleteItem?: {\r\n confirmTitle: string\r\n confirmDescription: string\r\n confirmButton: string\r\n }\r\n }\r\n\r\n renderHandlers?: {\r\n list?: (render: () => JSX.Element) => JSX.Element\r\n }\r\n\r\n getIdFor: ((item: TDataModel) => string) | ((item: TDataModel) => number)\r\n contract: ApiContract\r\n\r\n columns: DataTableColumn[]\r\n getRowView: (row: TDataModel | null, cancelHandler: React.DispatchWithoutAction, updateHandler: React.Dispatch) => JSX.Element\r\n getSearchFiltersForm: (onQuery: React.Dispatch) => JSX.Element\r\n\r\n SearchFiltersForm?: (p: { defaultQuery: TQueryModel, onQuery: React.Dispatch }) => JSX.Element\r\n}) {\r\n const inRowAction: InRowActionType = p.pageSettings.inRowAction ?? 'EDIT'\r\n\r\n type MyState = State;\r\n const { defaultQuery, contract, pageSettings } = p;\r\n const { showSuccess, showError } = useToasts();\r\n const { Modal, openModal } = useConfirmationModal({ ...p.pageSettings.deleteItem, onConfirmed: doDelete })\r\n\r\n ///\r\n ///\r\n const [state, setState] = React.useState({ query: defaultQuery, loadedOn: 0, adding: false });\r\n\r\n ///\r\n ///\r\n function loadData(query?: TQueryModel) {\r\n const queryToUse = query ?? defaultQuery;\r\n contract.find(queryToUse)\r\n .then(x => setState({ ...state, query: query ?? state.query, data: x, loadedOn: new Date().getTime(), adding: false }));\r\n }\r\n function loadDataBase() {\r\n setState(s => ({ ...s, data: undefined }))\r\n contract\r\n .find(state.query)\r\n .then(x => setState(s => ({ ...s, data: x, loadedOn: new Date().getTime(), adding: false })))\r\n }\r\n\r\n function doDelete(row: TDataModel) {\r\n const id = p.getIdFor(row)\r\n contract.delete(id)\r\n .then(e => showSuccess('Item deleted'))\r\n .then(() => loadDataBase())\r\n .catch(e => showError(e.message ? `Cannot delete item. Additional message: ${e.message}` : \"Cannot delete item.\"))\r\n }\r\n\r\n function doUpdate(row: TDataModel) {\r\n contract\r\n .update(row)\r\n .then(e => showSuccess('Item updated'))\r\n .then(() => loadDataBase())\r\n .catch(e => showError(e.message ? `Cannot update item. Additional message: ${e.message}` : \"Cannot update item.\"))\r\n }\r\n\r\n function doAdd(row: TDataModel) {\r\n contract\r\n .add(row)\r\n .then(e => showSuccess('Item added'))\r\n .then(() => loadDataBase())\r\n .catch(e => showError(e.message ? `Cannot add item. Additional message: ${e.message}` : \"Cannot add item.\"))\r\n }\r\n\r\n function doGoToDetails(row: TDataModel, onNewWindow?: boolean) {\r\n const route = p.pageSettings.details!.route(row)\r\n if (onNewWindow)\r\n window.open(route, '_blank')\r\n else\r\n history.push(route)\r\n }\r\n\r\n ///\r\n ///\r\n ///\r\n\r\n ///\r\n /// Effectss\r\n React.useEffect(\r\n loadDataBase,\r\n [state.query]);\r\n\r\n ///\r\n ///\r\n const onQuery = (query: TQueryModel) =>\r\n setState(s => ({ ...s, query: { ...query } }))\r\n const onChangeSort = (sortExpression: keyof TDataModel, sortDescending: boolean) =>\r\n setState(s => ({ ...s, query: { ...s.query!, sortDescending, sortExpression } }));\r\n\r\n const onChangePage = (currentPageIndex: number) =>\r\n setState(s => ({ ...s, query: { ...s.query, currentPageIndex } }))\r\n\r\n const onChangeRowsPerPage = (pageSize: number) =>\r\n setState(s => ({ ...s, query: { ...s.query, pageSize } }))\r\n\r\n const onEditRow = (row: TDataModel) => { };\r\n\r\n\r\n const onGoToDetails = doGoToDetails;\r\n\r\n const onUpdateRow = (item: TDataModel) => {\r\n const itemId = p.getIdFor(item);\r\n const isNew = state.data!.result.findIndex(x => p.getIdFor(x) === itemId) < 0\r\n\r\n isNew ? doAdd(item) : doUpdate(item);\r\n };\r\n\r\n const onDeleteRow = (item: TDataModel) => openModal(item)\r\n\r\n const onBeginAdd = () => setState({ ...state, adding: true });\r\n const onCancelAdd = () => setState({ ...state, adding: false });\r\n\r\n ///\r\n ///\r\n const getColumns = () => p.columns;\r\n\r\n const history = useHistory();\r\n function getRowActions(row: TDataModel, collapseRow: DispatchWithoutAction, isExpanded: boolean) {\r\n\r\n\r\n if (p.pageSettings.rowActionComponent) {\r\n const ctx = {\r\n item: row,\r\n isExpanded,\r\n ports: {\r\n doDelete: onDeleteRow,\r\n doEdit: (row: TDataModel) => {\r\n onEditRow(row);\r\n collapseRow();\r\n },\r\n doGoToDetails: (p: { item: TDataModel, newWindow?: boolean }) => {\r\n onGoToDetails(p.item, p.newWindow)\r\n },\r\n doRefreshList: () => {\r\n showSuccess(\"Item withdrawn\");\r\n loadDataBase();\r\n }\r\n }\r\n }\r\n const result = p.pageSettings.rowActionComponent(ctx)\r\n return result\r\n }\r\n\r\n const editDetails = {\r\n onEditRow(row);\r\n collapseRow();\r\n }}\r\n >\r\n {inRowAction == \"EDIT\" ? : }\r\n \r\n\r\n const deletePart = onDeleteRow(row)}\r\n >\r\n \r\n \r\n\r\n const gotToDetails = p.pageSettings.details === undefined ? <> :\r\n onGoToDetails(row, e.ctrlKey)} >\r\n \r\n \r\n\r\n const closePart = {\r\n collapseRow();\r\n }}\r\n >\r\n \r\n \r\n\r\n return !isExpanded ?\r\n (<>\r\n {editDetails}\r\n {gotToDetails}\r\n {deletePart}\r\n ) :\r\n (<>\r\n {gotToDetails}\r\n {closePart}\r\n );\r\n }\r\n function getRowView(row: TDataModel | null, cancelHandler: React.DispatchWithoutAction) {\r\n const isNew = !row\r\n const editAdd = isNew ? (p.pageSettings.addTitle ?? \"Add\") : (p.pageSettings.editTitle ?? \"Edit\")\r\n return (\r\n \r\n {getRowViewBase(row, cancelHandler)}\r\n )\r\n }\r\n\r\n function getRowViewBase(row: TDataModel | null, cancelHandler: React.DispatchWithoutAction) {\r\n if (!row) {\r\n if (!p.pageSettings.newItem) return (<>)\r\n if (p.pageSettings.newItem.inPageAsRowView) return p.getRowView(row, cancelHandler, onUpdateRow)\r\n if (!p.pageSettings.newItem.route) return (<>)\r\n\r\n history.push(p.pageSettings.newItem.route())\r\n return (<>)\r\n }\r\n\r\n if (p.pageSettings.editorWithPrefetch)\r\n return \r\n return p.getRowView(row, cancelHandler, onUpdateRow);\r\n }\r\n\r\n function getNewRowView() {\r\n return !state.adding ?\r\n <> :\r\n <>{getRowView(null, onCancelAdd)}\r\n }\r\n\r\n function getSearchFiltersForm() {\r\n return p.getSearchFiltersForm(onQuery);\r\n }\r\n\r\n\r\n function getSearchResultActiona() {\r\n return state.adding ? (<>) : (<>\r\n \r\n );\r\n }\r\n\r\n ///\r\n /// Effects\r\n // React.useEffect(\r\n // loadData,\r\n // []); \r\n\r\n ///\r\n /// Render\r\n\r\n const renderList = () => (\r\n <>\r\n {getNewRowView()}\r\n \r\n\r\n {!state.data ?\r\n <> :\r\n <>\r\n onChangeSort(\r\n sortExpression,\r\n direction !== 'desc'\r\n )\r\n }\r\n\r\n columns={getColumns()}\r\n renderRowActions={getRowActions}\r\n rows={state.data?.result ?? []}\r\n selectIsRowSelectable={x => true}\r\n checkboxSelection={!!p.pageSettings.selectedActionComponent}\r\n renderSelectedActions={(x, y) => p.pageSettings.selectedActionComponent && p.pageSettings.selectedActionComponent({ selectedRows: x, pagePorts: { showSuccess, showError, reloadData: loadDataBase } })}\r\n loading={!state.data}\r\n rowSelector={p.getIdFor}\r\n hideCollapseColumn\r\n renderCollapseRow={(row, collapse) => getRowView(row, collapse)} />\r\n onChangePage(p)}\r\n onChangeRowsPerPage={(e) => onChangeRowsPerPage(parseInt(e.target.value, 10))}\r\n\r\n pagination={state.data ?? { currentPageIndex: 0, pageSize: 10, total: 0 }} />\r\n \r\n }\r\n \r\n )\r\n\r\n return (\r\n \r\n \r\n {getSearchFiltersForm()}\r\n\r\n {p.renderHandlers && p.renderHandlers.list ? p.renderHandlers.list(renderList) : renderList()}\r\n \r\n );\r\n}\r\n\r\n\r\nfunction EditorWithPrefetch(p: {\r\n itemId: string | number\r\n onCancel: React.DispatchWithoutAction\r\n onCommit: React.Dispatch\r\n contract: ApiContract\r\n getRowView: (row: TDataModel | null, cancelHandler: React.DispatchWithoutAction, updateHandler: React.Dispatch) => JSX.Element\r\n}) {\r\n const [state, setState] = React.useState<{ fetched?: TDataModel }>({});\r\n\r\n function loadDataBase() {\r\n p.contract.get(p.itemId)\r\n .then(x => setState({ fetched: x }));\r\n }\r\n React.useEffect(\r\n loadDataBase,\r\n []);\r\n\r\n const toEdit = state.fetched\r\n if (!toEdit) return \r\n return (p.getRowView(toEdit, p.onCancel, p.onCommit))\r\n}","import React from 'react'\r\nimport {\r\n Checkbox,\r\n EditorFormActions,\r\n FieldRoot,\r\n FluidForEditors,\r\n FormControlLabel,\r\n} from 'components'\r\nimport { Form, Formik, FormikTextField, Yup, FormikProps, DictionaryFieldByCode } from 'components/FormikField';\r\n\r\n\r\nimport { dictionaryApi } from 'Dictionary/service/dictionary.api';\r\nimport * as Model from './model'\r\n\r\ntype DTOModel = Model.CompanyInfoDTO\r\n\r\nexport default function Editor(p: {\r\n item: DTOModel\r\n onCancel: React.DispatchWithoutAction\r\n onCommit: React.Dispatch\r\n}) {\r\n let similarNameError: boolean = false;\r\n const toEdit = p.item\r\n const onCancelAdd = () => p.onCancel()\r\n const onUpdateRow = (item: DTOModel) => p.onCommit(item)\r\n\r\n function renderForm(formikProps: FormikProps) {\r\n return (\r\n
\r\n \r\n A similar Company already exists) : null} error={similarNameError}/>\r\n\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n
 
\r\n }\r\n label=\"Part of ABB\"\r\n name=\"isAbb\"\r\n labelPlacement=\"end\"\r\n onChange={formikProps.handleChange}\r\n />\r\n
\r\n
\r\n \r\n \r\n )\r\n }\r\n const formValidationSchema = Yup.object().shape({\r\n divisions: Yup.array().min(1),\r\n country: Yup.object().nullable().required(),\r\n city: Yup.string().required(),\r\n name: Yup.string().required()\r\n .when([\"country\", \"divisions\"], {\r\n is: (country: DictionaryItemByCodeDTO, divisions: DictionaryItemByCodeDTO[]) => !!country && divisions.length>0,\r\n then: Yup.string().required().test(\"checkIsNameUnique\",\"A similar Company already exists\",\r\n (value, context) => \r\n new Promise((resolve) => {\r\n const query = {\r\n name: value,\r\n divisions: context.parent.divisions,\r\n country: context.parent.country\r\n };\r\n dictionaryApi.company.find(query as Model.CompanyFindQuery).then(res => {\r\n similarNameError = res.total > 0;\r\n resolve(true);\r\n });\r\n }\r\n )\r\n ),\r\n }), \r\n channels: Yup.array().required().when(\"isAbb\", {\r\n is: false,\r\n then: Yup.array().min(1).required()\r\n })\r\n });\r\n\r\n if (!toEdit) return (<>)\r\n return (<>\r\n \r\n {(formikProps) => renderForm(formikProps)}\r\n \r\n )\r\n}\r\n","import { Dispatch } from 'react'\r\nimport { FluidForEditors, SearchFiltersFormSmart } from 'components'\r\nimport { FormikTextField, DictionaryFieldByCode } from 'components/FormikField';\r\n\r\nimport * as Model from './model'\r\n\r\nexport default function SearchForm(p: {\r\n defaultQuery: Model.CompanyFindQuery\r\n onQuery: Dispatch\r\n}) {\r\n\r\n return (\r\n \r\n {(fp) => (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n )\r\n }\r\n \r\n )\r\n}\r\n","import { PageBase } from 'components/Page/PageBase'\r\nimport { Button } from 'components'\r\n\r\nimport * as Model from 'Dictionary/model/Company'\r\nimport * as API from 'Dictionary/service/dictionary.api'\r\n\r\nimport EditorPart from './Editor'\r\nimport FiltersPart from './Filters'\r\n\r\ntype QueryModel = Model.CompanyFindQuery\r\ntype DTOModel = Model.CompanyInfoDTO\r\nexport const ContractAPI = API.dictionaryApi.company\r\n\r\nconst defaulQuery: QueryModel = {\r\n currentPageIndex: 0,\r\n pageSize: 50,\r\n sortExpression: \"name\",\r\n sortDescending: false,\r\n}\r\nconst defaultNewItem: DTOModel = { id: 0, divisions: [], channels: [] } as unknown as DTOModel\r\nconst getRowId = (row: DTOModel) => row.id\r\n\r\nexport default function Page(p?: { contract?: ApiContract }) {\r\n\r\n const getNewItem = (): DTOModel => ({ ...defaultNewItem })\r\n return PageBase({\r\n defaultQuery: { ...defaulQuery },\r\n getIdFor: getRowId,\r\n contract: p?.contract ?? ContractAPI,\r\n pageSettings: {\r\n title: \"Manage companies\",\r\n subtitle: \"Here you can add or manage existing companies\",\r\n editTitle: \"Edit company\",\r\n addTitle: \"Add company\",\r\n newItem: {\r\n actionCaption: \"ADD COMPANY\",\r\n inPageAsRowView: true\r\n },\r\n editorWithPrefetch: true,\r\n deleteItem: {\r\n confirmTitle: \"Delete Company\",\r\n confirmDescription: \"Deleted Company can't be restored.\",\r\n confirmButton: \"DELETE\"\r\n },\r\n selectedActionComponent: ctx => (<>\r\n )\r\n\r\n },\r\n getRowView: (row, cancelHandler, updateHandler) => (),\r\n getSearchFiltersForm: (onQuery) => ( onQuery(q)} />),\r\n SearchFiltersForm: FiltersPart,\r\n columns: (\r\n [\r\n {\r\n field: 'name',\r\n headerName: 'Company',\r\n },\r\n {\r\n field: 'divisions',\r\n headerName: 'Division',\r\n\r\n notSortable: true,\r\n renderField: (r) => r.divisions.map(x => x.display).join(\", \")\r\n },\r\n {\r\n field: 'country',\r\n headerName: 'Country',\r\n renderField: (r) => r.country.display\r\n },\r\n {\r\n field: 'city',\r\n headerName: 'City'\r\n },\r\n {\r\n field: 'isAbb',\r\n width: 50,\r\n headerName: 'ABB',\r\n renderField: (r) => r.isAbb ? \"Yes\" : \"No\"\r\n }\r\n ]\r\n )\r\n })\r\n};\r\n","import React from 'react'\r\nimport { dictionaryApi } from 'Dictionary/service/dictionary.api';\r\nimport * as Model from 'Dictionary/model/ScopeDetail'\r\n\r\nimport {\r\n Grid,\r\n EditorFormActions\r\n} from 'components'\r\nimport { FormikTextField } from 'components/FormikField/FormikTextField/FormikTextField';\r\nimport { Form, Formik, FormikProps } from 'formik';\r\nimport * as Yup from 'yup';\r\nimport { BusinessUnitSelectField, ScopeSelectField } from 'Dictionary/component';\r\n\r\ntype DTOModel = Model.ScopeKeyword\r\n\r\nexport default function Editor(p: {\r\n item: DTOModel\r\n onCancel: React.DispatchWithoutAction\r\n onCommit: React.Dispatch\r\n}) {\r\n let similarNameError: boolean = false;\r\n const x = p.item\r\n const toEdit = {\r\n ...x,\r\n division: x.division ? { ...x.division, name: x.division?.description } : undefined,\r\n scope: x.scope ? { ...x.scope, name: x.scope?.description } : undefined\r\n } as DTOModel\r\n\r\n const onCancelAdd = () => p.onCancel()\r\n const onUpdateRow = (item: DTOModel) => p.onCommit(item)\r\n\r\n function renderForm(formikProps: FormikProps) {\r\n return (\r\n
\r\n <>\r\n \r\n \r\n A similar Scope already exists) : null} error={similarNameError}/>\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n <>\r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const formValidationSchema = Yup.object().shape({\r\n scope: Yup.object().required(\"This field is required\").nullable(),\r\n division: Yup.object().required(\"This field is required\").nullable(),\r\n title: Yup.string().required().required()\r\n .when([\"scope\", \"division\"], {\r\n is: (scope: DictionaryItemByCodeDTO, division: DictionaryItemByCodeDTO) => !!scope && !!division,\r\n then: Yup.string().required().test(\"checkIsNameUnique\",\"A similar Scope already exists\",\r\n (value, context) => \r\n new Promise((resolve) => {\r\n const query = {\r\n division: context.parent.division,\r\n scope: context.parent.scope\r\n };\r\n dictionaryApi.scopeKeyword.find(query as Model.ScopeDetailFindQuery).then(res => {\r\n similarNameError = res.result.find(sc => sc.title == value) != null;\r\n resolve(true);\r\n });\r\n })\r\n ),\r\n }), \r\n });\r\n\r\n if (!toEdit) return (<>)\r\n return (<>\r\n \r\n {(formikProps) => renderForm(formikProps)}\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport * as Model from 'Dictionary/model/ScopeDetail'\r\nimport {\r\n SearchFiltersForm,\r\n FluidForEditors,\r\n DictionaryFieldByCode,\r\n} from 'components'\r\nimport { BusinessUnitSelectField, ScopeSelectField } from 'Dictionary/component'\r\n\r\nexport default function Filter(p: {\r\n defaultQuery: Model.ScopeDetailFindQuery\r\n onQuery: React.Dispatch\r\n}) {\r\n const initialValues = {\r\n searchText: '',\r\n ...p.defaultQuery\r\n };\r\n\r\n // eslint-disable-next-line\r\n const onSubmit = (query: any) => {\r\n const targetQuery: Model.ScopeDetailFindQuery = {\r\n ...query,\r\n\r\n title: query.searchText,\r\n businessArea: query.businessArea,\r\n division: query.division,\r\n scope: query.scope,\r\n\r\n }\r\n p.onQuery(targetQuery)\r\n }\r\n\r\n return (<>\r\n \r\n {(fp) => (\r\n <>\r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n )\r\n }\r\n \r\n \r\n )\r\n}\r\n","import * as AppModel from 'model';\r\n\r\nimport * as Model from 'Dictionary/model/ScopeDetail'\r\nimport * as API from 'Dictionary/service/dictionary.api';\r\n\r\nimport { PageBase } from 'components/Page/PageBase';\r\n\r\nimport EditorPart from './Editor'\r\nimport FiltersPart from './Filters'\r\n\r\ntype QueryModel = Model.ScopeDetailFindQuery\r\ntype DTOModel = Model.ScopeKeyword\r\nexport const ContractAPI = API.dictionaryApi.scopeKeyword\r\n\r\nconst defaulQuery: QueryModel = {\r\n currentPageIndex: 0, pageSize: 50,\r\n sortExpression: \"title\",\r\n sortDescending: false\r\n}\r\nconst defaultNewItem: DTOModel = { id: 0, sequence: 1, title: '' }\r\nconst getRowId = (row: DTOModel) => row.id\r\n\r\nexport default function Page() {\r\n\r\n const getNewItem = (): DTOModel => ({ ...defaultNewItem })\r\n\r\n return PageBase({\r\n defaultQuery: { ...defaulQuery },\r\n getIdFor: getRowId,\r\n contract: ContractAPI,\r\n pageSettings: {\r\n title: \"Manage Scope Details\",\r\n subtitle: \"Here you can find, define, edit or delete Scope Details\",\r\n editTitle: \"Edit detail\",\r\n addTitle: \"Add new detail\",\r\n newItem: {\r\n actionCaption: \"ADD NEW\",\r\n inPageAsRowView: true\r\n },\r\n deleteItem: {\r\n confirmTitle: \"Delete Scope Detail\",\r\n confirmDescription: \"Deleted Scope Detail can't be restored.\",\r\n confirmButton: \"DELETE\"\r\n }\r\n },\r\n getRowView: (row, cancelHandler, updateHandler) => (),\r\n getSearchFiltersForm: (onQuery) => ( onQuery(q)} />),\r\n columns: (\r\n [\r\n {\r\n field: 'title',\r\n headerName: 'Title',\r\n },\r\n {\r\n field: 'scope',\r\n headerName: 'Scope',\r\n renderField: (r) => r.scope?.description\r\n },\r\n {\r\n field: 'division',\r\n headerName: 'Division',\r\n renderField: (r) => r.division?.description\r\n }\r\n ])\r\n })\r\n\r\n}\r\n","import { makeDefaultApi } from 'Dictionary/service/dictionary.api';\r\nimport { EnrollmentResponse } from 'CertificationList/model/MassEnrollResponse';\r\nimport { API as CAPI, CertificateListLookupDTO, PaginationDto } from '../Certificate/model';\r\n\r\nexport const API =\r\n{\r\n ITrainingSetContract: {\r\n ...makeDefaultApi({ basePath: \"admin/training-set/\" }),\r\n },\r\n dictionaryQuery: (query: {\r\n key: KnowDictionaryKey,\r\n businessArea?: DictionaryItemByCodeDTO,\r\n division?: DictionaryItemByCodeDTO,\r\n divisions?: DictionaryItemByCodeDTO[],\r\n scope?: DictionaryItemByCodeDTO\r\n }) => CAPI.ICertificateListContract.dictionaryQuery(query)\r\n}\r\n\r\nexport interface TrainingSetFindQueryDTO extends PaginationDto {\r\n name?: string,\r\n division?: DictionaryItemByCodeDTO,\r\n functionalJobFamily?: DictionaryItemByCodeDTO,\r\n functionalJob?: DictionaryItemByCodeDTO,\r\n country?: DictionaryItemByCodeDTO,\r\n userType?: DictionaryItemByCodeDTO\r\n}\r\n\r\nexport interface TrainingSetDTO {\r\n id: number;\r\n isActive: boolean;\r\n name: string;\r\n createdOn: string;\r\n editedOn: string;\r\n forUserType: DictionaryItemByCodeDTO;\r\n forCountry: DictionaryItemByCodeDTO[];\r\n forDivision: DictionaryItemByCodeDTO[];\r\n forProductGroup: DictionaryItemByCodeDTO[];\r\n forFunctionalJob: DictionaryItemByCodeDTO[];\r\n forFunctionalJobFamily: DictionaryItemByCodeDTO[];\r\n certificates: CertificateListLookupDTO[];\r\n divisions: DictionaryItemByCodeDTO[];\r\n\r\n reagisterAllUsers: boolean;\r\n automaticRenewal: boolean;\r\n}\r\n\r\nexport interface TrainingSetUpdateResultDTO{\r\n usersEnrolled: number;\r\n success: EnrollmentResponse[];\r\n failed: EnrollmentResponse[];\r\n}\r\n\r\n","import { Dispatch } from 'react';\r\nimport { DictionaryField, FluidForEditors, SearchFiltersFormSmart } from 'components';\r\nimport { API } from './model';\r\n\r\nimport * as Model from './model';\r\n\r\nexport default function FiltersPart(p: {\r\n defaultQuery: Model.TrainingSetFindQueryDTO\r\n onQuery: Dispatch;\r\n}) {\r\n\r\n return (\r\n \r\n {(fp) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n","import { Dispatch } from 'react'\r\nimport {\r\n FluidForEditors,\r\n SearchFiltersFormSmart,\r\n DictionaryFieldByCode,\r\n} from 'components'\r\nimport * as Model from './model'\r\n\r\ntype QueryModel = Model.CertificateListDefinitionFindQuery\r\n\r\nexport default function SearchForm(props: {\r\n defaulQuery: QueryModel\r\n onQuery: Dispatch\r\n}) {\r\n\r\n // eslint-disable-next-line\r\n const onSubmit = (query: QueryModel) => {\r\n props.onQuery(query)\r\n }\r\n\r\n return (\r\n \r\n {(fp) => (<>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n )\r\n }\r\n \r\n )\r\n}\r\n","import React from 'react'\r\nimport {\r\n DataTableColumn,\r\n IconButton,\r\n UsedIcons,\r\n useToasts\r\n} from 'components'\r\n\r\nimport * as route from 'route';\r\n\r\nimport { Menu, MenuList, MenuItem } from '@material-ui/core';\r\nimport { AbbColor, StatusChip } from 'components/StatusChip';\r\nimport { formatDate } from 'utils';\r\nimport {\r\n API,\r\n CertificateListDefinitionDTO,\r\n CertificateListDefinitionFindQuery,\r\n CertificateListLookupDTO,\r\n KnownCertificateListStatus\r\n} from './model';\r\nimport { PageBase, RowContext } from '../../../components/Page/PageBase';\r\n\r\n//import Editor from './Editor'\r\nimport FiltersPart from './Filters'\r\n// eslint-disable-next-line\r\nfunction Editor(p: any) {\r\n return <>EDITOR\r\n}\r\n\r\n\r\ntype QueryModel = CertificateListDefinitionFindQuery\r\ntype DTOModel = CertificateListLookupDTO\r\n\r\nconst defaulQuery: QueryModel = {\r\n purpose: \"Manage\",\r\n sortExpression: \"publishDate\",\r\n sortDescending: true,\r\n currentPageIndex: 0,\r\n pageSize: 50\r\n}\r\n\r\nconst StatusColors: { [key: string]: AbbColor } = {\r\n \"Published\": 'green',\r\n \"Other\": 'red'\r\n}\r\n\r\nconst cols: DataTableColumn[] = [\r\n {\r\n field: 'title',\r\n headerName: 'Certificate',\r\n width: 350,\r\n },\r\n {\r\n field: 'division',\r\n headerName: 'Division',\r\n renderField: (r) => r.division?.display\r\n },\r\n {\r\n field: 'owner',\r\n headerName: 'Owner',\r\n renderField: (r) => r.owner ? `${r.owner.firstName} ${r.owner.lastName}` : ''\r\n },\r\n {\r\n field: 'release',\r\n headerName: 'Release'\r\n },\r\n {\r\n field: 'level',\r\n headerName: 'Level',\r\n renderField: (r) => r.level?.display\r\n },\r\n {\r\n field: 'publishDate',\r\n headerName: 'Published on',\r\n renderField: ({ publishDate }) => formatDate(publishDate)\r\n },\r\n {\r\n field: 'status',\r\n headerName: 'Status',\r\n renderField: (r) => \r\n },\r\n]\r\n\r\nfunction ContextMenu(p: RowContext, showError: (error: string) => void) {\r\n const { item } = p\r\n\r\n return (\r\n p.ports.doGoToDetails({ item, newWindow: e.ctrlKey })}>Edit\r\n API.ICertificateListContract\r\n .Withdraw(item)\r\n .then(p.ports.doRefreshList)}>Withdraw\r\n API.ICertificateListContract\r\n .Copy(item)\r\n .then(x => p.ports.doGoToDetails({ item: { id: x.itemID } as DTOModel, newWindow: false }))\r\n .catch(e => showError(e.message ? `Cannot create copy. Additional message: ${e.message}` : \"Cannot create copy.\"))}>Create copy\r\n {(item.status.code !== KnownCertificateListStatus.Draft) && \r\n <> API.ICertificateListContract\r\n .NewVersion(item)\r\n .then(x => p.ports.doGoToDetails({ item: { id: x.itemID } as DTOModel, newWindow: false }))\r\n .catch(e => showError(e.message ? `Cannot create new version. Additional message: ${e.message}` : \"Cannot create new version.\"))}>Add new version\r\n API.ICertificateListContract\r\n .NewSubVersion(item)\r\n .then(x => p.ports.doGoToDetails({ item: { id: x.itemID } as DTOModel, newWindow: false }))\r\n .catch(e => showError(e.message ? `Cannot create new subversion. Additional message: ${e.message}` : \"Cannot create new subversion.\"))}>Add new subversion\r\n }\r\n )\r\n\r\n}\r\n\r\nexport function Page() {\r\n const { showError } = useToasts();\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n\r\n const list = PageBase({\r\n defaultQuery: defaulQuery,\r\n getIdFor: (item) => item.id,\r\n contract: API.ICertificateListContract,\r\n\r\n pageSettings: {\r\n title: \"Manage certificates\",\r\n subtitle: \"Here you can start working on certificate list\",\r\n details: {\r\n route: (item) => route.manageCertificatesDetailsRoute.createRoute({ itemId: item.id.toString() })\r\n },\r\n newItem: {\r\n actionCaption: \"ADD CERTIFICATE\",\r\n route: () => route.manageCertificatesDetailsRoute.createRoute({ itemId: \"0\" })\r\n },\r\n rowActionComponent: (p) => <>\r\n { setAnchorEl({ target: e.currentTarget, menu: ContextMenu(p as unknown as RowContext, showError) }) }}\r\n >\r\n \r\n \r\n \r\n },\r\n columns: cols,\r\n getRowView: (row, cancelHandler, updateHandler) => (),\r\n getSearchFiltersForm: (onQuery) => ()\r\n })\r\n\r\n return (<>\r\n {list}\r\n
\r\n )\r\n}\r\n\r\n;","import { ModalQuetionProps, useConfirmationModal2 } from 'hooks/useModal';\r\nimport { createContext, PropsWithChildren, useContext, useMemo } from 'react';\r\n\r\nexport type { ModalQuetionProps }\r\ninterface PCSContextRef {\r\n onLogout: () => void\r\n user: string\r\n showQuestion: (p: ModalQuetionProps) => void\r\n}\r\ninterface PCSProviderData {\r\n onLogout: () => void\r\n user: string\r\n}\r\n\r\nexport const PCSContext = createContext(null)\r\nexport const usePCSContext = () => useContext(PCSContext)\r\nexport const PCSContextProvider = (p: PropsWithChildren) => {\r\n const Modal = useConfirmationModal2()\r\n\r\n const contextValue = useMemo(() => (\r\n {\r\n onLogout: p.onLogout,\r\n user: p.user,\r\n showQuestion: Modal.showQuestion\r\n }), [p])\r\n\r\n return (\r\n {p.children}\r\n \r\n )\r\n}\r\n","import { DispatchWithoutAction, useState } from 'react';\r\nimport { useQuery as callquery } from 'react-query';\r\nimport { Formik, FieldArray } from 'formik';\r\nimport { usePCSContext } from 'Router/PCSContext';\r\nimport {\r\n IconButton,\r\n Button, Card, Stack,\r\n DataTable, UsedIcons, ActionsRoot, DictionaryField, FluidForEditors,\r\n Typography\r\n} from 'components';\r\n\r\nimport * as Model from './model';\r\n\r\ntype TRootModel = Model.CertificateListDefinitionDTO\r\ntype TItemModel = Model.CertificateListAlternativeDTO\r\n\r\nexport function AlternativesCardPart() {\r\n\r\n const [show, setShow] = useState(false);\r\n const togleShow = () => setShow(prev => !prev)\r\n\r\n return (<>\r\n To set up alternatives that work in both directions, you need to insert two different lines: Requirement 010 is alternative for 020 and 020 is alternative for 010. Once the source requirement is approved (010), it automatically covers the completion of the alternative (020).\r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n {!show ?\r\n \r\n \r\n \r\n :\r\n \r\n \r\n }\r\n \r\n );\r\n}\r\n\r\nfunction AlternativeList() {\r\n const pcsContext = usePCSContext()!;\r\n return \r\n {arrayHelpers => {\r\n const items = arrayHelpers.form.values[arrayHelpers.name] as TItemModel[]\r\n function doDelete(item: TItemModel) {\r\n arrayHelpers.remove(items.indexOf(item));\r\n }\r\n\r\n function onDelete(item: TItemModel) {\r\n pcsContext.showQuestion({\r\n onConfirmed: () => doDelete(item),\r\n confirmTitle: \"Delete alternative?\",\r\n confirmDescription: \"This rule will be removed from alternatives list.\",\r\n confirmButton: \"DELETE\"\r\n });\r\n }\r\n return (<>\r\n r.source.map(x => `${x.code} - ${x.display}`).join(\", \") },\r\n { field: \"alternative\", headerName: \"Alternative\", renderField: (r: TItemModel) => r.alternative.map(x => `${x.code} - ${x.display}`).join(\", \") },\r\n ]}\r\n hideCollapseColumn\r\n rowSelector={x => x.id}\r\n renderCollapseRow={(item, collapseRow) => ()}\r\n rows={items}\r\n noDataMessage=\"Currently there are no alternatives set up. Click “Add alternative” button to add one.\"\r\n renderRowActions={(item, collapseRow) => (<>\r\n { collapseRow(); }}>\r\n \r\n \r\n onDelete(item)}>\r\n \r\n \r\n \r\n )} />\r\n \r\n )\r\n }}\r\n \r\n}\r\n\r\nfunction AlternativePart(p: {\r\n item?: TItemModel;\r\n onEnd: DispatchWithoutAction;\r\n}) {\r\n const fieldName = \"alternatives\";\r\n const data: Partial = p.item ?? {\r\n id: 0,\r\n source: [],\r\n alternative: []\r\n }\r\n return \r\n {arrayHelpers => {\r\n const { form } = arrayHelpers\r\n const isNew = data.id === 0\r\n const cancel = p.onEnd\r\n const submit = (value: Partial) => {\r\n const items = arrayHelpers.form.values[fieldName] as Partial[];\r\n const currentIndex = items.indexOf(data);\r\n currentIndex == -1 ? arrayHelpers.push(value) : arrayHelpers.replace(currentIndex, value);\r\n p.onEnd();\r\n }\r\n\r\n const getData = () => arrayHelpers.form.values.requirements.map((x: Record) => ({ id: x.id, code: x.code, display: x.description }));\r\n\r\n return (\r\n \r\n {formikProps => (<>\r\n \r\n getData(), { enabled: true })} />\r\n getData(), { enabled: true })} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n }}\r\n ;\r\n}\r\n","import {\r\n IconButton,\r\n Button, Typography, Card, Stack,\r\n DataTable, UsedIcons, FluidForEditors,\r\n ActionsRoot\r\n} from 'components';\r\nimport { Checkbox, FormControlLabel, Tooltip } from '@material-ui/core';\r\nimport Grid from '@material-ui/core/Grid';\r\nimport { Yup, Formik, FormikTextField, DictionaryFieldByCode, FieldArray, EditorHelper } from 'components/FormikField';\r\nimport { useState } from 'react';\r\nimport { usePCSContext } from 'Router/PCSContext';\r\n\r\nimport * as Model from './model';\r\nimport { KnownCertificateListStatus } from './model';\r\n\r\ntype TRootModel = Model.CertificateListDefinitionDTO\r\ntype TItemModel = Model.CertificateListRequirementDTO\r\n\r\nexport function RequirementsFormPart(p: { helper: EditorHelper>; }) {\r\n const [show, setShow] = useState(false);\r\n const togleShow = () => setShow(prev => !prev)\r\n const editable = p.helper.values.status?.code === KnownCertificateListStatus.Temporary || p.helper.values.status?.code === KnownCertificateListStatus.Draft;\r\n\r\n return (\r\n \r\n\r\n \r\n \r\n \r\n {editable ? <>{!show ?\r\n \r\n \r\n \r\n :\r\n \r\n \r\n }\r\n : null}\r\n );\r\n}\r\n\r\nfunction RequirementsList(p: {hideDelete: boolean}) {\r\n const pcsContext = usePCSContext()!;\r\n\r\n return \r\n {arrayHelpers => {\r\n const items = arrayHelpers.form.values[arrayHelpers.name] as TItemModel[]; \r\n function doDelete(item: TItemModel) {\r\n arrayHelpers.remove(items.indexOf(item));\r\n }\r\n\r\n function onDelete(item: TItemModel) {\r\n pcsContext.showQuestion({\r\n onConfirmed: () => doDelete(item),\r\n confirmTitle: \"Do you want to delete requirement?\",\r\n confirmDescription: \"Deleting requirement removes all alternatives including it\",\r\n confirmButton: \"DELETE\"\r\n });\r\n }\r\n return (\r\n (a.code).localeCompare(b.code))}\r\n rowSelector={x => items.indexOf(x)}\r\n columns={[\r\n { field: \"code\", headerName: \"Code\", width: 60 },\r\n {\r\n field: \"description\", headerName: \"Description\", width: 400, renderField: (r) => (<>\r\n {r.description}
\r\n \r\n {r.extendedDescription}\r\n )\r\n },\r\n { field: 'approverType', headerName: 'Approver', renderField: (r) => r.approverType.display },\r\n { field: 'expiration', headerName: 'Expiration', renderField: (r) => r.canExpire.code === \"YES\" ? `${r.expiration} month(s)` : 'Never' },\r\n { field: 'renewal', headerName: 'Renewal', renderField: (r) => r.canRenew.code === \"YES\" ? `${r.renewal} month(s)` : 'Never' },\r\n ]}\r\n noDataMessage=\"Currently there are no requirements set up. Click “Add requirement” button to add one.\"\r\n renderCollapseRow={(item, collapseRow) => (\r\n \r\n \r\n )}\r\n\r\n renderRowActions={(item, collapseRow) => (\r\n <>\r\n \r\n \r\n \r\n { !p.hideDelete && (\r\n onDelete(item)}>\r\n \r\n \r\n )}\r\n )}\r\n hideCollapseColumn />)\r\n }}\r\n
\r\n}\r\n\r\nfunction RequirementEditor(p: {\r\n item?: TItemModel | undefined;\r\n onEnd: () => void;\r\n}) {\r\n const fieldName: keyof TRootModel = \"requirements\";\r\n const data: Partial = p.item ?? {\r\n id: 0,\r\n renewal: 0,\r\n expiration: 0,\r\n canExpire: { id: 0, code: \"NO\", display: \"No\"},\r\n canRenew: { id: 0, code: \"NO\", display: \"No\"},\r\n approverType: { id: 7, code: \"7\", display: \"Automatically Approved when Submitted\" },\r\n externalLink: \"\",\r\n externalLinkDescription: \"\",\r\n isAttachmentMandatory: false\r\n };\r\n\r\n const [showLinks, setShowLinks] = useState(!!data.externalLink);\r\n\r\n return \r\n {arrayHelpers => {\r\n const { form } = arrayHelpers\r\n const otherCodes = (arrayHelpers.form.values[fieldName] as Partial[]).filter(r => r.code !== data.code).map(r => r.code); \r\n const isNew = data.id === 0\r\n const cancel = p.onEnd\r\n const submit = (value: Partial) => {\r\n const valuesToSubmit = value;\r\n if(!showLinks){\r\n valuesToSubmit.externalLink = \"\";\r\n valuesToSubmit.externalLinkDescription = \"\";\r\n }\r\n const items = arrayHelpers.form.values[fieldName] as Partial[]; \r\n const currentIndex = items.indexOf(data);\r\n currentIndex == -1 ? arrayHelpers.push(valuesToSubmit) : arrayHelpers.replace(currentIndex, valuesToSubmit);\r\n p.onEnd(); \r\n }\r\n\r\n const makeValidationSchema = (linkValidation: boolean, codes: (string | undefined)[]) => \r\n Yup.object().shape({\r\n code: Yup.string().label(\"Code\").matches(/^\\d+$/, \"Please provide correct code - from 1 up to 3 digits\").min(1).max(3, \"Code must be at most 3 digits\")\r\n .required()\r\n .test(\"checkIsCodeUnique\",\"Code already exists\",(value) => !codes.includes(value))\r\n ,\r\n description: Yup.string().label(\"Title\").required(),\r\n approverType: Yup.object().label(\"Approver\").required(),\r\n approverGroup: Yup.object().nullable().when(\r\n 'approverType', {\r\n is: (approverType: DictionaryItemByCodeDTO | undefined) => (approverType?.code === \"1\"),\r\n then: Yup.object().required()\r\n }),\r\n canExpire: Yup.object().nullable(),\r\n expiration: Yup.number().when(\r\n 'canExpire', {\r\n is: (x: DictionaryItemByCodeDTO | undefined) => (x?.code === \"YES\"),\r\n then: () => Yup.number().min(1, \"Expiration must be greater than 0\"), \r\n }),\r\n renewal: Yup.number().when(\r\n 'canRenew', {\r\n is: (x: DictionaryItemByCodeDTO | undefined) => (x?.code === \"YES\"),\r\n then: () => Yup.number().min(1, \"Renewal must be greater than 0\"), \r\n }),\r\n externalLink: Yup.string().when([], {\r\n is: () => linkValidation,\r\n then: Yup.string().required().url(), \r\n }),\r\n externalLinkDescription: Yup.string().when([], {\r\n is: () => linkValidation,\r\n then: Yup.string().required(), \r\n })\r\n }\r\n )\r\n \r\n return (\r\n \r\n {formikProps => (<>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n e.currentTarget.select()}} />\r\n \r\n e.currentTarget.select()}} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n setShowLinks(!showLinks)} />}\r\n /> \r\n \r\n \r\n {showLinks && }\r\n \r\n \r\n {showLinks && }\r\n \r\n \r\n }\r\n /> \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n )\r\n }}\r\n}\r\n","import React, { DispatchWithoutAction } from 'react';\r\nimport { usePCSContext, ModalQuetionProps } from 'Router/PCSContext';\r\nimport { Formik, FieldArray, useField } from 'formik';\r\nimport { Yup, FormikCheckboxField, EditorHelper } from 'components/FormikField';\r\nimport { Checkbox, FormControlLabel } from '@material-ui/core';\r\nimport {\r\n IconButton,\r\n Button, Typography, Card, Stack,\r\n DataTable, UsedIcons, FluidForEditors,\r\n ActionsRoot, DictionaryField, DataTableColumn\r\n} from 'components';\r\nimport { API, KnownCertificateListStatus } from './model';\r\n\r\nimport * as Model from './model';\r\n\r\ntype TRootModel = Model.CertificateListDefinitionDTO\r\ntype TItemModel = Model.CertificateListPrintIdentificators\r\n\r\nexport function PrintOptionsCardPart(p: { helper: EditorHelper>; }) {\r\n const disablePreviews = p.helper.values.status?.code == KnownCertificateListStatus.Temporary ?? false;\r\n const showAddPurpose = p.helper.values.division?.code === \"ELDS\" || p.helper.values.division?.code === \"ELSE\";\r\n\r\n const [state, setState] = React.useState<{ adding: boolean; }>({ adding: false });\r\n const [field] = useField({ name: \"id\" });\r\n function doPreview(forExternal: boolean) {\r\n API.ICertificateListContract\r\n .preview({ forExternal, id: field.value })\r\n }\r\n\r\n const onBeginAdd = () => setState({ ...state, adding: true });\r\n const onCancelAdd = () => setState({ ...state, adding: false });\r\n\r\n return (\r\n \r\n {/* \r\n\r\n {!state.adding ?\r\n \r\n \r\n \r\n :\r\n \r\n \r\n If you cannot see any Header it means that it is not defined for the Certificate’s Division.\r\n
\r\n
\r\n
\r\n \r\n
}\r\n \r\n \r\n \r\n\r\n
);\r\n}\r\n\r\nfunction FormikDataTableField(p: {\r\n name: (keyof TR & string)\r\n columns: DataTableColumn[]\r\n rowSelector: (item: TItemModel) => string | number,\r\n rowEditor: (item: TItemModel, onEnd: () => void) => JSX.Element,\r\n noDataMessage: string,\r\n deleteConfirmation: Omit\r\n}) {\r\n const pcsContext = usePCSContext()!;\r\n return \r\n {arrayHelpers => {\r\n const items = arrayHelpers.form.values[arrayHelpers.name] as TItemModel[]\r\n function doDelete(item: TItemModel) {\r\n arrayHelpers.remove(items.indexOf(item));\r\n }\r\n\r\n function onDelete(item: TItemModel) {\r\n pcsContext.showQuestion({\r\n ...p.deleteConfirmation,\r\n onConfirmed: () => doDelete(item)\r\n });\r\n }\r\n return (\r\n <>\r\n isExpanded ? (\r\n \r\n \r\n \r\n ) \r\n : (<>\r\n \r\n \r\n \r\n onDelete(item)}>\r\n \r\n )}\r\n hideCollapseColumn />\r\n \r\n )\r\n }}\r\n \r\n}\r\n\r\nfunction IdentificatorsList() {\r\n return \r\n \r\n name='identificators'\r\n rowEditor={(i, e) => }\r\n rowSelector={x => `${x.header.code}-${x.subheader?.code ?? 0}`}\r\n noDataMessage=\"Currently there are no Capabilities defined. Select from the list and click “Add Capability” button to add one.\"\r\n deleteConfirmation={{\r\n confirmTitle: \"Remove Capability?\",\r\n confirmDescription: \"This Capability will be removed from the list.\",\r\n confirmButton: \"REMOVE\"\r\n }}\r\n columns={[\r\n { field: 'header', headerName: 'Header', renderField: (r) => r.header.display },\r\n { field: 'subheader', headerName: 'Subheader', renderField: (r) => r.subheader?.display ?? \"\" },\r\n { field: 'identifiers', headerName: 'Identifiers', renderField: (r) => r.identifiers?.length > 0 ? r.identifiers.map((i) => i.display).join(', ') : \"No Identifiers defined. Please use button to the right.\" },\r\n ]}\r\n\r\n />\r\n \r\n}\r\n\r\nfunction CapabilityPart(p: {\r\n item?: TItemModel;\r\n onEnd: DispatchWithoutAction;\r\n}) {\r\n const pcsContext = usePCSContext()!;\r\n const data: Partial & Pick = p.item ?? {\r\n identifiers: []\r\n }\r\n const isNew = p.item === undefined\r\n const fieldName = 'identificators';\r\n return \r\n {arrayHelpers => {\r\n const { form } = arrayHelpers\r\n const cancel = p.onEnd\r\n const submit = (value: Partial) => {\r\n const items = arrayHelpers.form.values[fieldName] as Partial[];\r\n const currentIndex = items.indexOf(data);\r\n currentIndex == -1 ? arrayHelpers.push(value) : arrayHelpers.replace(currentIndex, value);\r\n p.onEnd();\r\n }\r\n return (\r\n \r\n {formikProps => {\r\n const x = 1\r\n return (<>\r\n {!isNew ?\r\n <>\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n (\r\n pcsContext.showQuestion({\r\n confirmTitle: \"Remove Identifier?\",\r\n confirmDescription: \"This Identifier will be removed from the list.\",\r\n confirmButton: \"REMOVE\",\r\n onConfirmed: () => {\r\n const current = data.identifiers.findIndex(c => c.code === item.code);\r\n if (current < 0)\r\n return;\r\n data.identifiers.splice(current, 1);\r\n formikProps.setFieldValue(\"identifiers\", data.identifiers);\r\n }\r\n })}>\r\n \r\n )} />\r\n :\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n \r\n )\r\n }}\r\n \r\n )\r\n }}\r\n ;\r\n}\r\n","import React from 'react';\r\nimport { FieldArray } from 'formik';\r\nimport {\r\n IconButton, DataTable, TablePagination,\r\n UsedIcons, FluidForEditors,\r\n SearchFiltersForm,\r\n DictionaryFieldByCode\r\n} from 'components';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { catalogDetailsRoute } from 'route';\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\nimport { API, PaginatedList } from './model';\r\n\r\nimport * as Model from './model';\r\n\r\ntype TItemModel = Model.CertificateListLookupDTO\r\n\r\ninterface State2 {\r\n data?: PaginatedList\r\n\r\n query: Model.CertificateListDefinitionFindQuery\r\n loadedOn: number\r\n}\r\n\r\nexport function CertificationListForSelectionPart(p: { name: string }) {\r\n const defaultQuery: Model.CertificateListDefinitionFindQuery = {\r\n pageSize: 20,\r\n currentPageIndex: 0,\r\n sortExpression: \"title\",\r\n sortDescending: false,\r\n purpose: \"Select\"\r\n };\r\n const [state, setState] = React.useState({ query: defaultQuery, loadedOn: 0 });\r\n const history = useHistory();\r\n function loadData() {\r\n\r\n if (!state.query)\r\n return;\r\n\r\n API.ICertificateListContract\r\n .find(state.query)\r\n .then(x => setState(s => ({ ...s, data: x, loadedOn: new Date().getTime() })))\r\n }\r\n\r\n const onChangePage = (newPageIndex: number) => setState(s => ({ ...s, query: { ...s.query!, currentPageIndex: newPageIndex } }));\r\n const onChangeRowsPerPage = (newPageSize: number) => setState(s => ({ ...s, query: { ...s.query!, pageSize: newPageSize } }));\r\n const onChangeSort = (direction: string | undefined, field: keyof TItemModel) => setState(s => ({ ...s, query: { ...s.query!, sortDescending: direction === \"desc\", sortExpression: field } }));\r\n const handleOpenDetails = (certificationId: number) => () =>\r\n history.push(\r\n catalogDetailsRoute.createRoute({\r\n certificationId: String(certificationId),\r\n })\r\n );\r\n\r\n\r\n ///\r\n /// Effectss\r\n React.useEffect(loadData, [state.query]);\r\n\r\n /// \r\n /// Render\r\n const fieldName = p.name;\r\n return (\r\n {arrayHelpers => (\r\n
\r\n setState(s => ({ ...s, query: { ...s.query, title: f.searchText, ...f } }))}\r\n >\r\n {(fp) => (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n <>\r\n {!state.data ? <> :\r\n <>\r\n r.division?.display },\r\n { field: 'release', headerName: 'Release' },\r\n { field: 'level', headerName: 'Level', renderField: (r) => r.level?.display },\r\n { field: 'publishDate', headerName: 'Published', renderField: ({ publishDate }) => DataTable.formatDate(publishDate) },\r\n ]}\r\n enableSort\r\n defaultSort={state.query!}\r\n onSortRequest={onChangeSort}\r\n rows={state.data.result}\r\n renderRowActions={(item) => (\r\n arrayHelpers.form.values[arrayHelpers.name].find((x: TItemModel) => x.id == item.id) ?\r\n <> :\r\n <> arrayHelpers.push(item)}>\r\n \r\n \r\n \r\n \r\n )}\r\n hideCollapseColumn />\r\n onChangePage(p)}\r\n onChangeRowsPerPage={(e) => onChangeRowsPerPage(parseInt(e.target.value, 10))}\r\n\r\n pagination={state.data ?? { currentPageIndex: 0, pageSize: 0, total: 0 }} />}\r\n \r\n
)}\r\n\r\n
\r\n );\r\n}\r\n","import { usePCSContext } from 'Router/PCSContext';\r\nimport { FieldArray } from 'formik';\r\nimport { IconButton, DataTable, UsedIcons } from 'components';\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { catalogDetailsRoute } from 'route';\r\n\r\nimport * as Model from './model';\r\n\r\ntype TItemModel = Model.CertificateListLookupDTO\r\n\r\nexport function CertificateLookupForField(p: { name: string; noDataMessage?: JSX.Element }) {\r\n const pcsContext = usePCSContext();\r\n const history = useHistory();\r\n\r\n return (\r\n {arrayHelpers => {\r\n \r\n const items = arrayHelpers.form.values[arrayHelpers.name] as TItemModel[]\r\n function doDelete(item: TItemModel) {\r\n arrayHelpers.remove(arrayHelpers.form.values[arrayHelpers.name].indexOf(item));\r\n }\r\n\r\n function onDelete(item: TItemModel) {\r\n pcsContext!.showQuestion({\r\n onConfirmed: () => doDelete(item),\r\n confirmTitle: \"Remove certificate from list?\",\r\n confirmDescription: \"The certificate will be removed from list.\",\r\n confirmButton: \"REMOVE\"\r\n });\r\n }\r\n const handleOpenDetails = (certificationId: number) => () =>\r\n history.push(\r\n catalogDetailsRoute.createRoute({\r\n certificationId: String(certificationId),\r\n })\r\n );\r\n \r\n\r\n return (\r\n
\r\n\r\n (a.title).localeCompare(b.title))}\r\n columns={[\r\n { field: \"title\", headerName: \"Title\", width: 300 },\r\n { field: \"division\", headerName: \"Division\", renderField: (r) => r.division.display },\r\n { field: 'release', headerName: 'Release' },\r\n { field: 'level', headerName: 'Level', renderField: (r) => r.level?.display },\r\n { field: 'publishDate', headerName: 'Published', renderField: ({ publishDate }) => DataTable.formatDate(publishDate) },\r\n ]}\r\n noDataMessage={p.noDataMessage ?? \"No certificates added\"}\r\n renderRowActions={(item) => (<>\r\n onDelete(item)}>\r\n \r\n \r\n \r\n \r\n )}\r\n hideCollapseColumn />\r\n
\r\n )\r\n }}\r\n
\r\n );\r\n\r\n}\r\n\r\n","import { useState } from 'react';\r\nimport { ActionsRoot, Button, Card, Stack } from 'components';\r\nimport { CertificationListForSelectionPart } from './CertificationListForSelectionPart';\r\nimport { CertificateLookupForField } from './CertificateLookupForField';\r\n\r\nexport function RecommendedCardPart() {\r\n\r\n const [show, setShow] = useState(false);\r\n const togleShow = () => setShow(prev => !prev)\r\n\r\n return (\r\n \r\n \r\n \r\n User will be automatically registered for recommended Certificates\r\n Currently there are no recommended Certificates set up. Click “Add recommended” button to add one.\r\n } />\r\n \r\n {show ? : \r\n \r\n }\r\n \r\n );\r\n}\r\n","import { useState } from 'react';\r\nimport { ActionsRoot, Button, Card, DictionaryFieldByCode, Stack } from 'components';\r\nimport { CertificationListForSelectionPart } from './CertificationListForSelectionPart';\r\nimport { CertificateLookupForField } from './CertificateLookupForField';\r\n\r\n\r\nexport function PrerequisitesCardPart() {\r\n\r\n const [show, setShow] = useState(false);\r\n const togleShow = () => setShow(prev => !prev)\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n Currently there are no prerequisite set up. Click “Add prerequisite” button to add one.\r\n } />\r\n \r\n {show ?\r\n \r\n \r\n :\r\n \r\n \r\n }\r\n\r\n );\r\n}\r\n","import { Typography, Card, FluidForEditors, DictionaryField, EditorHelper } from 'components';\r\nimport { API, CertificateListDefinitionDTO } from './model';\r\n\r\nexport type DTOModel = CertificateListDefinitionDTO;\r\nexport function AvailabilityCardPart(p: { helper: EditorHelper>; }) {\r\n const data = p.helper.values\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n You may select multiple values.
\r\n Please note that by selecting “Region” value all related “Country” values are also selected by default.\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n If filters are not set up, everyone can enroll for the Certification\r\n
);\r\n}\r\n","import { Card, FluidForEditors, DictionaryField, FormikTextField, DictionaryFieldByCode, EditorHelper } from 'components';\r\nimport { API, CertificateListDefinitionDTO, KnownCertificateListStatus } from './model';\r\n\r\nexport type DTOModel = CertificateListDefinitionDTO\r\n\r\nexport function HeaderDataCardPart(p: { helper: EditorHelper>; }) {\r\n const data = p.helper.values;\r\n const editable = p.helper.values.status?.code === KnownCertificateListStatus.Temporary || p.helper.values.status?.code === KnownCertificateListStatus.Draft;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n}\r\n","import { DictionaryFieldAdvanced, DictionaryFieldByCode, EditorHelper, FormikTextField } from 'components/FormikField';\r\nimport {\r\n Typography, Card, Stack,\r\n DataTable, FluidForEditors\r\n} from 'components';\r\nimport { formatDate } from 'utils';\r\nimport { API, CertificateListDefinitionDTO } from './model';\r\n\r\nexport type DTOModel = CertificateListDefinitionDTO\r\n\r\nexport function LifecycleCardPart(p: { helper: EditorHelper>; }) {\r\n\r\n const data = p.helper.values;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Whenever an approver type is selected and does not exist (eg. Supervisor for a Country or Hierarchical Responsible),the approver is by default the Certification Authority\r\n \r\n \r\n \r\n \r\n e.currentTarget.select()}}\r\n disabled={data.customExpirationDate?.code !== \"FIXED\" || data.renewalApproverType?.code === \"NONE\"} \r\n />\r\n e.currentTarget.select()}} \r\n disabled={data.renewalApproverType?.code === \"NONE\" || data.renewalApproverType?.code === \"NORENEWAL\"} />\r\n e.currentTarget.select()}} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n formatDate(x.eventDate) },\r\n { field: 'description', headerName: 'Status' },\r\n ]}\r\n rows={(data.history ?? []).sort((a, b) => (a.eventDate).localeCompare(b.eventDate))} />\r\n \r\n \r\n );\r\n}\r\n","import { useState } from 'react';\r\nimport { ActionsRoot, Button, Card, Stack } from 'components';\r\nimport { CertificationListForSelectionPart } from './CertificationListForSelectionPart';\r\nimport { CertificateLookupForField } from './CertificateLookupForField';\r\n\r\nexport function AutomaticEnrollmentCardPart() {\r\n\r\n const [show, setShow] = useState(false);\r\n const togleShow = () => setShow(prev => !prev)\r\n\r\n return (\r\n \r\n \r\n \r\n After completing the certification, user will be automatically enrolled to the optional certificates.\r\n Currently there are no Certificates set up. Click “Add certificate” button to add one.\r\n } />\r\n \r\n {show ? : \r\n \r\n }\r\n \r\n );\r\n}\r\n","import React, { useState } from 'react'\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport { Formik } from 'formik'\r\n\r\nimport { usePCSContext } from 'Router/PCSContext';\r\nimport * as route from 'route';\r\nimport { useMyProfileQuery } from 'MyProfile/query';\r\n\r\nimport {\r\n TabsView,\r\n Loader,\r\n Content,\r\n useToasts,\r\n RoundButton,\r\n DetailsAppShell,\r\n EditorHelper,\r\n EditorBase,\r\n Yup\r\n} from 'components'\r\n\r\nimport { AlternativesCardPart } from './AlternativesCardPart';\r\nimport { RequirementsFormPart } from './RequirementsCardPart';\r\nimport { PrintOptionsCardPart } from './PrintOptionsCardPart';\r\nimport { RecommendedCardPart } from './RecommendedCardPart';\r\nimport { PrerequisitesCardPart } from './PrerequisitesCardPart';\r\nimport { AvailabilityCardPart } from './AvailabilityCardPart';\r\nimport { HeaderDataCardPart } from './HeaderDataCardPart';\r\nimport { LifecycleCardPart } from './LifecycleCardPart';\r\n\r\nimport { API, KnownCertificateListStatus } from './model';\r\nimport * as Model from './model';\r\nimport { AutomaticEnrollmentCardPart } from './AutomaticEnrollmentCardPart';\r\n\r\nexport interface FromRouteParams {\r\n itemId: string;\r\n}\r\n\r\ntype DTOModel = Model.CertificateListDefinitionDTO\r\ntype TDataModel = DTOModel\r\ntype TQueryModel = Model.CertificateListDefinitionFindQuery\r\n\r\n\r\nexport function EditorPage() {\r\n const { itemId } = useParams();\r\n const itemIdParsed = parseInt(itemId, 10)\r\n return \r\n}\r\n\r\nfunction EditorPagePart(p: { itemId: number }) {\r\n\r\n const [state, setState] = useState<{\r\n item: TDataModel\r\n } | undefined>()\r\n\r\n const history = useHistory();\r\n const feedback = useToasts();\r\n const pcsContext = usePCSContext();\r\n const currentUser = useMyProfileQuery().data;\r\n\r\n const itemIdParsed = p.itemId\r\n\r\n const settings: DetailsPageSettings = {\r\n contract: API.ICertificateListContract,\r\n newItem: () => ({\r\n id: 0,\r\n release: '1.0',\r\n status: { id: 0, display: \"Draft\", code: KnownCertificateListStatus.Temporary },\r\n forChannels: [],\r\n forCountries: [],\r\n forDivisions: [],\r\n forRegions: [],\r\n forUserType: { id: 0, code: \"All\", display: \"Any\" },\r\n behavior: { id: 1, code: \"AutomaticallyEnroll\", display: \"Automatically enroll Prerequisites when enrolled\" },\r\n validFor: [],\r\n workType: [],\r\n owner:{\r\n email: currentUser!.email,\r\n firstName: currentUser!.firstName,\r\n fullDisplayName: `${currentUser!.firstName} ${currentUser!.lastName} (${currentUser!.email})`,\r\n geid: currentUser!.geid,\r\n id: currentUser!.id,\r\n lastName: currentUser!.lastName,\r\n },\r\n prerequisites: [],\r\n scopeDetail: [],\r\n recommended: [],\r\n automaticEnrollment: [],\r\n alternatives: [],\r\n requirements: [],\r\n identificators: [],\r\n printPurposeOnPdf: false,\r\n history: [],\r\n customExpirationDate: { id: 1, code: \"FIXED\", display: \"Fixed for all enrolled users\" },\r\n enrollmentApproverType: { id: 0, code: \"NONE\", display: \"Not needed\" },\r\n completionApproverType: { id: 2, code: \"AtomaticllyWhenAllCompleted\", display: \"Automatically when objects and pre-requisites completed\" },\r\n renewalApproverType: { id: 0, code: \"NONE\", display: \"Not needed - Certificate does not expire\" },\r\n renewalEnrollmentApproverType: { id: 0, code: \"NONE\", display: \"Not needed\" },\r\n ownerCountry: { id: 0, code: \"Global\", display: \"Global\" },\r\n expirationPeriod: 0,\r\n renewalPeriod: 0,\r\n completePeriod: 0,\r\n renewalSurvey: {id: 0, code: \"NONE\", display: \"Not needed\"}\r\n }),\r\n validationSchema: Yup.object>>({\r\n division: Yup.object().nullable().required(),\r\n businessArea: Yup.object().nullable().required(),\r\n scope: Yup.object().nullable().required(),\r\n scopeDetail: Yup.array().nullable().min(1, 'Please select at least one Scope Detail').required(),\r\n level: Yup.object().nullable().required(),\r\n mainFunction: Yup.object().nullable().required(),\r\n owner: Yup.object().nullable().required(),\r\n //purpose: Yup.string().required().min(2),\r\n title: Yup.string().required().min(2),\r\n duration: Yup.string().nullable().test(\"checkIsFormatCorrect\", \"Incorrect duration format\", \r\n (value) => {\r\n if(value){\r\n const regex=/^[0-9]{1,}:[0-5][0-9]$/;\r\n return regex.test(value!);\r\n }\r\n return true;\r\n }), \r\n expirationPeriod: Yup.number().when(\r\n ['customExpirationDate','renewalApproverType'], {\r\n is: (x1: DictionaryItemByCodeDTO | undefined, x2: DictionaryItemByCodeDTO | undefined) => (x1?.code === \"FIXED\" && x2?.code !== \"NONE\"),\r\n then: () => Yup.number().min(1, \"Expiration must be greater than 0\"),\r\n }),\r\n renewalPeriod: Yup.number().when(\r\n 'renewalApproverType', {\r\n is: (x: DictionaryItemByCodeDTO | undefined) => (x?.code !== \"NONE\" && x?.code !== \"NORENEWAL\"),\r\n then: () => Yup.number().min(1, \"Renewal must be greater than 0\"),\r\n }), \r\n validFor: Yup.array().required(),\r\n workType: Yup.array().required(),\r\n\r\n completionApproverType: Yup.object().nullable().required(),\r\n behavior: Yup.object().nullable().required(),\r\n\r\n forUserType: Yup.object().nullable().required(),\r\n }),\r\n pageSettings: {\r\n title: (item: DTOModel) => item.id > 0 ? item.title : \"Define new Certificate\",\r\n subtitle: (item: DTOModel) => \"Manage Certificate\",\r\n details: {\r\n routeToNew: (itemId: number) => route.managTrainingSetDetailsRoute.createRoute({ itemId })\r\n },\r\n },\r\n }\r\n\r\n function loadDataBase() {\r\n if (itemIdParsed === 0)\r\n setState(s => ({ item: settings.newItem() as TDataModel }))\r\n else\r\n settings.contract\r\n .get(itemIdParsed)\r\n .then(x => ({ ...{ alternatives: [], requirements: [], identificators: [], history: [] }, ...x} as TDataModel))\r\n .then(x => setState(s => ({ item: x })))\r\n }\r\n\r\n async function doUpdate(row: TDataModel) {\r\n const updateResult = await API.ICertificateListContract.update(row) as { itemID: number };\r\n\r\n try {\r\n if (row.id === 0) {\r\n //feedback.showSuccess('Certificate added... page will be refreshed')\r\n const targetRoute = route.manageCertificatesDetailsRoute.createRoute({ itemId: updateResult.itemID.toString() })\r\n history.replace(targetRoute)\r\n window.location.reload()\r\n }\r\n else {\r\n //feedback.showSuccess('Certificate updated')\r\n loadDataBase()\r\n }\r\n } catch (e) {\r\n //@ts-ignore checked\r\n feedback.showError((e && e.message) ? `Cannot update certificate. Additional message: ${e.message}` : \"Cannot update certificate\")\r\n }\r\n }\r\n \r\n\r\n function doDelete(row: TDataModel ) {\r\n API.ICertificateListContract.RemoveDraft(row)\r\n .then(e => feedback.showSuccess('Certificate removed'))\r\n .then(() => history.goBack())\r\n .catch(e => feedback.showError(e.message ? `Cannot remove certificate. Additional message: ${e.message}` : \"Cannot remove certificate\"))\r\n }\r\n\r\n function doRemoveDraft(row: TDataModel) { doDelete(row) }\r\n function doSaveAsDraft(row: TDataModel, helper:EditorHelper) { \r\n if(!helper.isValid || Object.keys(helper.touched).length == 0) {\r\n feedback.showError(\"Cannot save certificate. Fill all mandatory fields\")\r\n } else {\r\n doUpdate({ ...row, status: { id: 0, code: KnownCertificateListStatus.Draft, display: \"\" } })\r\n .then(e => feedback.showSuccess('Certificate updated'))\r\n .then(() => window.location.reload())\r\n .catch(e => feedback.showError(e.message ? `Cannot update certificate. Additional message: ${e.message}` : \"Cannot update certificate\"))}\r\n }\r\n function doSubmitForApproval(row: TDataModel, helper:EditorHelper) { \r\n if(!helper.isValid) {\r\n feedback.showError(\"Cannot submit certificate. Fill all mandatory fields\")\r\n } else {\r\n doUpdate({ ...row, status: { id: 0, code: KnownCertificateListStatus.WaitingApproval, display: \"\" } })\r\n .then(e => feedback.showSuccess('Certificate submitted'))\r\n .catch(e => feedback.showError(e.message ? `Cannot submit certificate. Additional message: ${e.message}` : \"Cannot submit certificate\"))}\r\n }\r\n function doRePublish(row: TDataModel, helper:EditorHelper) { \r\n if(!helper.isValid) {\r\n feedback.showError(\"Cannot publish certificate. Fill all mandatory fields\")\r\n } else {\r\n doUpdate({ ...row, status: { id: 0, code: KnownCertificateListStatus.Published, display: \"\" } })\r\n .then(e => feedback.showSuccess('Certificate published'))\r\n .then(() => window.location.reload())\r\n .catch(e => feedback.showError(e.message ? `Cannot publish certificate. Additional message: ${e.message}` : \"Cannot publish certificate\"))}\r\n }\r\n function doSave(row: TDataModel, helper:EditorHelper) { \r\n if(!helper.isValid) {\r\n feedback.showError(\"Cannot save certificate. Fill all mandatory fields\")\r\n } else {\r\n doUpdate({ ...row, status: { id: 0, code: row.status.code, display: \"\" } })\r\n .then(e => feedback.showSuccess('Certificate updated')) \r\n .then(() => window.location.reload())\r\n .catch(e => feedback.showError(e.message ? `Cannot update certificate. Additional message: ${e.message}` : \"Cannot update certificate\"))}\r\n }\r\n\r\n ///\r\n ///\r\n ///\r\n const onCommit = doUpdate\r\n\r\n ///\r\n /// Effectss\r\n React.useEffect(loadDataBase, []);\r\n\r\n ///\r\n /// Render\r\n function renderActions(helper: EditorHelper) {\r\n\r\n // eslint-disable-next-line\r\n\r\n const onRemoveDraft = () => helper.isValid && doRemoveDraft(state!.item)\r\n const onSaveAsDraft = () => doSaveAsDraft(helper.values, helper)\r\n const onSubmitForApproval = () => doSubmitForApproval(helper.values, helper)\r\n const onRePublish = () => doRePublish(helper.values, helper)\r\n const onSave = () => doSave(helper.values, helper)\r\n\r\n return (<>\r\n {(helper.values.status.code !== KnownCertificateListStatus.Temporary &&\r\n helper.values.status.code !== KnownCertificateListStatus.Removed &&\r\n helper.values.status.code !== KnownCertificateListStatus.Imported &&\r\n helper.values.status.code !== KnownCertificateListStatus.Draft) ? <> :\r\n \r\n Save Draft\r\n \r\n }\r\n {helper.values.status.code !== KnownCertificateListStatus.Draft ? <> :\r\n \r\n Delete Draft\r\n }\r\n {(helper.values.status.code !== KnownCertificateListStatus.Draft &&\r\n helper.values.status.code !== KnownCertificateListStatus.Imported) ? <> :\r\n \r\n Submit for Approval\r\n }\r\n {(helper.values.status.code !== KnownCertificateListStatus.Published &&\r\n helper.values.status.code !== KnownCertificateListStatus.Withdrawn) ? <> :\r\n \r\n RePublish\r\n }\r\n {(helper.values.status.code !== KnownCertificateListStatus.Published &&\r\n helper.values.status.code !== KnownCertificateListStatus.Withdrawn) ? <> :\r\n \r\n Save\r\n }\r\n )\r\n }\r\n\r\n const toEdit = state?.item\r\n\r\n return (\r\n \r\n {!state ? : \r\n onCommit(values)}\r\n >\r\n {formikProps => {\r\n const helper = EditorBase.getHelper(formikProps, () => { }, onCommit) \r\n const renderActionsPart = () => renderActions(helper)\r\n return (\r\n >} />\r\n )\r\n }}\r\n \r\n }\r\n \r\n )\r\n}\r\nfunction Editor(p: { helper: EditorHelper> }) {\r\n const [tab, setTab] = useState(0);\r\n return (\r\n\r\n {tab === 0 ? : <>}\r\n {tab === 1 ? : <>}\r\n {tab === 2 ? : <>}\r\n {tab === 3 ? : <>}\r\n {tab === 4 ? : <>}\r\n {tab === 5 ? : <>}\r\n {tab === 6 ? : <>}\r\n {tab === 7 ? : <>}\r\n {tab === 8 ? : <>}\r\n\r\n )\r\n}","import { useState } from 'react';\r\nimport {\r\n Card,\r\n FluidForEditors,\r\n Typography,\r\n RoundButton,\r\n ActionsRoot,\r\n EditorHelper\r\n} from 'components'\r\n\r\nimport * as Model from './model';\r\nimport { CertificationListForSelectionPart, CertificateLookupForField } from '../Certificate';\r\n\r\ntype DTOModel = Model.TrainingSetDTO\r\n\r\ninterface State {\r\n isAddingCertificate: boolean\r\n}\r\nexport default function Editor(p: { helper: EditorHelper }) {\r\n\r\n const Helper = p.helper\r\n\r\n const [state, setState] = useState({ isAddingCertificate: false })\r\n\r\n function onStartAddingCertificates() {\r\n setState(c => ({ ...c, isAddingCertificate: true }))\r\n }\r\n\r\n function render() {\r\n return (<>\r\n \r\n \r\n \r\n {Helper.TextField({ name: \"name\", label: \"Title\" })}\r\n \r\n \r\n {Helper.DropDownField({ name: \"forDivision\", label: \"Division\", multiple: true, query: Model.API.dictionaryQuery({ key: 'DivisionWithAll' }), blockSort: true })}\r\n {Helper.DropDownField({ name: \"forProductGroup\", label: \"Product Group\", multiple: true, query: Model.API.dictionaryQuery({ key: 'ProductGroup', divisions: Helper.values.forDivision }) })}\r\n {Helper.DropDownField({ name: \"forFunctionalJobFamily\", label: \"Employee Job Family\", multiple: true, query: Model.API.dictionaryQuery({ key: 'FunctionalJobFamilyWithAll' }), blockSort: true })}\r\n {Helper.DropDownField({ name: \"forFunctionalJob\", label: \"Employee Job\", multiple: true, query: Model.API.dictionaryQuery({ key: 'FunctionalJobWithAll' }), blockSort: true })}\r\n {Helper.DropDownField({ name: \"forCountry\", label: \"Country/Territory\", multiple: true, query: Model.API.dictionaryQuery({ key: 'Country' }) })}\r\n {Helper.DropDownField({ name: \"forUserType\", label: \"Abb / External\", query: Model.API.dictionaryQuery({ key: 'UserType' }) })}\r\n \r\n \r\n\r\n {Helper.CheckboxField({\r\n name: \"reagisterAllUsers\",\r\n label: \"Register all users with selected criteria\",\r\n helperText: \"Users with selected attributes that already exist in the system will be automatically enrolled in all Certificates under the Training Set. Please ensure that the correct selections are made to avoid undesired mass enrollments.\"\r\n })}\r\n\r\n {Helper.CheckboxField({\r\n name: \"automaticRenewal\",\r\n label: \"Automatic submission for renewal\",\r\n helperText: \"If the Certificate under Training Set is not submitted for renewal during expiring period, the system will automatically submit it when the expiration date is passed.\"\r\n })}\r\n\r\n\r\n \r\n \r\n\r\n \r\n {!p.helper.values.certificates?.length ?\r\n Currently there are no certificates added. Click \"Add certificate\" button to add one. :\r\n \r\n }\r\n \r\n\r\n {!state.isAddingCertificate ?\r\n Add certificate :\r\n \r\n \r\n \r\n }\r\n \r\n )\r\n }\r\n\r\n return render()\r\n}\r\n\r\n","import { useContext, useEffect, useState } from 'react';\r\nimport { useHistory, useParams } from 'react-router-dom';\r\nimport * as route from 'route';\r\nimport {\r\n DetailsAppShell,\r\n useToasts,\r\n RoundButton,\r\n Content,\r\n EditorHelper,\r\n EditorBase\r\n} from 'components'\r\nimport { Formik } from 'formik';\r\nimport { PCSContext } from 'Router/PCSContext';\r\n\r\nimport * as Model from './model';\r\nimport Editor from './Editor';\r\n\r\nexport interface FromRouteParams {\r\n itemId: number;\r\n}\r\n\r\ntype DTOModel = Model.TrainingSetDTO\r\ntype TDataModel = DTOModel\r\ntype TQueryModel = Model.TrainingSetFindQueryDTO\r\ntype TResultModel = Model.TrainingSetUpdateResultDTO\r\nconst ContractAPI = Model.API.ITrainingSetContract\r\n\r\n\r\nexport default function EditorPage() {\r\n const { itemId } = useParams<{ itemId: string }>();\r\n const history = useHistory();\r\n const feedback = useToasts();\r\n const pcsContext = useContext(PCSContext)\r\n\r\n const [state, setState] = useState<{\r\n item: TDataModel\r\n } | undefined>();\r\n\r\n const [blockButtons, setBlockButtons] = useState(false);\r\n\r\n const itemIdParsed = parseInt(itemId, 10)\r\n\r\n const settings: DetailsPageSettings = {\r\n contract: ContractAPI,\r\n pageSettings: {\r\n title: (item: DTOModel) => item.id > 0 ? item.name : \"Define new Training Set\",\r\n subtitle: (item: DTOModel) => \"Training sets list\",\r\n details: {\r\n routeToNew: (itemId: number) => route.managTrainingSetDetailsRoute.createRoute({ itemId })\r\n },\r\n },\r\n newItem: () => ({\r\n id: 0,\r\n isActive: true,\r\n createdOn: new Date().toISOString(),\r\n editedOn: new Date().toISOString(),\r\n certificates: [],\r\n forDivision: [],\r\n forCountry: [],\r\n forFunctionalJob: [],\r\n forFunctionalJobFamily: [],\r\n forProductGroup: [],\r\n forUserType: { id: 0, code: \"\", display: \"Any\" },\r\n name: \"New name\",\r\n automaticRenewal: false,\r\n reagisterAllUsers: false,\r\n }),\r\n // handlers: {\r\n // doUpdate: (row: TDataModel) => {\r\n // ContractAPI\r\n // .update(row)\r\n // .then(r => {\r\n // const result = r as { itemID: string | number }\r\n // showSuccess('Item added ...page will refresh')\r\n // const route = settings.pageSettings.details.routeToNew(result.itemID as number)\r\n // history.replace(route)\r\n // window.location.reload()\r\n // })\r\n // }\r\n // }\r\n }\r\n\r\n function loadDataBase() {\r\n if (itemIdParsed === 0)\r\n setState(s => ({ item: settings.newItem() as TDataModel }))\r\n else\r\n settings.contract\r\n .get(itemIdParsed)\r\n .then(x => setState(s => ({ item: x })))\r\n \r\n setBlockButtons(false);\r\n }\r\n useEffect(loadDataBase, []);\r\n\r\n const doUpdate = settings.handlers?.doUpdate ?? ((row: TDataModel) => {\r\n setBlockButtons(true);\r\n settings.contract\r\n .update(row)\r\n .then(e => {\r\n feedback.showSuccess('Training set updated');\r\n if ((!!e) && typeof e === \"object\" && e != null ) {\r\n const response = e as {enrollmentResult: TResultModel}\r\n // const result = e.enrollmentResult as TResultModel;\r\n //@ts-ignore eslint-disable-next-line \r\n // if (typeof e.usersEnrolled === \"number\" && parseInt(result.usersEnrolled, 10) > 0)\r\n // //@ts-ignore eslint-disable-next-line \r\n // feedback.showInfo(`Enrolled ${e.usersEnrolled} ${e.usersEnrolled === 1 ? \"user\" : \"users\"}`)\r\n /////\r\n if(response.enrollmentResult !== null){\r\n if (response.enrollmentResult.failed.length &&\r\n !response.enrollmentResult.success.length) { \r\n feedback.showMany('All enrollments failed', \r\n response.enrollmentResult.failed.map(resp => `User ${resp.userEmail} was not enrolled with message: ${resp.message}`)\r\n , true); \r\n }\r\n if (!response.enrollmentResult.failed.length && response.enrollmentResult.success.length) {\r\n feedback.showInfo(`${response.enrollmentResult.success.length} ${response.enrollmentResult.success.length === 1 ? \"enrollment\" : \"enrollments\"} succeeded`)\r\n }\r\n if (response.enrollmentResult.failed.length && response.enrollmentResult.success.length) {\r\n feedback.showInfo(`${response.enrollmentResult.success.length} ${response.enrollmentResult.success.length === 1 ? \"enrollment\" : \"enrollments\"} succeeded`)\r\n feedback.showMany('Some enrollments failed', \r\n response.enrollmentResult.failed.map(resp => `User ${resp.userEmail} was not enrolled with message: ${resp.message}`)\r\n , true); \r\n } \r\n if (!response.enrollmentResult.failed.length && !response.enrollmentResult.success.length) {\r\n feedback.showInfo('No enrollments done');\r\n } \r\n }\r\n }\r\n })\r\n .then(() => loadDataBase())\r\n .catch(e => {\r\n feedback.showError(e.message ? `Cannot update Training Set. Additional message: ${e.message}` : \"Cannot update Training Set.\");\r\n setBlockButtons(false);\r\n })\r\n })\r\n\r\n function doDelete(row: TDataModel) {\r\n setBlockButtons(true);\r\n settings.contract\r\n .delete(row)\r\n .then(r => {\r\n feedback.showSuccess('Training set removed')\r\n history.goBack()\r\n setBlockButtons(false);\r\n })\r\n .catch(e => feedback.showError(e.message ? `Cannot delete Training Set. Additional message: ${e.message}` : \"Cannot delete Training Set.\"))\r\n }\r\n\r\n function doAdd(row: TDataModel) {\r\n setBlockButtons(true);\r\n settings.contract\r\n .add(row)\r\n .then(r => {\r\n feedback.showSuccess('Training set added ...page will refresh')\r\n const route = settings.pageSettings.details.routeToNew(r.itemID as number)\r\n history.replace(route)\r\n window.location.reload()\r\n })\r\n .catch(e => {\r\n feedback.showError(e.message ? `Cannot add Training Set. Additional message: ${e.message}` : \"Cannot add Training Set.\");\r\n setBlockButtons(false);\r\n })\r\n }\r\n\r\n const onCommit = (item: TDataModel) => {\r\n const isNew = (itemIdParsed === 0)\r\n isNew ? doAdd(item) : doUpdate(item);\r\n };\r\n\r\n const onDelete = (item: TDataModel) => {\r\n pcsContext!.showQuestion({\r\n onConfirmed: () => doDelete(item),\r\n confirmDescription: \"Do you want to delete selected Training Set?\"\r\n })\r\n }\r\n\r\n function renderActions(helper: EditorHelper) {\r\n return (<>\r\n\r\n {helper.values.id == 0 ? <>\r\n helper.submitForm()}\r\n disabled={blockButtons}\r\n >\r\n CREATE TRAINING SET\r\n \r\n : <>\r\n onDelete(helper.values)}\r\n disabled={blockButtons}\r\n >\r\n DELETE TRAINING SET\r\n \r\n helper.submitForm()}\r\n disabled={blockButtons}\r\n >\r\n SAVE CHANGES\r\n \r\n }\r\n )\r\n }\r\n\r\n const toEdit = state?.item\r\n\r\n\r\n return (<>\r\n \r\n onCommit(values)}\r\n >\r\n {formikProps => {\r\n const helper = EditorBase.getHelper(formikProps, () => { }, onCommit)\r\n return <>\r\n\r\n renderActions(helper)}>\r\n \r\n \r\n \r\n }}\r\n \r\n \r\n )\r\n}\r\n","import { useState, useEffect } from 'react';\r\n\r\nimport { DataTable, Loader } from 'components';\r\nimport * as Model from './model';\r\n\r\nexport function PageRowView(p: { id: number; }) {\r\n\r\n const [state, setState] = useState<{ item: Model.TrainingSetDTO; loadedOn: number; } | undefined>();\r\n\r\n function loadData() {\r\n\r\n Model.API.ITrainingSetContract\r\n .get(p.id)\r\n .then(x => {\r\n setState({ item: x, loadedOn: new Date().getTime() });\r\n });\r\n }\r\n\r\n ///\r\n /// Effects\r\n useEffect(loadData, []);\r\n\r\n ///\r\n ///\r\n if (!state)\r\n return ;\r\n return (\r\n r.division.display, width: \"20%\" },\r\n { field: 'level', headerName: 'Level', renderField: (r) => r.level.display, width: \"auto\" },\r\n { field: 'publishDate', headerName: \"Published\", renderField: (r) => DataTable.formatDate(r.publishDate), width: \"auto\" },\r\n ]}\r\n noDataMessage=\"No certificates added\"\r\n rows={(state.item.certificates).sort((a, b) => (a.title).localeCompare(b.title))}\r\n hideCollapseColumn />\r\n );\r\n}\r\n","import * as route from 'route';\r\nimport { PageBase } from 'components/Page/PageBase';\r\nimport { BoldTypography, Typography } from 'components';\r\nimport * as Model from './model';\r\nimport { PageRowView } from './PageRowView';\r\n\r\nimport FiltersPart from './Filters';\r\n\r\ntype QueryModel = Model.TrainingSetFindQueryDTO\r\ntype DTOModel = Model.TrainingSetDTO\r\nexport const ContractAPI = Model.API.ITrainingSetContract\r\n\r\nconst defaultQuery: QueryModel = { currentPageIndex: 0, pageSize: 50 }\r\nconst getRowId = (row: DTOModel) => row.id\r\n\r\nexport default function Page() {\r\n\r\n return PageBase({\r\n defaultQuery: defaultQuery,\r\n getIdFor: getRowId,\r\n contract: Model.API.ITrainingSetContract,\r\n pageSettings: {\r\n title: \"Manage Training Sets\",\r\n subtitle: \"Here you can find, edit or delete Training Sets.\",\r\n details: {\r\n route: (item) => route.managTrainingSetDetailsRoute.createRoute({ itemId: item.id })\r\n },\r\n inRowAction: 'DETAILS',\r\n newItem: {\r\n actionCaption: \"DEFINE TRAINING SET\",\r\n route: () => route.managTrainingSetDetailsRoute.createRoute({ itemId: 0 })\r\n },\r\n\r\n },\r\n getRowView: (row, cancelHandler, updateHandler) => (),\r\n getSearchFiltersForm: (onQuery) => (),\r\n columns: ([\r\n {\r\n field: \"name\", headerName: \"Certificate\", renderField: r => \r\n }\r\n ]),\r\n })\r\n\r\n}\r\n\r\nfunction CertificatesColumn(p: { item: DTOModel }) {\r\n const toRender = p.item\r\n\r\n let certificateDetails = 'Certificates: ';\r\n certificateDetails += toRender.certificates.length > 0 ? toRender.certificates[0].title : 'none';\r\n if (toRender.certificates.length > 1)\r\n certificateDetails += ` and ${toRender.certificates.length - 1} more...`;\r\n\r\n let divisionDetails = 'Divisions: ';\r\n divisionDetails += toRender.divisions.length > 0 ? toRender.divisions[0].display : 'none';\r\n divisionDetails += toRender.divisions.length > 1 ? `, ${toRender.divisions[1].display}` : '';\r\n if (toRender.divisions.length > 2)\r\n divisionDetails += ` and ${toRender.divisions.length - 2} more...`;\r\n\r\n return <>\r\n {toRender.name}\r\n {certificateDetails}
\r\n {divisionDetails}\r\n \r\n}\r\n","import { useEffect, useState } from 'react';\r\nimport { useField } from 'formik';\r\nimport * as API from 'Dictionary/service/dictionary.api';\r\nimport { UserDetails } from 'model';\r\nimport { useQuery } from 'react-query';\r\nimport { AutocompleteField } from 'components/Field';\r\n\r\nexport const SignerSelectField = () => {\r\n const searchTimeout = 100;\r\n const minLenOfSearchValue = 1;\r\n const initialValue = \"\";\r\n\r\n const [field, meta, helpers] = useField({ name: \"signer\" });\r\n const [searchFor, setSearchFor] = useState(initialValue);\r\n const { data = [], isLoading, isFetching, refetch } = useQuery(\r\n [\"digitalSignature-signers\"],\r\n () => API.dictionaryApi.digitalSignature.findSigner({ byText: searchFor }),\r\n { enabled: false, useErrorBoundary: false }\r\n );\r\n\r\n useEffect(() => {\r\n if (initialValue !== searchFor && searchFor.length >= minLenOfSearchValue) {\r\n const timer = setTimeout(refetch, searchTimeout);\r\n return () => clearTimeout(timer);\r\n }\r\n return undefined;\r\n }, [searchFor]);\r\n\r\n\r\n const selectedSigner = (field.value ? {\r\n id: field.value.id,\r\n group: field.value.email,\r\n name: field.value.email,\r\n } : undefined);\r\n\r\n const signersMapper = data.map(user => ({\r\n id: user.id,\r\n group: user.email,\r\n name: user.email,\r\n }));\r\n const signers = selectedSigner ? [...signersMapper, selectedSigner] : signersMapper;\r\n\r\n return (\r\n setSearchFor(eventValue)}\r\n onChange={(e, v) => helpers.setValue(v)} />\r\n );\r\n};\r\n","import styled from 'styled-components';\r\nimport Typography from '@material-ui/core/Typography';\r\n\r\nexport const TitleTypography = styled(Typography)`\r\n && {\r\n font-weight: ${({ theme }) => theme.typography.fontWeightBold};\r\n }\r\n`;\r\n","import React, { FC } from 'react';\r\nimport MUIAlert, { AlertProps as MUIAlertProps } from '@material-ui/lab/Alert';\r\nimport Typography from '@material-ui/core/Typography';\r\nimport SuccessIcon from '@material-ui/icons/CheckCircle';\r\nimport ErrorIcon from '@material-ui/icons/Error';\r\nimport WarningIcon from '@material-ui/icons/Warning';\r\nimport InfoIcon from '@material-ui/icons/Info';\r\n\r\nimport { TitleTypography } from './Alert.style';\r\n\r\nexport interface AlertProps extends MUIAlertProps {\r\n title?: string;\r\n}\r\n\r\nexport const Alert: FC = ({ title, children, ...alertProps }) => {\r\n const getProperIcon = () => {\r\n if (alertProps.severity === 'success') {\r\n return ;\r\n }\r\n if (alertProps.severity === 'warning') {\r\n return ;\r\n }\r\n if (alertProps.severity === 'info') {\r\n return ;\r\n }\r\n return ;\r\n };\r\n\r\n return (\r\n \r\n {title}\r\n {title &&  }\r\n {children}\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport {\r\n Button, Typography,\r\n Stack\r\n} from 'components';\r\nimport { useField } from 'formik';\r\nimport { Alert } from 'components/Alert';\r\n\r\nexport function ImageField(p: { fieldName: string; }) {\r\n const [field, meta, helpers] = useField({ name: p.fieldName });\r\n\r\n function onFileSelected(e: React.ChangeEvent) {\r\n if (!e.currentTarget.files || !e.currentTarget.files[0])\r\n return;\r\n\r\n const FR = new FileReader();\r\n\r\n FR.addEventListener(\"load\", (evt) => {\r\n imageRef.current!.src = evt.target!.result as string;\r\n });\r\n\r\n FR.readAsDataURL(e.currentTarget.files[0]);\r\n\r\n const FRBinary = new FileReader();\r\n\r\n FRBinary.addEventListener(\"load\", (evt) => {\r\n const bytes = new Uint8Array(evt.target!.result as ArrayBuffer);\r\n\r\n const len = bytes.byteLength;\r\n let binary = '';\r\n for (let i = 0; i < len; i++)\r\n binary += String.fromCharCode(bytes[i]);\r\n\r\n helpers.setValue(btoa(binary));\r\n });\r\n\r\n FRBinary.readAsArrayBuffer(e.currentTarget.files[0]);\r\n }\r\n\r\n const imageRef = React.useRef(null);\r\n const fileRef = React.useRef(null);\r\n\r\n return (\r\n \r\n \r\n Acceptable file types (jpg, jpeg, png). File size limit 10KB.\r\n onFileSelected(e)} />\r\n \r\n\r\n
\r\n \r\n \"Signature\"\r\n\r\n
\r\n\r\n
);\r\n\r\n}\r\n","import React from 'react'\r\nimport {\r\n EditorFormActions,\r\n Typography,\r\n Stack,\r\n FluidForEditors\r\n} from 'components'\r\n\r\nimport { TextField } from '@material-ui/core';\r\nimport { FormikTextField, Form, Formik, Yup } from 'components/FormikField';\r\n\r\nimport { FormikProps } from 'formik';\r\nimport { BusinessUnitSelectField } from 'Dictionary/component';\r\n\r\nimport * as Model from '../model';\r\nimport { SignerSelectField } from './SignerSelectField';\r\nimport { ImageField } from './ImageField';\r\n\r\ntype DTOModel = Model.DigitalSignatureDto\r\n\r\nexport default function Editor(p: {\r\n item: DTOModel\r\n\r\n onCancel: React.DispatchWithoutAction\r\n onCommit: React.Dispatch\r\n}) {\r\n\r\n const x = p.item\r\n const toEdit = {\r\n ...x,\r\n divisions: x.divisions!.map(x => ({ ...x, name: x.description }))\r\n } as DTOModel\r\n\r\n ///\r\n ///\r\n const onCancelAdd = () => p.onCancel()\r\n const onUpdateRow = (item: DTOModel) => p.onCommit(item)\r\n\r\n ///\r\n ///\r\n function renderForm(formikProps: FormikProps) {\r\n const fh = formikProps.getFieldMeta(\"signature\")\r\n const editing = !!formikProps.values.id;\r\n return (\r\n
\r\n \r\n <>\r\n {editing ? : }\r\n \r\n \r\n \r\n \r\n Signature\r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n\r\n const formValidationSchema = Yup.object().shape({\r\n divisions: Yup.array().min(1, 'This field is required'),\r\n signer: Yup.object().nullable().required('This field is required'),\r\n signature: Yup.string().required(),\r\n labelSignature: Yup.string().required('This field is required'),\r\n });\r\n\r\n if (!toEdit) return (<>)\r\n return (<>\r\n \r\n {(formikProps) => renderForm(formikProps)}\r\n \r\n )\r\n}\r\n","import { Dispatch } from 'react'\r\nimport {\r\n FluidForEditors,\r\n SearchFiltersFormSmart,\r\n DictionaryFieldByCode\r\n} from 'components'\r\n\r\nimport * as Model from './model'\r\n\r\ntype QueryModel = Model.DigitalSignatureFindQuery\r\n\r\nexport default function SearchForm(p: {\r\n defaultQuery: QueryModel\r\n onQuery: Dispatch;\r\n}) {\r\n\r\n return (\r\n \r\n {(fp) => (\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )\r\n}\r\n","import { PageBase } from 'components/Page/PageBase'\r\n\r\nimport * as API from 'Dictionary/service/dictionary.api'\r\n\r\nimport EditorPart from './Editor'\r\nimport FiltersPart from './Filters'\r\nimport * as Model from './model'\r\n\r\ntype QueryModel = Model.DigitalSignatureFindQuery\r\ntype DTOModel = Model.DigitalSignatureDto\r\n\r\nconst ContractAPI = API.dictionaryApi.digitalSignature\r\n\r\nconst defaultQuery: QueryModel = { currentPageIndex: 0, pageSize: 50, division: undefined, businessArea: undefined }\r\nconst defaultNewItem: DTOModel = { id: 0, divisions: [] } as unknown as DTOModel\r\nconst getRowId = (row: DTOModel) => row.id\r\n\r\nexport function Page() {\r\n\r\n const getNewItem = (): DTOModel => ({ ...defaultNewItem })\r\n return PageBase({\r\n defaultQuery: { ...defaultQuery },\r\n getIdFor: getRowId,\r\n contract: ContractAPI,\r\n pageSettings: {\r\n title: \"Digital Signature\",\r\n subtitle: \"Here you can find the Digital Signature or define the Authorized Signers and upload their digital signature for the Certificate's Print.\",\r\n addTitle: \"Add new signature\",\r\n editTitle: \"Edit signer\",\r\n newItem: {\r\n actionCaption: \"ADD SIGNATURE\",\r\n inPageAsRowView: true\r\n },\r\n deleteItem: {\r\n confirmTitle: \"Delete Signature\",\r\n confirmDescription: \"Delete Signature can't be restored.\",\r\n confirmButton: \"DELETE\"\r\n }\r\n },\r\n getRowView: (row, cancelHandler, updateHandler) => (),\r\n getSearchFiltersForm: (onQuery) => (),\r\n columns: (\r\n [\r\n {\r\n field: 'signer',\r\n headerName: 'Signer',\r\n renderField: (r) => `${r.signer.lastName}, ${r.signer.firstName} (${r.signer.email})`\r\n },\r\n {\r\n field: 'divisions',\r\n headerName: 'Division',\r\n renderField: (r) => r.divisions!.map(x => x.description).join(\", \")\r\n },\r\n {\r\n field: 'labelSignature',\r\n headerName: '\tSignature Label'\r\n },\r\n {\r\n field: 'id',\r\n headerName: 'Digital Signature',\r\n renderField: (r) => (\r\n \"Signature\"\r\n\r\n )\r\n },\r\n ]\r\n )\r\n })\r\n};","import React, { useEffect, useState } from 'react'\r\nimport {\r\n EditorFormActions,\r\n Typography,\r\n Button,\r\n FluidForEditors,\r\n Stack\r\n} from 'components'\r\nimport { Form, Formik, FormikTextField, Yup } from 'components/FormikField';\r\nimport { FormikProps, useField } from 'formik';\r\n\r\nimport * as API from 'Dictionary/service/dictionary.api';\r\nimport { useQuery } from 'react-query';\r\nimport { AutocompleteField } from 'components/Field';\r\nimport { AutocompleteFieldItem } from 'components/Field/AutocompleteField/AutocompleteField';\r\nimport { PreferredLanguagesSelectField } from 'Dictionary/component/PreferredLanguagesSelectField/PreferredLanguagesSelectField';\r\n\r\nimport * as Model from './model'\r\n\r\ntype DTOModel = Model.PrintingStandardTextDTO\r\n\r\nconst defaultNew = {} as unknown as DTOModel\r\n\r\nexport default function Editor(p: {\r\n item: DTOModel\r\n onCancel: React.DispatchWithoutAction\r\n onCommit: React.Dispatch\r\n}) {\r\n\r\n const toEdit = p.item\r\n const toEditDivision: DictionaryItemByCodeDTO = { id: toEdit.division.id, code: toEdit.division.id, display: toEdit.division.description }\r\n const doPreview = (forExternal: boolean) => {\r\n API.dictionaryApi\r\n .IPrintingCertificatesContract\r\n .preview({ standard: toEdit!, forExternal })\r\n }\r\n\r\n ///\r\n ///\r\n const onCancelAdd = () => p.onCancel()\r\n const onUpdateRow = (item: DTOModel) => p.onCommit(item)\r\n\r\n ///\r\n ///\r\n function renderForm(formikProps: FormikProps) {\r\n const isNew = !toEdit.id\r\n return (\r\n
\r\n \r\n\r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n <>\r\n \r\n ABB People Text before product line\r\n \r\n \r\n\r\n \r\n ABB People Text after product line\r\n \r\n \r\n\r\n \r\n ABB People signers\r\n \r\n \r\n \r\n \r\n \r\n\r\n <>\r\n \r\n Partners Text before product line\r\n \r\n\r\n \r\n\r\n \r\n Partners Text after product line\r\n \r\n \r\n\r\n \r\n Partners signers\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n Header\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n Footer\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )\r\n }\r\n const formValidationSchema = Yup.object().shape({\r\n language: Yup.object().required('Select language'),\r\n firstSignature_ABB: Yup.object().required('Select signer'),\r\n secondSignature_ABB: Yup.object().required('Select signer'),\r\n firstSignature_External: Yup.object().required('Select signer'),\r\n secondSignature_External: Yup.object().required('Select signer'),\r\n dateFormat: Yup.number().required('Select format'),\r\n });\r\n\r\n if (!toEdit) return (<>)\r\n return (\r\n \r\n {(formikProps) => renderForm(formikProps)}\r\n )\r\n}\r\n\r\n\r\nconst DateFormatField = (p: { name: string, label: string }) => {\r\n const [field, meta, helpers] = useField({ name: p.name });\r\n\r\n const { data = [], isLoading, isFetching, refetch } = useQuery(\r\n [\"printing-DateFormatField\"],\r\n () => API.dictionaryApi.other.findDateFormats()\r\n .then(r => r.map(x => ({\r\n id: x.id,\r\n name: x.value\r\n }))\r\n ),\r\n { enabled: false, useErrorBoundary: false }\r\n )\r\n\r\n useEffect(() => {\r\n refetch()\r\n }, [])\r\n const selected = data.find(x => x.id == field.value)\r\n\r\n return (\r\n <>\r\n helpers.setValue((v as AutocompleteFieldItem).id)}\r\n />\r\n \r\n )\r\n}\r\n\r\nconst SignerSelectField = (p: { name: string, label: string, division: DictionaryItemByCodeDTO }) => {\r\n const searchTimeout = 100\r\n const minLenOfSearchValue = 1\r\n const initialValue = \"\"\r\n\r\n const [field, meta, helpers] = useField({ name: p.name });\r\n const [searchFor, setSearchFor] = useState(initialValue)\r\n const { data = [], isLoading, isFetching, refetch } = useQuery(\r\n [\"printing-dtandard-signers\"],\r\n () => API.dictionaryApi.digitalSignature\r\n .find({ currentPageIndex: 0, pageSize: 999, division: p.division })\r\n .then(r => r.result\r\n .map(x => ({\r\n id: x.id,\r\n signer: x.signer\r\n }))\r\n ),\r\n { enabled: false, useErrorBoundary: false }\r\n )\r\n\r\n useEffect(() => {\r\n if (initialValue !== searchFor && searchFor.length >= minLenOfSearchValue) {\r\n const timer = setTimeout(refetch, searchTimeout)\r\n return () => clearTimeout(timer)\r\n }\r\n return undefined;\r\n }, [searchFor])\r\n\r\n const signersMapper = data.map(item => ({\r\n id: item.id,\r\n name: `${item.signer.lastName}, ${item.signer.firstName}`,\r\n }))\r\n\r\n const selectedSigner: { id: number, name: string } | undefined = (field.value ? (signersMapper.find(x => x.id == field.value.id) ?? {\r\n id: field.value.id,\r\n name: `${field.value.signer.lastName}, ${field.value.signer.firstName}`,\r\n }) : undefined)\r\n\r\n\r\n const signers = selectedSigner && !signersMapper.find(x => x.id == selectedSigner.id) ? [...signersMapper, selectedSigner] : signersMapper\r\n\r\n return (\r\n <>\r\n setSearchFor(eventValue)}\r\n onChange={(e, v) => helpers.setValue(v)}\r\n onOpen={() => refetch()}\r\n />\r\n\r\n\r\n \r\n )\r\n}","import { Dispatch } from 'react'\r\nimport { Typography } from '@material-ui/core';\r\nimport { FormikForApp } from 'components/FormikField';\r\nimport { BusinessUnitSearchBar } from 'ApprovalGroupsPage/components';\r\nimport { ReactComponent as NotFoundSvg } from '../../../components/QueryErrorResetBoundary/svg/NotFound.svg';\r\n\r\n\r\nimport * as Model from './model'\r\n\r\ntype QueryModel = Model.PrintingStandardTextsFindQuery\r\n\r\nexport default function SearchForm(p: {\r\n defaultQuery: QueryModel\r\n onQuery: Dispatch\r\n}) {\r\n\r\n return (\r\n \r\n {(p) => \r\n <>\r\n p.setFieldValue(\"division\", value)} /> \r\n { !p.values.division && \r\n
\r\n \r\n \r\n Select Division first...\r\n \r\n
\r\n }\r\n \r\n }\r\n
)\r\n}\r\n","import React from 'react'\r\n\r\nimport * as API from 'Dictionary/service/dictionary.api';\r\n\r\nimport { PageBase } from 'components/Page/PageBase'\r\n\r\nimport * as Model from './model'\r\nimport Editor from './Editor'\r\nimport SearchFiltersForm from './Filters'\r\n\r\ntype QueryModel = Model.PrintingStandardTextsFindQuery\r\ntype DTOModel = Model.PrintingStandardTextDTO\r\n\r\nexport const ContractAPI = API.dictionaryApi.IPrintingCertificatesContract\r\n\r\nconst defaultQuery: QueryModel = {\r\n currentPageIndex: 0,\r\n pageSize: 50\r\n}\r\n\r\nexport function Page() {\r\n\r\n const [state, setState] = React.useState<{ selectedDivision?: DictionaryItemByCodeDTO }>({ selectedDivision: defaultQuery.division })\r\n\r\n const getNewItem = () => ({\r\n division: { id: state.selectedDivision?.id, description: state.selectedDivision?.display },\r\n }) as Model.PrintingStandardTextDTO\r\n\r\n\r\n return PageBase({\r\n defaultQuery: defaultQuery,\r\n getIdFor: (item) => item.id,\r\n contract: ContractAPI,\r\n pageSettings: {\r\n title: \"Standard Texts\",\r\n subtitle: \"Select and write the Standard Text to print on Certificates\",\r\n addTitle: \"Add new language\",\r\n editTitle: \"Edit language\",\r\n newItem: {\r\n actionCaption: \"ADD LANGUAGE\",\r\n inPageAsRowView: true\r\n },\r\n deleteItem: {\r\n confirmTitle: \"Delete language\",\r\n confirmDescription: \"The language will be deleted from Division\",\r\n confirmButton: \"DELETE\"\r\n }\r\n },\r\n getRowView: (row, cancelHandler, updateHandler) => (),\r\n getSearchFiltersForm: (onQuery) => ( { setState({ selectedDivision: q.division }); onQuery(q) }} />),\r\n columns: ([\r\n {\r\n field: 'language',\r\n headerName: 'Language',\r\n renderField: (r) => r.language.name\r\n },\r\n ]),\r\n renderHandlers: {\r\n list: (render) => state.selectedDivision ? render() : <>\r\n }\r\n })\r\n\r\n}\r\n","import React, { forwardRef, useImperativeHandle, useRef, DispatchWithoutAction } from 'react';\r\n\r\nimport {\r\n List,\r\n ListItem,\r\n ListItemText\r\n} from '@material-ui/core';\r\n\r\nimport { Form, Formik, FormikTextField, Yup } from 'components/FormikField';\r\n\r\nimport {\r\n IconButton,\r\n Button,\r\n Grid,\r\n Typography,\r\n Card,\r\n TabsView,\r\n Stack,\r\n UsedIcons,\r\n Loader,\r\n EditorFormActions,\r\n ActionsRoot\r\n} from 'components'\r\n\r\nimport { usePCSContext } from 'Router/PCSContext';\r\n\r\nimport * as Model from './model'\r\n\r\ninterface State {\r\n data?: Model.PrintingConfigurationDTO\r\n loadedOn: number\r\n}\r\n\r\nexport function PrintingConfigurationCLIdentificatorsPart(p: { port: Model.ContractApi, division: DictionaryItemByCodeDTO; }) {\r\n const [state, setState] = React.useState({ loadedOn: 0 });\r\n\r\n function loadData() {\r\n if (!p.division) return;\r\n\r\n p.port\r\n .get({ division: p.division })\r\n .then(x => setState({ data: x, loadedOn: new Date().getTime() }));\r\n }\r\n\r\n function doSave() {\r\n const capabilityHeaders = capabilityHeadersRef.current!.getData()\r\n const groupHeaders = groupHeadersRef.current!.getData()\r\n const clIdentificators = clIdentificatorsRef.current!.getData()\r\n const toSend: Model.PrintingConfigurationDTO = {\r\n division: state.data?.division,\r\n capabilityHeaders,\r\n groupHeaders,\r\n clIdentificators,\r\n }\r\n\r\n p.port\r\n .update(toSend)\r\n }\r\n ///\r\n React.useEffect(loadData, [p.division.id]);\r\n \r\n const capabilityHeadersRef = useRef(null)\r\n const groupHeadersRef = useRef(null)\r\n const clIdentificatorsRef = useRef(null)\r\n ///\r\n if (!p.division)\r\n return <>;\r\n\r\n if (!state.data)\r\n return ;\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n );\r\n}\r\n\r\ninterface OrderableListEditorItem {\r\n id: number\r\n desc: string\r\n order: number\r\n}\r\n\r\ninterface OrderableListEditorProps {\r\n data?: OrderableListEditorItem[]\r\n onChange: DispatchWithoutAction,\r\n label: string\r\n}\r\n\r\ninterface OrderableListEditorRef {\r\n getData: () => OrderableListEditorItem[]\r\n}\r\n\r\nconst formValidationSchema = Yup.object>().shape({\r\n desc: Yup.string().required()\r\n});\r\n\r\nconst OrderableListEditor = forwardRef((p, _ref) => {\r\n\r\n useImperativeHandle(_ref, () => (\r\n {\r\n getData: () => state\r\n })\r\n )\r\n\r\n const pcsContext = usePCSContext()!\r\n const [state, setState] = React.useState(JSON.parse(JSON.stringify(p.data)) as OrderableListEditorItem[])\r\n const [selected, setSelected] = React.useState(null)\r\n const addingNew = !!(selected && (!state.find(x => x === selected)))\r\n\r\n function onSelect(item: OrderableListEditorItem | null) {\r\n setSelected(item)\r\n }\r\n\r\n function doDelete(v: OrderableListEditorItem) {\r\n const array = state\r\n\r\n const index = array.findIndex(x => x.desc.toLocaleLowerCase() == v.desc.toLocaleLowerCase())\r\n if (index < 0) return\r\n array.splice(index, 1)\r\n\r\n const newArray = array.map((i, index) => ({ ...i, order: index + 1 }))\r\n setState(c => (newArray))\r\n p.onChange()\r\n }\r\n\r\n function onRemoveItem(item: OrderableListEditorItem) {\r\n pcsContext.showQuestion({\r\n onConfirmed: () => doDelete(item),\r\n confirmDescription: `The ${p.label} will be deleted from this Division`,\r\n confirmTitle: `Delete ${p.label}`,\r\n confirmButton: \"Delete\"\r\n })\r\n }\r\n\r\n function onUpdateOrAddNew(item: OrderableListEditorItem) {\r\n const v = item.desc\r\n\r\n if (!state.find(x => x === selected)) {\r\n if (!v || state.find(x => x.desc.toLocaleLowerCase() == v.toLocaleLowerCase())) {\r\n return\r\n }\r\n\r\n state.push({ id: 0, desc: v, order: state.length })\r\n const newArray = state.map((i, index) => ({ ...i, order: index + 1 }))\r\n setState(c => (newArray))\r\n }\r\n else {\r\n selected!.desc = v\r\n }\r\n setSelected(null)\r\n p.onChange()\r\n }\r\n\r\n function onStartAddingNew() {\r\n setSelected({ id: 0, order: 0, desc: \"\" })\r\n }\r\n\r\n function onCancelAdd() {\r\n setSelected(null)\r\n }\r\n\r\n function renderEditRow(item: OrderableListEditorItem) {\r\n return \r\n {(formikProps) =>\r\n
\r\n \r\n \r\n \r\n }\r\n \r\n }\r\n\r\n function renderListItem(item: OrderableListEditorItem) {\r\n const inEditMode = selected === item\r\n\r\n if (inEditMode) {\r\n return {renderEditRow(item)}\r\n }\r\n\r\n return \r\n \r\n \r\n onSelect(item)}>\r\n \r\n \r\n onRemoveItem(item)}>\r\n \r\n \r\n \r\n \r\n }\r\n\r\n ///\r\n return (\r\n \r\n {addingNew ? {renderEditRow(selected!)} : <>}\r\n \r\n \r\n
\r\n \r\n {`Available ${p.label}s`}\r\n \r\n \r\n {addingNew ? <> :\r\n }\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n {state.map(renderListItem)}\r\n \r\n \r\n
\r\n );\r\n})\r\n","import { Dispatch } from 'react'\r\nimport { Typography } from '@material-ui/core';\r\nimport { FormikForApp } from 'components/FormikField';\r\nimport { BusinessUnitSearchBar } from 'ApprovalGroupsPage/components';\r\nimport { ReactComponent as NotFoundSvg } from '../../../components/QueryErrorResetBoundary/svg/NotFound.svg';\r\n\r\nimport * as Model from './model'\r\n\r\ntype QueryModel = Model.FindQuery\r\n\r\nexport default function SearchForm(p: {\r\n defaultQuery: QueryModel\r\n onQuery: Dispatch\r\n}) {\r\n\r\n return (\r\n \r\n {(p) => <>\r\n p.setFieldValue(\"division\", value)} /> \r\n { !p.values.division && \r\n
\r\n \r\n \r\n Select Division first...\r\n \r\n
\r\n }\r\n }\r\n
)\r\n}\r\n","import React from 'react'\r\nimport { Content, Stack } from 'components'\r\n\r\nimport * as API from 'Dictionary/service/dictionary.api';\r\n\r\nimport { PrintingConfigurationCLIdentificatorsPart } from './PrintingConfigurationCLIdentificatorsPart';\r\nimport SearchFiltersForm from './Filters'\r\nimport * as Model from './model'\r\n\r\ntype QueryModel = Model.FindQuery\r\n\r\nconst defaulQuery: QueryModel = {\r\n}\r\n\r\nconst port: Model.ContractApi = {\r\n get: API.dictionaryApi.IPrintingCertificatesContract.getSettings,\r\n update: API.dictionaryApi.IPrintingCertificatesContract.updateSettings,\r\n}\r\n\r\nexport function Page() {\r\n\r\n const [state, setState] = React.useState({ query: defaulQuery })\r\n const onQuery = (query: QueryModel) => setState({ query })\r\n\r\n ///\r\n /// Render\r\n return (\r\n \r\n \r\n \r\n\r\n {state.query && state.query.division ?\r\n :\r\n <>}\r\n\r\n \r\n )\r\n};\r\n","import { FC } from 'react';\r\nimport { oldEnrollmentsDetailsRoute } from 'route';\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport { Card } from 'components/Page';\r\nimport { OldEnrollmentResult } from 'OldEnrollments/model/OldEnrollmentResult';\r\nimport IconButton from '@material-ui/core/IconButton';\r\nimport NavigateNextIcon from '@material-ui/icons/NavigateNext';\r\n\r\nexport const resultColumns: DataTableColumn[] = [\r\n {\r\n field: 'certificateTitle',\r\n headerName: 'Certificate', \r\n },\r\n {\r\n field: 'certificateRelease',\r\n headerName: 'Release', \r\n },\r\n {\r\n field: 'certificateDivision',\r\n headerName: 'Division', \r\n },\r\n {\r\n field: 'enrollmentsCount',\r\n headerName: 'Enrolled users', \r\n },\r\n];\r\n\r\nexport interface OldEnrollmentsTableProps\r\n extends Omit, 'columns'> {}\r\n\r\nexport const OldEnrollmentsTable: FC = (props) => {\r\n\r\n const handleOpenDetails = (certificateId: number) => () =>\r\n window.open(\r\n `${window.location.origin}${oldEnrollmentsDetailsRoute.createRoute({\r\n certificateId: String(certificateId),\r\n })}`,\r\n '_blank'\r\n );\r\n \r\n return (\r\n row.certificateId}\r\n noDataMessage=\"No results\"\r\n renderCollapseRow={(row) => (\r\n \r\n r.certificateId} \r\n renderRowActions={(r) => (\r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n )}\r\n />\r\n);\r\n\r\n};\r\n","import fileDownload from 'js-file-download';\r\n\r\nimport { apiClient } from 'service';\r\nimport { ApiError } from 'model/ApiError';\r\nimport { PaginatedList, PaginationDto } from 'model';\r\nimport { CatalogSearchFilters } from 'Catalog/model/CatalogSearchFilters';\r\nimport { getDateNow } from 'utils';\r\nimport { OldEnrollmentDetailsResult, OldEnrollmentResult } from 'OldEnrollments/model/OldEnrollmentResult';\r\nimport { OldEnrollmentActionResponse } from 'OldEnrollments/model/OldEnrollmentActionResponse';\r\nimport { UserSearchFilters } from 'MyProfile/model/UserSearchFilters';\r\n\r\nconst domainPath = '/old-enrollments';\r\n\r\nconst search = async (\r\n pagination: PaginationDto,\r\n filters: Partial\r\n): Promise> => {\r\n try {\r\n const response = await apiClient.post(`${domainPath}/search`, {\r\n ...filters,\r\n ...pagination,\r\n });\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst searchDetails = async (\r\n certificateId: number,\r\n filters: Partial\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/${certificateId}/search`, {\r\n ...filters\r\n }\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst exportToExcel = async (\r\n filters: Partial\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/export-excel`,\r\n {\r\n ...filters,\r\n },\r\n {\r\n responseType: 'blob',\r\n }\r\n );\r\n fileDownload(response.data, `Old_enrollments_${getDateNow()}.xlsx`);\r\n return [];\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst exportToExcelDetails = async (\r\n certificateId: number,\r\n filters: Partial\r\n): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/${certificateId}/export-excel`,\r\n {\r\n ...filters,\r\n },\r\n {\r\n responseType: 'blob',\r\n }\r\n );\r\n fileDownload(response.data, `Old_enrollments_${getDateNow()}.xlsx`);\r\n return [];\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nexport interface OldEnrollmentActionDto {\r\n certificateIds: number[]; \r\n inProcessOnly: boolean;\r\n}\r\n\r\nexport interface OldEnrollmentReplaceDto \r\n extends OldEnrollmentActionDto {\r\n noNotifications: boolean;\r\n skipEnrollment: boolean;\r\n action: string;\r\n}\r\nconst remove = async (actionDto: OldEnrollmentActionDto): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/remove`,\r\n actionDto\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\nconst replace = async (actionDto: OldEnrollmentReplaceDto): Promise => {\r\n try {\r\n const response = await apiClient.post(\r\n `${domainPath}/replace`,\r\n actionDto\r\n );\r\n return response.data;\r\n } catch (e) {\r\n throw new ApiError(e);\r\n }\r\n};\r\n\r\n\r\nexport const oldEnrollmentsApi = {\r\n search,\r\n searchDetails,\r\n exportToExcel,\r\n exportToExcelDetails,\r\n remove,\r\n replace\r\n};\r\n","import { Grid } from '@material-ui/core';\r\nimport ExportIcon from '@material-ui/icons/VerticalAlignBottom';\r\nimport {\r\n CatalogSearchFiltersForm,\r\n initialValues,\r\n mapCatalogSearchFilters,\r\n} from 'Catalog/component/CatalogSearchFiltersForm/CatalogSearchFiltersForm';\r\nimport { CatalogSearchFilters } from \"Catalog/model/CatalogSearchFilters\";\r\nimport { OldEnrollmentsTable } from 'OldEnrollments/component/OldEnrollmentsTable';\r\nimport { useOldEnrollmentsQuery } from 'OldEnrollments/query/oldEnrollmentsQuery';\r\nimport { oldEnrollmentsApi } from \"OldEnrollments/service/oldEnrollments.api\";\r\nimport { useToasts, Button } from \"components\";\r\nimport { Content, Card } from 'components/Page';\r\nimport { TablePagination } from 'components/Table';\r\nimport { Loader } from 'components/Loader/Loader';\r\nimport { Pagination, getPagination } from \"model\";\r\nimport { useState } from \"react\";\r\nimport { useMutation } from \"react-query\";\r\n\r\n\r\nexport const OldEnrollmentsPage = () => {\r\n\r\n const { showSuccess, showError } = useToasts(); \r\n const [pageSize, setPageSize] = useState(10);\r\n const [pagination, setPagination] = useState(\r\n getPagination(pageSize)\r\n ); \r\n const [filters, setFilters] = useState>(\r\n mapCatalogSearchFilters(initialValues)\r\n );\r\n const { isLoading, isFetching, data } = useOldEnrollmentsQuery(pagination, filters, {\r\n onSuccess: (newData) => setPagination(getPagination(pageSize, newData)),\r\n });\r\n const {\r\n mutate: exportToExcel,\r\n isLoading: isExportToExcelLoading,\r\n } = useMutation(() => oldEnrollmentsApi.exportToExcel(filters), {\r\n onSuccess: () => showSuccess('Export to excel success'),\r\n onError: () => showError('Export to excel failed. Too many records on search. Must be less than 10000.'),\r\n });\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n exportToExcel()}\r\n disabled={isExportToExcelLoading}\r\n >\r\n {isExportToExcelLoading ? (\r\n \r\n ) : (\r\n <>\r\n  Export to excel\r\n \r\n )}\r\n \r\n }\r\n onFiltersSubmit={(catalogSearchFilters) => {\r\n setFilters(catalogSearchFilters);\r\n setPagination(getPagination(pageSize));\r\n }} \r\n />\r\n \r\n \r\n \r\n \r\n \r\n {!isFetching && (\r\n {\r\n setPageSize(Number(event.target.value));\r\n setPagination(getPagination(Number(event.target.value)));\r\n }}\r\n pagination={pagination}\r\n onChangePage={(event, currentPageIndex) =>\r\n setPagination((prevPagination) => ({\r\n ...prevPagination,\r\n currentPageIndex,\r\n }))\r\n }\r\n />\r\n )}\r\n \r\n \r\n \r\n );\r\n};","import { useQuery, UseQueryOptions } from 'react-query';\r\nimport { mapPaginationDto, PaginatedList, Pagination } from 'model';\r\nimport { oldEnrollmentsApi } from 'OldEnrollments/service/oldEnrollments.api';\r\nimport { CatalogSearchFilters } from 'Catalog/model/CatalogSearchFilters';\r\nimport { UserSearchFilters } from 'MyProfile/model/UserSearchFilters';\r\nimport { OldEnrollmentDetailsResult, OldEnrollmentResult } from '../model/OldEnrollmentResult';\r\n\r\nexport const oldEnrollmentsKey = 'old-enrollments';\r\nexport const useOldEnrollmentsQuery = (\r\n pagination: Pagination, \r\n filters: Partial,\r\n options: UseQueryOptions>\r\n) =>\r\n useQuery>(\r\n [oldEnrollmentsKey, mapPaginationDto(pagination), filters],\r\n () => oldEnrollmentsApi.search(mapPaginationDto(pagination), filters),\r\n options\r\n );\r\n\r\nexport const oldEnrollmentsDetailsKey = 'old-enrollments-details';\r\nexport const useOldEnrollmentsDetailsQuery = (\r\n certificateId: number,\r\n filters: Partial\r\n) =>\r\n useQuery([oldEnrollmentsDetailsKey, certificateId, filters], () =>\r\n oldEnrollmentsApi.searchDetails(certificateId, filters)\r\n );\r\n","import { FC, useState } from 'react';\r\nimport { useMutation } from 'react-query';\r\nimport {\r\n DataTable,\r\n DataTableColumn,\r\n DataTableProps,\r\n} from 'components/DataTable/DataTable';\r\nimport { Card } from 'components/Page';\r\nimport { useToasts } from 'components/ToastProvider';\r\nimport { CPStatusChip } from 'components/StatusChip';\r\nimport { OldEnrollmentDetailsUsers } from 'OldEnrollments/model/OldEnrollmentResult';\r\nimport { OldEnrollmentActionResponse } from 'OldEnrollments/model/OldEnrollmentActionResponse';\r\nimport { oldEnrollmentsApi } from \"OldEnrollments/service/oldEnrollments.api\";\r\nimport { Grid, IconButton, Button, Typography, Accordion, AccordionDetails, AccordionSummary, Checkbox, useTheme, FormControlLabel, Tooltip } from '@material-ui/core';\r\nimport UsedIcons from 'components/Trivial/UsedIcons';\r\nimport { NavigateNext, ExpandMore, Settings } from '@material-ui/icons';\r\nimport { formatDate } from 'utils';\r\nimport { ApiError } from 'model';\r\nimport { certificationPlansDetailsRoute } from 'route';\r\n\r\nexport const detailsColumns: DataTableColumn[] = [\r\n {\r\n field: 'user',\r\n headerName: 'User',\r\n width: 200,\r\n renderField: (u) => (\r\n <>\r\n {`${u.user.firstName} ${u.user.lastName}`}\r\n {u.user.email}\r\n \r\n ),\r\n },\r\n {\r\n field: 'userDivision',\r\n headerName: 'Division', \r\n },\r\n {\r\n field: 'userCompany',\r\n headerName: 'Company', \r\n },\r\n {\r\n field: 'userCountry',\r\n headerName: 'Country', \r\n },\r\n {\r\n field: 'enrollmentDate',\r\n headerName: 'Enrollment', \r\n renderField: ({ enrollmentDate }) =>\r\n formatDate(enrollmentDate),\r\n },\r\n {\r\n field: 'approvalDate',\r\n headerName: 'Approval', \r\n renderField: ({ approvalDate }) =>\r\n formatDate(approvalDate),\r\n },\r\n {\r\n field: 'certificateStatus',\r\n headerName: 'Status', \r\n renderField: ({ certificateStatus }) => ,\r\n },\r\n {\r\n field: 'requirementCount',\r\n headerName: 'Requirements', \r\n },\r\n];\r\n\r\nexport interface OldEnrollmentsDetailsTableProps{ \r\n displayRowActions: boolean;\r\n onActionSuccess: () => void;\r\n DataTableProps: Omit, 'columns'>;\r\n}\r\n\r\nexport const OldEnrollmentsDetailsTable: FC = ({\r\n DataTableProps, \r\n onActionSuccess\r\n}) => {\r\n\r\n const [inProcessOnly, setInProcessOnly] = useState(false);\r\n const [skipEnrollment, setSkipEnrollment] = useState(false);\r\n const [noNotifications, setNoNotifications] = useState(false);\r\n const { showSuccess, showInfo, showError, showMany } = useToasts();\r\n const theme = useTheme();\r\n const handleOpenDetails = (enrollmentId: number) => () =>\r\n window.open(\r\n `${window.location.origin}${certificationPlansDetailsRoute.createRoute({\r\n certificationPlanId: String(enrollmentId),\r\n })}`,\r\n '_blank'\r\n );\r\n\r\n const { mutate: remove } = useMutation<\r\n unknown,\r\n ApiError,\r\n string[]\r\n >((ids) => oldEnrollmentsApi.remove({ certificateIds: ids.map((id) => Number(id)), inProcessOnly: inProcessOnly }), {\r\n onSuccess: (response) => { onActionSuccess(); showSuccess('Certifications have been removed') },\r\n onError: (error) => { showError('Remove action failed') }\r\n });\r\n\r\n\r\n const { mutate: replace } = useMutation<\r\n OldEnrollmentActionResponse,\r\n ApiError,\r\n { ids: string[], action: string }\r\n >(({ ids, action }) => oldEnrollmentsApi.replace({ \r\n certificateIds: ids.map((id) => Number(id)), \r\n action: action,\r\n inProcessOnly: inProcessOnly, \r\n noNotifications: noNotifications,\r\n skipEnrollment: skipEnrollment\r\n }), {\r\n onSuccess: (response) => { \r\n onActionSuccess(); \r\n if (response.failed.length && !response.success.length) { \r\n showMany('All enrollments failed, certifications were restored to previous status', \r\n response.failed.map(response => `User ${response.userEmail} was not enrolled with message: ${response.message}`)\r\n , true); \r\n }\r\n else if (!response.failed.length && response.success.length) {\r\n //showSuccess('Users have been enrolled to Certifications');\r\n showMany('Users have been enrolled to Certifications', \r\n response.success.map(response => `User ${response.userEmail} was enrolled with message: ${response.message}`)\r\n , false); \r\n }\r\n else if (response.failed.length && response.success.length) {\r\n showSuccess('Users have been enrolled to Certifications');\r\n showMany('Some enrollments failed, certifications were restored to previous status', \r\n response.failed.map(response => `User ${response.userEmail} was not enrolled with message: ${response.message}`)\r\n , true); \r\n }\r\n else {\r\n showInfo('No certifications were processed');\r\n }\r\n },\r\n onError: (error) => showError(`Replace action failed with message: ${error.message}`),\r\n });\r\n\r\n return ( \r\n <>\r\n \r\n }>\r\n \r\n Additional settings\r\n \r\n \r\n \r\n \r\n setInProcessOnly(!inProcessOnly)} />}\r\n /> \r\n \r\n \r\n setSkipEnrollment(!skipEnrollment)} />}\r\n /> \r\n \r\n \r\n setNoNotifications(!noNotifications)} />}\r\n /> \r\n \r\n \r\n \r\n \r\n \r\n row.enrollmentId}\r\n renderSelectedActions={(selectedRows, clearSelected) => (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n {`REMOVE\r\n It removes enrollments from old version of Certification (no further action).\\n\r\n REPLACE WITH THE NEWEST\r\n It removes enrollments from old version + enrolls to new version (the statuses of Requirements and Certifications are reset).\\n\r\n REPLACE AND RECHECK\r\n It removes enrollments from old version + enrolls to new one + it transfers the status of the requirements (provided that the Requirement code is the same).\\n\r\n REPLACE AND KEEP VALID\r\n It removes enrollments from old version + enrolls to new one + it transfers the status of the requirements (provided that the Requirement code is the same).\r\n If the status of the Certification is completed & the Certification is valid then the 'completed' status will be transferred to new enrollment. The other statuses will be transferred as 'In process'.`}\r\n }>\r\n \r\n \r\n \r\n )}\r\n renderRowActions={({ enrollmentId }) =>\r\n (\r\n \r\n \r\n \r\n )\r\n }\r\n hideCollapseColumn\r\n {...DataTableProps}\r\n />\r\n \r\n \r\n )\r\n};\r\n\r\n","import { FC, useState } from 'react';\r\nimport { Grid } from '@material-ui/core';\r\nimport ExportIcon from '@material-ui/icons/VerticalAlignBottom';\r\nimport { useParams } from 'react-router-dom';\r\nimport { useMutation } from \"react-query\";\r\nimport { oldEnrollmentsApi } from \"OldEnrollments/service/oldEnrollments.api\";\r\nimport { ByPersonFiltersForm } from 'ByPerson/component';\r\nimport {\r\n ByPersonSearchFilters,\r\n defaultSearchFilters,\r\n} from 'ByPerson/model/ByPersonSearchFilters';\r\nimport { OldEnrollmentsDetailsTable } from 'OldEnrollments/component/OldEnrollmentsDetailsTable';\r\nimport { Loader } from 'components/Loader/Loader';\r\nimport { useToasts, Button } from \"components\";\r\nimport {\r\n useCertificateShortDetailsQuery,\r\n} from 'CertificationList/query/certificationListQuery';\r\nimport { Content } from 'components/Page';\r\nimport { AppShellBaseProps, DetailsAppShell } from 'components/AppShell';\r\nimport { OldEnrollmentsDetailsParams, oldEnrollmentsRoute } from 'route';\r\nimport { useOldEnrollmentsDetailsQuery } from 'OldEnrollments/query/oldEnrollmentsQuery';\r\n\r\n\r\nexport interface OldEnrollmentsDetailsPageProps extends AppShellBaseProps {}\r\n\r\nexport const OldEnrollmentsDetailsPage: FC = ({ logout }) => {\r\n const { certificateId } = useParams();\r\n const { isLoading, data } = useCertificateShortDetailsQuery(\r\n Number(certificateId)\r\n );\r\n const { showSuccess, showError } = useToasts(); \r\n const [filters, setFilters] = useState(\r\n defaultSearchFilters\r\n );\r\n const {\r\n mutate: exportToExcel,\r\n isLoading: isExportToExcelLoading,\r\n } = useMutation(() => oldEnrollmentsApi.exportToExcelDetails(Number(certificateId), filters), {\r\n onSuccess: () => showSuccess('Export to excel success'),\r\n onError: () => showError('Export to excel failed. Too many records on search. Must be less than 10000.'),\r\n });\r\n const {\r\n isLoading: enrollmentsLoading,\r\n data: enrollmentsData,\r\n refetch: enrollmentsRefetch\r\n } = useOldEnrollmentsDetailsQuery(Number(certificateId), filters);\r\n \r\n return (\r\n \r\n \r\n \r\n \r\n {\r\n setFilters(searchFilters);\r\n }}\r\n renderPageActions={() =>\r\n exportToExcel()}\r\n disabled={isExportToExcelLoading}\r\n >\r\n {isExportToExcelLoading ? (\r\n \r\n ) : (\r\n <>\r\n  Export to excel\r\n \r\n )}\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};","import { FC } from 'react';\r\nimport { RouteProps, Route, Redirect } from 'react-router-dom';\r\n\r\nimport { myRoleMatchToRoles, RoleType } from 'MyProfile/enum/RoleType';\r\nimport { useMyProfileQuery } from 'MyProfile/query';\r\nimport { getRoles } from 'MyProfile/model/MyProfile';\r\nimport { notFoundRoute } from 'route';\r\n\r\nexport interface ProtectedRouteProps extends RouteProps {\r\n roles: RoleType[];\r\n}\r\n\r\nexport const ProtectedRoute: FC = ({\r\n roles,\r\n ...routeProps\r\n}) => {\r\n const { data } = useMyProfileQuery();\r\n const myRoles: RoleType[] = data ? getRoles(data) : [];\r\n\r\n return myRoleMatchToRoles(myRoles, roles) ? (\r\n \r\n ) : (\r\n \r\n );\r\n};\r\n","import { ReactNode, useEffect } from 'react';\r\nimport { Loader } from 'components/Loader/Loader';\r\nimport { useHistory } from 'react-router-dom';\r\nimport { myProfileRoute } from 'route';\r\nimport { Typography, useTheme } from '@material-ui/core';\r\nimport { useMyProfileQuery } from '../MyProfile/query';\r\n\r\nexport interface ProfileLoaderProps {\r\n renderContent: (userNeedToUpdateProfile: boolean) => ReactNode;\r\n}\r\n\r\nexport const ProfileLoader = (props: ProfileLoaderProps) => {\r\n const { renderContent } = props;\r\n const theme = useTheme();\r\n const { isLoading, data: profile } = useMyProfileQuery();\r\n const history = useHistory();\r\n useEffect(() => {\r\n if (profile && profile.userNeedToUpdateProfile) {\r\n history.replace(myProfileRoute.path);\r\n }\r\n }, [profile]);\r\n return (\r\n
\r\n {isLoading ? (\r\n \r\n \r\n Loading user profile...\r\n \r\n \r\n ) : (\r\n renderContent(profile?.userNeedToUpdateProfile ?? true)\r\n )}\r\n
\r\n );\r\n};\r\n","import { FC } from 'react';\r\nimport { BrowserRouter, Route, Switch } from 'react-router-dom';\r\nimport {\r\n AzureAD,\r\n AuthenticationState,\r\n IAzureADFunctionProps,\r\n MsalAuthProvider,\r\n} from 'react-aad-msal';\r\n\r\nimport * as routes from 'route';\r\nimport { authProvider, queryClient } from 'service';\r\nimport { AppShell } from 'components/AppShell/AppShell';\r\nimport { Login, LoginMock } from 'components/Login';\r\nimport { MyProfilePage } from 'page/MyProfilePage/MyProfilePage';\r\nimport { HelpAndSupportPage } from 'page/HelpAndSupportPage/HelpAndSupportPage';\r\nimport { MyCertificationsPage } from 'page/MyCertificationsPage/MyCertificationsPage';\r\nimport { MOCK_LOGIN } from 'featureToggles';\r\nimport { ToastProvider } from 'components/ToastProvider';\r\nimport { CertificationsByPersonPage } from 'page/CertificationsByPersonPage';\r\nimport { CertificationPlansDetailsPage } from 'page/CertificationPlansDetailsPage';\r\nimport { PendingApprovalsPage } from 'page/PendingApprovalsPage';\r\nimport { CatalogPage } from 'page/CatalogPage';\r\nimport {\r\n PrintOutUserCertificatesPage,\r\n PrintOutMyCertificatesPage,\r\n} from 'page/PrintOutCertificatesPage';\r\nimport { CatalogDetailsPage } from 'page/CatalogDetailsPage';\r\nimport { CertificationPlansEnrollRequestDetailsPage } from 'page/CertificationPlansEnrollRequestDetailsPage';\r\nimport { ErrorDetailsAppShell, QueryErrorResetBoundary } from 'components';\r\nimport { CertificationsByPersonDetailsPage } from 'page/CertificationsByPersonDetailsPage';\r\nimport { CertificationsByPersonMyLearningPage } from 'page/CertificationsByPersonMyLearningPage';\r\nimport { StatusOfCertificationsPage } from 'page/StatusOfCertificationsPage';\r\nimport { UncompletedRequirementsPage } from 'page/UncompletedRequirementsPage';\r\nimport { MassEnrollmentPage } from 'page/MassEnrollmentPage/MassEnrollmentPage';\r\nimport { BulkUploadPage } from 'page/BulkUploadPage/BulkUploadPage';\r\nimport { ExternalUsersPage } from 'page/ExternalUsersPage/ExternalUsersPage';\r\nimport { InternalUsersPage } from 'page/InternalUsersPage/InternalUsersPage';\r\nimport { ArchivedUsersPage } from 'page/ArchivedUsersPage/ArchivedUsersPage';\r\nimport { AddInternalUsersPage } from 'page/AddInternalUsersPage';\r\nimport { AddExternalUsersPage } from 'page/AddExternalUsersPage';\r\nimport { ApprovalGroupsPage } from 'page/ApprovalGroupsPage';\r\nimport { ApprovalGroupDetailsPage } from 'page/ApprovalGroupsDetailsPage';\r\nimport { ManageCompaniesPage } from 'page/ManageCompanies';\r\nimport { ManageScopeDetailsPage } from 'page/ManageScopeDetails';\r\nimport { DevelopmentPage } from 'page/Dev';\r\nimport { DigitalSignaturePage, PrintingStandardsPage, PrintingHeadersPage } from 'page/PrintingCertificates';\r\nimport {\r\n ManageCertificatesPage,\r\n ManageCertificatesDetailsPage,\r\n ManageTrainingSetPage,\r\n TrainingSetDetailsPage\r\n} from 'page/ManageCertificates';\r\nimport { OldEnrollmentsPage } from 'page/OldEnrollmentsPage';\r\nimport { OldEnrollmentsDetailsPage } from 'page/OldEnrollmentsDetailsPage';\r\n\r\nimport { QueryClientProvider } from 'react-query';\r\nimport { ReactQueryDevtools } from 'react-query/devtools';\r\nimport { ProtectedRoute } from 'components/ProtectedRoute';\r\nimport { notFoundRoute } from 'route';\r\nimport { ProfileLoader } from './ProfileLoader';\r\nimport { PCSContextProvider } from './PCSContext';\r\n\r\nexport const Router: FC = () => (\r\n \r\n \r\n {({\r\n login,\r\n logout,\r\n accountInfo,\r\n authenticationState,\r\n error,\r\n }: IAzureADFunctionProps) => {\r\n const handleLogout = () => {\r\n queryClient.clear();\r\n logout();\r\n };\r\n switch (authenticationState) {\r\n case AuthenticationState.Authenticated:\r\n return (\r\n \r\n \r\n \r\n \r\n (\r\n \r\n (\r\n \r\n \r\n {process.env.NODE_ENV === 'development' && (\r\n \r\n \r\n
\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n />\r\n \r\n \r\n {process.env.NODE_ENV === 'development' && (\r\n \r\n )}\r\n \r\n \r\n );\r\n case AuthenticationState.InProgress:\r\n return <>Loading...;\r\n case AuthenticationState.Unauthenticated:\r\n default:\r\n return MOCK_LOGIN ? (\r\n \r\n ) : (\r\n \r\n );\r\n }\r\n }}\r\n \r\n \r\n);\r\n","import { ReportHandler } from 'web-vitals';\r\n\r\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import ReactDOM from 'react-dom';\r\nimport { ThemeProvider as MUIThemeProvider } from '@material-ui/core/styles';\r\nimport { ThemeProvider } from 'styled-components';\r\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers';\r\nimport DayJsUtils from '@date-io/dayjs';\r\n\r\nimport './index.scss';\r\nimport { Router } from 'Router/Router';\r\nimport { theme } from 'theme/themeBase';\r\n\r\nimport ReactGA from 'react-ga';\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nif(process.env.REACT_APP_GA_ID !== undefined)\r\n ReactGA.initialize(process.env.REACT_APP_GA_ID);\r\n\r\nReactGA.pageview(window.location.pathname);\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}