{"version":3,"sources":["App/types/requestStatus.ts","App/pages/gamePages/types/gameAlgorithm.ts","App/common/utils/pagination.utils.ts","App/pages/adminPages/coursesPages/state/courses.state.ts","App/pages/adminPages/coursesPages/state/courses.slice.ts","App/pages/adminPages/groupsPages/state/groups.state.ts","App/pages/adminPages/groupsPages/state/groups.slice.ts","App/pages/adminPages/lessonTopicsPages/state/lessonTopics.state.ts","App/pages/adminPages/lessonTopicsPages/state/lessonTopics.slice.ts","App/pages/gamePages/types/gameComplexity.ts","App/pages/gamePages/state/game.state.ts","App/pages/gamePages/state/game.slice.ts","App/pages/gamePages/types/gameLevel.ts","App/types/role.ts","App/pages/studentPages/state/student.state.ts","App/pages/studentPages/state/student.slice.ts","App/pages/teacherPages/state/calendar/teacher.calendar.state.ts","App/pages/teacherPages/state/calendar/teacher.calendar.slice.ts","App/pages/teacherPages/state/games/teacher.games.state.ts","App/pages/teacherPages/state/games/teacher.games.slice.ts","App/pages/teacherPages/state/groups/teacher.groups.state.ts","App/pages/teacherPages/state/groups/teacher.groups.slice.ts","App/pages/teacherPages/state/lessons/teacher.lessons.state.ts","App/pages/teacherPages/state/lessons/teacher.lessons.slice.ts","App/pages/teacherPages/state/students/teacher.students.state.ts","App/pages/teacherPages/state/students/teacher.students.slice.ts","App/pages/accountPages/state/account.state.ts","App/pages/accountPages/state/account.slice.ts","App/pages/adminPages/logsPages/state/logs.state.ts","App/pages/adminPages/logsPages/state/logs.slice.ts","App/pages/adminPages/maintenanceMessagesPages/state/maintenanceMessages.state.ts","App/pages/adminPages/maintenanceMessagesPages/state/maintenanceMessages.slice.ts","App/pages/adminPages/usersPages/state/users.state.ts","App/pages/adminPages/usersPages/state/users.slice.ts","App/globalState/account/account.global.state.ts","App/globalState/account/account.global.slice.ts","App/globalState/auth/auth.global.state.ts","App/globalState/auth/auth.global.slice.ts","App/globalState/maintenanceMessages/maintenanceMessages.global.state.ts","App/globalState/maintenanceMessages/maintenanceMessages.global.slice.ts","App/globalState/wallet/wallet.global.state.ts","App/globalState/wallet/wallet.global.slice.ts","App/globalState/root.reducer.ts","App/globalState/store.ts","App/components/common/loadingScreen/LoadingScreen.tsx","App/components/routing/protectedRoute/ProtectedRoute.tsx","app.config.ts","App/api/endpoints/account/accountApi.ts","App/api/endpoints/users/usersApi.ts","App/api/endpoints/logs/logsApi.ts","App/api/endpoints/auth/authApi.ts","i18n.ts","app.history.ts","App/api/agent/errorHandling/errorHandler.ts","App/api/agent/axios/configuration.ts","App/common/translations/getDataByCurrentLanguage.ts","App/common/utils/tryParseJSON.utils.ts","App/api/endpoints/maintenanceMessages/maintenanceMessagesApi.ts","App/api/endpoints/courses/coursesApi.ts","App/api/endpoints/wallets/walletsApi.ts","App/api/endpoints/lessonTopic/lessonTopicsApi.ts","App/api/endpoints/groups/groupsApi.tsx","App/api/endpoints/teachers/teachersApi.ts","App/api/endpoints/students/studentsApi.ts","App/api/endpoints/lessons/lessonsApi.ts","App/api/endpoints/games/gamesApi.ts","App/api/endpoints/homeworks/homeworksApi.ts","App/api/agent/agent.ts","App/globalState/wallet/wallet.global.thunk.ts","App/globalState/account/account.global.thunk.ts","App/pages/accountPages/views/confirmEmail/ConfirmEmailContainer.tsx","App/pages/accountPages/state/account.thunk.ts","App/globalState/auth/auth.global.thunk.ts","App/common/formRules/formRules.ts","App/common/formRules/models/user.rules.ts","App/common/formRules/models/maintenanceMessage.rules.ts","App/common/formRules/models/customContactDataForStudent.rules.ts","App/common/formRules/models/course.rules.ts","App/common/formRules/models/lessonTopic.rules.ts","App/common/formRules/models/walletTransaction.rules.ts","App/common/formRules/models/group.rules.ts","App/common/formRules/models/lesson.rules.ts","App/common/formRules/models/game.rules.ts","App/common/formRules/models/homework.rules.ts","App/common/formRules/others/gameSettings.rules.ts","App/pages/accountPages/views/changePassword/forms/changePasswordForm/ChangePasswordForm.tsx","App/pages/accountPages/views/changePassword/modals/changePasswordModal/ChangePasswordModal.tsx","App/pages/accountPages/views/editProfile/forms/EditProfileForm.tsx","App/pages/accountPages/views/editProfile/EditProfileContainer.tsx","App/pages/accountPages/views/forgotPassword/forms/ForgotPasswordForm.tsx","App/pages/accountPages/views/forgotPassword/ForgotPasswordContainer.tsx","App/pages/accountPages/views/resendConfirmationEmail/forms/ResendConfirmationEmailForm.tsx","App/pages/accountPages/views/resendConfirmationEmail/ResendConfirmationEmailContainer.tsx","App/pages/accountPages/views/resetPassword/forms/ResetPasswordForm.tsx","App/pages/accountPages/views/resetPassword/ResetPasswordContainer.tsx","App/common/utils/dateTime.utils.ts","App/components/walletTransactions/WalletTransactionsTable/WalletTransactionsTable.tsx","App/components/walletTransactions/WalletTransactions.tsx","App/pages/accountPages/views/wallet/components/IncomingInstallments.tsx","App/pages/accountPages/views/wallet/WalletContainer.tsx","App/pages/accountPages/AccountPages.tsx","App/pages/homePages/views/home/utils/homepage_calculator.svg","App/pages/homePages/views/home/utils/homepage_admin.svg","App/pages/homePages/views/home/utils/homepage_teacher.svg","App/pages/homePages/views/home/utils/homepage_student.svg","App/pages/studentPages/state/student.thunk.ts","App/pages/studentPages/views/studentHomepage/studentHomeworkExercise/StudentHomeworkExercise.tsx","App/pages/studentPages/views/studentHomepage/studentHomework/StudentHomework.tsx","App/pages/studentPages/views/studentHomepage/studentHomeworks/StudentHomeworks.tsx","App/pages/studentPages/views/studentHomepage/StudentHomepageContainer.tsx","App/pages/homePages/views/home/HomeContainer.tsx","App/pages/homePages/HomePages.tsx","App/pages/resultPages/views/forbidden/ForbiddenContainer.tsx","App/pages/resultPages/views/internalServerError/InternalServerErrorContainer.tsx","App/pages/resultPages/views/notFound/NotFoundContainer.tsx","App/pages/resultPages/ResultPages.tsx","App/pages/adminPages/usersPages/state/users.thunk.ts","App/common/utils/table.utils.ts","App/pages/adminPages/usersPages/views/usersTable/components/usersTable/forms/UsersSearchForm.tsx","App/pages/adminPages/usersPages/views/usersTable/components/usersTable/UsersTable.tsx","App/components/common/responsive/utils/breakpoints.ts","App/pages/adminPages/usersPages/views/unconfirmTeacher/modals/UnconfirmTeacherModal.tsx","App/pages/adminPages/usersPages/views/userForm/UserForm.tsx","App/pages/adminPages/usersPages/views/createUser/modals/CreateUserModal.tsx","App/pages/adminPages/usersPages/views/updateUser/modals/UpdateUserModal.tsx","App/pages/adminPages/usersPages/views/setUserPassword/forms/setUserPasswordForm/SetUserPasswordForm.tsx","App/pages/adminPages/usersPages/views/setUserPassword/modals/setUserPasswordModal/SetUserPasswordModal.tsx","App/pages/adminPages/usersPages/views/usersTable/UsersTableContainer.tsx","App/common/utils/lessonStatus.ts","App/common/utils/dayOfWeek.ts","App/pages/teacherPages/views/teacherCalendar/components/teacherCalendar/components/TeacherCalendarCell.tsx","App/pages/teacherPages/views/teacherCalendar/components/teacherCalendar/components/TeacherCalendarHeader.tsx","App/pages/teacherPages/views/teacherCalendar/components/teacherCalendar/TeacherCalendar.tsx","App/types/paymentType/paymentType.ts","App/pages/adminPages/usersPages/views/userDetails/components/getUserTabs/userGeneralTab/components/TeacherDetailsGroupsTable.tsx","App/pages/adminPages/usersPages/views/userDetails/components/getUserTabs/userGeneralTab/components/UserGeneralInfo.tsx","App/pages/adminPages/usersPages/views/userDetails/components/getUserTabs/userGeneralTab/UserGeneralTab.tsx","App/pages/adminPages/usersPages/views/userDetails/components/getUserTabs/userSecurityTab/UserSecurityTab.tsx","App/pages/adminPages/usersPages/views/userDetails/components/getUserTabs/GetUserTabs.tsx","App/pages/adminPages/usersPages/views/createWalletTransaction/forms/WalletTransactionForm.tsx","App/pages/adminPages/usersPages/views/createWalletTransaction/modals/CreateWalletTransactionModal.tsx","App/components/common/responsive/Default.tsx","App/components/common/responsive/Mobile.tsx","App/pages/adminPages/usersPages/views/userDetails/UserDetailsContainer.tsx","App/pages/adminPages/usersPages/AdminUsersPages.tsx","App/pages/adminPages/logsPages/views/allLogs/components/logCard/LogCard.tsx","App/pages/adminPages/logsPages/views/allLogs/components/allLogsCard/AllLogsCard.tsx","App/components/common/pageTitle/PageTitle.tsx","App/pages/adminPages/logsPages/views/allLogs/AllLogsContainer.tsx","App/pages/adminPages/logsPages/state/logs.thunk.ts","App/pages/adminPages/logsPages/AdminLogsPages.tsx","App/pages/adminPages/maintenanceMessagesPages/views/forms/MessageForm.tsx","App/pages/adminPages/maintenanceMessagesPages/views/createMessage/modals/CreateMessageModal.tsx","App/pages/adminPages/maintenanceMessagesPages/state/maintenanceMessages.thunk.ts","App/pages/adminPages/maintenanceMessagesPages/views/updateMessage/modals/UpdateMessageModal.tsx","App/pages/adminPages/maintenanceMessagesPages/views/messagesTable/components/forms/MessagesSearchForm.tsx","App/pages/adminPages/maintenanceMessagesPages/views/messagesTable/components/messagesTable/MessagesTable.tsx","App/pages/adminPages/maintenanceMessagesPages/views/messagesTable/MessagesTableContainer.tsx","App/pages/adminPages/maintenanceMessagesPages/AdminMessagesPages.tsx","App/pages/adminPages/adminNavbar/AdminNavbarContainer.tsx","App/pages/adminPages/coursesPages/state/courses.thunk.ts","App/pages/adminPages/coursesPages/views/courseDetails/components/CourseBasicInfo.tsx","App/pages/adminPages/coursesPages/views/courseDetails/components/CourseDetailsHeader.tsx","App/pages/adminPages/coursesPages/views/courseDetails/components/CourseGroupsTable.tsx","App/pages/adminPages/coursesPages/views/courseDetails/CourseDetailsContainer.tsx","App/pages/adminPages/coursesPages/views/courseForm/CourseForm.tsx","App/pages/adminPages/coursesPages/views/createCourse/modals/CreateCourseModal.tsx","App/pages/adminPages/coursesPages/views/updateCourse/modals/UpdateCourseModal.tsx","App/pages/adminPages/coursesPages/views/coursesTable/forms/CoursesSearchForm.tsx","App/pages/adminPages/coursesPages/views/coursesTable/components/CoursesTable.tsx","App/pages/adminPages/coursesPages/views/coursesTable/CoursesTableContainer.tsx","App/pages/adminPages/coursesPages/AdminCoursesPages.tsx","App/types/studentLesson/pressenceStatus.ts","App/pages/adminPages/groupsPages/state/groups.thunk.ts","App/components/lessons/lessonForm/LessonForm.tsx","App/components/lessons/createLesson/modals/CreateLessonModal.tsx","App/components/lessons/updateLesson/modals/UpdateLessonModal.tsx","App/components/groups/groupDescription/GroupDescription.tsx","App/globalServices/groupsService/groups.global.service.ts","App/pages/adminPages/groupsPages/views/groupDetails/components/GroupBasicInfo.tsx","App/pages/adminPages/groupsPages/views/groupDetails/components/GroupDetailsHeader.tsx","App/components/students/studentDescription/StudentDescription.tsx","App/pages/adminPages/groupsPages/views/groupDetails/components/GroupStudents.tsx","App/pages/adminPages/groupsPages/views/groupStudentsTable/forms/GroupStudentsSearchForm.tsx","App/pages/adminPages/groupsPages/views/groupStudentsTable/components/GroupStudentsTable.tsx","App/pages/adminPages/groupsPages/views/groupStudentsTable/GroupStudentsTableContainer.tsx","App/pages/adminPages/groupsPages/views/groupDetails/modals/EditGroupStudentsModal.tsx","App/components/lessons/changeLessonStatus/forms/ChangeLessonStatusForm.tsx","App/components/lessons/changeLessonStatus/modals/ChangeLessonStatusModal.tsx","App/components/lessons/lessonStatusTag/LessonStatusTag.tsx","App/components/lessons/lessonTypeTag/LessonTypeTag.tsx","App/components/lessons/lessonDescription/LessonDescription.tsx","App/components/groups/groupLessons/GroupLessons.tsx","App/pages/teacherPages/views/teacherGames/teacherGamesForm/TeacherGamesFormItems.tsx","App/components/homeworks/homeworkForm/HomeworkForm.tsx","App/components/homeworks/createHomework/modals/CreateHomeworkModal.tsx","App/components/groups/groupHomeworks/components/homeworkExercise/HomeworkExercise.tsx","App/components/groups/groupHomeworks/components/homeworkListItem/HomeworkListItem.tsx","App/components/groups/groupHomeworks/GroupHomeworks.tsx","App/components/groups/groupLessons/moveLesson/MoveLessonModal.tsx","App/pages/adminPages/groupsPages/views/groupDetails/GroupDetailsContainer.tsx","App/components/lessons/changeLessonTopic/forms/ChangeLessonTopicForm.tsx","App/components/lessons/changeLessonTopic/modals/ChangeLessonTopicModal.tsx","App/components/lessons/changeReplacementTeacher/forms/ChangeReplacementTeacherForm.tsx","App/components/lessons/changeReplacementTeacher/modals/ChangeReplacementTeacherModal.tsx","App/pages/teacherPages/views/teacherLessonDetails/components/lessonStudents/components/PointsInput.tsx","App/pages/teacherPages/views/teacherLessonDetails/components/lessonStudents/components/PresenceSelect.tsx","App/pages/teacherPages/views/teacherLessonDetails/components/lessonStudents/LessonStudents.tsx","App/pages/adminPages/groupsPages/views/groupLesson/GroupLessonContainer.tsx","App/components/groups/groupForm/components/InfoAboutCosts.tsx","App/components/groups/groupForm/GroupForm.tsx","App/components/groups/createGroup/modals/CreateGroupModal.tsx","App/components/groups/updateGroup/modals/UpdateGroupModal.tsx","App/components/groups/groupsTable/forms/GroupsSearchForm.tsx","App/components/groups/groupsTable/components/GroupsTable.tsx","App/pages/adminPages/groupsPages/views/groupsTable/GroupsTableContainer.tsx","App/pages/adminPages/groupsPages/AdminGroupsPages.tsx","App/pages/adminPages/lessonTopicsPages/state/lessonTopics.thunk.ts","App/pages/adminPages/lessonTopicsPages/views/lessonTopicForm/LessonTopicForm.tsx","App/pages/adminPages/lessonTopicsPages/views/createLessonTopic/modals/CreateLessonTopicModal.tsx","App/pages/adminPages/lessonTopicsPages/views/updateLessonTopic/modals/UpdateLessonTopicModal.tsx","App/pages/adminPages/lessonTopicsPages/views/lessonTopicsTable/forms/LessonTopicsSearchForm.tsx","App/pages/adminPages/lessonTopicsPages/views/lessonTopicsTable/components/LessonTopicsTable.tsx","App/pages/adminPages/lessonTopicsPages/views/lessonTopicsTable/LessonTopicsTableContainer.tsx","App/pages/adminPages/lessonTopicsPages/AdminLessonTopicsPages.tsx","App/pages/adminPages/adminLayout/AdminLayoutContainer.tsx","App/pages/adminPages/AdminPages.tsx","App/pages/authPages/views/login/forms/loginForm/LoginForm.tsx","App/pages/authPages/views/login/LoginContainer.tsx","App/pages/authPages/views/register/PreRegisterContainer.tsx","App/pages/authPages/views/register/forms/registerForm/RegisterForm.tsx","App/pages/authPages/views/register/RegisterContainer.tsx","App/pages/authPages/AuthPages.tsx","App/pages/gamePages/services/utils/lookupTables/lookupTable.ts","App/pages/gamePages/services/utils/lookupTables/default.lookup.ts","App/pages/gamePages/services/utils/lookupTables/malyBrat4.lookup.ts","App/pages/gamePages/services/utils/lookupTables/malyBrat3.lookup.ts","App/pages/gamePages/services/utils/lookupTables/malyBrat2.lookup.ts","App/pages/gamePages/services/utils/lookupTables/malyBrat1.lookup.ts","App/pages/gamePages/services/utils/lookupTables/duzyBrat9.lookup.ts","App/pages/gamePages/services/utils/lookupTables/duzyBrat8.lookup.ts","App/pages/gamePages/services/utils/lookupTables/duzyBrat7.lookup.ts","App/pages/gamePages/services/utils/lookupTables/duzyBrat6.lookup.ts","App/pages/gamePages/services/utils/lookupTables/duzyBrat5.lookup.ts","App/pages/gamePages/services/utils/lookupTables/duzyBrat4.lookup.ts","App/pages/gamePages/services/utils/lookupTables/duzyBrat3.lookup.ts","App/pages/gamePages/services/utils/lookupTables/duzyBrat2.lookup.ts","App/pages/gamePages/services/utils/lookupTables/duzyBrat1.lookup.ts","App/pages/gamePages/services/gameBoard.service.ts","App/pages/gamePages/views/gameBoard/forms/checkGameResult/CheckGameResultForm.tsx","App/pages/gamePages/views/gameBoard/components/afterGameButtonsSection/AfterGameButtonsSection.tsx","App/pages/gamePages/views/gameBoard/components/gameBoard/GameBoard.tsx","App/pages/gamePages/services/textToSpeech.service.ts","App/pages/gamePages/views/gameBoard/components/afterGameModals/AfterGameSuccessModal.tsx","App/pages/gamePages/views/gameBoard/GameBoardContainer.tsx","App/pages/gamePages/views/gameSettings/forms/components/GameAlgorithmPicker.tsx","App/pages/gamePages/views/gameSettings/forms/GameSettingsForm.tsx","App/pages/gamePages/views/gameSettings/GameSettingsContainer.tsx","App/pages/gamePages/GamePages.tsx","App/pages/studentPages/views/coursesForStudent/components/StudentCourseListItem.tsx","App/pages/studentPages/views/coursesForStudent/CoursesForStudentContainer.tsx","App/pages/studentPages/views/exercise/ExerciseContainer.tsx","App/pages/studentPages/StudentPages.tsx","App/pages/teacherPages/state/calendar/teacher.calendar.thunk.ts","App/pages/teacherPages/views/teacherCalendar/TeacherCalendarContainer.tsx","App/pages/teacherPages/state/lessons/teacher.lessons.thunk.ts","App/pages/teacherPages/views/teacherLessonDetails/TeacherLessonDetailsContainer.tsx","App/pages/teacherPages/views/teacherGroupDetails/components/GroupStudents.tsx","App/pages/teacherPages/state/groups/teacher.groups.thunk.ts","App/pages/teacherPages/state/games/teacher.games.thunk.ts","App/pages/teacherPages/views/teacherGroupDetails/TeacherGroupDetailsContainer.tsx","App/pages/teacherPages/views/teacherGroups/TeacherGroupsContainer.tsx","App/pages/teacherPages/views/teacherGames/teacherGamesForm/TeacherGamesForm.tsx","App/pages/teacherPages/views/teacherGames/teacherGamesTable/TeacherGamesTable.tsx","App/pages/teacherPages/views/teacherGames/TeacherGamesContainer.tsx","App/pages/teacherPages/state/students/teacher.students.thunk.ts","App/pages/teacherPages/views/myStudents/forms/AllowedGameAlgorithmsForm.tsx","App/pages/teacherPages/views/myStudents/components/myStudent/MyStudent.tsx","App/pages/teacherPages/views/myStudents/components/myStudentsList/MyStudentsList.tsx","App/pages/teacherPages/views/myStudents/MyStudentsContainer.tsx","App/pages/teacherPages/TeacherPages.tsx","App/routes.tsx","App/components/navbar/AccountSubMenu.tsx","App/components/navbar/HomeMenuItem.tsx","App/components/navbar/AdminNavbar.tsx","App/components/navbar/StudentNavbar.tsx","App/components/navbar/NotLoggedInNavbar.tsx","App/components/navbar/TeacherNavbar.tsx","App/containers/NavbarContainer.tsx","App/common/utils/i18nDefaultAntDesignFormMessages.ts","App/components/common/maintenanceMessages/MaintenanceMessages.tsx","App/globalState/maintenanceMessages/maintenanceMessages.global.thunk.ts","App/App.tsx","App/common/utils/i18nToAntdLocaleMapper.ts","index.tsx"],"names":["StatusType","GameAlgorithm","paginationUtils","defaultPaginationValues","orderBy","filters","pageNumber","pageSize","query","totalItems","handleFiltersChange","filterList","Object","keys","forEach","filtrationKey","map","filter","toString","push","field","values","insertSingleOrderBy","el","newOrderBy","order","column","index","sorter","multiple","direction","handleOrderByChange","orderByList","Array","isArray","calculatePageNumber","pagination","extra","pageNumberToSet","current","action","Initial","adminCoursesInitialState","status","getCourses","getCourse","createCourse","updateCourse","deleteCourse","courses","getCoursesParams","selectedCourse","Failed","Loading","Success","adminCoursesSlice","createSlice","name","initialState","reducers","getCoursesStart","state","getCoursesSuccess","payload","getCoursesFailure","getCourseStart","getCourseSuccess","getCourseFailure","createCourseStart","createCourseSuccess","createCourseFailure","updateCourseStart","updateCourseSuccess","updateCourseFailure","deleteCourseStart","deleteCourseSuccess","deleteCourseFailure","cleanUpCoursesTable","cleanUpSelectedCourse","actions","adminGroupsInitialState","getGroups","getGroup","createGroup","updateGroup","deleteGroup","activateGroup","createLesson","updateLesson","deleteLesson","changeLessonStatus","getAllTeachers","getAllCourses","getAllStudentsForGroup","getAllLessonTopics","updateGroupStudents","createHomework","deleteHomework","getAllGames","getLesson","changeStudentLessonPoints","changePresenceStatus","changeLessonTopic","changeReplacementTeacher","groups","getGroupsParams","selectedGroup","studentsAvailableForGroup","allTeachers","allCourses","allLessonTopics","allGames","selectedLesson","adminGroupsSlice","getGroupsStart","getGroupsSuccess","getGroupsFailure","getGroupStart","getGroupSuccess","getGroupFailure","createGroupStart","createGroupSuccess","createGroupFailure","updateGroupStart","updateGroupSuccess","updateGroupFailure","deleteGroupStart","deleteGroupSuccess","deleteGroupFailure","getAllTeachersStart","getAllTeachersSuccess","teachers","getAllTeachersFailure","getAllCoursesStart","getAllCoursesSuccess","getAllCoursesFailure","activateGroupStart","activateGroupSuccess","activateGroupFailure","getAllStudentsForGroupStart","getAllStudentsForGroupSuccess","students","getAllStudentsForGroupFailure","updateGroupStudentsStart","updateGroupStudentsSuccess","updateGroupStudentsFailure","getAllLessonTopicsStart","getAllLessonTopicsSuccess","lessonTopics","getAllLessonTopicsFailure","createLessonStart","createLessonSuccess","createLessonFailure","updateLessonStart","updateLessonSuccess","updateLessonFailure","deleteLessonStart","deleteLessonSuccess","deleteLessonFailure","changeLessonTopicStart","changeLessonTopicSuccess","changeLessonTopicFailure","changeLessonStatusStart","changeLessonStatusSuccess","JSON","parse","stringify","lessons","lesson","id","lessonId","lessonStatus","changeLessonStatusFailure","changeReplacementTeacherStart","changeReplacementTeacherSuccess","changeReplacementTeacherFailure","createHomeworkInGroupStart","createHomeworkInGroupSuccess","createHomeworkInGroupFailure","deleteHomeworkStart","deleteHomeworkSuccess","deleteHomeworkFailure","getAllGamesStart","getAllGamesSuccess","games","getAllGamesFailure","getLessonStart","getLessonSuccess","getLessonFailure","changePresenceStatusStart","changePresenceStatusSuccess","studentLessons","studentLesson","studentLessonId","presenceStatus","changePresenceStatusFailure","changeStudentLessonPointsStart","changeStudentLessonPointsSuccess","pointsEarned","points","changeStudentLessonPointsFailure","cleanUpLessonDetails","cleanUpSelectedGroup","cleanUpGroupsTable","cleanUpGroupForm","cleanUpGroupStudentsTable","adminLessonTopicsInitialState","getLessonTopics","createLessonTopic","updateLessonTopic","deleteLessonTopic","getLessonTopicsParams","adminLessonTopicsSlice","getLessonTopicsStart","getLessonTopicsSuccess","getLessonTopicsFailure","createLessonTopicStart","createLessonTopicSuccess","createLessonTopicFailure","updateLessonTopicStart","updateLessonTopicSuccess","updateLessonTopicFailure","deleteLessonTopicStart","deleteLessonTopicSuccess","deleteLessonTopicFailure","cleanUpLessonTopicsTable","GameComplexity","GameAlgorithmOptions","text","value","Default","MalyBrat4","MalyBrat3","MalyBrat2","MalyBrat1","DuzyBrat9","DuzyBrat8","DuzyBrat7","DuzyBrat6","DuzyBrat5","DuzyBrat4","DuzyBrat3","DuzyBrat2","DuzyBrat1","getGameAlgorithmTextByGameAlgorithmString","gameAlgorithmString","foundAlgorithm","GameAlgorithmStringToEnum","foundAlgorithmOption","find","s","gameInitialState","gameSettings","turbo","doublePower","combinations","complexity","level","generatorSpeedInSeconds","maxSteps","gameAlgorithm","solveExerciseHandler","gameSlice","setGameSettings","setSolveExerciseHandler","resetGameSettings","GameLevel","GameComplexityStringToEnum","C1","C10","C100","C1000","C10000","Role","GameLevelStringToEnum","L1","L2","L3","L4","L5","L6","L7","L8","L9","studentInitialState","getCoursesCatalog","getHomeworks","solveExercise","getMyAllowedAlgorithms","coursesCatalog","homeworks","selectedExercise","myAllowedAlgorithms","studentSlice","getCoursesCatalogStart","getCoursesCatalogSuccess","getCoursesCatalogFailure","getHomeworksStart","getHomeworksSuccess","getHomeworksFailure","solveExerciseStart","solveExerciseSuccess","solveExerciseFailure","getMyAllowedAlgorithmsStart","getMyAllowedAlgorithmsSuccess","allowedGameAlgorithmsJson","malyBrat1","malyBrat2","malyBrat3","malyBrat4","duzyBrat1","duzyBrat2","duzyBrat3","duzyBrat4","duzyBrat5","duzyBrat6","duzyBrat7","duzyBrat8","duzyBrat9","getMyAllowedAlgorithmsFailure","setSelectedExercise","game","requiredTurbo","requiredMinimalMaxSteps","requiredDoublePower","requiredCombinations","requiredMinimalGeneratorSpeedInSeconds","requiredMinimalLevel","requiredMinimalComplexity","gameSettingsToSet","cleanUpMyAllowedAlgorithms","cleanUpCourseCatalogStatus","teacherCalendarInitialState","getTeacherLessonsFromMonth","teacherLessonsFromMonth","selectedMonthAndYearFromCalendar","month","year","teacherCalendarSlice","setCalendarMonthAndYear","getTeacherLessonsFromMonthStart","getTeacherLessonsFromMonthSuccess","getTeacherLessonsFromMonthFailure","teacherGamesInitialState","getGames","createGame","deleteGame","teacherGamesSlice","getGamesStart","getGamesSuccess","getGamesFailure","createGameStart","createGameSuccess","createGameFailure","deleteGameStart","deleteGameSuccess","deleteGameFailure","cleanUpGames","teacherGroupsInitialState","getTeacherGroups","getTeacherGroup","createTeacherGroup","updateTeacherGroup","deleteTeacherGroup","activateTeacherGroup","teacherGroup","teacherGroups","getTeacherGroupsParams","teacherGroupsSlice","getTeacherGroupStart","getTeacherGroupSuccess","getTeacherGroupFailure","getTeacherGroupsStart","getTeacherGroupsSuccess","getTeacherGroupsFailure","createTeacherGroupStart","createTeacherGroupSuccess","createTeacherGroupFailure","updateTeacherGroupStart","updateTeacherGroupSuccess","updateTeacherGroupFailure","deleteTeacherGroupStart","deleteTeacherGroupSuccess","deleteTeacherGroupFailure","activateTeacherGroupStart","activateTeacherGroupSuccess","activateTeacherGroupFailure","cleanUpTeacherGroupDetails","cleanUpTeacherGroups","teacherLessonsInitialState","getTeacherLesson","teacherLesson","teacherLessonsSlice","getTeacherLessonStart","getTeacherLessonSuccess","getTeacherLessonFailure","cleanUpTeacherLessonDetails","cleanUpTeacherLessonCrud","teacherStudentsInitialState","getMyStudents","updateAllowedAlgorithms","myStudents","teacherStudentsSlice","getMyStudentsStart","getMyStudentsSuccess","getMyStudentsFailure","updateAllowedAlgorithmsStart","updateAllowedAlgorithmsSuccess","updateAllowedAlgorithmsFailure","cleanUpMyStudents","accountInitialState","confirmEmail","forgotPassword","updateAccountDetails","resetPassword","deleteAccount","resendConfirmationEmail","changePassword","getWalletTransactions","getIncomingInstallments","walletTransactions","incomingInstallments","accountSlice","confirmEmailStart","confirmEmailSuccess","confirmEmailFailure","forgotPasswordStart","forgotPasswordSuccess","forgotPasswordFailure","updateAccountDetailsStart","updateAccountDetailsSuccess","updateAccountDetailsFailure","resetPasswordStart","resetPasswordSuccess","resetPasswordFailure","deleteAccountStart","deleteAccountSuccess","deleteAccountFailure","resendConfirmationEmailStart","resendConfirmationEmailSuccess","resendConfirmationEmailFailure","changePasswordStart","changePasswordSuccess","changePasswordFailure","getWalletTransactionsStart","getWalletTransactionsSuccess","getWalletTransactionsFailure","getIncomingInstallmentsStart","getIncomingInstallmentsSuccess","installments","getIncomingInstallmentsFailure","cleanUpAccountStatusStart","adminLogsInitialState","getLogsFiles","getLogsFileContent","downloadLogsFile","downloadAllLogsFiles","error","logs","logContent","adminLogsSlice","getLogsFilesStart","getLogsFilesSuccess","getLogsFilesFailure","getLogsFileContentStart","getLogsFileContentSuccess","getLogsFileContentFailure","downloadLogsFileStart","downloadLogsFileSuccess","downloadLogsFileFailure","downloadAllLogsFilesStart","downloadAllLogsFilesSuccess","downloadAllLogsFilesFailure","cleanUpLogStatusStart","adminMaintenanceMessagesInitialState","getMessages","getMessage","deleteMessage","createMessage","updateMessage","messages","getMessagesParams","messagesType","selectedMessage","adminMaintenanceMessagesSlice","getMessagesStart","getMessagesSuccess","getMessagesFailure","getMessageStart","getMessageSuccess","getMessageFailure","deleteMessageStart","deleteMessageSuccess","m","deleteMessageFailure","createMessageStart","createMessageSuccess","createMessageFailure","updateMessageStart","updateMessageSuccess","message","u","startDate","startDateInUtc","endDate","endDateInUtc","description","updateMessageFailure","updateGetMessagesParams","cleanUpMessageStatus","cleanUpMessagesTable","cleanUpSelectedMessage","adminUsersInitialState","getUsers","getUser","deleteUser","createUser","updateUser","setUserPassword","createWalletTransaction","changeWalletVisibility","users","getUsersParams","role","Student","selectedUser","adminUsersSlice","getUsersStart","getUsersSuccess","getUsersFailure","getUserStart","getUserSuccess","getUserFailure","deleteUserStart","deleteUserSuccess","deleteUserFailure","createUserStart","createUserSuccess","createUserFailure","updateUserStart","updateUserSuccess","user","firstName","lastName","updateUserFailure","setUserPasswordStart","setUserPasswordSuccess","setUserPasswordFailure","createWalletTransactionStart","createWalletTransactionSuccess","createWalletTransactionFailure","changeWalletVisibilityStart","changeWalletVisibilitySuccess","changeWalletVisibilityFailure","cleanUpUserStatus","cleanUpUsersTable","cleanUpSelectedUser","globalAccountInitialState","getAccountDetails","accountDetails","globalAccountSlice","getAccountDetailsStart","getAccountDetailsSuccess","getAccountDetailsFailure","clearAccountStart","authInitialState","login","logout","register","refreshToken","tokens","accessToken","flags","appStarting","globalAuthSlice","loginStart","loginSuccess","loginFailure","loginFinish","registerStart","registerSuccess","registerFailure","logoutStart","refreshTokenStart","refreshTokenSuccess","refreshTokenFailure","appStarted","cleanUpAuthStatusStart","maintenanceMessagesInitialState","getCurrentMessages","currentMessages","globalMaintenanceMessagesSlice","getCurrentMessagesStart","getCurrentMessagesSuccess","getCurrentMessagesFailure","globalWalletInitialState","getWalletBalance","balance","globalWalletSlice","getWalletBalanceStart","getWalletBalanceSuccess","getWalletBalanceFailure","rootReducer","combineReducers","global","auth","reducer","account","maintenanceMessages","wallet","pages","admin","student","teacher","calendar","store","configureStore","middleware","getDefaultMiddleware","serializableCheck","LoadingScreen","container","style","width","height","position","display","justifyContent","alignItems","top","left","zIndex","backgroundColor","overflow","className","size","ProtectedRoute","props","useSelector","token","Component","component","rest","acceptedRoles","roles","some","includes","render","to","pathname","location","appConfig","urls","backend","frontend","baseUrlToIncludeInEmail","process","signIn","signUp","home","frontendUrl","publicUrls","AccountApi","requests","get","body","put","post","urlToIncludeInEmail","params","UsersApi","userId","delete","LogsApi","logName","download","zipName","AuthApi","fetch","method","credentials","languages","fullLanguages","key","i18n","use","Backend","LanguageDetector","initReactI18next","init","lng","fallbackLng","whitelist","ns","defaultNS","nsSeparator","debug","detection","cache","interpolation","escapeValue","createBrowserHistory","isRefreshing","failedQueue","processQueue","prom","reject","resolve","shouldRedirectToSignIn","browserUrl","url","urlWithoutWildcard","replace","baseURL","axios","defaults","interceptors","request","config","getState","headers","Authorization","Promise","response","data","Blob","then","dataFromBlob","errors","detailedErrorExists","commonErrorExists","mainErrorObject","detailedErrors","detailedError","errorCode","errorParameters","errorCodeWithDot","translationKey","args","arg","json","parsedJsonObject","jsonString","o","e","tryParseJSONObject","x","i18next","language","window","localStorage","i18nextLng","notification","t","commonErrors","console","log","handleBadRequest","castedError","_retry","_queued","originalRequest","catch","err","agent","Auth","dispatch","history","setItem","finally","handleUnauthorized","handleForbidden","handleNotFound","handleInternalServerError","withCredentials","MaintenanceMessagesApi","messageId","CoursesApi","courseId","getCoursesCatalogForStudent","WalletsApi","LessonTopicsApi","lessonTopicId","GroupsApi","groupId","TeachersApi","StudentsApi","studentId","updateAllowedAlgorithmsForStudent","LessonsApi","GamesApi","gameId","HomeworksApi","createHomeworkInGroup","homeworkId","getMyHomeworks","exerciseId","responseBodyAxios","defaultHeaders","Accept","responseBodyFetch","fileName","responseType","URL","createObjectURL","link","document","createElement","href","setAttribute","appendChild","click","removeChild","Account","Logs","Users","MaintenanceMessages","Courses","Wallets","LessonTopics","Groups","Teachers","Students","Lessons","Games","Homeworks","a","onSuccess","onFailure","accountDetailsResponse","Title","Typography","ConfirmEmailContainer","match","useDispatch","useTranslation","useEffect","confirmationCode","success","justify","align","CheckOutlined","block","type","ExclamationOutlined","removeItem","formRules","required","max","isDeleted","email","birthDate","emailLanguage","lockoutEnd","getFieldValue","validator","rule","lockoutEnabled","emailConfirmed","phoneConfirmed","phoneNumber","pattern","RegExp","loginPassword","password","min","confirmPassword","fieldToCompare","customContactDataForStudent","contactPersonFirstName","contactPersonLastName","contactPersonEmail","contactPersonPhone","course","costGrossPerLessonInPln","defaultNumberOfLessonsInCourse","lessonTopic","walletTransaction","transactionValue","group","maxParticipants","address","classroom","dayOfLessons","lessonTime","groupStartingDateTime","numberOfLessons","surchargeForInstallments","numberOfInstallments","lessonDate","costGrossInPln","requiredRepetitions","homework","maxRepetitionsPerDay","availableUntilUtc","studentIds","others","ChangePasswordForm","onFinish","loading","layout","Item","label","messageVariables","rules","Password","placeholder","htmlType","ChangePasswordModal","showModal","onCancel","onSave","title","visible","footer","maskClosable","destroyOnClose","EditProfileForm","isStudent","EditProfileContainer","useHistory","updateAccountStatus","getAccountDetailsStatus","deleteAccountStatus","changePasswordStatus","useState","changePasswordModalVisiblity","setChangePasswordModalVisiblity","handleChangePasswordModalSave","span","xs","md","lg","xl","xxl","r","initialValues","moment","icon","ExclamationCircleOutlined","onConfirm","danger","onClick","ForgotPasswordForm","prefix","UserOutlined","initialValue","hidden","ForgotPasswordContainer","forgotPasswordStatus","autoComplete","ResendConfirmationEmailForm","ResendConfirmationEmailContainer","resendConfirmationEmailStatus","ResetPasswordForm","ResetPasswordContainer","passwordResetCode","dateTimeUtils","formats","YearMonthDay","YearMonthDayHourMinute","YearMonthDayHourMinuteSecond","HourMinute","HourMinuteSecond","getLocalDateTimeString","date","length","Date","local","format","getLocalDateString","getLocalTimeString","getLocalTimeStringFromTimeBasedOnDate","time","dateTime","getLocalDateTimeFromDateTimeOffsetString","getLocalDateTime","getCurrentDayMonthAndYear","utc","split","Number","day","getDayMonthAndYear","WalletTransactionsTable","tableLayout","rowKey","scroll","showHeader","dataSource","dataIndex","balanceAfterTransaction","toFixed","balanceBeforeTransaction","Text","renderTransactionValue","createdAtUtc","WalletTransactions","adminView","studentView","studentWalletBalance","showWalletTransactionFormModal","anyTransactions","walletBalance","gutter","closable","showIcon","PlusOutlined","strong","IncomingInstallments","localDate","amount","WalletContainer","walletBalanceStatus","incomingInstallmentsStatus","AccountPages","exact","path","Admin","Teacher","StudentHomeworkExercise","exercise","total","studentExercises","completed","se","completedAtUtc","onSolveClick","Panel","header","areAllSolved","limit","polishTimeZone","reachedTheLimit","tz","isSame","QuestionCircleOutlined","color","renderSolveButton","sm","bordered","renderItem","studentExercise","StudentHomework","ghost","isOutdated","isFinished","exercises","getAdditionalClassNames","StudentHomeworks","hideOnSinglePage","StudentHomepageContainer","isStudentBlocked","getHomeworksStatus","HomeContainer","accountDetailsStatus","additionalDataForTeacher","isConfirmed","studentInstallmentsNotPaidInCurrentMonth","toBeStudentAccountBlockedFrom","maxHeight","maxWidth","opacityTransition","src","adminImage","teacherImage","studentImage","calculatorImage","shape","HomePages","ForbiddenContainer","subTitle","InternalServerErrorContainer","NotFoundContainer","ResultPages","tableUtils","columnKey","c","filtersForTable","orderByForTable","ob","sortOrder","UsersSearchForm","form","handleSearch","showUserFormModal","noStyle","offset","allowClear","SearchOutlined","manageTableOrderBy","requestOrderByToAntdOrderBy","UsersTable","selectedRole","requestPagination","userSearchForm","changingWalletVisibility","onChangeWalletVisibility","translatedOrderBy","paginationConfig","showSizeChanger","onChange","newFilters","record","incomingPayment","toBePaidAtUtc","isWalletHidden","defaultChecked","overlay","menuForActionDropdown","trigger","placement","SettingFilled","breakpoints","UnconfirmTeacherModal","onOk","isMobile","useMediaQuery","UserForm","useForm","islockoutEnabled","setIsLockoutEnabled","isSelectedStudentRole","setIsSelectedStudentRole","isSelectedTeacherRole","setIsSelectedTeacherRole","unconfirmTeacherModalVisibility","setUnconfirmTeacherModalVisibility","areAdditionalContactFieldRequired","editMode","undefined","setFieldsValue","onValuesChange","changedValue","allValues","disabled","mode","Option","showTime","showMinute","showHour","valuePropName","target","checked","tooltip","CreateUserModal","onCreate","defaultRole","phoneNumberConfirmed","lockoutEndUtc","UpdateUserModal","onUpdate","SetUserPasswordForm","SetUserPasswordModal","LessonStatus","UsersTableContainer","URLSearchParams","useLocation","search","usersStatus","getUserParams","setUserPasswordStatus","userFormModalVisible","setUserFormModalVisible","userSetPasswordModalVisiblity","setUserSetPasswordModalVisiblity","userForSetPassword","setUserForSetPassword","resetFields","hideUserFormModal","handleSetUserPasswordModalSave","userToCreate","userToUpdate","res","userToDelete","Modal","confirm","content","okText","okType","cancelText","userToChangePassword","DayOfWeek","LessonStatusDict","Planned","GoingOn","Completed","MovedCompleted","Canceled","TeacherCalendarCell","getLessonColor","renderLessonStatusTag","renderLessonTypeIndividual","isIndividual","getLessonTime","startUtc","endUtc","getPopoverContent","stopPropagation","TeacherCalendarHeader","localeData","selectedYear","now","clone","String","yearOptions","i","getYearOptions","selectedMonth","newValue","parseInt","months","monthOptions","getMonthOptions","TeacherCalendar","initialMonth","initialYear","onLessonClick","defaultDate","defaultValue","dateCellRender","formatedDate","lessonFromThisDate","headerRender","onTypeChange","PaymentType","DayOfWeekDict","Sunday","Tuesday","Monday","Thursday","Wednesday","Saturday","Friday","daysOfWeek","TeacherDetailsGroupsTable","numberOfParticipants","cost","surcharge","lessonTimeEndUtc","lessonTimeStartUtc","isActive","UserGeneralInfo","userName","generatedRoleKey","UserGeneralTab","walletLoading","isTeacher","walletTransactionForStudent","UserSecurityTab","accessFailedCount","twoFactorEnabled","GetUserTabs","availableTabs","tab","activeTab","setActiveTab","tabList","activeTabKey","onTabChange","WalletTransactionForm","currentWalletBalance","walletBalanceAfterTransaction","setWalletBalanceAfterTransaction","changedValues","step","precision","TextArea","CreateWalletTransactionModal","children","minWidth","Mobile","UserDetailsContainer","walletTransactionFormModalVisible","setWalletTransactionFormModalVisible","hideWalletTransactionFormModal","goBack","ArrowLeftOutlined","count","LockOutlined","AdminUsersPages","LogCard","activeCardIndex","onCardClick","onDownloadClick","cardClasses","toLocaleString","DownloadOutlined","AllLogsCard","PageTitle","avatar","Input","AllLogsContainer","setFileName","setActiveCardIndex","handleLogCardClick","showLogsFileContent","handleDownloadClick","FileSearchOutlined","prototype","join","call","AdminLogsPages","MessageForm","showSecond","CreateMessageModal","UpdateMessageModal","MessagesSearchForm","setCreateMessageModalVisibility","setMessagesType","MessagesTable","onDeleteMessageClick","onUpdateMessageClick","MessagesTableContainer","messagesStatus","setSelectedMessage","createMessageModalVisibility","updateMessageModalVisibility","setUpdateMessageModalVisibility","tableLoading","toJSON","messageToCreate","messageToUpdate","AdminMessagesPages","AdminNavbarContainer","navbarItems","subkeys","FacilityCaretaker","activeNavbarItemKey","setActiveNavbarItemKey","activeSubKey","setActiveSubKey","setLoading","navbarItem","subKey","subkey","usersSubMenu","SubMenu","coursesSubMenu","TagsOutlined","lessonTopicsSubMenu","FormOutlined","logsSubMenu","FileTextOutlined","maintenanceMessagesMenu","IssuesCloseOutlined","groupsSubMenu","TeamOutlined","defaultOpenKeys","selectedKeys","CourseBasicInfo","CourseDetailsHeader","courseName","onBack","CourseGroupsTable","CourseDetailsContainer","getCourseStatus","CourseForm","CreateCourseModal","UpdateCourseModal","CoursesSearchForm","showCourseFormModal","manageTableFilters","requestFiltersToAntdFilters","CoursesTable","deleteLoading","onDeleteCourse","translatedFilters","filterMultiple","filteredValue","CoursesTableContainer","getCoursesStatus","createCourseStatus","deleteCourseStatus","updateCourseStatus","courseFormModalVisible","setCourseFormModalVisible","hideCourseFormModal","courseToDelete","AdminCoursesPages","PresenceStatus","PaymenTypeStringToEnum","Installments","PayAtOnce","mappedResponse","paymentType","LessonForm","options","RangePicker","lessonStatuses","CreateLessonModal","UpdateLessonModal","GroupDescription","onActivateGroup","price","deletedAtUtc","groupsGlobalService","getGroupPriceWithoutSurchargeForInstallments","reduce","previousValue","currentValue","checkIfFirstLessonEnd","sortedLessons","sort","b","localeCompare","firstLessonEndDateTime","valueOf","checkIfFirstLessonIsInCurrentMonth","getFirstInstallmentValue","convertToCreateGroupRequest","lessonTimeStart","lessonTimeEnd","groupStartingAtUtc","convertToCreateOrUpdateLessonRequest","startDateTimeString","endDateTimeString","GroupBasicInfo","GroupDetailsHeader","groupName","StudentDescription","totalPayment","groupStatus","statusToString","individualLessons","paymentPaid","GroupStudents","onEditClick","isGroupActive","sortedStudents","EditOutlined","InfoCircleOutlined","expandIconPosition","GroupStudentsSearchForm","onSaveChanges","GroupStudentsTable","viewAs","isFirstLessonInCurrentMonth","firstInstallmentValue","groupPriceWithoutSurchargeForInstallments","onUpdateStudentsAssignedToGroup","selectedStudents","setSelectedStudents","studentsState","setStudentsState","disabledPaymentType","isAssignedToThisGroup","replaceStudentInStudentsState","studentToReplace","getDeepCopiedStudentFromStudentsState","queryToLower","toLowerCase","sticky","rowSelection","defaultSelectedRowKeys","selectedRowKeys","columnWidth","fixed","onSelect","selected","warning","Group","newPaymentType","onPaymenTypeChange","GroupStudentsTableContainer","getAllStudentsForGroupStatus","currentlyLoggedUser","isLoggedAsAdmin","EditGroupStudentsModal","onClose","ChangeLessonStatusForm","ChangeLessonStatusModal","LessonStatusTag","LessonTypeTag","LessonDescription","canEdit","canSetReplacementTeacher","onChangeLessonStatus","onChangeLessonTopicClick","onChangeReplacementTeacherClick","replacementTeacher","GroupLessons","teacherView","onDeleteLesson","onUpdateLesson","onNewLesson","onMoveLesson","onReplacementLesson","renderLessonHeader","lessonName","hasCollidingDate","anyOtherLessonHasTheSameStartAndEnd","fontWeight","overlapping","element","elStart","elEnd","isBetween","isLessonDeleted","hasLessonTopic","isFunctionForChangeStatusDefined","event","TeacherGamesFormItems","modalMode","fieldKey","fieldName","getInitialValues","getName","getFieldKey","HomeworkForm","availableStudents","getInitialGameValues","homeworkNumber","mappedGames","gamePayload","List","fields","add","remove","restField","defaultActiveKey","MinusCircleOutlined","algorithm","disabledDate","endOf","CreateHomeworkModal","availableGames","onCreateHomework","centered","HomeworkExercise","uniqueStudentIds","uniqueStudentId","HomeworkListItem","onDeleteHomework","additionalClassNames","Set","flatMap","GroupHomeworks","onCreateClick","homeworksToShow","MoveLessonModal","onSubmit","oldLessonDate","oldLessonTime","newLessonDate","newLessonTime","inputReadOnly","GroupDetailsContainer","getGroupStatus","updateGroupStudentsStatus","editGroupStudentsModalVisible","setEditGroupStudentsModalVisible","createLessonStatus","updateLessonStatus","deleteLessonStatus","changeLessonStatusStatus","createHomeworkStatus","deleteHomeworkStatus","getAllLessonTopicsStatus","getAllGamesStatus","setSelectedLesson","createLessonModalVisibility","setCreateLessonModalVisibility","updateLessonModalVisibility","setUpdateLessonModalVisibility","createHomeworkModalVisibility","setCreateHomeworkModalVisibility","moveLessonModalVisibility","setMoveLessonModalVisibility","changeLessonStatusModalVisiblity","setChangeLessonStatusModalVisiblity","setEditMode","updatedStudents","updateStudent","ChangeLessonTopicForm","availableLessonTopics","ChangeLessonTopicModal","currentLessonTopicId","ChangeReplacementTeacherForm","currentReplacementTeacherId","availableTeachers","replacementTeacherId","ChangeReplacementTeacherModal","PointsInput","onPointsChange","timer","setTimer","inputMode","clearTimeout","setTimeout","isNaN","Math","round","delayedPointsChangeRequest","PresenceStatusDictionary","Present","Absent","presenceStatusArray","PresenceSelect","onPresenceStatusChange","newStatus","LessonStudents","GroupLessonContainer","useParams","getLessonStatus","getAllTeachersStatus","changeLessonTopicStatus","changeReplacementTeacherStatus","changeLessonTopicModalVisibility","setChangeLessonTopicModalVisibility","changeReplacementTeacherModalVisibility","setChangeReplacementTeacherModalVisibility","foundLessonTopics","l","getCurrentLessonTopic","getLessonDate","InfoAboutCosts","selectedCost","selectedNumberOfLessons","selectedSurchargeForInstallments","validData","GroupForm","view","setSelectedCourse","setSelectedCost","setSelectedSurchargeForInstallments","setSelectedNumberOfLessons","CreateGroupModal","teacherId","UpdateGroupModal","GroupsSearchForm","dataForFormLoading","showGroupFormModal","canCreate","GroupsTable","onDeleteGroup","GroupsTableContainer","getGroupsStatus","createGroupStatus","deleteGroupStatus","updateGroupStatus","getAllCoursesStatus","groupFormModalVisible","setGroupFormModalVisible","setSelectedGroup","hideGroupFormModal","groupToDelete","AdminGroupsPages","LessonTopicForm","CreateLessonTopicModal","UpdateLessonTopicModal","LessonTopicsSearchForm","showLessonTopicFormModal","LessonTopicsTable","onDeleteLessonTopic","LessonTopicsTableContainer","getLessonTopicsStatus","createLessonTopicStatus","deleteLessonTopicStatus","updateLessonTopicStatus","lessonTopicFormModalVisible","setLessonTopicFormModalVisible","selectedLessonTopic","setSelectedLessonTopic","hideLessonTopicFormModal","lessonTopicToDelete","AdminLessonTopicsPages","AdminLayoutContainer","Content","Sider","collapsible","defaultCollapsed","collapsedWidth","AdminPages","LoginForm","LoginContainer","returnUrl","getItem","detailedErrorCode","PreRegisterContainer","RegisterForm","RegisterContainer","roleToPassToForm","preserve","AuthPages","lookupTable","positive","negative","gameBoardService","randomizeNumber","allowZero","ceil","floor","result","random","getBlinkSpeedInMs","blinkSpeedInMs","getOperationsHistoryAsString","operationsHistory","correctSum","finalString","val","replaceAll","areAllDigitsInNumberAllowed","numberToCheckAsString","getAllowedNumbers","scoreFromLastRound","isLastRound","complexityLength","tresholdNumber","allPossibleNumbers","currentNumber","currentNumberAsString","tempAllowedNumbers","allPossibleNumbersDict","scoreAfterAddition","isDuzyBrat","scoreAfterAdditionDigits","numberOfDigitsInScoreFromLastRound","allowedNumbers","tempAllowedNumber","numberOfDigitsInAllowedNumber","numberOfIterations","isNegative","checkIfWillBeSubtracting","alignZerosInNumbers","scoreFromLastRoundAsString","tempAllowedNumberAsString","checkIfIsAllowedInLookupTable","getDigitFromResultParsedForDuzyBrat","digitFromResult","currentDigitIndex","nextDigitIndex","isAnotherDigitOnHigherPosition","foundValueToBorrowFromAtIndex","idx","digit","substring","replacement","newDigitFromResult","newScoreFromLastRoundAsString","isAllowed","currentDigitIndexInScore","charAt","digitFromTempAllowedNumber","notAllowed","defaultAlgorithm","requiredZerosBeforeScoreFromLastRound","requiredZerosBeforeTempAllowedNumber","CheckGameResultForm","stillPlaying","onResultCheck","AfterGameButtonsSection","homeworkMode","onRetry","GameBoard","numberPlacementOffsetInPercent","numberToAdd","currentCountDownTimer","showRetryButton","generatedNumberHtmlElementRef","useRef","numberToAddClassName","setNumberToAddClassName","number","ref","y","offsetWidth","textToSpeechService","synth","speechSynthesis","sayOperation","ommitAddSign","textToSpeak","getTextToSpeak","msg","SpeechSynthesisUtterance","voice","getPolishVoice","rate","getSpeakSpeed","pitch","volume","speak","shouldBeSpeaking","currentIteration","numberOfDigits","getNumberOfDigitsWithoutSign","getBrowserBasedSpeedMultiplier","browserBasedMultiplier","browserName","getGeneratorBasedSpeedMultiplier","getNumberOfDigitBasedSpeedMultiplier","numberOfDigitsBasedMultiplier","speakSpeed","voices","getVoices","v","lang","maleVoice","voiceURI","defaultVoice","default","rootClass","AfterGameSuccessModal","SmileOutlined","GameBoardContainer","initialContainerState","setStillPlaying","isCountingDown","setIsCountingDown","setCurrentCountDownTimer","setCurrentIteration","setNumberPlacementOffsetInPercent","setShowRetryButton","uniqueBoardId","setUniqueBoardId","setCorrectSum","iteration","setNumberToAdd","setOperationsHistory","countDownTimer","setInterval","clearInterval","randomizedNumber","generatedOffsetX","generatedOffsetY","trim","okButtonProps","FrownOutlined","GameAlgorithmPicker","allowedAlgorithms","studentMode","exerciseMode","onAlgorithmPick","gameAlgorithms","setGameAlgorithms","tempAllowedAlgorithms","alg","GameSettingsForm","exerciseSettings","onGameStart","formInitialValues","isLevelDisabled","isComplexityDisabled","newAlgorithm","PlayCircleOutlined","GameSettings","settings","getMyAllowedAlgorithmsStatus","handleSolveExercise","GamePages","GameSettingsContainer","StudentCourseListItem","Meta","TagOutlined","CoursesForStudentContainer","coursesLoading","itemLayout","ExerciseContainer","stringifiedExercise","getSelectedExercise","completedRepetitions","gameRequiredRepetitions","isCounted","singleStudentExerciseFinished","wholeStudentExerciseFinished","limitExceeded","nowFinishedWholeExercise","doneEnoughGameRepetitionsButDidNotCompleteExercise","onlyIncrementedGameRepetition","info","StudentPages","TeacherCalendarContainer","lessonsFromMonth","lessonFromMonthStatus","TeacherLessonDetailsContainer","teacherLessonStatus","TeacherGroupDetailsContainer","teacherGroupStatus","TeacherGamesForm","selectedGameForEdit","onCreateGame","layoutVertical","TeacherGamesTable","fetching","onDeleteGame","deleting","renderRequiredBoolean","DeleteOutlined","TeacherGamesContainer","getGamesStatus","createGameStatus","deleteGameStatus","AllowedGameAlgorithmsForm","MyStudent","updatingAllowedAlgorithms","onUpdateAllowedAlgorithms","setInitialValues","MyStudentsList","MyStudentsContainer","getMyStudentsStatus","updateAllowedAlgorithmsStatus","TeacherPages","TeacherGroupsContainer","Routes","AccountSubMenu","changeLanguage","SettingOutlined","TranslationOutlined","Divider","LogoutOutlined","HomeMenuItem","AdminNavbar","adminUsersMenuItem","gameMenuItem","MenuOutlined","StudentNavbar","walletText","courseMenuItem","WalletOutlined","NotLoggedInNavbar","signUpMenuItem","UserAddOutlined","signInMenuItem","LoginOutlined","languagesMenuItem","TeacherNavbar","NavbarContainer","validationMessages","enum","whitespace","invalid","types","string","array","object","boolean","integer","float","regexp","hex","len","range","mismatch","banner","Layout","Header","locale","App","AOS","onFinished","bottom","duration","pl","en","validateMessages","ReactDOM","fallback","getElementById"],"mappings":"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G,EACH,EAAG,EACH,EAAG,GAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,QAILC,SAAU,CACT,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,KDhNOF,GEfuB,CACnCC,SAAU,CACT,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,GAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,QAILC,SAAU,CACT,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,KFhNOF,GGfuB,CACnCC,SAAU,CACT,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,GAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,QAILC,SAAU,CACT,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,KHhNOF,GIfuB,CACnCC,SAAU,CACT,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,GAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,QAILC,SAAU,CACT,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,MACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,KJhNOF,GKfuB,CACnCC,SAAU,CACT,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,GAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,QAILC,SAAU,CACT,EAAG,CACF,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,EACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,MACH,EAAG,OAEJ,EAAG,CACF,EAAG,EAC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","file":"static/js/main.75a20c48.chunk.js","sourcesContent":["export enum StatusType {\r\n\tInitial,\r\n\tLoading,\r\n\tSuccess,\r\n\tFailed,\r\n}\r\n\r\nexport default StatusType;\r\n","export enum GameAlgorithm {\r\n\tDefault = 0,\r\n\tDuzyBrat1 = 1,\r\n\tDuzyBrat2 = 2,\r\n\tDuzyBrat3 = 3,\r\n\tDuzyBrat4 = 4,\r\n\tDuzyBrat5 = 5,\r\n\tDuzyBrat6 = 6,\r\n\tDuzyBrat7 = 7,\r\n\tDuzyBrat8 = 8,\r\n\tDuzyBrat9 = 9,\r\n\tMalyBrat1 = 11,\r\n\tMalyBrat2 = 12,\r\n\tMalyBrat3 = 13,\r\n\tMalyBrat4 = 14,\r\n}\r\n\r\nexport const GameAlgorithmOptions: { text: string; value: GameAlgorithm }[] = [\r\n\t{ text: 'Baza', value: GameAlgorithm.Default },\r\n\t{ text: 'Mały brat 4', value: GameAlgorithm.MalyBrat4 },\r\n\t{ text: 'Mały brat 3', value: GameAlgorithm.MalyBrat3 },\r\n\t{ text: 'Mały brat 2', value: GameAlgorithm.MalyBrat2 },\r\n\t{ text: 'Mały brat 1', value: GameAlgorithm.MalyBrat1 },\r\n\t{ text: 'Duży brat 9', value: GameAlgorithm.DuzyBrat9 },\r\n\t{ text: 'Duży brat 8', value: GameAlgorithm.DuzyBrat8 },\r\n\t{ text: 'Duży brat 7', value: GameAlgorithm.DuzyBrat7 },\r\n\t{ text: 'Duży brat 6', value: GameAlgorithm.DuzyBrat6 },\r\n\t{ text: 'Duży brat 5', value: GameAlgorithm.DuzyBrat5 },\r\n\t{ text: 'Duży brat 4', value: GameAlgorithm.DuzyBrat4 },\r\n\t{ text: 'Duży brat 3', value: GameAlgorithm.DuzyBrat3 },\r\n\t{ text: 'Duży brat 2', value: GameAlgorithm.DuzyBrat2 },\r\n\t{ text: 'Duży brat 1', value: GameAlgorithm.DuzyBrat1 },\r\n];\r\n\r\nexport const getGameAlgorithmTextByGameAlgorithmString = (gameAlgorithmString) => {\r\n\tconst foundAlgorithm = GameAlgorithmStringToEnum[gameAlgorithmString];\r\n\tconst foundAlgorithmOption = GameAlgorithmOptions.find((s) => s.value === foundAlgorithm);\r\n\r\n\tif (foundAlgorithmOption) {\r\n\t\treturn foundAlgorithmOption.text;\r\n\t}\r\n\r\n\treturn '-';\r\n};\r\n\r\nexport const GameAlgorithmStringToEnum = {\r\n\tDefault: GameAlgorithm.Default,\r\n\tDuzyBrat1: GameAlgorithm.DuzyBrat1,\r\n\tDuzyBrat2: GameAlgorithm.DuzyBrat2,\r\n\tDuzyBrat3: GameAlgorithm.DuzyBrat3,\r\n\tDuzyBrat4: GameAlgorithm.DuzyBrat4,\r\n\tDuzyBrat5: GameAlgorithm.DuzyBrat5,\r\n\tDuzyBrat6: GameAlgorithm.DuzyBrat6,\r\n\tDuzyBrat7: GameAlgorithm.DuzyBrat7,\r\n\tDuzyBrat8: GameAlgorithm.DuzyBrat8,\r\n\tDuzyBrat9: GameAlgorithm.DuzyBrat9,\r\n\tMalyBrat1: GameAlgorithm.MalyBrat1,\r\n\tMalyBrat2: GameAlgorithm.MalyBrat2,\r\n\tMalyBrat3: GameAlgorithm.MalyBrat3,\r\n\tMalyBrat4: GameAlgorithm.MalyBrat4,\r\n};\r\n\r\nexport const GameAlgorithmEnumToString = {\r\n\t[GameAlgorithm.Default]: 'Default',\r\n\t[GameAlgorithm.DuzyBrat1]: 'DuzyBrat1',\r\n\t[GameAlgorithm.DuzyBrat2]: 'DuzyBrat2',\r\n\t[GameAlgorithm.DuzyBrat3]: 'DuzyBrat3',\r\n\t[GameAlgorithm.DuzyBrat4]: 'DuzyBrat4',\r\n\t[GameAlgorithm.DuzyBrat5]: 'DuzyBrat5',\r\n\t[GameAlgorithm.DuzyBrat6]: 'DuzyBrat6',\r\n\t[GameAlgorithm.DuzyBrat7]: 'DuzyBrat7',\r\n\t[GameAlgorithm.DuzyBrat8]: 'DuzyBrat8',\r\n\t[GameAlgorithm.DuzyBrat9]: 'DuzyBrat9',\r\n\t[GameAlgorithm.MalyBrat1]: 'MalyBrat1',\r\n\t[GameAlgorithm.MalyBrat2]: 'MalyBrat2',\r\n\t[GameAlgorithm.MalyBrat3]: 'MalyBrat3',\r\n\t[GameAlgorithm.MalyBrat4]: 'MalyBrat4',\r\n};\r\n","import { IFilterItem, IOrderByItem, IPagination } from 'App/types/pagination/pagination';\r\n\r\ninterface IPaginationUtils {\r\n\tdefaultPaginationValues: IPagination;\r\n\thandleFiltersChange: (filters: any) => IFilterItem[];\r\n\thandleOrderByChange: (filters: any) => IOrderByItem[];\r\n\tinsertSingleOrderBy: (el: any, newOrderBy: IOrderByItem[]) => void;\r\n\tcalculatePageNumber: (pagination: any, extra: any) => number;\r\n}\r\n\r\nexport const paginationUtils: IPaginationUtils = {\r\n\tdefaultPaginationValues: {\r\n\t\torderBy: [],\r\n\t\tfilters: [],\r\n\t\tpageNumber: 1,\r\n\t\tpageSize: 10,\r\n\t\tquery: '',\r\n\t\ttotalItems: 0,\r\n\t},\r\n\r\n\t// funkcja generująca zestaw filtrów do requesta na podstawie tabeli Antd\r\n\thandleFiltersChange(filters: any): IFilterItem[] {\r\n\t\tlet filterList: IFilterItem[] = [];\r\n\t\tconst filtrationKeys = Object.keys(filters);\r\n\r\n\t\tfiltrationKeys.forEach((filtrationKey) => {\r\n\t\t\tconst filterValues = filters[filtrationKey]?.map((filter) => filter.toString());\r\n\t\t\tif (filterValues) {\r\n\t\t\t\tfilterList.push({\r\n\t\t\t\t\tfield: filtrationKey,\r\n\t\t\t\t\tvalues: filters[filtrationKey].map((filter) => filter.toString()),\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn filterList;\r\n\t},\r\n\r\n\t// funkcja pomocnicza do ustawiania pojedynczego elementu sortowania\r\n\tinsertSingleOrderBy(el: any, newOrderBy: IOrderByItem[]) {\r\n\t\tif (el.order && el.column && el.field) {\r\n\t\t\tconst index = el.column.sorter.multiple || 1;\r\n\t\t\tconst field = el.field;\r\n\t\t\tconst order = el.order;\r\n\r\n\t\t\tif (order === 'ascend') {\r\n\t\t\t\tnewOrderBy[index] = { field: field, direction: 'Ascending' };\r\n\t\t\t} else {\r\n\t\t\t\tnewOrderBy[index] = { field: field, direction: 'Descending' };\r\n\t\t\t}\r\n\t\t}\r\n\t},\r\n\r\n\t// funkcja generująca zestaw orderBy do requesta na podstawie tabeli Antd\r\n\thandleOrderByChange(sorter: any) {\r\n\t\tlet orderByList: IOrderByItem[] = [];\r\n\t\tif (Array.isArray(sorter)) {\r\n\t\t\tsorter.forEach((el) => {\r\n\t\t\t\tpaginationUtils.insertSingleOrderBy(el, orderByList);\r\n\t\t\t});\r\n\t\t} else {\r\n\t\t\tpaginationUtils.insertSingleOrderBy(sorter, orderByList);\r\n\t\t}\r\n\t\treturn orderByList;\r\n\t},\r\n\r\n\t// funkcja wyliczająca pageNumber jaki ma być ustawiony w requeście\r\n\t// domyślnym zachowaniem jest resetowanie pageNumber w przypadku\r\n\t// wykrycia zmiany filtracji lub sortowania na podstawie tabeli Antd\r\n\tcalculatePageNumber(pagination: any, extra: any) {\r\n\t\tlet pageNumberToSet = pagination.current || paginationUtils.defaultPaginationValues.pageNumber;\r\n\t\t// jeśli zmieniamy sortowanie lub filtrację to paginujemy od strony 1\r\n\t\tif (extra.action === 'sort' || extra.action === 'filter') {\r\n\t\t\tpageNumberToSet = paginationUtils.defaultPaginationValues.pageNumber;\r\n\t\t}\r\n\t\treturn pageNumberToSet;\r\n\t},\r\n};\r\n","import { CourseForGetCoursesResponse, GetCourseResponse } from 'App/api/endpoints/courses/responses';\r\nimport { paginationUtils } from 'App/common/utils/pagination.utils';\r\nimport { IPagination } from 'App/types/pagination/pagination';\r\nimport { StatusType } from 'App/types/requestStatus';\r\n\r\nconst { Initial } = StatusType;\r\nconst { defaultPaginationValues } = paginationUtils;\r\n\r\nexport interface AdminCoursesState {\r\n\tstatus: {\r\n\t\tgetCourses: StatusType;\r\n\t\tgetCourse: StatusType;\r\n\t\tcreateCourse: StatusType;\r\n\t\tupdateCourse: StatusType;\r\n\t\tdeleteCourse: StatusType;\r\n\t};\r\n\tcourses: CourseForGetCoursesResponse[];\r\n\tgetCoursesParams: IPagination;\r\n\tselectedCourse: GetCourseResponse;\r\n}\r\n\r\nexport const adminCoursesInitialState: AdminCoursesState = {\r\n\tstatus: {\r\n\t\tgetCourses: Initial,\r\n\t\tgetCourse: Initial,\r\n\t\tcreateCourse: Initial,\r\n\t\tupdateCourse: Initial,\r\n\t\tdeleteCourse: Initial,\r\n\t},\r\n\tcourses: [],\r\n\tgetCoursesParams: defaultPaginationValues,\r\n\tselectedCourse: null,\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { GetCourseResponse, GetCoursesResponse } from 'App/api/endpoints/courses/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { adminCoursesInitialState, AdminCoursesState } from './courses.state';\r\n\r\nconst { Failed, Loading, Success } = StatusType;\r\n\r\nexport const adminCoursesSlice = createSlice({\r\n\tname: 'admin-courses',\r\n\tinitialState: adminCoursesInitialState,\r\n\treducers: {\r\n\t\tgetCoursesStart: (state: AdminCoursesState) => {\r\n\t\t\tstate.status.getCourses = Loading;\r\n\t\t\tstate.courses = adminCoursesInitialState.courses;\r\n\t\t},\r\n\t\tgetCoursesSuccess(state: AdminCoursesState, action: PayloadAction) {\r\n\t\t\tstate.status.getCourses = Success;\r\n\t\t\tconst { courses, ...pagination } = action.payload;\r\n\t\t\tstate.courses = courses;\r\n\t\t\tstate.getCoursesParams = pagination;\r\n\t\t},\r\n\t\tgetCoursesFailure(state: AdminCoursesState) {\r\n\t\t\tstate.status.getCourses = Failed;\r\n\t\t},\r\n\r\n\t\tgetCourseStart: (state: AdminCoursesState) => {\r\n\t\t\tstate.status.getCourse = Loading;\r\n\t\t\tstate.selectedCourse = adminCoursesInitialState.selectedCourse;\r\n\t\t},\r\n\t\tgetCourseSuccess(state: AdminCoursesState, action: PayloadAction) {\r\n\t\t\tstate.status.getCourse = Success;\r\n\t\t\tstate.selectedCourse = action.payload;\r\n\t\t},\r\n\t\tgetCourseFailure(state: AdminCoursesState) {\r\n\t\t\tstate.status.getCourse = Failed;\r\n\t\t},\r\n\r\n\t\tcreateCourseStart: (state: AdminCoursesState) => {\r\n\t\t\tstate.status.getCourse = Loading;\r\n\t\t},\r\n\t\tcreateCourseSuccess(state: AdminCoursesState) {\r\n\t\t\tstate.status.getCourse = Success;\r\n\t\t},\r\n\t\tcreateCourseFailure(state: AdminCoursesState) {\r\n\t\t\tstate.status.getCourse = Failed;\r\n\t\t},\r\n\r\n\t\tupdateCourseStart: (state: AdminCoursesState) => {\r\n\t\t\tstate.status.updateCourse = Loading;\r\n\t\t},\r\n\t\tupdateCourseSuccess(state: AdminCoursesState) {\r\n\t\t\tstate.status.updateCourse = Success;\r\n\t\t},\r\n\t\tupdateCourseFailure(state: AdminCoursesState) {\r\n\t\t\tstate.status.updateCourse = Failed;\r\n\t\t},\r\n\r\n\t\tdeleteCourseStart: (state: AdminCoursesState) => {\r\n\t\t\tstate.status.deleteCourse = Loading;\r\n\t\t},\r\n\t\tdeleteCourseSuccess(state: AdminCoursesState) {\r\n\t\t\tstate.status.deleteCourse = Success;\r\n\t\t},\r\n\t\tdeleteCourseFailure(state: AdminCoursesState) {\r\n\t\t\tstate.status.deleteCourse = Failed;\r\n\t\t},\r\n\r\n\t\tcleanUpCoursesTable: (state: AdminCoursesState) => {\r\n\t\t\tstate.getCoursesParams = adminCoursesInitialState.getCoursesParams;\r\n\t\t\tstate.courses = adminCoursesInitialState.courses;\r\n\t\t\tstate.status.getCourses = adminCoursesInitialState.status.getCourses;\r\n\t\t},\r\n\r\n\t\tcleanUpSelectedCourse: (state: AdminCoursesState) => {\r\n\t\t\tstate.selectedCourse = adminCoursesInitialState.selectedCourse;\r\n\t\t\tstate.status.getCourse = adminCoursesInitialState.status.getCourse;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default adminCoursesSlice;\r\n\r\nexport const {\r\n\tgetCoursesStart,\r\n\tgetCoursesSuccess,\r\n\tgetCoursesFailure,\r\n\r\n\tgetCourseStart,\r\n\tgetCourseSuccess,\r\n\tgetCourseFailure,\r\n\r\n\tcreateCourseStart,\r\n\tcreateCourseSuccess,\r\n\tcreateCourseFailure,\r\n\r\n\tupdateCourseStart,\r\n\tupdateCourseSuccess,\r\n\tupdateCourseFailure,\r\n\r\n\tdeleteCourseStart,\r\n\tdeleteCourseSuccess,\r\n\tdeleteCourseFailure,\r\n\r\n\tcleanUpSelectedCourse,\r\n\tcleanUpCoursesTable,\r\n} = adminCoursesSlice.actions;\r\n","import { CourseForGetAllCoursesResponse } from 'App/api/endpoints/courses/responses';\r\nimport { GetGroupResponse, GroupForGetGroupsResponse } from 'App/api/endpoints/groups/responses';\r\nimport { StudentForGetAllStudentsForGroupResponse } from 'App/api/endpoints/students/responses';\r\nimport { LessonTopicForGetAllLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport { TeacherForGetAllTeachersResponse } from 'App/api/endpoints/teachers/responses';\r\nimport { paginationUtils } from 'App/common/utils/pagination.utils';\r\nimport { IPagination } from 'App/types/pagination/pagination';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { GameForGetGamesResponse } from 'App/api/endpoints/games/responses';\r\nimport { GetLessonResponse } from 'App/api/endpoints/lessons/responses';\r\n\r\nconst { Initial } = StatusType;\r\nconst { defaultPaginationValues } = paginationUtils;\r\n\r\nexport interface AdminGroupsState {\r\n\tstatus: {\r\n\t\tgetGroups: StatusType;\r\n\t\tgetGroup: StatusType;\r\n\t\tcreateGroup: StatusType;\r\n\t\tupdateGroup: StatusType;\r\n\t\tdeleteGroup: StatusType;\r\n\t\tactivateGroup: StatusType;\r\n\r\n\t\tcreateLesson: StatusType;\r\n\t\tupdateLesson: StatusType;\r\n\t\tdeleteLesson: StatusType;\r\n\t\tchangeLessonStatus: StatusType;\r\n\r\n\t\tupdateGroupStudents: StatusType;\r\n\r\n\t\tgetAllTeachers: StatusType;\r\n\t\tgetAllCourses: StatusType;\r\n\t\tgetAllStudentsForGroup: StatusType;\r\n\t\tgetAllLessonTopics: StatusType;\r\n\t\tgetAllGames: StatusType;\r\n\r\n\t\tcreateHomework: StatusType;\r\n\t\tdeleteHomework: StatusType;\r\n\r\n\t\tgetLesson: StatusType;\r\n\t\tchangePresenceStatus: StatusType;\r\n\t\tchangeStudentLessonPoints: StatusType;\r\n\t\tchangeLessonTopic: StatusType;\r\n\t\tchangeReplacementTeacher: StatusType;\r\n\t};\r\n\tgroups: GroupForGetGroupsResponse[];\r\n\tgetGroupsParams: IPagination;\r\n\tselectedGroup: GetGroupResponse;\r\n\tstudentsAvailableForGroup: StudentForGetAllStudentsForGroupResponse[];\r\n\tallTeachers: TeacherForGetAllTeachersResponse[];\r\n\tallCourses: CourseForGetAllCoursesResponse[];\r\n\tallLessonTopics: LessonTopicForGetAllLessonTopicsResponse[];\r\n\tallGames: GameForGetGamesResponse[];\r\n\tselectedLesson: GetLessonResponse;\r\n}\r\n\r\nexport const adminGroupsInitialState: AdminGroupsState = {\r\n\tstatus: {\r\n\t\tgetGroups: Initial,\r\n\t\tgetGroup: Initial,\r\n\t\tcreateGroup: Initial,\r\n\t\tupdateGroup: Initial,\r\n\t\tdeleteGroup: Initial,\r\n\t\tactivateGroup: Initial,\r\n\r\n\t\tcreateLesson: Initial,\r\n\t\tupdateLesson: Initial,\r\n\t\tdeleteLesson: Initial,\r\n\t\tchangeLessonStatus: Initial,\r\n\r\n\t\tgetAllTeachers: Initial,\r\n\t\tgetAllCourses: Initial,\r\n\t\tgetAllStudentsForGroup: Initial,\r\n\t\tgetAllLessonTopics: Initial,\r\n\r\n\t\tupdateGroupStudents: Initial,\r\n\r\n\t\tcreateHomework: Initial,\r\n\t\tdeleteHomework: Initial,\r\n\t\tgetAllGames: Initial,\r\n\r\n\t\tgetLesson: Initial,\r\n\t\tchangeStudentLessonPoints: Initial,\r\n\t\tchangePresenceStatus: Initial,\r\n\t\tchangeLessonTopic: Initial,\r\n\t\tchangeReplacementTeacher: Initial,\r\n\t},\r\n\tgroups: [],\r\n\tgetGroupsParams: defaultPaginationValues,\r\n\tselectedGroup: null,\r\n\tstudentsAvailableForGroup: [],\r\n\tallTeachers: [],\r\n\tallCourses: [],\r\n\tallLessonTopics: [],\r\n\tallGames: [],\r\n\tselectedLesson: null,\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { GetAllCoursesResponse } from 'App/api/endpoints/courses/responses';\r\nimport { GetGroupResponse, GetGroupsResponse } from 'App/api/endpoints/groups/responses';\r\nimport { GetAllStudentsForGroupResponse } from 'App/api/endpoints/students/responses';\r\nimport { GetAllLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport { GetAllTeachersResponse } from 'App/api/endpoints/teachers/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { adminGroupsInitialState, AdminGroupsState } from './groups.state';\r\nimport { LessonStatus } from 'App/common/utils/lessonStatus';\r\nimport { GetGamesResponse } from 'App/api/endpoints/games/responses';\r\nimport { GetLessonResponse } from 'App/api/endpoints/lessons/responses';\r\nimport { PresenceStatus } from 'App/types/studentLesson/pressenceStatus';\r\n\r\nconst { Failed, Loading, Success } = StatusType;\r\n\r\nexport const adminGroupsSlice = createSlice({\r\n\tname: 'admin-groups',\r\n\tinitialState: adminGroupsInitialState,\r\n\treducers: {\r\n\t\tgetGroupsStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.getGroups = Loading;\r\n\t\t\tstate.groups = adminGroupsInitialState.groups;\r\n\t\t},\r\n\t\tgetGroupsSuccess(state: AdminGroupsState, action: PayloadAction) {\r\n\t\t\tstate.status.getGroups = Success;\r\n\t\t\tconst { groups, ...pagination } = action.payload;\r\n\t\t\tstate.groups = groups;\r\n\t\t\tstate.getGroupsParams = pagination;\r\n\t\t},\r\n\t\tgetGroupsFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.getGroups = Failed;\r\n\t\t},\r\n\r\n\t\tgetGroupStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.getGroup = Loading;\r\n\t\t\tstate.selectedGroup = adminGroupsInitialState.selectedGroup;\r\n\t\t},\r\n\t\tgetGroupSuccess(state: AdminGroupsState, action: PayloadAction) {\r\n\t\t\tstate.status.getGroup = Success;\r\n\t\t\tstate.selectedGroup = action.payload;\r\n\t\t},\r\n\t\tgetGroupFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.getGroup = Failed;\r\n\t\t},\r\n\r\n\t\tcreateGroupStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.createGroup = Loading;\r\n\t\t},\r\n\t\tcreateGroupSuccess(state: AdminGroupsState) {\r\n\t\t\tstate.status.createGroup = Success;\r\n\t\t},\r\n\t\tcreateGroupFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.createGroup = Failed;\r\n\t\t},\r\n\r\n\t\tupdateGroupStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.updateGroup = Loading;\r\n\t\t},\r\n\t\tupdateGroupSuccess(state: AdminGroupsState) {\r\n\t\t\tstate.status.updateGroup = Success;\r\n\t\t},\r\n\t\tupdateGroupFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.updateGroup = Failed;\r\n\t\t},\r\n\r\n\t\tdeleteGroupStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.deleteGroup = Loading;\r\n\t\t},\r\n\t\tdeleteGroupSuccess(state: AdminGroupsState) {\r\n\t\t\tstate.status.deleteGroup = Success;\r\n\t\t},\r\n\t\tdeleteGroupFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.deleteGroup = Failed;\r\n\t\t},\r\n\r\n\t\tgetAllTeachersStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.getAllTeachers = Loading;\r\n\t\t},\r\n\t\tgetAllTeachersSuccess(state: AdminGroupsState, action: PayloadAction) {\r\n\t\t\tstate.allTeachers = action.payload.teachers;\r\n\t\t\tstate.status.getAllTeachers = Success;\r\n\t\t},\r\n\t\tgetAllTeachersFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.getAllTeachers = Failed;\r\n\t\t},\r\n\r\n\t\tgetAllCoursesStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.getAllCourses = Loading;\r\n\t\t},\r\n\t\tgetAllCoursesSuccess(state: AdminGroupsState, action: PayloadAction) {\r\n\t\t\tstate.allCourses = action.payload.courses;\r\n\t\t\tstate.status.getAllCourses = Success;\r\n\t\t},\r\n\t\tgetAllCoursesFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.getAllCourses = Failed;\r\n\t\t},\r\n\r\n\t\tactivateGroupStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.activateGroup = Loading;\r\n\t\t},\r\n\t\tactivateGroupSuccess(state: AdminGroupsState) {\r\n\t\t\tstate.status.activateGroup = Success;\r\n\t\t},\r\n\t\tactivateGroupFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.activateGroup = Failed;\r\n\t\t},\r\n\r\n\t\tgetAllStudentsForGroupStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.getAllStudentsForGroup = Loading;\r\n\t\t},\r\n\t\tgetAllStudentsForGroupSuccess(state: AdminGroupsState, action: PayloadAction) {\r\n\t\t\tstate.studentsAvailableForGroup = action.payload.students;\r\n\t\t\tstate.status.getAllStudentsForGroup = Success;\r\n\t\t},\r\n\t\tgetAllStudentsForGroupFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.getAllStudentsForGroup = Failed;\r\n\t\t},\r\n\r\n\t\tupdateGroupStudentsStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.updateGroupStudents = Loading;\r\n\t\t},\r\n\t\tupdateGroupStudentsSuccess(state: AdminGroupsState) {\r\n\t\t\tstate.status.updateGroupStudents = Success;\r\n\t\t},\r\n\t\tupdateGroupStudentsFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.updateGroupStudents = Failed;\r\n\t\t},\r\n\r\n\t\tgetAllLessonTopicsStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.getAllLessonTopics = Loading;\r\n\t\t},\r\n\t\tgetAllLessonTopicsSuccess(state: AdminGroupsState, action: PayloadAction) {\r\n\t\t\tstate.allLessonTopics = action.payload.lessonTopics;\r\n\t\t\tstate.status.getAllLessonTopics = Success;\r\n\t\t},\r\n\t\tgetAllLessonTopicsFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.getAllLessonTopics = Failed;\r\n\t\t},\r\n\r\n\t\tcreateLessonStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.createLesson = Loading;\r\n\t\t},\r\n\t\tcreateLessonSuccess(state: AdminGroupsState) {\r\n\t\t\tstate.status.createLesson = Success;\r\n\t\t},\r\n\t\tcreateLessonFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.createLesson = Failed;\r\n\t\t},\r\n\r\n\t\tupdateLessonStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.updateLesson = Loading;\r\n\t\t},\r\n\t\tupdateLessonSuccess(state: AdminGroupsState) {\r\n\t\t\tstate.status.updateLesson = Success;\r\n\t\t},\r\n\t\tupdateLessonFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.updateLesson = Failed;\r\n\t\t},\r\n\r\n\t\tdeleteLessonStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.deleteLesson = Loading;\r\n\t\t},\r\n\t\tdeleteLessonSuccess(state: AdminGroupsState) {\r\n\t\t\tstate.status.deleteLesson = Success;\r\n\t\t},\r\n\t\tdeleteLessonFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.deleteLesson = Failed;\r\n\t\t},\r\n\r\n\t\tchangeLessonTopicStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.changeLessonTopic = Loading;\r\n\t\t},\r\n\t\tchangeLessonTopicSuccess(state: AdminGroupsState) {\r\n\t\t\tstate.status.changeLessonTopic = Success;\r\n\t\t},\r\n\t\tchangeLessonTopicFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.changeLessonTopic = Failed;\r\n\t\t},\r\n\r\n\t\tchangeLessonStatusStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.changeLessonStatus = Loading;\r\n\t\t},\r\n\t\tchangeLessonStatusSuccess(\r\n\t\t\tstate: AdminGroupsState,\r\n\t\t\taction: PayloadAction<{ lessonId: string; lessonStatus: LessonStatus }>\r\n\t\t) {\r\n\t\t\tconst selectedGroup = JSON.parse(JSON.stringify(state.selectedGroup)) as GetGroupResponse;\r\n\r\n\t\t\tselectedGroup.lessons = selectedGroup.lessons.map((lesson) => {\r\n\t\t\t\tif (lesson.id === action.payload.lessonId) lesson.lessonStatus = action.payload.lessonStatus;\r\n\r\n\t\t\t\treturn lesson;\r\n\t\t\t});\r\n\r\n\t\t\tif (state.selectedLesson !== null) {\r\n\t\t\t\tstate.selectedLesson = { ...state.selectedLesson, lessonStatus: action.payload.lessonStatus };\r\n\t\t\t}\r\n\r\n\t\t\tstate.selectedGroup = selectedGroup;\r\n\r\n\t\t\tstate.status.changeLessonStatus = Success;\r\n\t\t},\r\n\t\tchangeLessonStatusFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.changeLessonStatus = Failed;\r\n\t\t},\r\n\r\n\t\tchangeReplacementTeacherStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.changeReplacementTeacher = Loading;\r\n\t\t},\r\n\t\tchangeReplacementTeacherSuccess(state: AdminGroupsState) {\r\n\t\t\tstate.status.changeReplacementTeacher = Success;\r\n\t\t},\r\n\t\tchangeReplacementTeacherFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.changeReplacementTeacher = Failed;\r\n\t\t},\r\n\r\n\t\tcreateHomeworkInGroupStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.createHomework = Loading;\r\n\t\t},\r\n\t\tcreateHomeworkInGroupSuccess(state: AdminGroupsState) {\r\n\t\t\tstate.status.createHomework = Success;\r\n\t\t},\r\n\t\tcreateHomeworkInGroupFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.createHomework = Failed;\r\n\t\t},\r\n\r\n\t\tdeleteHomeworkStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.deleteHomework = Loading;\r\n\t\t},\r\n\t\tdeleteHomeworkSuccess(state: AdminGroupsState) {\r\n\t\t\tstate.status.deleteHomework = Success;\r\n\t\t},\r\n\t\tdeleteHomeworkFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.deleteHomework = Failed;\r\n\t\t},\r\n\r\n\t\tgetAllGamesStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.getAllGames = Loading;\r\n\t\t},\r\n\t\tgetAllGamesSuccess(state: AdminGroupsState, action: PayloadAction) {\r\n\t\t\tstate.status.getAllGames = Success;\r\n\t\t\tstate.allGames = action.payload.games;\r\n\t\t},\r\n\t\tgetAllGamesFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.getAllGames = Failed;\r\n\t\t},\r\n\r\n\t\tgetLessonStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.getLesson = Loading;\r\n\t\t},\r\n\t\tgetLessonSuccess(state: AdminGroupsState, action: PayloadAction) {\r\n\t\t\tstate.status.getLesson = Success;\r\n\t\t\tstate.selectedLesson = action.payload;\r\n\t\t},\r\n\t\tgetLessonFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.getLesson = Failed;\r\n\t\t},\r\n\r\n\t\tchangePresenceStatusStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.changePresenceStatus = Loading;\r\n\t\t},\r\n\t\tchangePresenceStatusSuccess(\r\n\t\t\tstate: AdminGroupsState,\r\n\t\t\taction: PayloadAction<{ studentLessonId: number; presenceStatus: PresenceStatus }>\r\n\t\t) {\r\n\t\t\tconst lesson = JSON.parse(JSON.stringify(state.selectedLesson)) as GetLessonResponse;\r\n\r\n\t\t\tlesson.studentLessons = lesson.studentLessons.map((studentLesson) => {\r\n\t\t\t\tif (studentLesson.id === action.payload.studentLessonId)\r\n\t\t\t\t\tstudentLesson.presenceStatus = action.payload.presenceStatus;\r\n\t\t\t\treturn studentLesson;\r\n\t\t\t});\r\n\r\n\t\t\tstate.selectedLesson = lesson;\r\n\t\t\tstate.status.changePresenceStatus = Success;\r\n\t\t},\r\n\t\tchangePresenceStatusFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.changePresenceStatus = Failed;\r\n\t\t},\r\n\r\n\t\tchangeStudentLessonPointsStart: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.changeStudentLessonPoints = Loading;\r\n\t\t},\r\n\t\tchangeStudentLessonPointsSuccess(\r\n\t\t\tstate: AdminGroupsState,\r\n\t\t\taction: PayloadAction<{ studentLessonId: number; points: number }>\r\n\t\t) {\r\n\t\t\tconst lesson = JSON.parse(JSON.stringify(state.selectedLesson)) as GetLessonResponse;\r\n\r\n\t\t\tlesson.studentLessons = lesson.studentLessons.map((studentLesson) => {\r\n\t\t\t\tif (studentLesson.id === action.payload.studentLessonId)\r\n\t\t\t\t\tstudentLesson.pointsEarned = action.payload.points;\r\n\t\t\t\treturn studentLesson;\r\n\t\t\t});\r\n\r\n\t\t\tstate.selectedLesson = lesson;\r\n\t\t\tstate.status.changeStudentLessonPoints = Success;\r\n\t\t},\r\n\t\tchangeStudentLessonPointsFailure(state: AdminGroupsState) {\r\n\t\t\tstate.status.changeStudentLessonPoints = Failed;\r\n\t\t},\r\n\r\n\t\tcleanUpLessonDetails(state: AdminGroupsState) {\r\n\t\t\tstate.status.getLesson = adminGroupsInitialState.status.getLesson;\r\n\t\t\tstate.status.changePresenceStatus = adminGroupsInitialState.status.changePresenceStatus;\r\n\t\t\tstate.selectedLesson = adminGroupsInitialState.selectedLesson;\r\n\t\t},\r\n\r\n\t\tcleanUpSelectedGroup: (state: AdminGroupsState) => {\r\n\t\t\tstate.status.getGroup = adminGroupsInitialState.status.getGroup;\r\n\t\t\tstate.selectedGroup = adminGroupsInitialState.selectedGroup;\r\n\r\n\t\t\tstate.allLessonTopics = adminGroupsInitialState.allLessonTopics;\r\n\t\t\tstate.status.getAllLessonTopics = adminGroupsInitialState.status.getAllLessonTopics;\r\n\t\t\tstate.status.createLesson = adminGroupsInitialState.status.createLesson;\r\n\t\t\tstate.status.updateLesson = adminGroupsInitialState.status.updateLesson;\r\n\t\t\tstate.status.deleteLesson = adminGroupsInitialState.status.deleteLesson;\r\n\t\t\tstate.status.changeLessonStatus = adminGroupsInitialState.status.changeLessonStatus;\r\n\t\t},\r\n\t\tcleanUpGroupsTable: (state: AdminGroupsState) => {\r\n\t\t\tstate.getGroupsParams = adminGroupsInitialState.getGroupsParams;\r\n\t\t\tstate.groups = adminGroupsInitialState.groups;\r\n\t\t\tstate.status.getGroups = adminGroupsInitialState.status.getGroups;\r\n\t\t},\r\n\t\tcleanUpGroupForm: (state: AdminGroupsState) => {\r\n\t\t\tstate.allCourses = adminGroupsInitialState.allCourses;\r\n\t\t\tstate.allTeachers = adminGroupsInitialState.allTeachers;\r\n\t\t\tstate.status.createGroup = adminGroupsInitialState.status.createGroup;\r\n\t\t\tstate.status.updateGroup = adminGroupsInitialState.status.updateGroup;\r\n\t\t\tstate.status.getAllCourses = adminGroupsInitialState.status.getAllCourses;\r\n\t\t\tstate.status.getAllTeachers = adminGroupsInitialState.status.getAllTeachers;\r\n\t\t},\r\n\t\tcleanUpGroupStudentsTable: (state: AdminGroupsState) => {\r\n\t\t\tstate.studentsAvailableForGroup = adminGroupsInitialState.studentsAvailableForGroup;\r\n\t\t\tstate.status.getAllStudentsForGroup = adminGroupsInitialState.status.getAllStudentsForGroup;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default adminGroupsSlice;\r\n\r\nexport const {\r\n\tgetGroupsStart,\r\n\tgetGroupsSuccess,\r\n\tgetGroupsFailure,\r\n\r\n\tgetGroupStart,\r\n\tgetGroupSuccess,\r\n\tgetGroupFailure,\r\n\r\n\tcreateGroupStart,\r\n\tcreateGroupSuccess,\r\n\tcreateGroupFailure,\r\n\r\n\tupdateGroupStart,\r\n\tupdateGroupSuccess,\r\n\tupdateGroupFailure,\r\n\r\n\tdeleteGroupStart,\r\n\tdeleteGroupSuccess,\r\n\tdeleteGroupFailure,\r\n\r\n\tactivateGroupStart,\r\n\tactivateGroupSuccess,\r\n\tactivateGroupFailure,\r\n\r\n\tcreateLessonStart,\r\n\tcreateLessonSuccess,\r\n\tcreateLessonFailure,\r\n\r\n\tupdateLessonStart,\r\n\tupdateLessonSuccess,\r\n\tupdateLessonFailure,\r\n\r\n\tdeleteLessonStart,\r\n\tdeleteLessonSuccess,\r\n\tdeleteLessonFailure,\r\n\r\n\tgetAllTeachersStart,\r\n\tgetAllTeachersSuccess,\r\n\tgetAllTeachersFailure,\r\n\r\n\tgetAllCoursesStart,\r\n\tgetAllCoursesSuccess,\r\n\tgetAllCoursesFailure,\r\n\r\n\tgetAllStudentsForGroupStart,\r\n\tgetAllStudentsForGroupSuccess,\r\n\tgetAllStudentsForGroupFailure,\r\n\r\n\tupdateGroupStudentsStart,\r\n\tupdateGroupStudentsSuccess,\r\n\tupdateGroupStudentsFailure,\r\n\r\n\tgetAllLessonTopicsStart,\r\n\tgetAllLessonTopicsSuccess,\r\n\tgetAllLessonTopicsFailure,\r\n\r\n\tchangeLessonStatusStart,\r\n\tchangeLessonStatusSuccess,\r\n\tchangeLessonStatusFailure,\r\n\r\n\tdeleteHomeworkStart,\r\n\tdeleteHomeworkSuccess,\r\n\tdeleteHomeworkFailure,\r\n\r\n\tcreateHomeworkInGroupStart,\r\n\tcreateHomeworkInGroupSuccess,\r\n\tcreateHomeworkInGroupFailure,\r\n\r\n\tgetAllGamesStart,\r\n\tgetAllGamesSuccess,\r\n\tgetAllGamesFailure,\r\n\r\n\tgetLessonStart,\r\n\tgetLessonSuccess,\r\n\tgetLessonFailure,\r\n\r\n\tchangeStudentLessonPointsStart,\r\n\tchangeStudentLessonPointsSuccess,\r\n\tchangeStudentLessonPointsFailure,\r\n\r\n\tchangePresenceStatusStart,\r\n\tchangePresenceStatusSuccess,\r\n\tchangePresenceStatusFailure,\r\n\r\n\tchangeLessonTopicStart,\r\n\tchangeLessonTopicSuccess,\r\n\tchangeLessonTopicFailure,\r\n\r\n\tchangeReplacementTeacherStart,\r\n\tchangeReplacementTeacherSuccess,\r\n\tchangeReplacementTeacherFailure,\r\n\r\n\tcleanUpLessonDetails,\r\n\r\n\tcleanUpSelectedGroup,\r\n\tcleanUpGroupsTable,\r\n\tcleanUpGroupForm,\r\n\tcleanUpGroupStudentsTable,\r\n} = adminGroupsSlice.actions;\r\n","import { LessonTopicForGetLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport { paginationUtils } from 'App/common/utils/pagination.utils';\r\nimport { IPagination } from 'App/types/pagination/pagination';\r\nimport { StatusType } from 'App/types/requestStatus';\r\n\r\nconst { Initial } = StatusType;\r\nconst { defaultPaginationValues } = paginationUtils;\r\n\r\nexport interface AdminLessonTopicsState {\r\n\tstatus: {\r\n\t\tgetLessonTopics: StatusType;\r\n\t\tcreateLessonTopic: StatusType;\r\n\t\tupdateLessonTopic: StatusType;\r\n\t\tdeleteLessonTopic: StatusType;\r\n\t};\r\n\tlessonTopics: LessonTopicForGetLessonTopicsResponse[];\r\n\tgetLessonTopicsParams: IPagination;\r\n}\r\n\r\nexport const adminLessonTopicsInitialState: AdminLessonTopicsState = {\r\n\tstatus: {\r\n\t\tgetLessonTopics: Initial,\r\n\t\tcreateLessonTopic: Initial,\r\n\t\tupdateLessonTopic: Initial,\r\n\t\tdeleteLessonTopic: Initial,\r\n\t},\r\n\tlessonTopics: [],\r\n\tgetLessonTopicsParams: defaultPaginationValues,\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { GetLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { adminLessonTopicsInitialState, AdminLessonTopicsState } from './lessonTopics.state';\r\n\r\nconst { Failed, Loading, Success } = StatusType;\r\n\r\nexport const adminLessonTopicsSlice = createSlice({\r\n\tname: 'admin-lesson-topics',\r\n\tinitialState: adminLessonTopicsInitialState,\r\n\treducers: {\r\n\t\tgetLessonTopicsStart: (state: AdminLessonTopicsState) => {\r\n\t\t\tstate.status.getLessonTopics = Loading;\r\n\t\t\tstate.lessonTopics = adminLessonTopicsInitialState.lessonTopics;\r\n\t\t},\r\n\t\tgetLessonTopicsSuccess(state: AdminLessonTopicsState, action: PayloadAction) {\r\n\t\t\tstate.status.getLessonTopics = Success;\r\n\t\t\tconst { lessonTopics, ...pagination } = action.payload;\r\n\t\t\tstate.lessonTopics = lessonTopics;\r\n\t\t\tstate.getLessonTopicsParams = pagination;\r\n\t\t},\r\n\t\tgetLessonTopicsFailure(state: AdminLessonTopicsState) {\r\n\t\t\tstate.status.getLessonTopics = Failed;\r\n\t\t},\r\n\r\n\t\tcreateLessonTopicStart: (state: AdminLessonTopicsState) => {\r\n\t\t\tstate.status.createLessonTopic = Loading;\r\n\t\t},\r\n\t\tcreateLessonTopicSuccess(state: AdminLessonTopicsState) {\r\n\t\t\tstate.status.createLessonTopic = Success;\r\n\t\t},\r\n\t\tcreateLessonTopicFailure(state: AdminLessonTopicsState) {\r\n\t\t\tstate.status.createLessonTopic = Failed;\r\n\t\t},\r\n\r\n\t\tupdateLessonTopicStart: (state: AdminLessonTopicsState) => {\r\n\t\t\tstate.status.updateLessonTopic = Loading;\r\n\t\t},\r\n\t\tupdateLessonTopicSuccess(state: AdminLessonTopicsState) {\r\n\t\t\tstate.status.updateLessonTopic = Success;\r\n\t\t},\r\n\t\tupdateLessonTopicFailure(state: AdminLessonTopicsState) {\r\n\t\t\tstate.status.updateLessonTopic = Failed;\r\n\t\t},\r\n\r\n\t\tdeleteLessonTopicStart: (state: AdminLessonTopicsState) => {\r\n\t\t\tstate.status.deleteLessonTopic = Loading;\r\n\t\t},\r\n\t\tdeleteLessonTopicSuccess(state: AdminLessonTopicsState) {\r\n\t\t\tstate.status.deleteLessonTopic = Success;\r\n\t\t},\r\n\t\tdeleteLessonTopicFailure(state: AdminLessonTopicsState) {\r\n\t\t\tstate.status.deleteLessonTopic = Failed;\r\n\t\t},\r\n\r\n\t\tcleanUpLessonTopicsTable: (state: AdminLessonTopicsState) => {\r\n\t\t\tstate.getLessonTopicsParams = adminLessonTopicsInitialState.getLessonTopicsParams;\r\n\t\t\tstate.lessonTopics = adminLessonTopicsInitialState.lessonTopics;\r\n\t\t\tstate.status.getLessonTopics = adminLessonTopicsInitialState.status.getLessonTopics;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default adminLessonTopicsSlice;\r\n\r\nexport const {\r\n\tgetLessonTopicsStart,\r\n\tgetLessonTopicsSuccess,\r\n\tgetLessonTopicsFailure,\r\n\r\n\tcreateLessonTopicStart,\r\n\tcreateLessonTopicSuccess,\r\n\tcreateLessonTopicFailure,\r\n\r\n\tupdateLessonTopicStart,\r\n\tupdateLessonTopicSuccess,\r\n\tupdateLessonTopicFailure,\r\n\r\n\tdeleteLessonTopicStart,\r\n\tdeleteLessonTopicSuccess,\r\n\tdeleteLessonTopicFailure,\r\n\r\n\tcleanUpLessonTopicsTable,\r\n} = adminLessonTopicsSlice.actions;\r\n","export enum GameComplexity {\r\n\tC1 = 1,\r\n\tC10 = 10,\r\n\tC100 = 100,\r\n\tC1000 = 1000,\r\n\tC10000 = 10000,\r\n}\r\n\r\nexport const GameComplexityStringToEnum = {\r\n\tC1: GameComplexity.C1,\r\n\tC10: GameComplexity.C10,\r\n\tC100: GameComplexity.C100,\r\n\tC1000: GameComplexity.C1000,\r\n\tC10000: GameComplexity.C10000,\r\n};\r\n\r\nexport const GameComplexityEnumToString = {\r\n\t[GameComplexity.C1]: 'C1',\r\n\t[GameComplexity.C10]: 'C10',\r\n\t[GameComplexity.C100]: 'C100',\r\n\t[GameComplexity.C1000]: 'C1000',\r\n\t[GameComplexity.C10000]: 'C10000',\r\n};\r\n","import { GameAlgorithm } from '../types/gameAlgorithm';\r\nimport { IGameSettings } from '../types/gameSettings';\r\n\r\nexport interface GameState {\r\n\tgameSettings: IGameSettings;\r\n\tsolveExerciseHandler?: () => void;\r\n}\r\n\r\nexport const gameInitialState: GameState = {\r\n\tgameSettings: {\r\n\t\tturbo: false,\r\n\t\tdoublePower: false,\r\n\t\tcombinations: false,\r\n\t\tcomplexity: 1,\r\n\t\tlevel: 9,\r\n\t\tgeneratorSpeedInSeconds: 1,\r\n\t\tmaxSteps: 5,\r\n\t\tgameAlgorithm: GameAlgorithm.Default,\r\n\t},\r\n\tsolveExerciseHandler: null,\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { IGameSettings } from '../types/gameSettings';\r\nimport { gameInitialState, GameState } from './game.state';\r\nexport const gameSlice = createSlice({\r\n\tname: 'game',\r\n\tinitialState: gameInitialState,\r\n\treducers: {\r\n\t\tsetGameSettings: (state: GameState, action: PayloadAction) => {\r\n\t\t\tstate.gameSettings = action.payload;\r\n\t\t},\r\n\t\tsetSolveExerciseHandler: (state: GameState, action: PayloadAction<() => void>) => {\r\n\t\t\tstate.solveExerciseHandler = action.payload;\r\n\t\t},\r\n\t\tresetGameSettings: (state: GameState) => {\r\n\t\t\tstate.gameSettings = gameInitialState.gameSettings;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default gameSlice;\r\n\r\nexport const { setGameSettings, setSolveExerciseHandler, resetGameSettings } = gameSlice.actions;\r\n","export enum GameLevel {\r\n\tL1 = 1,\r\n\tL2 = 2,\r\n\tL3 = 3,\r\n\tL4 = 4,\r\n\tL5 = 5,\r\n\tL6 = 6,\r\n\tL7 = 7,\r\n\tL8 = 8,\r\n\tL9 = 9,\r\n}\r\n\r\nexport const GameLevelStringToEnum = {\r\n\tL1: GameLevel.L1,\r\n\tL2: GameLevel.L2,\r\n\tL3: GameLevel.L3,\r\n\tL4: GameLevel.L4,\r\n\tL5: GameLevel.L5,\r\n\tL6: GameLevel.L6,\r\n\tL7: GameLevel.L7,\r\n\tL8: GameLevel.L8,\r\n\tL9: GameLevel.L9,\r\n};\r\n\r\nexport const GameLevelEnumToString = {\r\n\t[GameLevel.L1]: 'L1',\r\n\t[GameLevel.L2]: 'L2',\r\n\t[GameLevel.L3]: 'L3',\r\n\t[GameLevel.L4]: 'L4',\r\n\t[GameLevel.L5]: 'L5',\r\n\t[GameLevel.L6]: 'L6',\r\n\t[GameLevel.L7]: 'L7',\r\n\t[GameLevel.L8]: 'L8',\r\n\t[GameLevel.L9]: 'L9',\r\n};\r\n","export enum Role {\r\n\tAdmin = 'Administrator',\r\n\tStudent = 'Student',\r\n\tFacilityCaretaker = 'FacilityCaretaker',\r\n\tTeacher = 'Teacher',\r\n}\r\n\r\nexport default Role;\r\n","import { CourseForGetCoursesCatalogForStudentResponse } from 'App/api/endpoints/courses/responses';\r\nimport { HomeworkForGetMyHomeworksResponse } from 'App/api/endpoints/homeworks/responses';\r\nimport { AllowedGameAlgorithmsFormValues } from 'App/pages/teacherPages/views/myStudents/forms/models/allowedGameAlgorithmsFormValues';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { Exercise } from '../types/exercise';\r\n\r\nconst { Initial } = StatusType;\r\n\r\nexport interface StudentState {\r\n\tstatus: {\r\n\t\tgetCoursesCatalog: StatusType;\r\n\t\tgetHomeworks: StatusType;\r\n\t\tsolveExercise: StatusType;\r\n\t\tgetMyAllowedAlgorithms: StatusType;\r\n\t};\r\n\r\n\tcoursesCatalog: CourseForGetCoursesCatalogForStudentResponse[];\r\n\thomeworks: HomeworkForGetMyHomeworksResponse[];\r\n\tselectedExercise: Exercise;\r\n\tmyAllowedAlgorithms: AllowedGameAlgorithmsFormValues;\r\n}\r\n\r\nexport const studentInitialState: StudentState = {\r\n\tstatus: {\r\n\t\tgetCoursesCatalog: Initial,\r\n\t\tgetHomeworks: Initial,\r\n\t\tsolveExercise: Initial,\r\n\t\tgetMyAllowedAlgorithms: Initial,\r\n\t},\r\n\r\n\tcoursesCatalog: [],\r\n\thomeworks: [],\r\n\tselectedExercise: null,\r\n\tmyAllowedAlgorithms: null,\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { GetCoursesCatalogForStudentResponse } from 'App/api/endpoints/courses/responses';\r\nimport {\r\n\tExerciseForGetMyHomeworksResponse,\r\n\tGetMyHomeworksResponse,\r\n\tSolveExerciseResponse,\r\n} from 'App/api/endpoints/homeworks/responses';\r\nimport { GetMyAllowedAlgorithmsResponse } from 'App/api/endpoints/students/responses';\r\nimport { GameComplexityStringToEnum } from 'App/pages/gamePages/types/gameComplexity';\r\nimport { GameLevelStringToEnum } from 'App/pages/gamePages/types/gameLevel';\r\nimport { IGameSettings } from 'App/pages/gamePages/types/gameSettings';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport { studentInitialState, StudentState } from './student.state';\r\n\r\nconst { Loading, Success, Failed } = StatusType;\r\n\r\nexport const studentSlice = createSlice({\r\n\tname: 'student',\r\n\tinitialState: studentInitialState,\r\n\treducers: {\r\n\t\tgetCoursesCatalogStart: (state: StudentState) => {\r\n\t\t\tstate.status.getCoursesCatalog = Loading;\r\n\t\t},\r\n\t\tgetCoursesCatalogSuccess(state: StudentState, action: PayloadAction) {\r\n\t\t\tstate.coursesCatalog = action.payload.courses;\r\n\t\t\tstate.status.getCoursesCatalog = Success;\r\n\t\t},\r\n\t\tgetCoursesCatalogFailure(state: StudentState) {\r\n\t\t\tstate.status.getCoursesCatalog = Failed;\r\n\t\t},\r\n\r\n\t\tgetHomeworksStart: (state: StudentState) => {\r\n\t\t\tstate.status.getHomeworks = Loading;\r\n\t\t\tstate.homeworks = studentInitialState.homeworks;\r\n\t\t},\r\n\t\tgetHomeworksSuccess(state: StudentState, action: PayloadAction) {\r\n\t\t\tstate.status.getHomeworks = Success;\r\n\t\t\tstate.homeworks = action.payload.homeworks;\r\n\t\t},\r\n\t\tgetHomeworksFailure(state: StudentState) {\r\n\t\t\tstate.status.getHomeworks = Failed;\r\n\t\t},\r\n\r\n\t\tsolveExerciseStart: (state: StudentState) => {\r\n\t\t\tstate.status.solveExercise = Loading;\r\n\t\t},\r\n\t\tsolveExerciseSuccess(state: StudentState, action: PayloadAction) {\r\n\t\t\tstate.status.solveExercise = Success;\r\n\t\t},\r\n\t\tsolveExerciseFailure(state: StudentState) {\r\n\t\t\tstate.status.solveExercise = Failed;\r\n\t\t},\r\n\r\n\t\tgetMyAllowedAlgorithmsStart: (state: StudentState) => {\r\n\t\t\tstate.status.getMyAllowedAlgorithms = Loading;\r\n\t\t},\r\n\t\tgetMyAllowedAlgorithmsSuccess(state: StudentState, action: PayloadAction) {\r\n\t\t\tstate.status.getMyAllowedAlgorithms = Success;\r\n\r\n\t\t\tif (action.payload.allowedGameAlgorithmsJson) {\r\n\t\t\t\tstate.myAllowedAlgorithms = JSON.parse(action.payload.allowedGameAlgorithmsJson);\r\n\t\t\t} else {\r\n\t\t\t\tstate.myAllowedAlgorithms = {\r\n\t\t\t\t\tmalyBrat1: false,\r\n\t\t\t\t\tmalyBrat2: false,\r\n\t\t\t\t\tmalyBrat3: false,\r\n\t\t\t\t\tmalyBrat4: false,\r\n\t\t\t\t\tduzyBrat1: false,\r\n\t\t\t\t\tduzyBrat2: false,\r\n\t\t\t\t\tduzyBrat3: false,\r\n\t\t\t\t\tduzyBrat4: false,\r\n\t\t\t\t\tduzyBrat5: false,\r\n\t\t\t\t\tduzyBrat6: false,\r\n\t\t\t\t\tduzyBrat7: false,\r\n\t\t\t\t\tduzyBrat8: false,\r\n\t\t\t\t\tduzyBrat9: false,\r\n\t\t\t\t};\r\n\t\t\t}\r\n\t\t},\r\n\t\tgetMyAllowedAlgorithmsFailure(state: StudentState) {\r\n\t\t\tstate.status.getMyAllowedAlgorithms = Failed;\r\n\t\t},\r\n\r\n\t\tsetSelectedExercise: (state: StudentState, action: PayloadAction) => {\r\n\t\t\tconst {\r\n\t\t\t\trequiredTurbo,\r\n\t\t\t\trequiredMinimalMaxSteps,\r\n\t\t\t\trequiredDoublePower,\r\n\t\t\t\trequiredCombinations,\r\n\t\t\t\trequiredMinimalGeneratorSpeedInSeconds,\r\n\t\t\t\trequiredMinimalLevel,\r\n\t\t\t\trequiredMinimalComplexity,\r\n\t\t\t} = action.payload.game;\r\n\r\n\t\t\tconst gameSettingsToSet: IGameSettings = {\r\n\t\t\t\tturbo: requiredTurbo,\r\n\t\t\t\tmaxSteps: requiredMinimalMaxSteps,\r\n\t\t\t\tdoublePower: requiredDoublePower,\r\n\t\t\t\tcombinations: requiredCombinations,\r\n\t\t\t\tgeneratorSpeedInSeconds: requiredMinimalGeneratorSpeedInSeconds,\r\n\t\t\t\tlevel: GameLevelStringToEnum[requiredMinimalLevel],\r\n\t\t\t\tcomplexity: GameComplexityStringToEnum[requiredMinimalComplexity],\r\n\t\t\t\tgameAlgorithm: action.payload.gameAlgorithm,\r\n\t\t\t};\r\n\r\n\t\t\tstate.selectedExercise = {\r\n\t\t\t\tgameSettings: gameSettingsToSet,\r\n\t\t\t};\r\n\t\t},\r\n\r\n\t\tcleanUpMyAllowedAlgorithms: (state: StudentState) => {\r\n\t\t\tstate.status.getMyAllowedAlgorithms = studentInitialState.status.getMyAllowedAlgorithms;\r\n\t\t\tstate.myAllowedAlgorithms = studentInitialState.myAllowedAlgorithms;\r\n\t\t},\r\n\r\n\t\tcleanUpCourseCatalogStatus(state: StudentState) {\r\n\t\t\tstate.status.getCoursesCatalog = studentInitialState.status.getCoursesCatalog;\r\n\t\t\tstate.coursesCatalog = studentInitialState.coursesCatalog;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default studentSlice;\r\n\r\nexport const {\r\n\tgetCoursesCatalogStart,\r\n\tgetCoursesCatalogSuccess,\r\n\tgetCoursesCatalogFailure,\r\n\r\n\tgetHomeworksStart,\r\n\tgetHomeworksSuccess,\r\n\tgetHomeworksFailure,\r\n\r\n\tsolveExerciseStart,\r\n\tsolveExerciseSuccess,\r\n\tsolveExerciseFailure,\r\n\r\n\tsetSelectedExercise,\r\n\r\n\tgetMyAllowedAlgorithmsStart,\r\n\tgetMyAllowedAlgorithmsSuccess,\r\n\tgetMyAllowedAlgorithmsFailure,\r\n\r\n\tcleanUpMyAllowedAlgorithms,\r\n\r\n\tcleanUpCourseCatalogStatus,\r\n} = studentSlice.actions;\r\n","import { LessonForGetTeacherLessonsFromMonthResponse } from 'App/api/endpoints/lessons/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\n\r\nconst { Initial } = StatusType;\r\n\r\nexport interface TeacherCalendarState {\r\n\tstatus: {\r\n\t\tgetTeacherLessonsFromMonth: StatusType;\r\n\t};\r\n\r\n\tteacherLessonsFromMonth: LessonForGetTeacherLessonsFromMonthResponse[];\r\n\tselectedMonthAndYearFromCalendar: { month: number; year: number };\r\n}\r\n\r\nexport const teacherCalendarInitialState: TeacherCalendarState = {\r\n\tstatus: {\r\n\t\tgetTeacherLessonsFromMonth: Initial,\r\n\t},\r\n\r\n\tteacherLessonsFromMonth: [],\r\n\tselectedMonthAndYearFromCalendar: { month: 0, year: 0 },\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { GetTeacherLessonsFromMonthResponse } from 'App/api/endpoints/lessons/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { teacherCalendarInitialState, TeacherCalendarState } from './teacher.calendar.state';\r\n\r\nconst { Failed, Loading, Success } = StatusType;\r\n\r\nexport const teacherCalendarSlice = createSlice({\r\n\tname: 'teacher-calendar',\r\n\tinitialState: teacherCalendarInitialState,\r\n\treducers: {\r\n\t\tsetCalendarMonthAndYear: (\r\n\t\t\tstate: TeacherCalendarState,\r\n\t\t\taction: PayloadAction<{ month: number; year: number }>\r\n\t\t) => {\r\n\t\t\tstate.selectedMonthAndYearFromCalendar = action.payload;\r\n\t\t},\r\n\t\tgetTeacherLessonsFromMonthStart: (state: TeacherCalendarState) => {\r\n\t\t\tstate.status.getTeacherLessonsFromMonth = Loading;\r\n\t\t},\r\n\t\tgetTeacherLessonsFromMonthSuccess: (\r\n\t\t\tstate: TeacherCalendarState,\r\n\t\t\taction: PayloadAction\r\n\t\t) => {\r\n\t\t\tstate.teacherLessonsFromMonth = action.payload.lessons;\r\n\t\t\tstate.status.getTeacherLessonsFromMonth = Success;\r\n\t\t},\r\n\t\tgetTeacherLessonsFromMonthFailure(state: TeacherCalendarState) {\r\n\t\t\tstate.status.getTeacherLessonsFromMonth = Failed;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default teacherCalendarSlice;\r\n\r\nexport const {\r\n\tsetCalendarMonthAndYear,\r\n\r\n\tgetTeacherLessonsFromMonthStart,\r\n\tgetTeacherLessonsFromMonthSuccess,\r\n\tgetTeacherLessonsFromMonthFailure,\r\n} = teacherCalendarSlice.actions;\r\n","import { StatusType } from 'App/types/requestStatus';\r\nimport { GameForGetGamesResponse } from 'App/api/endpoints/games/responses';\r\n\r\nconst { Initial } = StatusType;\r\n\r\nexport interface TeacherGamesState {\r\n\tstatus: {\r\n\t\tgetGames: StatusType;\r\n\t\tcreateGame: StatusType;\r\n\t\tdeleteGame: StatusType;\r\n\t};\r\n\r\n\tgames: GameForGetGamesResponse[];\r\n}\r\n\r\nexport const teacherGamesInitialState: TeacherGamesState = {\r\n\tstatus: {\r\n\t\tgetGames: Initial,\r\n\t\tcreateGame: Initial,\r\n\t\tdeleteGame: Initial,\r\n\t},\r\n\r\n\tgames: [],\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { GetGamesResponse } from 'App/api/endpoints/games/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { teacherGamesInitialState, TeacherGamesState } from './teacher.games.state';\r\n\r\nconst { Failed, Loading, Success } = StatusType;\r\n\r\nexport const teacherGamesSlice = createSlice({\r\n\tname: 'teacher-games',\r\n\tinitialState: teacherGamesInitialState,\r\n\treducers: {\r\n\t\tgetGamesStart: (state: TeacherGamesState) => {\r\n\t\t\tstate.status.getGames = Loading;\r\n\t\t\tstate.games = teacherGamesInitialState.games;\r\n\t\t},\r\n\t\tgetGamesSuccess(state: TeacherGamesState, action: PayloadAction) {\r\n\t\t\tstate.status.getGames = Success;\r\n\t\t\tstate.games = action.payload.games;\r\n\t\t},\r\n\t\tgetGamesFailure(state: TeacherGamesState) {\r\n\t\t\tstate.status.getGames = Failed;\r\n\t\t},\r\n\r\n\t\tcreateGameStart: (state: TeacherGamesState) => {\r\n\t\t\tstate.status.createGame = Loading;\r\n\t\t},\r\n\t\tcreateGameSuccess(state: TeacherGamesState) {\r\n\t\t\tstate.status.createGame = Success;\r\n\t\t},\r\n\t\tcreateGameFailure(state: TeacherGamesState) {\r\n\t\t\tstate.status.createGame = Failed;\r\n\t\t},\r\n\r\n\t\tdeleteGameStart: (state: TeacherGamesState) => {\r\n\t\t\tstate.status.deleteGame = Loading;\r\n\t\t},\r\n\t\tdeleteGameSuccess(state: TeacherGamesState) {\r\n\t\t\tstate.status.deleteGame = Success;\r\n\t\t},\r\n\t\tdeleteGameFailure(state: TeacherGamesState) {\r\n\t\t\tstate.status.deleteGame = Failed;\r\n\t\t},\r\n\r\n\t\tcleanUpGames: (state: TeacherGamesState) => {\r\n\t\t\tstate.status.getGames = teacherGamesInitialState.status.getGames;\r\n\t\t\tstate.status.createGame = teacherGamesInitialState.status.createGame;\r\n\t\t\tstate.status.deleteGame = teacherGamesInitialState.status.deleteGame;\r\n\r\n\t\t\tstate.games = teacherGamesInitialState.games;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default teacherGamesSlice;\r\n\r\nexport const {\r\n\tgetGamesStart,\r\n\tgetGamesSuccess,\r\n\tgetGamesFailure,\r\n\r\n\tcreateGameStart,\r\n\tcreateGameSuccess,\r\n\tcreateGameFailure,\r\n\r\n\tdeleteGameStart,\r\n\tdeleteGameSuccess,\r\n\tdeleteGameFailure,\r\n\r\n\tcleanUpGames,\r\n} = teacherGamesSlice.actions;\r\n","import { CourseForGetAllCoursesResponse } from 'App/api/endpoints/courses/responses';\r\nimport { GetTeacherGroupResponse, GroupForGetGroupsResponse } from 'App/api/endpoints/groups/responses';\r\nimport { IPagination } from 'App/types/pagination/pagination';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { paginationUtils } from 'App/common/utils/pagination.utils';\r\nimport { GameForGetGamesResponse } from 'App/api/endpoints/games/responses';\r\n\r\nconst { Initial } = StatusType;\r\nconst { defaultPaginationValues } = paginationUtils;\r\n\r\nexport interface TeacherGroupsState {\r\n\tstatus: {\r\n\t\tgetTeacherGroups: StatusType;\r\n\t\tgetTeacherGroup: StatusType;\r\n\t\tcreateTeacherGroup: StatusType;\r\n\t\tupdateTeacherGroup: StatusType;\r\n\t\tdeleteTeacherGroup: StatusType;\r\n\t\tactivateTeacherGroup: StatusType;\r\n\r\n\t\tgetAllCourses: StatusType;\r\n\t\tgetAllGames: StatusType;\r\n\r\n\t\tcreateHomework: StatusType;\r\n\t\tdeleteHomework: StatusType;\r\n\t};\r\n\r\n\tteacherGroup: GetTeacherGroupResponse;\r\n\tteacherGroups: GroupForGetGroupsResponse[];\r\n\tgetTeacherGroupsParams: IPagination;\r\n\r\n\tallCourses: CourseForGetAllCoursesResponse[];\r\n\tallGames: GameForGetGamesResponse[];\r\n}\r\n\r\nexport const teacherGroupsInitialState: TeacherGroupsState = {\r\n\tstatus: {\r\n\t\tgetTeacherGroups: Initial,\r\n\r\n\t\tgetTeacherGroup: Initial,\r\n\t\tcreateTeacherGroup: Initial,\r\n\t\tupdateTeacherGroup: Initial,\r\n\t\tdeleteTeacherGroup: Initial,\r\n\t\tactivateTeacherGroup: Initial,\r\n\r\n\t\tgetAllCourses: Initial,\r\n\t\tgetAllGames: Initial,\r\n\t\tdeleteHomework: Initial,\r\n\t\tcreateHomework: Initial,\r\n\t},\r\n\r\n\tteacherGroup: null,\r\n\tteacherGroups: [],\r\n\tgetTeacherGroupsParams: defaultPaginationValues,\r\n\r\n\tallCourses: [],\r\n\tallGames: [],\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { GetAllCoursesResponse } from 'App/api/endpoints/courses/responses';\r\nimport { GetGamesResponse } from 'App/api/endpoints/games/responses';\r\nimport { GetGroupsResponse, GetTeacherGroupResponse } from 'App/api/endpoints/groups/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { teacherGroupsInitialState, TeacherGroupsState } from './teacher.groups.state';\r\n\r\nconst { Failed, Loading, Success } = StatusType;\r\n\r\nexport const teacherGroupsSlice = createSlice({\r\n\tname: 'teacher-groups',\r\n\tinitialState: teacherGroupsInitialState,\r\n\treducers: {\r\n\t\tgetTeacherGroupStart: (state: TeacherGroupsState) => {\r\n\t\t\tstate.status.getTeacherGroup = Loading;\r\n\t\t},\r\n\t\tgetTeacherGroupSuccess(state: TeacherGroupsState, action: PayloadAction) {\r\n\t\t\tstate.teacherGroup = action.payload;\r\n\t\t\tstate.status.getTeacherGroup = Success;\r\n\t\t},\r\n\t\tgetTeacherGroupFailure(state: TeacherGroupsState) {\r\n\t\t\tstate.status.getTeacherGroup = Failed;\r\n\t\t},\r\n\r\n\t\tgetTeacherGroupsStart: (state: TeacherGroupsState) => {\r\n\t\t\tstate.status.getTeacherGroups = Loading;\r\n\t\t\tstate.teacherGroups = teacherGroupsInitialState.teacherGroups;\r\n\t\t},\r\n\t\tgetTeacherGroupsSuccess(state: TeacherGroupsState, action: PayloadAction) {\r\n\t\t\tconst { groups, ...pagination } = action.payload;\r\n\t\t\tstate.teacherGroups = groups;\r\n\t\t\tstate.getTeacherGroupsParams = pagination;\r\n\t\t\tstate.status.getTeacherGroups = Success;\r\n\t\t},\r\n\t\tgetTeacherGroupsFailure(state: TeacherGroupsState) {\r\n\t\t\tstate.status.getTeacherGroups = Failed;\r\n\t\t},\r\n\r\n\t\tcreateTeacherGroupStart: (state: TeacherGroupsState) => {\r\n\t\t\tstate.status.createTeacherGroup = Loading;\r\n\t\t},\r\n\t\tcreateTeacherGroupSuccess(state: TeacherGroupsState) {\r\n\t\t\tstate.status.createTeacherGroup = Success;\r\n\t\t},\r\n\t\tcreateTeacherGroupFailure(state: TeacherGroupsState) {\r\n\t\t\tstate.status.createTeacherGroup = Failed;\r\n\t\t},\r\n\r\n\t\tupdateTeacherGroupStart: (state: TeacherGroupsState) => {\r\n\t\t\tstate.status.updateTeacherGroup = Loading;\r\n\t\t},\r\n\t\tupdateTeacherGroupSuccess(state: TeacherGroupsState) {\r\n\t\t\tstate.status.updateTeacherGroup = Success;\r\n\t\t},\r\n\t\tupdateTeacherGroupFailure(state: TeacherGroupsState) {\r\n\t\t\tstate.status.updateTeacherGroup = Failed;\r\n\t\t},\r\n\r\n\t\tdeleteTeacherGroupStart: (state: TeacherGroupsState) => {\r\n\t\t\tstate.status.deleteTeacherGroup = Loading;\r\n\t\t},\r\n\t\tdeleteTeacherGroupSuccess(state: TeacherGroupsState) {\r\n\t\t\tstate.status.deleteTeacherGroup = Success;\r\n\t\t},\r\n\t\tdeleteTeacherGroupFailure(state: TeacherGroupsState) {\r\n\t\t\tstate.status.deleteTeacherGroup = Failed;\r\n\t\t},\r\n\r\n\t\tgetAllCoursesStart: (state: TeacherGroupsState) => {\r\n\t\t\tstate.status.getAllCourses = Loading;\r\n\t\t},\r\n\t\tgetAllCoursesSuccess(state: TeacherGroupsState, action: PayloadAction) {\r\n\t\t\tstate.allCourses = action.payload.courses;\r\n\t\t\tstate.status.getAllCourses = Success;\r\n\t\t},\r\n\t\tgetAllCoursesFailure(state: TeacherGroupsState) {\r\n\t\t\tstate.status.getAllCourses = Failed;\r\n\t\t},\r\n\r\n\t\tactivateTeacherGroupStart: (state: TeacherGroupsState) => {\r\n\t\t\tstate.status.activateTeacherGroup = Loading;\r\n\t\t},\r\n\t\tactivateTeacherGroupSuccess(state: TeacherGroupsState) {\r\n\t\t\tstate.status.activateTeacherGroup = Success;\r\n\t\t},\r\n\t\tactivateTeacherGroupFailure(state: TeacherGroupsState) {\r\n\t\t\tstate.status.activateTeacherGroup = Failed;\r\n\t\t},\r\n\r\n\t\tcreateHomeworkInGroupStart: (state: TeacherGroupsState) => {\r\n\t\t\tstate.status.createHomework = Loading;\r\n\t\t},\r\n\t\tcreateHomeworkInGroupSuccess(state: TeacherGroupsState) {\r\n\t\t\tstate.status.createHomework = Success;\r\n\t\t},\r\n\t\tcreateHomeworkInGroupFailure(state: TeacherGroupsState) {\r\n\t\t\tstate.status.createHomework = Failed;\r\n\t\t},\r\n\r\n\t\tdeleteHomeworkStart: (state: TeacherGroupsState) => {\r\n\t\t\tstate.status.deleteHomework = Loading;\r\n\t\t},\r\n\t\tdeleteHomeworkSuccess(state: TeacherGroupsState) {\r\n\t\t\tstate.status.deleteHomework = Success;\r\n\t\t},\r\n\t\tdeleteHomeworkFailure(state: TeacherGroupsState) {\r\n\t\t\tstate.status.deleteHomework = Failed;\r\n\t\t},\r\n\r\n\t\tgetAllGamesStart: (state: TeacherGroupsState) => {\r\n\t\t\tstate.status.getAllGames = Loading;\r\n\t\t},\r\n\t\tgetAllGamesSuccess(state: TeacherGroupsState, action: PayloadAction) {\r\n\t\t\tstate.status.getAllGames = Success;\r\n\t\t\tstate.allGames = action.payload.games;\r\n\t\t},\r\n\t\tgetAllGamesFailure(state: TeacherGroupsState) {\r\n\t\t\tstate.status.getAllGames = Failed;\r\n\t\t},\r\n\r\n\t\tcleanUpTeacherGroupDetails(state: TeacherGroupsState) {\r\n\t\t\tstate.status.getTeacherGroup = teacherGroupsInitialState.status.getTeacherGroup;\r\n\t\t\tstate.teacherGroup = teacherGroupsInitialState.teacherGroup;\r\n\t\t},\r\n\t\tcleanUpTeacherGroups(state: TeacherGroupsState) {\r\n\t\t\tstate.getTeacherGroupsParams = teacherGroupsInitialState.getTeacherGroupsParams;\r\n\t\t\tstate.status.getTeacherGroups = teacherGroupsInitialState.status.getTeacherGroups;\r\n\t\t\tstate.teacherGroups = teacherGroupsInitialState.teacherGroups;\r\n\t\t},\r\n\t\tcleanUpGroupForm: (state: TeacherGroupsState) => {\r\n\t\t\tstate.allCourses = teacherGroupsInitialState.allCourses;\r\n\t\t\tstate.status.createTeacherGroup = teacherGroupsInitialState.status.createTeacherGroup;\r\n\t\t\tstate.status.updateTeacherGroup = teacherGroupsInitialState.status.updateTeacherGroup;\r\n\t\t\tstate.status.getAllCourses = teacherGroupsInitialState.status.getAllCourses;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default teacherGroupsSlice;\r\n\r\nexport const {\r\n\tgetTeacherGroupStart,\r\n\tgetTeacherGroupSuccess,\r\n\tgetTeacherGroupFailure,\r\n\r\n\tgetTeacherGroupsStart,\r\n\tgetTeacherGroupsSuccess,\r\n\tgetTeacherGroupsFailure,\r\n\r\n\tcreateTeacherGroupStart,\r\n\tcreateTeacherGroupSuccess,\r\n\tcreateTeacherGroupFailure,\r\n\r\n\tupdateTeacherGroupStart,\r\n\tupdateTeacherGroupSuccess,\r\n\tupdateTeacherGroupFailure,\r\n\r\n\tdeleteTeacherGroupStart,\r\n\tdeleteTeacherGroupSuccess,\r\n\tdeleteTeacherGroupFailure,\r\n\r\n\tactivateTeacherGroupStart,\r\n\tactivateTeacherGroupSuccess,\r\n\tactivateTeacherGroupFailure,\r\n\r\n\tgetAllCoursesStart,\r\n\tgetAllCoursesSuccess,\r\n\tgetAllCoursesFailure,\r\n\r\n\tdeleteHomeworkStart,\r\n\tdeleteHomeworkSuccess,\r\n\tdeleteHomeworkFailure,\r\n\r\n\tcreateHomeworkInGroupStart,\r\n\tcreateHomeworkInGroupSuccess,\r\n\tcreateHomeworkInGroupFailure,\r\n\r\n\tgetAllGamesStart,\r\n\tgetAllGamesSuccess,\r\n\tgetAllGamesFailure,\r\n\r\n\tcleanUpTeacherGroupDetails,\r\n\tcleanUpTeacherGroups,\r\n\tcleanUpGroupForm,\r\n} = teacherGroupsSlice.actions;\r\n","import { GetTeacherLessonResponse } from 'App/api/endpoints/lessons/responses';\r\nimport { LessonTopicForGetAllLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\n\r\nconst { Initial } = StatusType;\r\n\r\nexport interface TeacherLessonsState {\r\n\tstatus: {\r\n\t\tgetTeacherLesson: StatusType;\r\n\r\n\t\tchangePresenceStatus: StatusType;\r\n\t\tchangeStudentLessonPoints: StatusType;\r\n\r\n\t\tcreateLesson: StatusType;\r\n\t\tupdateLesson: StatusType;\r\n\t\tdeleteLesson: StatusType;\r\n\t\tchangeLessonStatus: StatusType;\r\n\r\n\t\tgetAllLessonTopics: StatusType;\r\n\t\tchangeLessonTopic: StatusType;\r\n\t};\r\n\r\n\tteacherLesson: GetTeacherLessonResponse;\r\n\tallLessonTopics: LessonTopicForGetAllLessonTopicsResponse[];\r\n}\r\n\r\nexport const teacherLessonsInitialState: TeacherLessonsState = {\r\n\tstatus: {\r\n\t\tgetTeacherLesson: Initial,\r\n\r\n\t\tchangePresenceStatus: Initial,\r\n\t\tchangeStudentLessonPoints: Initial,\r\n\r\n\t\tcreateLesson: Initial,\r\n\t\tupdateLesson: Initial,\r\n\t\tdeleteLesson: Initial,\r\n\t\tchangeLessonStatus: Initial,\r\n\r\n\t\tgetAllLessonTopics: Initial,\r\n\t\tchangeLessonTopic: Initial,\r\n\t},\r\n\r\n\tteacherLesson: null,\r\n\tallLessonTopics: [],\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { GetTeacherLessonResponse } from 'App/api/endpoints/lessons/responses';\r\nimport { GetAllLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport { LessonStatus } from 'App/common/utils/lessonStatus';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { PresenceStatus } from 'App/types/studentLesson/pressenceStatus';\r\nimport { teacherLessonsInitialState, TeacherLessonsState } from './teacher.lessons.state';\r\n\r\nconst { Failed, Loading, Success } = StatusType;\r\n\r\nexport const teacherLessonsSlice = createSlice({\r\n\tname: 'teacher-lessons',\r\n\tinitialState: teacherLessonsInitialState,\r\n\treducers: {\r\n\t\tgetTeacherLessonStart: (state: TeacherLessonsState) => {\r\n\t\t\tstate.status.getTeacherLesson = Loading;\r\n\t\t},\r\n\t\tgetTeacherLessonSuccess(state: TeacherLessonsState, action: PayloadAction) {\r\n\t\t\tstate.teacherLesson = action.payload;\r\n\t\t\tstate.status.getTeacherLesson = Success;\r\n\t\t},\r\n\t\tgetTeacherLessonFailure(state: TeacherLessonsState) {\r\n\t\t\tstate.status.getTeacherLesson = Failed;\r\n\t\t},\r\n\r\n\t\tchangePresenceStatusStart: (state: TeacherLessonsState) => {\r\n\t\t\tstate.status.changePresenceStatus = Loading;\r\n\t\t},\r\n\t\tchangePresenceStatusSuccess(\r\n\t\t\tstate: TeacherLessonsState,\r\n\t\t\taction: PayloadAction<{ studentLessonId: number; presenceStatus: PresenceStatus }>\r\n\t\t) {\r\n\t\t\tconst teacherLesson = JSON.parse(JSON.stringify(state.teacherLesson)) as GetTeacherLessonResponse;\r\n\r\n\t\t\tteacherLesson.studentLessons = teacherLesson.studentLessons.map((studentLesson) => {\r\n\t\t\t\tif (studentLesson.id === action.payload.studentLessonId)\r\n\t\t\t\t\tstudentLesson.presenceStatus = action.payload.presenceStatus;\r\n\t\t\t\treturn studentLesson;\r\n\t\t\t});\r\n\r\n\t\t\tstate.teacherLesson = teacherLesson;\r\n\t\t\tstate.status.changePresenceStatus = Success;\r\n\t\t},\r\n\t\tchangePresenceStatusFailure(state: TeacherLessonsState) {\r\n\t\t\tstate.status.changePresenceStatus = Failed;\r\n\t\t},\r\n\r\n\t\tchangeStudentLessonPointsStart: (state: TeacherLessonsState) => {\r\n\t\t\tstate.status.changeStudentLessonPoints = Loading;\r\n\t\t},\r\n\t\tchangeStudentLessonPointsSuccess(\r\n\t\t\tstate: TeacherLessonsState,\r\n\t\t\taction: PayloadAction<{ studentLessonId: number; points: number }>\r\n\t\t) {\r\n\t\t\tconst teacherLesson = JSON.parse(JSON.stringify(state.teacherLesson)) as GetTeacherLessonResponse;\r\n\r\n\t\t\tteacherLesson.studentLessons = teacherLesson.studentLessons.map((studentLesson) => {\r\n\t\t\t\tif (studentLesson.id === action.payload.studentLessonId)\r\n\t\t\t\t\tstudentLesson.pointsEarned = action.payload.points;\r\n\t\t\t\treturn studentLesson;\r\n\t\t\t});\r\n\r\n\t\t\tstate.teacherLesson = teacherLesson;\r\n\t\t\tstate.status.changeStudentLessonPoints = Success;\r\n\t\t},\r\n\t\tchangeStudentLessonPointsFailure(state: TeacherLessonsState) {\r\n\t\t\tstate.status.changeStudentLessonPoints = Failed;\r\n\t\t},\r\n\r\n\t\tcreateLessonStart: (state: TeacherLessonsState) => {\r\n\t\t\tstate.status.createLesson = Loading;\r\n\t\t},\r\n\t\tcreateLessonSuccess(state: TeacherLessonsState) {\r\n\t\t\tstate.status.createLesson = Success;\r\n\t\t},\r\n\t\tcreateLessonFailure(state: TeacherLessonsState) {\r\n\t\t\tstate.status.createLesson = Failed;\r\n\t\t},\r\n\r\n\t\tupdateLessonStart: (state: TeacherLessonsState) => {\r\n\t\t\tstate.status.updateLesson = Loading;\r\n\t\t},\r\n\t\tupdateLessonSuccess(state: TeacherLessonsState) {\r\n\t\t\tstate.status.updateLesson = Success;\r\n\t\t},\r\n\t\tupdateLessonFailure(state: TeacherLessonsState) {\r\n\t\t\tstate.status.updateLesson = Failed;\r\n\t\t},\r\n\r\n\t\tdeleteLessonStart: (state: TeacherLessonsState) => {\r\n\t\t\tstate.status.deleteLesson = Loading;\r\n\t\t},\r\n\t\tdeleteLessonSuccess(state: TeacherLessonsState) {\r\n\t\t\tstate.status.deleteLesson = Success;\r\n\t\t},\r\n\t\tdeleteLessonFailure(state: TeacherLessonsState) {\r\n\t\t\tstate.status.deleteLesson = Failed;\r\n\t\t},\r\n\r\n\t\tchangeLessonStatusStart: (state: TeacherLessonsState) => {\r\n\t\t\tstate.status.changeLessonStatus = Loading;\r\n\t\t},\r\n\t\tchangeLessonStatusSuccess(\r\n\t\t\tstate: TeacherLessonsState,\r\n\t\t\taction: PayloadAction<{ lessonId: string; lessonStatus: LessonStatus }>\r\n\t\t) {\r\n\t\t\tif (state.teacherLesson.id === action.payload.lessonId) {\r\n\t\t\t\tconst teacherLesson = JSON.parse(JSON.stringify(state.teacherLesson)) as GetTeacherLessonResponse;\r\n\t\t\t\tteacherLesson.lessonStatus = action.payload.lessonStatus;\r\n\t\t\t\tstate.teacherLesson = teacherLesson;\r\n\t\t\t}\r\n\r\n\t\t\tstate.status.changeLessonStatus = Success;\r\n\t\t},\r\n\t\tchangeLessonStatusFailure(state: TeacherLessonsState) {\r\n\t\t\tstate.status.changeLessonStatus = Failed;\r\n\t\t},\r\n\r\n\t\tgetAllLessonTopicsStart: (state: TeacherLessonsState) => {\r\n\t\t\tstate.status.getAllLessonTopics = Loading;\r\n\t\t},\r\n\t\tgetAllLessonTopicsSuccess(state: TeacherLessonsState, action: PayloadAction) {\r\n\t\t\tstate.allLessonTopics = action.payload.lessonTopics;\r\n\t\t\tstate.status.getAllLessonTopics = Success;\r\n\t\t},\r\n\t\tgetAllLessonTopicsFailure(state: TeacherLessonsState) {\r\n\t\t\tstate.status.getAllLessonTopics = Failed;\r\n\t\t},\r\n\r\n\t\tchangeLessonTopicStart: (state: TeacherLessonsState) => {\r\n\t\t\tstate.status.changeLessonTopic = Loading;\r\n\t\t},\r\n\t\tchangeLessonTopicSuccess(state: TeacherLessonsState) {\r\n\t\t\tstate.status.changeLessonTopic = Success;\r\n\t\t},\r\n\t\tchangeLessonTopicFailure(state: TeacherLessonsState) {\r\n\t\t\tstate.status.changeLessonTopic = Failed;\r\n\t\t},\r\n\r\n\t\tcleanUpTeacherLessonDetails(state: TeacherLessonsState) {\r\n\t\t\tstate.status.getTeacherLesson = teacherLessonsInitialState.status.getTeacherLesson;\r\n\t\t\tstate.status.changePresenceStatus = teacherLessonsInitialState.status.changePresenceStatus;\r\n\t\t\tstate.teacherLesson = teacherLessonsInitialState.teacherLesson;\r\n\t\t},\r\n\t\tcleanUpTeacherLessonCrud(state: TeacherLessonsState) {\r\n\t\t\tstate.allLessonTopics = teacherLessonsInitialState.allLessonTopics;\r\n\t\t\tstate.status.getAllLessonTopics = teacherLessonsInitialState.status.getAllLessonTopics;\r\n\t\t\tstate.status.createLesson = teacherLessonsInitialState.status.createLesson;\r\n\t\t\tstate.status.updateLesson = teacherLessonsInitialState.status.updateLesson;\r\n\t\t\tstate.status.deleteLesson = teacherLessonsInitialState.status.deleteLesson;\r\n\t\t\tstate.status.changeLessonStatus = teacherLessonsInitialState.status.changeLessonStatus;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default teacherLessonsSlice;\r\n\r\nexport const {\r\n\tgetTeacherLessonStart,\r\n\tgetTeacherLessonSuccess,\r\n\tgetTeacherLessonFailure,\r\n\r\n\tchangePresenceStatusStart,\r\n\tchangePresenceStatusSuccess,\r\n\tchangePresenceStatusFailure,\r\n\r\n\tchangeStudentLessonPointsStart,\r\n\tchangeStudentLessonPointsSuccess,\r\n\tchangeStudentLessonPointsFailure,\r\n\r\n\tcreateLessonStart,\r\n\tcreateLessonSuccess,\r\n\tcreateLessonFailure,\r\n\r\n\tupdateLessonStart,\r\n\tupdateLessonSuccess,\r\n\tupdateLessonFailure,\r\n\r\n\tdeleteLessonStart,\r\n\tdeleteLessonSuccess,\r\n\tdeleteLessonFailure,\r\n\r\n\tchangeLessonStatusStart,\r\n\tchangeLessonStatusSuccess,\r\n\tchangeLessonStatusFailure,\r\n\r\n\tgetAllLessonTopicsStart,\r\n\tgetAllLessonTopicsSuccess,\r\n\tgetAllLessonTopicsFailure,\r\n\r\n\tchangeLessonTopicStart,\r\n\tchangeLessonTopicSuccess,\r\n\tchangeLessonTopicFailure,\r\n\r\n\tcleanUpTeacherLessonDetails,\r\n\tcleanUpTeacherLessonCrud,\r\n} = teacherLessonsSlice.actions;\r\n","import { StudentForGetMyStudentsResponse } from 'App/api/endpoints/students/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\n\r\nconst { Initial } = StatusType;\r\n\r\nexport interface TeacherStudentsState {\r\n\tstatus: {\r\n\t\tgetMyStudents: StatusType;\r\n\t\tupdateAllowedAlgorithms: StatusType;\r\n\t};\r\n\r\n\tmyStudents: StudentForGetMyStudentsResponse[];\r\n}\r\n\r\nexport const teacherStudentsInitialState: TeacherStudentsState = {\r\n\tstatus: {\r\n\t\tgetMyStudents: Initial,\r\n\t\tupdateAllowedAlgorithms: Initial,\r\n\t},\r\n\r\n\tmyStudents: [],\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { GetMyStudentsResponse } from 'App/api/endpoints/students/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { teacherStudentsInitialState, TeacherStudentsState } from './teacher.students.state';\r\n\r\nconst { Failed, Loading, Success } = StatusType;\r\n\r\nexport const teacherStudentsSlice = createSlice({\r\n\tname: 'teacher-students',\r\n\tinitialState: teacherStudentsInitialState,\r\n\treducers: {\r\n\t\tgetMyStudentsStart: (state: TeacherStudentsState) => {\r\n\t\t\tstate.status.getMyStudents = Loading;\r\n\t\t},\r\n\t\tgetMyStudentsSuccess(state: TeacherStudentsState, action: PayloadAction) {\r\n\t\t\tstate.status.getMyStudents = Success;\r\n\t\t\tstate.myStudents = action.payload.students;\r\n\t\t},\r\n\t\tgetMyStudentsFailure(state: TeacherStudentsState) {\r\n\t\t\tstate.status.getMyStudents = Failed;\r\n\t\t},\r\n\r\n\t\tupdateAllowedAlgorithmsStart: (state: TeacherStudentsState) => {\r\n\t\t\tstate.status.updateAllowedAlgorithms = Loading;\r\n\t\t},\r\n\t\tupdateAllowedAlgorithmsSuccess(state: TeacherStudentsState) {\r\n\t\t\tstate.status.updateAllowedAlgorithms = Success;\r\n\t\t},\r\n\t\tupdateAllowedAlgorithmsFailure(state: TeacherStudentsState) {\r\n\t\t\tstate.status.updateAllowedAlgorithms = Failed;\r\n\t\t},\r\n\r\n\t\tcleanUpMyStudents: (state: TeacherStudentsState) => {\r\n\t\t\tstate.status.getMyStudents = teacherStudentsInitialState.status.getMyStudents;\r\n\t\t\tstate.status.updateAllowedAlgorithms = teacherStudentsInitialState.status.updateAllowedAlgorithms;\r\n\t\t\tstate.myStudents = teacherStudentsInitialState.myStudents;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default teacherStudentsSlice;\r\n\r\nexport const {\r\n\tgetMyStudentsStart,\r\n\tgetMyStudentsSuccess,\r\n\tgetMyStudentsFailure,\r\n\r\n\tupdateAllowedAlgorithmsStart,\r\n\tupdateAllowedAlgorithmsSuccess,\r\n\tupdateAllowedAlgorithmsFailure,\r\n\r\n\tcleanUpMyStudents,\r\n} = teacherStudentsSlice.actions;\r\n","import { InstallmentForGetIncomingInstallmentsResponse } from 'App/api/endpoints/account/responses';\r\nimport { WalletTransactionForGetWalletTransactionResponse } from 'App/api/endpoints/wallets/responses';\r\nimport StatusType from 'App/types/requestStatus';\r\nconst { Initial } = StatusType;\r\n\r\nexport interface AccountState {\r\n\tstatus: {\r\n\t\tconfirmEmail: StatusType;\r\n\t\tforgotPassword: StatusType;\r\n\t\tupdateAccountDetails: StatusType;\r\n\t\tresetPassword: StatusType;\r\n\t\tdeleteAccount: StatusType;\r\n\t\tresendConfirmationEmail: StatusType;\r\n\t\tchangePassword: StatusType;\r\n\t\tgetWalletTransactions: StatusType;\r\n\t\tgetIncomingInstallments: StatusType;\r\n\t};\r\n\r\n\twalletTransactions: WalletTransactionForGetWalletTransactionResponse[];\r\n\tincomingInstallments: InstallmentForGetIncomingInstallmentsResponse[];\r\n}\r\n\r\nexport const accountInitialState: AccountState = {\r\n\tstatus: {\r\n\t\tconfirmEmail: Initial,\r\n\t\tforgotPassword: Initial,\r\n\t\tupdateAccountDetails: Initial,\r\n\t\tresetPassword: Initial,\r\n\t\tdeleteAccount: Initial,\r\n\t\tresendConfirmationEmail: Initial,\r\n\t\tchangePassword: Initial,\r\n\t\tgetWalletTransactions: Initial,\r\n\t\tgetIncomingInstallments: Initial,\r\n\t},\r\n\r\n\twalletTransactions: [],\r\n\tincomingInstallments: [],\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { GetIncomingInstallmentsResponse } from 'App/api/endpoints/account/responses';\r\nimport { GetWalletTransactionsResponse } from 'App/api/endpoints/wallets/responses';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport { accountInitialState, AccountState } from './account.state';\r\n\r\nconst { Failed, Success, Loading } = StatusType;\r\n\r\nconst accountSlice = createSlice({\r\n\tname: 'account',\r\n\tinitialState: accountInitialState,\r\n\treducers: {\r\n\t\tconfirmEmailStart: (state: AccountState) => {\r\n\t\t\tstate.status.confirmEmail = Loading;\r\n\t\t},\r\n\t\tconfirmEmailSuccess: (state: AccountState) => {\r\n\t\t\tstate.status.confirmEmail = Success;\r\n\t\t},\r\n\t\tconfirmEmailFailure: (state: AccountState) => {\r\n\t\t\tstate.status.confirmEmail = Failed;\r\n\t\t},\r\n\r\n\t\tforgotPasswordStart: (state: AccountState) => {\r\n\t\t\tstate.status.forgotPassword = Loading;\r\n\t\t},\r\n\t\tforgotPasswordSuccess: (state: AccountState) => {\r\n\t\t\tstate.status.forgotPassword = Success;\r\n\t\t},\r\n\t\tforgotPasswordFailure: (state: AccountState) => {\r\n\t\t\tstate.status.forgotPassword = Failed;\r\n\t\t},\r\n\r\n\t\tupdateAccountDetailsStart: (state: AccountState) => {\r\n\t\t\tstate.status.updateAccountDetails = Loading;\r\n\t\t},\r\n\t\tupdateAccountDetailsSuccess: (state: AccountState) => {\r\n\t\t\tstate.status.updateAccountDetails = Success;\r\n\t\t},\r\n\t\tupdateAccountDetailsFailure: (state: AccountState) => {\r\n\t\t\tstate.status.updateAccountDetails = Failed;\r\n\t\t},\r\n\r\n\t\tresetPasswordStart: (state: AccountState) => {\r\n\t\t\tstate.status.resetPassword = Loading;\r\n\t\t},\r\n\t\tresetPasswordSuccess: (state: AccountState) => {\r\n\t\t\tstate.status.resetPassword = Success;\r\n\t\t},\r\n\t\tresetPasswordFailure: (state: AccountState) => {\r\n\t\t\tstate.status.resetPassword = Failed;\r\n\t\t},\r\n\r\n\t\tdeleteAccountStart: (state: AccountState) => {\r\n\t\t\tstate.status.deleteAccount = Loading;\r\n\t\t},\r\n\t\tdeleteAccountSuccess: (state: AccountState) => {\r\n\t\t\tstate.status.deleteAccount = Success;\r\n\t\t},\r\n\t\tdeleteAccountFailure: (state: AccountState) => {\r\n\t\t\tstate.status.deleteAccount = Failed;\r\n\t\t},\r\n\r\n\t\tresendConfirmationEmailStart: (state: AccountState) => {\r\n\t\t\tstate.status.resendConfirmationEmail = Loading;\r\n\t\t},\r\n\t\tresendConfirmationEmailSuccess: (state: AccountState) => {\r\n\t\t\tstate.status.resendConfirmationEmail = Success;\r\n\t\t},\r\n\t\tresendConfirmationEmailFailure: (state: AccountState) => {\r\n\t\t\tstate.status.resendConfirmationEmail = Failed;\r\n\t\t},\r\n\r\n\t\tchangePasswordStart: (state: AccountState) => {\r\n\t\t\tstate.status.changePassword = Loading;\r\n\t\t},\r\n\t\tchangePasswordSuccess(state: AccountState) {\r\n\t\t\tstate.status.changePassword = Success;\r\n\t\t},\r\n\t\tchangePasswordFailure(state: AccountState) {\r\n\t\t\tstate.status.changePassword = Failed;\r\n\t\t},\r\n\r\n\t\tgetWalletTransactionsStart: (state: AccountState) => {\r\n\t\t\tstate.status.getWalletTransactions = Loading;\r\n\t\t},\r\n\t\tgetWalletTransactionsSuccess(state: AccountState, action: PayloadAction) {\r\n\t\t\tstate.walletTransactions = action.payload.walletTransactions;\r\n\t\t\tstate.status.getWalletTransactions = Success;\r\n\t\t},\r\n\t\tgetWalletTransactionsFailure(state: AccountState) {\r\n\t\t\tstate.status.getWalletTransactions = Failed;\r\n\t\t},\r\n\r\n\t\tgetIncomingInstallmentsStart: (state: AccountState) => {\r\n\t\t\tstate.status.getIncomingInstallments = Loading;\r\n\t\t},\r\n\t\tgetIncomingInstallmentsSuccess(state: AccountState, action: PayloadAction) {\r\n\t\t\tstate.incomingInstallments = action.payload.installments;\r\n\t\t\tstate.status.getIncomingInstallments = Success;\r\n\t\t},\r\n\t\tgetIncomingInstallmentsFailure(state: AccountState) {\r\n\t\t\tstate.status.getIncomingInstallments = Failed;\r\n\t\t},\r\n\r\n\t\tcleanUpAccountStatusStart: (state: AccountState) => {\r\n\t\t\tstate.status = accountInitialState.status;\r\n\t\t\tstate.walletTransactions = accountInitialState.walletTransactions;\r\n\t\t\tstate.incomingInstallments = accountInitialState.incomingInstallments;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default accountSlice;\r\n\r\nexport const {\r\n\tconfirmEmailStart,\r\n\tconfirmEmailSuccess,\r\n\tconfirmEmailFailure,\r\n\r\n\tforgotPasswordStart,\r\n\tforgotPasswordSuccess,\r\n\tforgotPasswordFailure,\r\n\r\n\tupdateAccountDetailsStart,\r\n\tupdateAccountDetailsSuccess,\r\n\tupdateAccountDetailsFailure,\r\n\r\n\tresetPasswordStart,\r\n\tresetPasswordSuccess,\r\n\tresetPasswordFailure,\r\n\r\n\tdeleteAccountStart,\r\n\tdeleteAccountSuccess,\r\n\tdeleteAccountFailure,\r\n\r\n\tresendConfirmationEmailStart,\r\n\tresendConfirmationEmailSuccess,\r\n\tresendConfirmationEmailFailure,\r\n\r\n\tchangePasswordStart,\r\n\tchangePasswordSuccess,\r\n\tchangePasswordFailure,\r\n\r\n\tgetWalletTransactionsStart,\r\n\tgetWalletTransactionsSuccess,\r\n\tgetWalletTransactionsFailure,\r\n\r\n\tgetIncomingInstallmentsStart,\r\n\tgetIncomingInstallmentsSuccess,\r\n\tgetIncomingInstallmentsFailure,\r\n\r\n\tcleanUpAccountStatusStart,\r\n} = accountSlice.actions;\r\n","import { LogForGetLogsFilesResponse } from 'App/api/endpoints/logs/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\n\r\nconst { Initial } = StatusType;\r\n\r\nexport interface AdminLogsState {\r\n\tstatus: {\r\n\t\tgetLogsFiles: StatusType;\r\n\t\tgetLogsFileContent: StatusType;\r\n\t\tdownloadLogsFile: StatusType;\r\n\t\tdownloadAllLogsFiles: StatusType;\r\n\t};\r\n\terror: string[];\r\n\tlogs: LogForGetLogsFilesResponse[];\r\n\tlogContent: string[];\r\n}\r\n\r\nexport const adminLogsInitialState: AdminLogsState = {\r\n\tstatus: {\r\n\t\tgetLogsFiles: Initial,\r\n\t\tgetLogsFileContent: Initial,\r\n\t\tdownloadLogsFile: Initial,\r\n\t\tdownloadAllLogsFiles: Initial,\r\n\t},\r\n\terror: null,\r\n\tlogs: [],\r\n\tlogContent: [],\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\n\r\nimport { AdminLogsState, adminLogsInitialState } from './logs.state';\r\nimport { GetLogsFilesResponse } from 'App/api/endpoints/logs/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\n\r\nconst { Failed, Loading, Success } = StatusType;\r\n\r\nexport const adminLogsSlice = createSlice({\r\n\tname: 'admin-logs',\r\n\tinitialState: adminLogsInitialState,\r\n\treducers: {\r\n\t\tgetLogsFilesStart: (state: AdminLogsState) => {\r\n\t\t\tstate.status.getLogsFiles = Loading;\r\n\t\t\tstate.logs = adminLogsInitialState.logs;\r\n\t\t},\r\n\t\tgetLogsFilesSuccess(state: AdminLogsState, action: PayloadAction) {\r\n\t\t\tstate.status.getLogsFiles = Success;\r\n\t\t\tstate.logs = action.payload.logs;\r\n\t\t},\r\n\t\tgetLogsFilesFailure(state: AdminLogsState) {\r\n\t\t\tstate.status.getLogsFiles = Failed;\r\n\t\t},\r\n\r\n\t\tgetLogsFileContentStart: (state: AdminLogsState) => {\r\n\t\t\tstate.status.getLogsFileContent = Loading;\r\n\t\t\tstate.logContent = adminLogsInitialState.logContent;\r\n\t\t},\r\n\t\tgetLogsFileContentSuccess(state: AdminLogsState, action: PayloadAction) {\r\n\t\t\tstate.status.getLogsFileContent = Success;\r\n\t\t\tstate.logContent = action.payload;\r\n\t\t},\r\n\t\tgetLogsFileContentFailure(state: AdminLogsState) {\r\n\t\t\tstate.status.getLogsFileContent = Failed;\r\n\t\t},\r\n\r\n\t\tdownloadLogsFileStart: (state: AdminLogsState) => {\r\n\t\t\tstate.status.downloadLogsFile = Loading;\r\n\t\t},\r\n\t\tdownloadLogsFileSuccess(state: AdminLogsState) {\r\n\t\t\tstate.status.downloadLogsFile = Success;\r\n\t\t},\r\n\t\tdownloadLogsFileFailure(state: AdminLogsState) {\r\n\t\t\tstate.status.downloadLogsFile = Failed;\r\n\t\t},\r\n\r\n\t\tdownloadAllLogsFilesStart: (state: AdminLogsState) => {\r\n\t\t\tstate.status.downloadAllLogsFiles = Loading;\r\n\t\t},\r\n\t\tdownloadAllLogsFilesSuccess(state: AdminLogsState) {\r\n\t\t\tstate.status.downloadAllLogsFiles = Success;\r\n\t\t},\r\n\t\tdownloadAllLogsFilesFailure(state: AdminLogsState) {\r\n\t\t\tstate.status.downloadAllLogsFiles = Failed;\r\n\t\t},\r\n\r\n\t\tcleanUpLogStatusStart: (state: AdminLogsState) => {\r\n\t\t\tstate.status = adminLogsInitialState.status;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default adminLogsSlice;\r\n\r\nexport const {\r\n\tgetLogsFilesStart,\r\n\tgetLogsFilesSuccess,\r\n\tgetLogsFilesFailure,\r\n\r\n\tgetLogsFileContentStart,\r\n\tgetLogsFileContentSuccess,\r\n\tgetLogsFileContentFailure,\r\n\r\n\tdownloadLogsFileStart,\r\n\tdownloadLogsFileSuccess,\r\n\tdownloadLogsFileFailure,\r\n\r\n\tdownloadAllLogsFilesStart,\r\n\tdownloadAllLogsFilesSuccess,\r\n\tdownloadAllLogsFilesFailure,\r\n\r\n\tcleanUpLogStatusStart,\r\n} = adminLogsSlice.actions;\r\n","import { GetMessagesRequest } from 'App/api/endpoints/maintenanceMessages/requests/getMessagesRequest';\r\nimport { GetMessageResponse } from 'App/api/endpoints/maintenanceMessages/responses';\r\nimport { MessageForGetMessagesResponse } from 'App/api/endpoints/maintenanceMessages/responses/getMessagesResponse';\r\nimport { paginationUtils } from 'App/common/utils/pagination.utils';\r\nimport { StatusType } from 'App/types/requestStatus';\r\n\r\nconst { Initial } = StatusType;\r\nconst { defaultPaginationValues } = paginationUtils;\r\n\r\nexport interface AdminMaintenanceMessagesState {\r\n\tstatus: {\r\n\t\tgetMessages: StatusType;\r\n\t\tgetMessage: StatusType;\r\n\t\tdeleteMessage: StatusType;\r\n\t\tcreateMessage: StatusType;\r\n\t\tupdateMessage: StatusType;\r\n\t};\r\n\tmessages: MessageForGetMessagesResponse[];\r\n\tgetMessagesParams: GetMessagesRequest;\r\n\tselectedMessage: GetMessageResponse | null;\r\n}\r\n\r\nexport const adminMaintenanceMessagesInitialState: AdminMaintenanceMessagesState = {\r\n\tstatus: {\r\n\t\tgetMessages: Initial,\r\n\t\tgetMessage: Initial,\r\n\t\tdeleteMessage: Initial,\r\n\t\tcreateMessage: Initial,\r\n\t\tupdateMessage: Initial,\r\n\t},\r\n\tmessages: [],\r\n\tgetMessagesParams: { ...defaultPaginationValues, messagesType: 'All' },\r\n\tselectedMessage: null,\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\n\r\nimport { adminMaintenanceMessagesInitialState, AdminMaintenanceMessagesState } from './maintenanceMessages.state';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport {\r\n\tGetMessagesResponse,\r\n\tGetMessageResponse,\r\n\tUpdateMessageResponse,\r\n} from 'App/api/endpoints/maintenanceMessages/responses';\r\nimport { GetMessagesRequest } from 'App/api/endpoints/maintenanceMessages/requests';\r\n\r\nconst { Failed, Loading, Success } = StatusType;\r\n\r\nexport const adminMaintenanceMessagesSlice = createSlice({\r\n\tname: 'admin-maintenace-messages',\r\n\tinitialState: adminMaintenanceMessagesInitialState,\r\n\treducers: {\r\n\t\tgetMessagesStart: (state: AdminMaintenanceMessagesState) => {\r\n\t\t\tstate.status.getMessages = Loading;\r\n\t\t\tstate.messages = adminMaintenanceMessagesInitialState.messages;\r\n\t\t},\r\n\t\tgetMessagesSuccess(state: AdminMaintenanceMessagesState, action: PayloadAction) {\r\n\t\t\tstate.status.getMessages = Success;\r\n\t\t\tconst { messages, ...pagination } = action.payload;\r\n\t\t\tstate.messages = action.payload.messages;\r\n\t\t\tstate.getMessagesParams = pagination;\r\n\t\t},\r\n\t\tgetMessagesFailure(state: AdminMaintenanceMessagesState) {\r\n\t\t\tstate.status.getMessages = Failed;\r\n\t\t},\r\n\r\n\t\tgetMessageStart: (state: AdminMaintenanceMessagesState) => {\r\n\t\t\tstate.status.getMessage = Loading;\r\n\t\t\tstate.selectedMessage = adminMaintenanceMessagesInitialState.selectedMessage;\r\n\t\t},\r\n\t\tgetMessageSuccess: (state: AdminMaintenanceMessagesState, action: PayloadAction) => {\r\n\t\t\tstate.status.getMessage = Success;\r\n\t\t\tstate.selectedMessage = action.payload;\r\n\t\t},\r\n\t\tgetMessageFailure: (state: AdminMaintenanceMessagesState) => {\r\n\t\t\tstate.status.getMessage = Failed;\r\n\t\t},\r\n\r\n\t\tdeleteMessageStart: (state: AdminMaintenanceMessagesState) => {\r\n\t\t\tstate.status.deleteMessage = Loading;\r\n\t\t},\r\n\t\tdeleteMessageSuccess: (state: AdminMaintenanceMessagesState, action: PayloadAction) => {\r\n\t\t\tstate.status.deleteMessage = Success;\r\n\t\t\tstate.messages = state.messages.filter((m) => m.id !== action.payload);\r\n\t\t},\r\n\t\tdeleteMessageFailure: (state: AdminMaintenanceMessagesState) => {\r\n\t\t\tstate.status.deleteMessage = Failed;\r\n\t\t},\r\n\r\n\t\tcreateMessageStart: (state: AdminMaintenanceMessagesState) => {\r\n\t\t\tstate.status.createMessage = Loading;\r\n\t\t},\r\n\t\tcreateMessageSuccess: (state: AdminMaintenanceMessagesState) => {\r\n\t\t\tstate.status.createMessage = Success;\r\n\t\t},\r\n\t\tcreateMessageFailure: (state: AdminMaintenanceMessagesState) => {\r\n\t\t\tstate.status.createMessage = Failed;\r\n\t\t},\r\n\r\n\t\tupdateMessageStart: (state: AdminMaintenanceMessagesState) => {\r\n\t\t\tstate.status.updateMessage = Loading;\r\n\t\t},\r\n\t\tupdateMessageSuccess: (state: AdminMaintenanceMessagesState, action: PayloadAction) => {\r\n\t\t\tstate.status.updateMessage = Success;\r\n\t\t\tconst message = state.messages.find((u) => u.id === action.payload.id);\r\n\r\n\t\t\tif (message) {\r\n\t\t\t\tconst { startDateInUtc: startDate, endDateInUtc: endDate, description } = action.payload;\r\n\r\n\t\t\t\tmessage.startDateInUtc = startDate;\r\n\t\t\t\tmessage.endDateInUtc = endDate;\r\n\t\t\t\tmessage.description = description;\r\n\t\t\t}\r\n\t\t},\r\n\t\tupdateMessageFailure: (state: AdminMaintenanceMessagesState) => {\r\n\t\t\tstate.status.updateMessage = Failed;\r\n\t\t},\r\n\r\n\t\tupdateGetMessagesParams: (state: AdminMaintenanceMessagesState, action: PayloadAction) => {\r\n\t\t\tstate.getMessagesParams = action.payload;\r\n\t\t},\r\n\r\n\t\tcleanUpMessageStatus: (state: AdminMaintenanceMessagesState) => {\r\n\t\t\tstate.status = adminMaintenanceMessagesInitialState.status;\r\n\t\t},\r\n\r\n\t\tcleanUpMessagesTable: (state: AdminMaintenanceMessagesState) => {\r\n\t\t\tstate.getMessagesParams = adminMaintenanceMessagesInitialState.getMessagesParams;\r\n\t\t\tstate.messages = adminMaintenanceMessagesInitialState.messages;\r\n\t\t\tstate.status.getMessages = adminMaintenanceMessagesInitialState.status.getMessages;\r\n\t\t},\r\n\r\n\t\tcleanUpSelectedMessage: (state: AdminMaintenanceMessagesState) => {\r\n\t\t\tstate.selectedMessage = adminMaintenanceMessagesInitialState.selectedMessage;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default adminMaintenanceMessagesSlice;\r\n\r\nexport const {\r\n\tgetMessagesStart,\r\n\tgetMessagesSuccess,\r\n\tgetMessagesFailure,\r\n\r\n\tgetMessageStart,\r\n\tgetMessageSuccess,\r\n\tgetMessageFailure,\r\n\r\n\tdeleteMessageStart,\r\n\tdeleteMessageSuccess,\r\n\tdeleteMessageFailure,\r\n\r\n\tcreateMessageStart,\r\n\tcreateMessageSuccess,\r\n\tcreateMessageFailure,\r\n\r\n\tupdateMessageStart,\r\n\tupdateMessageSuccess,\r\n\tupdateMessageFailure,\r\n\r\n\tupdateGetMessagesParams,\r\n\r\n\tcleanUpMessageStatus,\r\n\tcleanUpSelectedMessage,\r\n\tcleanUpMessagesTable,\r\n} = adminMaintenanceMessagesSlice.actions;\r\n","import { GetUsersRequest } from 'App/api/endpoints/users/requests';\r\nimport { GetUserResponse } from 'App/api/endpoints/users/responses';\r\nimport { UserForGetUsersResponse } from 'App/api/endpoints/users/responses/getUsersResponse';\r\nimport { paginationUtils } from 'App/common/utils/pagination.utils';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport Role from 'App/types/role';\r\n\r\nconst { Initial } = StatusType;\r\nconst { defaultPaginationValues } = paginationUtils;\r\n\r\nexport interface AdminUsersState {\r\n\tstatus: {\r\n\t\tgetUsers: StatusType;\r\n\t\tgetUser: StatusType;\r\n\t\tdeleteUser: StatusType;\r\n\t\tcreateUser: StatusType;\r\n\t\tupdateUser: StatusType;\r\n\t\tsetUserPassword: StatusType;\r\n\t\tcreateWalletTransaction: StatusType;\r\n\t\tchangeWalletVisibility: StatusType;\r\n\t};\r\n\tusers: UserForGetUsersResponse[];\r\n\tgetUsersParams: GetUsersRequest;\r\n\tselectedUser: GetUserResponse | null;\r\n}\r\n\r\nexport const adminUsersInitialState: AdminUsersState = {\r\n\tstatus: {\r\n\t\tgetUsers: Initial,\r\n\t\tgetUser: Initial,\r\n\t\tdeleteUser: Initial,\r\n\t\tcreateUser: Initial,\r\n\t\tupdateUser: Initial,\r\n\t\tsetUserPassword: Initial,\r\n\t\tcreateWalletTransaction: Initial,\r\n\t\tchangeWalletVisibility: Initial,\r\n\t},\r\n\tusers: [],\r\n\tgetUsersParams: { ...defaultPaginationValues, role: Role.Student },\r\n\tselectedUser: null,\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\n\r\nimport { adminUsersInitialState, AdminUsersState } from './users.state';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { GetUserResponse, GetUsersResponse, UpdateUserResponse } from 'App/api/endpoints/users/responses';\r\n\r\nconst { Failed, Loading, Success } = StatusType;\r\n\r\nexport const adminUsersSlice = createSlice({\r\n\tname: 'admin-users',\r\n\tinitialState: adminUsersInitialState,\r\n\treducers: {\r\n\t\tgetUsersStart: (state: AdminUsersState) => {\r\n\t\t\tstate.status.getUsers = Loading;\r\n\t\t\tstate.users = adminUsersInitialState.users;\r\n\t\t},\r\n\t\tgetUsersSuccess(state: AdminUsersState, action: PayloadAction) {\r\n\t\t\tstate.status.getUsers = Success;\r\n\t\t\tconst { users, ...pagination } = action.payload;\r\n\t\t\tstate.users = action.payload.users;\r\n\t\t\tstate.getUsersParams = pagination;\r\n\t\t},\r\n\t\tgetUsersFailure(state: AdminUsersState) {\r\n\t\t\tstate.status.getUsers = Failed;\r\n\t\t},\r\n\r\n\t\tgetUserStart: (state: AdminUsersState) => {\r\n\t\t\tstate.status.getUser = Loading;\r\n\t\t\tstate.selectedUser = adminUsersInitialState.selectedUser;\r\n\t\t},\r\n\t\tgetUserSuccess: (state: AdminUsersState, action: PayloadAction) => {\r\n\t\t\tstate.status.getUser = Success;\r\n\t\t\tstate.selectedUser = action.payload;\r\n\t\t},\r\n\t\tgetUserFailure: (state: AdminUsersState) => {\r\n\t\t\tstate.status.getUser = Failed;\r\n\t\t},\r\n\r\n\t\tdeleteUserStart: (state: AdminUsersState) => {\r\n\t\t\tstate.status.deleteUser = Loading;\r\n\t\t},\r\n\t\tdeleteUserSuccess: (state: AdminUsersState, action: PayloadAction) => {\r\n\t\t\tstate.status.deleteUser = Success;\r\n\t\t\tstate.users = state.users.filter((u) => u.id !== action.payload);\r\n\t\t},\r\n\t\tdeleteUserFailure: (state: AdminUsersState) => {\r\n\t\t\tstate.status.deleteUser = Failed;\r\n\t\t},\r\n\r\n\t\tcreateUserStart: (state: AdminUsersState) => {\r\n\t\t\tstate.status.createUser = Loading;\r\n\t\t},\r\n\t\tcreateUserSuccess: (state: AdminUsersState) => {\r\n\t\t\tstate.status.createUser = Success;\r\n\t\t},\r\n\t\tcreateUserFailure: (state: AdminUsersState) => {\r\n\t\t\tstate.status.createUser = Failed;\r\n\t\t},\r\n\r\n\t\tupdateUserStart: (state: AdminUsersState) => {\r\n\t\t\tstate.status.updateUser = Loading;\r\n\t\t},\r\n\t\tupdateUserSuccess: (state: AdminUsersState, action: PayloadAction) => {\r\n\t\t\tstate.status.updateUser = Success;\r\n\t\t\tconst user = state.users.find((u) => u.id === action.payload.id);\r\n\r\n\t\t\tif (user) {\r\n\t\t\t\tconst { firstName, lastName } = action.payload;\r\n\r\n\t\t\t\tuser.firstName = firstName;\r\n\t\t\t\tuser.lastName = lastName;\r\n\t\t\t}\r\n\t\t},\r\n\t\tupdateUserFailure: (state: AdminUsersState) => {\r\n\t\t\tstate.status.updateUser = Failed;\r\n\t\t},\r\n\r\n\t\tsetUserPasswordStart: (state: AdminUsersState) => {\r\n\t\t\tstate.status.setUserPassword = Loading;\r\n\t\t},\r\n\t\tsetUserPasswordSuccess(state: AdminUsersState) {\r\n\t\t\tstate.status.setUserPassword = Success;\r\n\t\t},\r\n\t\tsetUserPasswordFailure(state: AdminUsersState) {\r\n\t\t\tstate.status.setUserPassword = Failed;\r\n\t\t},\r\n\r\n\t\tcreateWalletTransactionStart: (state: AdminUsersState) => {\r\n\t\t\tstate.status.createWalletTransaction = Loading;\r\n\t\t},\r\n\t\tcreateWalletTransactionSuccess(state: AdminUsersState) {\r\n\t\t\tstate.status.createWalletTransaction = Success;\r\n\t\t},\r\n\t\tcreateWalletTransactionFailure(state: AdminUsersState) {\r\n\t\t\tstate.status.createWalletTransaction = Failed;\r\n\t\t},\r\n\r\n\t\tchangeWalletVisibilityStart: (state: AdminUsersState) => {\r\n\t\t\tstate.status.changeWalletVisibility = Loading;\r\n\t\t},\r\n\t\tchangeWalletVisibilitySuccess(state: AdminUsersState) {\r\n\t\t\tstate.status.changeWalletVisibility = Success;\r\n\t\t},\r\n\t\tchangeWalletVisibilityFailure(state: AdminUsersState) {\r\n\t\t\tstate.status.changeWalletVisibility = Failed;\r\n\t\t},\r\n\r\n\t\tcleanUpUserStatus: (state: AdminUsersState) => {\r\n\t\t\tstate.status = adminUsersInitialState.status;\r\n\t\t},\r\n\r\n\t\tcleanUpUsersTable: (state: AdminUsersState) => {\r\n\t\t\tstate.getUsersParams = adminUsersInitialState.getUsersParams;\r\n\t\t\tstate.users = adminUsersInitialState.users;\r\n\t\t\tstate.status.getUsers = adminUsersInitialState.status.getUsers;\r\n\t\t},\r\n\r\n\t\tcleanUpSelectedUser: (state: AdminUsersState) => {\r\n\t\t\tstate.selectedUser = adminUsersInitialState.selectedUser;\r\n\t\t\tstate.status.getUser = adminUsersInitialState.status.getUser;\r\n\t\t\tstate.status.setUserPassword = adminUsersInitialState.status.setUserPassword;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default adminUsersSlice;\r\n\r\nexport const {\r\n\tgetUsersStart,\r\n\tgetUsersSuccess,\r\n\tgetUsersFailure,\r\n\r\n\tgetUserStart,\r\n\tgetUserSuccess,\r\n\tgetUserFailure,\r\n\r\n\tdeleteUserStart,\r\n\tdeleteUserSuccess,\r\n\tdeleteUserFailure,\r\n\r\n\tcreateUserStart,\r\n\tcreateUserSuccess,\r\n\tcreateUserFailure,\r\n\r\n\tupdateUserStart,\r\n\tupdateUserSuccess,\r\n\tupdateUserFailure,\r\n\r\n\tsetUserPasswordStart,\r\n\tsetUserPasswordSuccess,\r\n\tsetUserPasswordFailure,\r\n\r\n\tcreateWalletTransactionStart,\r\n\tcreateWalletTransactionSuccess,\r\n\tcreateWalletTransactionFailure,\r\n\r\n\tchangeWalletVisibilityStart,\r\n\tchangeWalletVisibilitySuccess,\r\n\tchangeWalletVisibilityFailure,\r\n\r\n\tcleanUpUserStatus,\r\n\tcleanUpSelectedUser,\r\n\tcleanUpUsersTable,\r\n} = adminUsersSlice.actions;\r\n","import { GetAccountDetailsResponse } from 'App/api/endpoints/account/responses';\r\nimport StatusType from 'App/types/requestStatus';\r\nconst { Initial } = StatusType;\r\n\r\nexport interface GlobalAccountState {\r\n\tstatus: {\r\n\t\tgetAccountDetails: StatusType;\r\n\t};\r\n\taccountDetails: GetAccountDetailsResponse | null;\r\n}\r\n\r\nexport const globalAccountInitialState: GlobalAccountState = {\r\n\tstatus: {\r\n\t\tgetAccountDetails: Initial,\r\n\t},\r\n\taccountDetails: null,\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { GetAccountDetailsResponse } from 'App/api/endpoints/account/responses';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport { globalAccountInitialState, GlobalAccountState } from './account.global.state';\r\n\r\nconst { Failed, Success, Loading } = StatusType;\r\n\r\nconst globalAccountSlice = createSlice({\r\n\tname: 'global-account',\r\n\tinitialState: globalAccountInitialState,\r\n\treducers: {\r\n\t\tgetAccountDetailsStart: (state: GlobalAccountState) => {\r\n\t\t\tstate.status.getAccountDetails = Loading;\r\n\t\t\tstate.accountDetails = globalAccountInitialState.accountDetails;\r\n\t\t},\r\n\t\tgetAccountDetailsSuccess: (state: GlobalAccountState, action: PayloadAction) => {\r\n\t\t\tstate.status.getAccountDetails = Success;\r\n\t\t\tstate.accountDetails = action.payload;\r\n\t\t},\r\n\t\tgetAccountDetailsFailure: (state: GlobalAccountState) => {\r\n\t\t\tstate.status.getAccountDetails = Failed;\r\n\t\t},\r\n\r\n\t\tclearAccountStart: (state: GlobalAccountState) => {\r\n\t\t\tstate.accountDetails = null;\r\n\t\t\tstate.status.getAccountDetails = StatusType.Initial;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default globalAccountSlice;\r\n\r\nexport const {\r\n\tgetAccountDetailsStart,\r\n\tgetAccountDetailsSuccess,\r\n\tgetAccountDetailsFailure,\r\n\r\n\tclearAccountStart,\r\n} = globalAccountSlice.actions;\r\n","import { StatusType } from 'App/types/requestStatus';\r\n\r\nconst { Initial } = StatusType;\r\n\r\nexport interface AuthState {\r\n\tstatus: {\r\n\t\tlogin: StatusType;\r\n\t\tlogout: StatusType;\r\n\t\tregister: StatusType;\r\n\t\trefreshToken: StatusType;\r\n\t};\r\n\ttokens: {\r\n\t\taccessToken: string;\r\n\t\trefreshToken: string;\r\n\t};\r\n\tflags: {\r\n\t\tappStarting: boolean;\r\n\t\tlogin: boolean;\r\n\t};\r\n}\r\n\r\nexport const authInitialState: AuthState = {\r\n\tstatus: {\r\n\t\tlogin: Initial,\r\n\t\tlogout: Initial,\r\n\t\tregister: Initial,\r\n\t\trefreshToken: Initial,\r\n\t},\r\n\ttokens: {\r\n\t\taccessToken: null,\r\n\t\trefreshToken: null,\r\n\t},\r\n\tflags: {\r\n\t\tappStarting: true,\r\n\t\tlogin: false,\r\n\t},\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\n\r\nimport { authInitialState, AuthState } from './auth.global.state';\r\nimport { LoginResponse, RefreshTokenResponse } from 'App/api/endpoints/auth/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\n\r\nconst { Failed, Success, Loading } = StatusType;\r\n\r\nconst globalAuthSlice = createSlice({\r\n\tname: 'global-auth',\r\n\tinitialState: authInitialState,\r\n\treducers: {\r\n\t\tloginStart: (state: AuthState) => {\r\n\t\t\tstate.status.login = Loading;\r\n\t\t\tstate.flags.login = true;\r\n\t\t\tstate.tokens = authInitialState.tokens;\r\n\t\t},\r\n\t\tloginSuccess: (state: AuthState, action: PayloadAction) => {\r\n\t\t\tstate.status.login = Success;\r\n\t\t\tstate.tokens = action.payload;\r\n\t\t},\r\n\t\tloginFailure: (state: AuthState) => {\r\n\t\t\tstate.status.login = Failed;\r\n\t\t},\r\n\t\tloginFinish: (state: AuthState) => {\r\n\t\t\tstate.flags.login = authInitialState.flags.login;\r\n\t\t},\r\n\r\n\t\tregisterStart: (state: AuthState) => {\r\n\t\t\tstate.status.register = Loading;\r\n\t\t},\r\n\t\tregisterSuccess: (state: AuthState) => {\r\n\t\t\tstate.status.register = Success;\r\n\t\t},\r\n\t\tregisterFailure: (state: AuthState) => {\r\n\t\t\tstate.status.register = Failed;\r\n\t\t},\r\n\r\n\t\tlogoutStart: (state: AuthState) => {\r\n\t\t\tstate.status.logout = Success;\r\n\t\t\tstate.tokens = authInitialState.tokens;\r\n\t\t},\r\n\r\n\t\trefreshTokenStart: (state: AuthState) => {\r\n\t\t\tstate.status.refreshToken = Loading;\r\n\t\t\tstate.tokens = authInitialState.tokens;\r\n\t\t},\r\n\t\trefreshTokenSuccess: (state: AuthState, action: PayloadAction) => {\r\n\t\t\tstate.tokens = action.payload;\r\n\t\t\tstate.status.refreshToken = Success;\r\n\t\t},\r\n\t\trefreshTokenFailure: (state: AuthState) => {\r\n\t\t\tstate.status.refreshToken = Failed;\r\n\t\t},\r\n\r\n\t\tappStarted: (state: AuthState) => {\r\n\t\t\tstate.flags.appStarting = false;\r\n\t\t},\r\n\r\n\t\tcleanUpAuthStatusStart: (state: AuthState) => {\r\n\t\t\tstate.status = authInitialState.status;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default globalAuthSlice;\r\n\r\nexport const {\r\n\tloginStart,\r\n\tloginSuccess,\r\n\tloginFailure,\r\n\tloginFinish,\r\n\r\n\tregisterStart,\r\n\tregisterSuccess,\r\n\tregisterFailure,\r\n\r\n\trefreshTokenStart,\r\n\trefreshTokenSuccess,\r\n\trefreshTokenFailure,\r\n\r\n\tappStarted,\r\n\r\n\tlogoutStart,\r\n\r\n\tcleanUpAuthStatusStart,\r\n} = globalAuthSlice.actions;\r\n","import { MessageForGetCurrentMessagesResponse } from 'App/api/endpoints/maintenanceMessages/responses';\r\nimport { StatusType } from 'App/types/requestStatus';\r\n\r\nconst { Initial } = StatusType;\r\n\r\nexport interface MaintenanceMessagesState {\r\n\tstatus: {\r\n\t\tgetCurrentMessages: StatusType;\r\n\t};\r\n\r\n\tcurrentMessages: MessageForGetCurrentMessagesResponse[];\r\n}\r\n\r\nexport const maintenanceMessagesInitialState: MaintenanceMessagesState = {\r\n\tstatus: {\r\n\t\tgetCurrentMessages: Initial,\r\n\t},\r\n\r\n\tcurrentMessages: [],\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { GetCurrentMessagesResponse } from 'App/api/endpoints/maintenanceMessages/responses';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport { maintenanceMessagesInitialState, MaintenanceMessagesState } from './maintenanceMessages.global.state';\r\n\r\nconst { Loading, Success, Failed } = StatusType;\r\n\r\nexport const globalMaintenanceMessagesSlice = createSlice({\r\n\tname: 'global-maintenance-messages',\r\n\tinitialState: maintenanceMessagesInitialState,\r\n\treducers: {\r\n\t\tgetCurrentMessagesStart: (state: MaintenanceMessagesState) => {\r\n\t\t\tstate.status.getCurrentMessages = Loading;\r\n\t\t},\r\n\t\tgetCurrentMessagesSuccess(state: MaintenanceMessagesState, action: PayloadAction) {\r\n\t\t\tstate.currentMessages = action.payload.messages;\r\n\t\t\tstate.status.getCurrentMessages = Success;\r\n\t\t},\r\n\t\tgetCurrentMessagesFailure(state: MaintenanceMessagesState) {\r\n\t\t\tstate.status.getCurrentMessages = Failed;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default globalMaintenanceMessagesSlice;\r\n\r\nexport const { getCurrentMessagesStart, getCurrentMessagesSuccess, getCurrentMessagesFailure } =\r\n\tglobalMaintenanceMessagesSlice.actions;\r\n","import { StatusType } from 'App/types/requestStatus';\r\n\r\nconst { Initial } = StatusType;\r\n\r\nexport interface GlobalWalletState {\r\n\tstatus: {\r\n\t\tgetWalletBalance: StatusType;\r\n\t};\r\n\r\n\tbalance: number;\r\n}\r\n\r\nexport const globalWalletInitialState: GlobalWalletState = {\r\n\tstatus: {\r\n\t\tgetWalletBalance: Initial,\r\n\t},\r\n\r\n\tbalance: 0,\r\n};\r\n","import { createSlice, PayloadAction } from '@reduxjs/toolkit';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { globalWalletInitialState, GlobalWalletState } from './wallet.global.state';\r\n\r\nconst { Failed, Loading, Success } = StatusType;\r\n\r\nexport const globalWalletSlice = createSlice({\r\n\tname: 'global-wallet',\r\n\tinitialState: globalWalletInitialState,\r\n\treducers: {\r\n\t\tgetWalletBalanceStart: (state: GlobalWalletState) => {\r\n\t\t\tstate.status.getWalletBalance = Loading;\r\n\t\t},\r\n\t\tgetWalletBalanceSuccess(state: GlobalWalletState, action: PayloadAction) {\r\n\t\t\tstate.balance = action.payload;\r\n\t\t\tstate.status.getWalletBalance = Success;\r\n\t\t},\r\n\t\tgetWalletBalanceFailure(state: GlobalWalletState) {\r\n\t\t\tstate.status.getWalletBalance = Failed;\r\n\t\t},\r\n\t},\r\n});\r\n\r\nexport default globalWalletSlice;\r\n\r\nexport const { getWalletBalanceStart, getWalletBalanceSuccess, getWalletBalanceFailure } = globalWalletSlice.actions;\r\n","import { combineReducers } from '@reduxjs/toolkit';\r\nimport adminCoursesSlice from 'App/pages/adminPages/coursesPages/state/courses.slice';\r\nimport adminGroupsSlice from 'App/pages/adminPages/groupsPages/state/groups.slice';\r\nimport adminLessonTopicsSlice from 'App/pages/adminPages/lessonTopicsPages/state/lessonTopics.slice';\r\nimport gameSlice from 'App/pages/gamePages/state/game.slice';\r\nimport studentSlice from 'App/pages/studentPages/state/student.slice';\r\nimport teacherCalendarSlice from 'App/pages/teacherPages/state/calendar/teacher.calendar.slice';\r\nimport teacherGamesSlice from 'App/pages/teacherPages/state/games/teacher.games.slice';\r\nimport teacherGroupsSlice from 'App/pages/teacherPages/state/groups/teacher.groups.slice';\r\nimport teacherLessonsSlice from 'App/pages/teacherPages/state/lessons/teacher.lessons.slice';\r\nimport teacherStudentsSlice from 'App/pages/teacherPages/state/students/teacher.students.slice';\r\nimport accountSlice from '../pages/accountPages/state/account.slice';\r\n\r\nimport adminLogsSlice from '../pages/adminPages/logsPages/state/logs.slice';\r\nimport adminMaintenanceMessagesSlice from '../pages/adminPages/maintenanceMessagesPages/state/maintenanceMessages.slice';\r\nimport adminUsersSlice from '../pages/adminPages/usersPages/state/users.slice';\r\nimport globalAccountSlice from './account/account.global.slice';\r\n\r\nimport globalAuthSlice from './auth/auth.global.slice';\r\nimport globalMaintenanceMessagesSlice from './maintenanceMessages/maintenanceMessages.global.slice';\r\nimport globalWalletSlice from './wallet/wallet.global.slice';\r\n\r\nconst rootReducer = combineReducers({\r\n\tglobal: combineReducers({\r\n\t\tauth: globalAuthSlice.reducer,\r\n\t\taccount: globalAccountSlice.reducer,\r\n\t\tmaintenanceMessages: globalMaintenanceMessagesSlice.reducer,\r\n\t\twallet: globalWalletSlice.reducer,\r\n\t}),\r\n\tpages: combineReducers({\r\n\t\tadmin: combineReducers({\r\n\t\t\tusers: adminUsersSlice.reducer,\r\n\t\t\tlogs: adminLogsSlice.reducer,\r\n\t\t\tmessages: adminMaintenanceMessagesSlice.reducer,\r\n\t\t\tcourses: adminCoursesSlice.reducer,\r\n\t\t\tlessonTopics: adminLessonTopicsSlice.reducer,\r\n\t\t\tgroups: adminGroupsSlice.reducer,\r\n\t\t}),\r\n\t\tstudent: studentSlice.reducer,\r\n\t\taccount: accountSlice.reducer,\r\n\t\tgame: gameSlice.reducer,\r\n\t\tteacher: combineReducers({\r\n\t\t\tcalendar: teacherCalendarSlice.reducer,\r\n\t\t\tlessons: teacherLessonsSlice.reducer,\r\n\t\t\tgroups: teacherGroupsSlice.reducer,\r\n\t\t\tgames: teacherGamesSlice.reducer,\r\n\t\t\tstudents: teacherStudentsSlice.reducer,\r\n\t\t}),\r\n\t}),\r\n});\r\n\r\nexport type RootState = ReturnType;\r\n\r\nexport default rootReducer;\r\n","import { configureStore, Action, getDefaultMiddleware } from '@reduxjs/toolkit';\r\nimport { ThunkAction } from 'redux-thunk';\r\nimport rootReducer, { RootState } from './root.reducer';\r\n\r\nconst store = configureStore({\r\n\treducer: rootReducer,\r\n\tmiddleware: getDefaultMiddleware({\r\n\t\tserializableCheck: false,\r\n\t}),\r\n});\r\n\r\nif (process.env.NODE_ENV === 'development' && module.hot) {\r\n\tmodule.hot.accept('./root.reducer', () => {\r\n\t\tconst newRootReducer = require('./root.reducer').default;\r\n\t\tstore.replaceReducer(newRootReducer);\r\n\t});\r\n}\r\n\r\nexport type AppDispatch = typeof store.dispatch;\r\nexport type AppThunk = ThunkAction>;\r\nexport default store;\r\n","import React, { CSSProperties } from 'react';\r\nimport { Spin } from 'antd';\r\n\r\nexport declare type ContainerType = 'screen' | 'fill';\r\n\r\ninterface LoadingScreenProps {\r\n\tcontainer: ContainerType;\r\n}\r\nconst LoadingScreen = ({ container }: LoadingScreenProps) => {\r\n\tlet style: CSSProperties = {};\r\n\r\n\tif (container === 'screen') {\r\n\t\tstyle = {\r\n\t\t\twidth: '100vw',\r\n\t\t\theight: '100vh',\r\n\t\t\tposition: 'absolute',\r\n\t\t\tdisplay: 'flex',\r\n\t\t\tjustifyContent: 'center',\r\n\t\t\talignItems: 'center',\r\n\t\t\ttop: 0,\r\n\t\t\tleft: 0,\r\n\t\t\tzIndex: 999,\r\n\t\t\tbackgroundColor: '#ffffffd0',\r\n\t\t};\r\n\t}\r\n\tif (container === 'fill') {\r\n\t\tstyle = {\r\n\t\t\twidth: '100%',\r\n\t\t\theight: '100%',\r\n\t\t\tposition: 'inherit',\r\n\t\t\toverflow: 'hidden',\r\n\t\t};\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default LoadingScreen;\r\n","import { RootState } from 'App/globalState/root.reducer';\r\nimport Role from 'App/types/role';\r\nimport React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { Redirect, Route, RouteChildrenProps, RouteProps } from 'react-router';\r\nimport LoadingScreen from '../../common/loadingScreen/LoadingScreen';\r\n\r\ninterface ProtectedRouteProps extends RouteProps {\r\n\tacceptedRoles?: Role[];\r\n}\r\n\r\nconst ProtectedRoute = (props: ProtectedRouteProps) => {\r\n\tconst accountDetails = useSelector((state: RootState) => state.global.account.accountDetails);\r\n\tconst token = useSelector((state: RootState) => state.global.auth.tokens?.accessToken);\r\n\tconst appStarting = useSelector((state: RootState) => state.global.auth.flags.appStarting);\r\n\tconst login = useSelector((state: RootState) => state.global.auth.flags.login);\r\n\r\n\tconst { component: Component, ...rest } = props;\r\n\r\n\tif (appStarting || login) return ;\r\n\telse {\r\n\t\t//jesli nie ma accountDetails lub token\r\n\t\tif (!accountDetails || !token) return ;\r\n\t\t//jeśli jest token i są detale konta z rolami\r\n\t\t//sprawdz czy jakakolwiek rola uzytkownika ma dostep do tego ProtectedRoute\r\n\t\telse if (!props.acceptedRoles || accountDetails.roles?.some((role) => props.acceptedRoles.includes(role)))\r\n\t\t\treturn } />;\r\n\t\t//jeśli nie to przekieruj na forbbiden (użytkownik jest zalogowany ale nie ma dostępu do zasobu)\r\n\t\telse return ;\r\n\t}\r\n};\r\n\r\nexport default ProtectedRoute;\r\n","import { IAppConfig } from './app.config.d';\r\n\r\nconst appConfig: IAppConfig = {\r\n\turls: {\r\n\t\tbackend: {\r\n\t\t\tlogin: '/auth/login',\r\n\t\t\trefreshToken: '/auth/refresh-token',\r\n\t\t},\r\n\t\tfrontend: {\r\n\t\t\tbaseUrlToIncludeInEmail: `${process.env.REACT_APP_FRONTEND_URL}`,\r\n\t\t\tconfirmEmail: '/account/confirm-email',\r\n\t\t\tresetPassword: '/account/reset-password',\r\n\t\t\tsignIn: '/sign-in',\r\n\t\t\tsignUp: '/sign-up',\r\n\t\t\tforgotPassword: '/account/forgot-password',\r\n\t\t\tresendConfirmationEmail: '/account/resend-confirmation-email',\r\n\t\t\thome: '/',\r\n\t\t},\r\n\t},\r\n};\r\n\r\nconst frontendUrl = appConfig.urls.frontend;\r\n\r\nexport const publicUrls = [\r\n\t//\"*\" jest dodawana, żeby w errorHandler.ts sprawdził czy url zaczyna się od tej ścieżki\r\n\t//bo wszystkie podścieżki dla tej bazowej ścieżki są publiczne więc nie wymagają zalogowania\r\n\t//taki wildcard xD\r\n\t`${frontendUrl.resetPassword}*`,\r\n\tfrontendUrl.forgotPassword,\r\n\tfrontendUrl.signUp,\r\n\tfrontendUrl.signIn,\r\n\tfrontendUrl.confirmEmail,\r\n\tfrontendUrl.resendConfirmationEmail,\r\n\tfrontendUrl.home,\r\n];\r\n\r\nexport default appConfig;\r\n","import { requests } from '../../agent/agent';\r\nimport {\r\n\tUpdateAccountDetailsRequest,\r\n\tChangePasswordRequest,\r\n\tForgotPasswordRequest,\r\n\tResetPasswordRequest,\r\n\tConfirmEmailRequest,\r\n\tResendConfirmationEmailRequest,\r\n} from './requests';\r\nimport { GetAccountDetailsResponse, GetIncomingInstallmentsResponse, UpdateAccountDetailsResponse } from './responses';\r\n\r\nimport appConfig from 'app.config';\r\nimport { HttpStatusCodeResponse } from 'App/types/httpResponse.d';\r\n\r\nconst { baseUrlToIncludeInEmail, resetPassword, confirmEmail } = appConfig.urls.frontend;\r\n\r\nexport const AccountApi = {\r\n\tgetAccountDetails: (): Promise => requests.get(`/account/details`),\r\n\r\n\tupdateAccountDetails: (body: UpdateAccountDetailsRequest): Promise =>\r\n\t\trequests.put(`/account/details`, body),\r\n\r\n\tchangePassword: (body: ChangePasswordRequest): Promise =>\r\n\t\trequests.post(`/account/change-password`, body),\r\n\r\n\tforgotPassword: (body: ForgotPasswordRequest): Promise =>\r\n\t\trequests.post(`/account/forgot-password`, {\r\n\t\t\t...body,\r\n\t\t\turlToIncludeInEmail: `${baseUrlToIncludeInEmail}${resetPassword}`,\r\n\t\t}),\r\n\r\n\tresetPassword: (body: ResetPasswordRequest): Promise =>\r\n\t\trequests.post(`/account/reset-password`, body),\r\n\r\n\tconfirmEmail: (params: ConfirmEmailRequest): Promise =>\r\n\t\trequests.get('/account/confirm-email', params),\r\n\r\n\tresendConfirmationEmail: (body: ResendConfirmationEmailRequest): Promise =>\r\n\t\trequests.post('/account/resend-confirmation-email', {\r\n\t\t\t...body,\r\n\t\t\turlToIncludeInEmail: `${baseUrlToIncludeInEmail}${confirmEmail}`,\r\n\t\t}),\r\n\r\n\tgetIncomingInstallments: (): Promise =>\r\n\t\trequests.get(`/account/incoming-installments`),\r\n};\r\n","import { requests } from '../../agent/agent';\r\nimport { GetUsersRequest, UpdateUserRequest, CreateUserRequest, SetUserPasswordRequest } from './requests';\r\nimport { GetUserResponse, CreateUserResponse, GetUsersResponse, UpdateUserResponse } from './responses';\r\nimport { HttpStatusCodeResponse } from 'App/types/httpResponse.d';\r\n\r\nimport appConfig from 'app.config';\r\n\r\nconst { baseUrlToIncludeInEmail, confirmEmail } = appConfig.urls.frontend;\r\n\r\nexport const UsersApi = {\r\n\tgetUsers: (body: GetUsersRequest): Promise => requests.post(`/users/search`, body),\r\n\r\n\tgetUser: (userId: string): Promise => requests.get(`/users/${userId}`),\r\n\r\n\tcreateUser: (body: CreateUserRequest): Promise =>\r\n\t\trequests.post(`/users`, { ...body, urlToIncludeInEmail: `${baseUrlToIncludeInEmail}${confirmEmail}` }),\r\n\r\n\tupdateUser: (userId: string, body: UpdateUserRequest): Promise =>\r\n\t\trequests.put(`/users/${userId}`, body),\r\n\r\n\tdeleteUser: (userId: string): Promise => requests.delete(`/users/${userId}`),\r\n\r\n\tsetUserPassword: (userId: string, body: SetUserPasswordRequest): Promise =>\r\n\t\trequests.post(`/users/${userId}/set-password`, body),\r\n};\r\n","import { requests } from '../../agent/agent';\r\nimport { GetLogsFilesResponse } from './responses';\r\n\r\nexport const LogsApi = {\r\n\tgetLogsFiles: (): Promise => requests.get(`/logs`),\r\n\r\n\tgetLogsFileContent: (logName: string): Promise => requests.get(`/logs/${logName}`),\r\n\r\n\tdownloadLogsFile: (logName: string): Promise =>\r\n\t\trequests.download(`/logs/download/${logName}`, `${logName}.txt`),\r\n\r\n\tdownloadAllLogsFiles: (zipName: string): Promise => requests.download(`/logs/download/all`, `${zipName}.zip`),\r\n};\r\n","import appConfig from 'app.config';\r\nimport { requests } from '../../agent/agent';\r\nimport { LoginRequest, RegisterRequest } from './requests';\r\nimport { LoginResponse, RegisterResponse, RefreshTokenResponse } from './responses';\r\n\r\nconst { baseUrlToIncludeInEmail, confirmEmail } = appConfig.urls.frontend;\r\n\r\nexport const AuthApi = {\r\n\tlogin: (body: LoginRequest): Promise =>\r\n\t\trequests.fetch(`auth/login`, {\r\n\t\t\tbody: JSON.stringify(body),\r\n\t\t\tmethod: 'post',\r\n\t\t\tcredentials: 'include',\r\n\t\t}),\r\n\r\n\tlogout: (): Promise => requests.post(`/auth/logout`, {}),\r\n\r\n\tregister: (body: RegisterRequest): Promise =>\r\n\t\trequests.post(`/auth/register`, { ...body, urlToIncludeInEmail: `${baseUrlToIncludeInEmail}${confirmEmail}` }),\r\n\r\n\trefreshToken: (): Promise => {\r\n\t\treturn requests.fetch('auth/refresh-token', {\r\n\t\t\tmethod: 'get',\r\n\t\t\tcredentials: 'include',\r\n\t\t});\r\n\t},\r\n};\r\n","import i18n from 'i18next';\r\nimport { initReactI18next } from 'react-i18next';\r\nimport Backend from 'i18next-http-backend';\r\nimport LanguageDetector from 'i18next-browser-languagedetector';\r\n\r\nexport const languages = ['en', 'pl'];\r\nexport const fullLanguages = [\r\n\t{ key: 'en', value: 'English' },\r\n\t{ key: 'pl', value: 'Polski' },\r\n];\r\n\r\ni18n.use(Backend)\r\n\t.use(LanguageDetector)\r\n\t.use(initReactI18next) // passes i18n down to react-i18next\r\n\t.init({\r\n\t\tlng: 'pl',\r\n\t\tfallbackLng: false,\r\n\t\twhitelist: languages,\r\n\r\n\t\tns: ['page', 'common', 'form', 'detailedErrors', 'models'],\r\n\t\tdefaultNS: 'page',\r\n\t\tnsSeparator: ':',\r\n\r\n\t\tdebug: true,\r\n\t\tdetection: {\r\n\t\t\torder: ['queryString', 'cookie'],\r\n\t\t\tcache: ['cookie'],\r\n\t\t},\r\n\r\n\t\tinterpolation: {\r\n\t\t\tescapeValue: false, // react already safes from xss\r\n\t\t},\r\n\t});\r\n\r\nexport default i18n;\r\n","import { createBrowserHistory } from 'history';\r\n\r\nexport default createBrowserHistory();\r\n","import { AxiosError } from 'axios';\r\nimport { notification } from 'antd';\r\nimport { DetailedError } from './interfaces/detailedError';\r\nimport i18n, { languages } from '../../../../i18n';\r\nimport { publicUrls } from 'app.config';\r\nimport agent from '../agent';\r\nimport axios from 'axios';\r\nimport history from '../../../../app.history';\r\nimport { refreshTokenSuccess } from 'App/globalState/auth/auth.global.slice';\r\nimport store from 'App/globalState/store';\r\nimport { getDataByCurrentLanguage } from 'App/common/translations/getDataByCurrentLanguage';\r\nimport { tryParseJSONObject } from 'App/common/utils/tryParseJSON.utils';\r\n\r\nlet isRefreshing = false;\r\nlet failedQueue = [];\r\n\r\nconst processQueue = (error, token = null) => {\r\n\tfailedQueue.forEach((prom) => {\r\n\t\tif (error) {\r\n\t\t\tprom.reject(error);\r\n\t\t} else {\r\n\t\t\tprom.resolve(token);\r\n\t\t}\r\n\t});\r\n\r\n\tfailedQueue = [];\r\n};\r\n\r\nexport const errorHandler = (error: AxiosError) => {\r\n\tconst { status } = error.response || {};\r\n\r\n\tswitch (status) {\r\n\t\tcase 400:\r\n\t\t\thandleBadRequest(error);\r\n\t\t\treturn Promise.reject(error);\r\n\t\tcase 401:\r\n\t\t\treturn handleUnauthorized(error);\r\n\t\tcase 403:\r\n\t\t\thandleForbidden(error);\r\n\t\t\treturn Promise.reject(error);\r\n\t\tcase 404:\r\n\t\t\thandleNotFound(error);\r\n\t\t\treturn Promise.reject(error);\r\n\t\tcase 500:\r\n\t\t\thandleInternalServerError(error);\r\n\t\t\treturn Promise.reject(error);\r\n\t\tdefault:\r\n\t\t\treturn Promise.reject(error);\r\n\t}\r\n};\r\n\r\nfunction handleBadRequest(error: AxiosError) {\r\n\tlet { data } = error.response || {};\r\n\r\n\tif (error.response.data instanceof Blob) {\r\n\t\tconst blob = new Blob([error.response.data]);\r\n\t\tblob.text().then((dataFromBlob) => (data = JSON.parse(dataFromBlob)));\r\n\t}\r\n\r\n\t// mamy 2 typy 400-tek (teoretycznie)\r\n\t// zwykła 400 - zawiera obiekt errors, który zawiera obiekty detailedErrors oraz commonErrors\r\n\t// foramularzowa - nie zawiera obiektu errors ani detailedErrors ani commonErrors,\r\n\t// ale zawiera słownik o nazwach kluczy takich, jak pole jest nazwane, czyli np. mając w formularzu\r\n\t// inputy dla pól roles oraz firstName, to dostaniemy słowniki o kluczu roles oraz firstName, a dla nich mamy jako valuesy\r\n\t// już podaną arrayke detailedErrorów\r\n\r\n\tif (data.errors) {\r\n\t\tlet detailedErrorExists = false;\r\n\t\tlet commonErrorExists = false;\r\n\r\n\t\t// 400-tka zwykła(nieformularzowa)\r\n\t\tlet mainErrorObject = data.errors;\r\n\t\tif (mainErrorObject.detailedErrors) {\r\n\t\t\tdetailedErrorExists = true;\r\n\r\n\t\t\tlet detailedErrors = mainErrorObject.detailedErrors as DetailedError[];\r\n\t\t\tdetailedErrors.forEach((detailedError) => {\r\n\t\t\t\tconst { errorCode, errorParameters } = detailedError;\r\n\r\n\t\t\t\tconst errorCodeWithDot = errorCode.replace('-', '.');\r\n\t\t\t\tconst translationKey = `detailedErrors:${errorCodeWithDot}.DescriptionFormatter`;\r\n\r\n\t\t\t\tlet args = errorParameters;\r\n\r\n\t\t\t\tif (args) {\r\n\t\t\t\t\t//W przypadku gdy jakiś argument to JSON z językami\r\n\t\t\t\t\targs = args.map((arg: string) => {\r\n\t\t\t\t\t\tconst parsedJsonObject = tryParseJSONObject(arg);\r\n\r\n\t\t\t\t\t\tif (parsedJsonObject) {\r\n\t\t\t\t\t\t\tif (languages.some((x) => x in parsedJsonObject)) {\r\n\t\t\t\t\t\t\t\treturn getDataByCurrentLanguage(arg);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\treturn arg;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\tnotification['error']({\r\n\t\t\t\t\tmessage: i18n.t('common:Errors.Error'),\r\n\t\t\t\t\tdescription: i18n.t(translationKey, { args }),\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (mainErrorObject.commonErrors) {\r\n\t\t\tcommonErrorExists = true;\r\n\r\n\t\t\tconsole.log(mainErrorObject.commonErrors);\r\n\t\t\tif (!mainErrorObject.detailedErrors)\r\n\t\t\t\tnotification['error']({\r\n\t\t\t\t\tmessage: i18n.t('common:Errors.Error'),\r\n\t\t\t\t\tdescription: i18n.t('common:Errors.AnErrorOccured'),\r\n\t\t\t\t});\r\n\t\t}\r\n\r\n\t\t//Tutaj czasami dostaniemy errors[] które nie ma commonErrors i/lub detailedErrors bo są to błędy wynikające z wyjątków (typu DbUpdateConcurrencyException)\r\n\t\tif (Array.isArray(mainErrorObject) && !commonErrorExists && !detailedErrorExists) {\r\n\t\t\tnotification['error']({\r\n\t\t\t\tmessage: i18n.t('common:Errors.Error'),\r\n\t\t\t\tdescription: i18n.t('common:Errors.AnErrorOccured'),\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (typeof mainErrorObject === 'string') {\r\n\t\t\tnotification['error']({\r\n\t\t\t\tmessage: i18n.t('common:Errors.Error'),\r\n\t\t\t\tdescription: mainErrorObject,\r\n\t\t\t});\r\n\t\t}\r\n\t} else if (data.detailedErrors) {\r\n\t\t// 400-tka formularzowa\r\n\t\tObject.keys(data.detailedErrors).forEach((key) => {\r\n\t\t\tlet detailedErrorsForCurrentKey = data.detailedErrors[key] as DetailedError[];\r\n\t\t\tdetailedErrorsForCurrentKey.forEach((detailedError) => {\r\n\t\t\t\tconst { errorCode, errorParameters } = detailedError;\r\n\r\n\t\t\t\tconst errorCodeWithDot = errorCode.replace('-', '.');\r\n\t\t\t\tconst translationKey = `detailedErrors:${errorCodeWithDot}.DescriptionFormatter`;\r\n\r\n\t\t\t\tconst args = errorParameters;\r\n\r\n\t\t\t\tnotification['error']({\r\n\t\t\t\t\tmessage: i18n.t('common:Errors.Error'),\r\n\t\t\t\t\tdescription: i18n.t(translationKey, { args }),\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t} else {\r\n\t\tnotification['error']({\r\n\t\t\tmessage: i18n.t('common:Errors.Error'),\r\n\t\t\tdescription: i18n.t('common:Errors.AnErrorOccured'),\r\n\t\t});\r\n\t}\r\n}\r\n\r\nfunction handleInternalServerError(error: AxiosError) {\r\n\tnotification['error']({\r\n\t\tmessage: i18n.t('common:Errors.Error'),\r\n\t\tdescription: i18n.t('common:Errors.ServerSideError'),\r\n\t});\r\n\tconsole.log(`500: ${error.response.data}`);\r\n\r\n\thistory.push('/500');\r\n}\r\n\r\nfunction handleUnauthorized(error: AxiosError) {\r\n\tconst castedError = error as any;\r\n\r\n\tif (castedError.config._retry || castedError.config._queued) {\r\n\t\treturn Promise.reject(error);\r\n\t}\r\n\r\n\tconst originalRequest = error.config as any;\r\n\tif (isRefreshing) {\r\n\t\treturn new Promise(function (resolve, reject) {\r\n\t\t\tfailedQueue.push({ resolve, reject });\r\n\t\t})\r\n\t\t\t.then((accessToken) => {\r\n\t\t\t\toriginalRequest._queued = true;\r\n\t\t\t\toriginalRequest.headers['Authorization'] = 'Bearer ' + accessToken;\r\n\t\t\t\treturn axios.request(originalRequest);\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\treturn Promise.reject(error); // Ignore refresh token request's \"err\" and return actual \"error\" for the original request\r\n\t\t\t});\r\n\t}\r\n\r\n\toriginalRequest._retry = true;\r\n\tisRefreshing = true;\r\n\r\n\treturn new Promise((resolve, reject) => {\r\n\t\tagent.Auth.refreshToken()\r\n\t\t\t.then((response) => {\r\n\t\t\t\tstore.dispatch(refreshTokenSuccess(response));\r\n\t\t\t\toriginalRequest.headers['Authorization'] = 'Bearer ' + response.accessToken;\r\n\t\t\t\tprocessQueue(null, response.accessToken);\r\n\t\t\t\tresolve(axios.request(originalRequest));\r\n\t\t\t})\r\n\t\t\t.catch((err) => {\r\n\t\t\t\tprocessQueue(err, null);\r\n\t\t\t\treject(err);\r\n\r\n\t\t\t\tlet browserUrl = history.location.pathname;\r\n\r\n\t\t\t\t// jeśli wysypał się request do refresh tokena, to sprawdź czy dostęp do tego urla powinien w ogóle być wymagany dopiero po uwierzytelnieniu\r\n\t\t\t\tif (shouldRedirectToSignIn(browserUrl)) {\r\n\t\t\t\t\t// jeśli tak, to przekieruj do logowania tak, aby potem po zalogowaniu wrócił na ten url\r\n\t\t\t\t\tlocalStorage.setItem('returnUrl', browserUrl);\r\n\t\t\t\t\thistory.push('/sign-in');\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.finally(() => {\r\n\t\t\t\tisRefreshing = false;\r\n\t\t\t});\r\n\t});\r\n}\r\n\r\nconst shouldRedirectToSignIn = (browserUrl: string): boolean => {\r\n\treturn !publicUrls.some((url) => {\r\n\t\t// jeśli ten adres posiada wildcarda (np. /orders/12345) to chcemy sprawdzić, czy ten adres (z usuniętym wildcardem) jest includowany\r\n\t\tif (url.includes('*')) {\r\n\t\t\tconst urlWithoutWildcard = url.replace('*', '');\r\n\t\t\treturn browserUrl.includes(urlWithoutWildcard);\r\n\t\t} else {\r\n\t\t\t// w przeciwnym razie sprawdzamy na zasadzie równości, czyli czy adres A = B, nie czy się zawiera\r\n\t\t\treturn browserUrl === url;\r\n\t\t}\r\n\t});\r\n};\r\n\r\nfunction handleForbidden(error: AxiosError) {\r\n\tconsole.log('403: ' + error.response);\r\n\tnotification['error']({\r\n\t\tmessage: i18n.t('common:Errors.Error'),\r\n\t\tdescription: i18n.t('common:Errors.DontHaveAccess'),\r\n\t});\r\n\r\n\thistory.push('/403');\r\n}\r\n\r\nfunction handleNotFound(error: AxiosError) {\r\n\tconst { data } = error.response || {};\r\n\r\n\tif (data.errors) {\r\n\t\t// 404 z kodem błędu\r\n\t\tlet mainErrorObject = data.errors;\r\n\t\tif (mainErrorObject.detailedErrors) {\r\n\t\t\tlet detailedErrors = mainErrorObject.detailedErrors as DetailedError[];\r\n\t\t\tdetailedErrors.forEach((detailedError) => {\r\n\t\t\t\tconst { errorCode, errorParameters } = detailedError;\r\n\r\n\t\t\t\tconst errorCodeWithDot = errorCode.replace('-', '.');\r\n\t\t\t\tconst translationKey = `detailedErrors:${errorCodeWithDot}.DescriptionFormatter`;\r\n\r\n\t\t\t\tconst args = errorParameters;\r\n\r\n\t\t\t\tnotification['error']({\r\n\t\t\t\t\tmessage: i18n.t('common:Errors.Error'),\r\n\t\t\t\t\tdescription: i18n.t(translationKey, { args }),\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif (mainErrorObject.commonErrors) {\r\n\t\t\tconsole.log(mainErrorObject.commonErrors);\r\n\t\t}\r\n\t} else {\r\n\t\tnotification['error']({\r\n\t\t\tmessage: i18n.t('common:Errors.Error'),\r\n\t\t\tdescription: i18n.t('common:Errors.NoResourceWasFound'),\r\n\t\t});\r\n\t}\r\n\tconsole.log('404: ' + error);\r\n}\r\n","import store from 'App/globalState/store';\r\nimport axios from 'axios';\r\nimport { errorHandler } from '../errorHandling/errorHandler';\r\n\r\nexport const baseURL = process.env.REACT_APP_BACKEND_URL;\r\naxios.defaults.baseURL = baseURL;\r\n\r\naxios.interceptors.request.use(\r\n\t(config) => {\r\n\t\t// token interceptor goes here\r\n\t\tconst token = store.getState().global?.auth?.tokens?.accessToken;\r\n\t\tif (token) config.headers.Authorization = `Bearer ${token}`;\r\n\t\treturn config;\r\n\t},\r\n\t(error) => {\r\n\t\treturn Promise.reject(error);\r\n\t}\r\n);\r\n\r\naxios.interceptors.response.use(null, errorHandler);\r\naxios.defaults.withCredentials = true;\r\n","import i18next from 'i18next';\r\n\r\nexport const getDataByCurrentLanguage = (json: string) => {\r\n\tconst getLanguage = () => i18next.language || window.localStorage.i18nextLng;\r\n\r\n\tconst parsedJson = JSON.parse(json);\r\n\tconst translatedData = parsedJson[getLanguage()];\r\n\r\n\treturn translatedData;\r\n};\r\n","export const tryParseJSONObject = (jsonString: string) => {\r\n\ttry {\r\n\t\tvar o = JSON.parse(jsonString);\r\n\t\tif (o && typeof o === 'object') {\r\n\t\t\treturn o;\r\n\t\t}\r\n\t} catch (e) {}\r\n\r\n\treturn false;\r\n};\r\n","import { requests } from '../../agent/agent';\r\nimport { HttpStatusCodeResponse } from 'App/types/httpResponse.d';\r\n\r\nimport appConfig from 'app.config';\r\nimport { CreateMessageRequest, GetMessagesRequest, UpdateMessageRequest } from './requests';\r\nimport { GetMessageResponse, CreateMessageResponse, UpdateMessageResponse, GetMessagesResponse, GetCurrentMessagesResponse } from './responses';\r\n\r\nconst { baseUrlToIncludeInEmail, confirmEmail } = appConfig.urls.frontend;\r\n\r\nexport const MaintenanceMessagesApi = {\r\n getMessages: (body: GetMessagesRequest): Promise => requests.get(`/maintenance/messages`, body),\r\n\r\n getMessage: (messageId: number): Promise => requests.get(`/maintenance/messages/${messageId}`),\r\n\r\n getCurrentMessages: (): Promise => requests.get(`/maintenance/messages/current`),\r\n\r\n createMessage: (body: CreateMessageRequest): Promise =>\r\n requests.post(`/maintenance/messages`, { ...body, urlToIncludeInEmail: `${baseUrlToIncludeInEmail}${confirmEmail}` }),\r\n\r\n updateMessage: (messageId: number, body: UpdateMessageRequest): Promise =>\r\n requests.put(`/maintenance/messages/${messageId}`, body),\r\n\r\n deleteMessage: (messageId: number): Promise => requests.delete(`/maintenance/messages/${messageId}`)\r\n};\r\n","import { HttpStatusCodeResponse } from 'App/types/httpResponse';\r\nimport { requests } from '../../agent/agent';\r\n\r\nimport { CreateCourseRequest, GetCoursesRequest, UpdateCourseRequest } from './requests';\r\nimport {\r\n\tGetCoursesCatalogForStudentResponse,\r\n\tGetAllCoursesResponse,\r\n\tGetCourseResponse,\r\n\tGetCoursesResponse,\r\n} from './responses';\r\n\r\nexport const CoursesApi = {\r\n\tgetCourses: (body: GetCoursesRequest): Promise => requests.post(`/courses/search`, body),\r\n\tgetCourse: (courseId: string): Promise => requests.get(`/courses/${courseId}`),\r\n\tcreateCourse: (body: CreateCourseRequest): Promise => requests.post(`/courses`, body),\r\n\tupdateCourse: (courseId: string, body: UpdateCourseRequest): Promise =>\r\n\t\trequests.put(`/courses/${courseId}`, body),\r\n\tdeleteCourse: (courseId: string): Promise => requests.delete(`/courses/${courseId}`),\r\n\tgetAllCourses: (): Promise => requests.get(`/courses/all`),\r\n\tgetCoursesCatalogForStudent: (): Promise => requests.get(`/courses/catalog`),\r\n};\r\n","import { requests } from '../../agent/agent';\r\nimport { CreateWalletTransactionRequest } from './requests';\r\nimport { CreateWalletTransactionResponse, GetWalletTransactionsResponse } from './responses';\r\n\r\nexport const WalletsApi = {\r\n\tgetWalletTransactions: (): Promise => requests.get(`/wallets`),\r\n\tgetWalletBalance: (): Promise => requests.get(`/wallets/balance`),\r\n\tcreateWalletTransaction: (body: CreateWalletTransactionRequest): Promise =>\r\n\t\trequests.post(`/wallets`, body),\r\n};\r\n","import { HttpStatusCodeResponse } from 'App/types/httpResponse';\r\nimport { requests } from '../../agent/agent';\r\n\r\nimport { CreateLessonTopicRequest, GetLessonTopicsRequest, UpdateLessonTopicRequest } from './requests';\r\nimport { GetAllLessonTopicsResponse, GetLessonTopicsResponse } from './responses';\r\n\r\nexport const LessonTopicsApi = {\r\n\tgetLessonTopics: (body: GetLessonTopicsRequest): Promise =>\r\n\t\trequests.post(`/lesson-topics/search`, body),\r\n\tcreateLessonTopic: (body: CreateLessonTopicRequest): Promise =>\r\n\t\trequests.post(`/lesson-topics`, body),\r\n\tupdateLessonTopic: (lessonTopicId: number, body: UpdateLessonTopicRequest): Promise =>\r\n\t\trequests.put(`/lesson-topics/${lessonTopicId}`, body),\r\n\tdeleteLessonTopic: (lessonTopicId: number): Promise =>\r\n\t\trequests.delete(`/lesson-topics/${lessonTopicId}`),\r\n\tgetAllLessonTopics: (): Promise => requests.get(`/lesson-topics/all`),\r\n};\r\n","import { HttpStatusCodeResponse } from 'App/types/httpResponse';\r\nimport { requests } from '../../agent/agent';\r\n\r\nimport { CreateGroupRequest, GetGroupsRequest, UpdateGroupRequest } from './requests';\r\nimport { UpdateGroupStudentsRequest } from './requests/updateGroupStudentsRequest';\r\nimport { GetGroupResponse, GetGroupsResponse, GetTeacherGroupResponse } from './responses';\r\n\r\nexport const GroupsApi = {\r\n\tgetGroups: (body: GetGroupsRequest): Promise => requests.post(`/groups/search`, body),\r\n\tgetGroup: (groupId: string): Promise => requests.get(`/groups/${groupId}`),\r\n\tgetTeacherGroup: (groupId: string): Promise => requests.get(`/groups/teacher/${groupId}`),\r\n\tcreateGroup: (body: CreateGroupRequest): Promise => requests.post(`/groups`, body),\r\n\tupdateGroup: (groupId: string, body: UpdateGroupRequest): Promise =>\r\n\t\trequests.put(`/groups/${groupId}`, body),\r\n\tdeleteGroup: (groupId: string): Promise => requests.delete(`/groups/${groupId}`),\r\n\tactivateGroup: (groupId: string): Promise =>\r\n\t\trequests.post(`/groups/${groupId}/activate`, {}),\r\n\tupdateGroupStudents: (groupId: string, body: UpdateGroupStudentsRequest): Promise =>\r\n\t\trequests.put(`/groups/${groupId}/students`, body),\r\n};\r\n","import { requests } from '../../agent/agent';\r\nimport { GetAllTeachersResponse } from './responses';\r\n\r\nexport const TeachersApi = {\r\n\tgetAllTeachers: (): Promise => requests.get(`/teachers/all`),\r\n};\r\n","import { HttpStatusCodeResponse } from 'App/types/httpResponse';\r\nimport { requests } from '../../agent/agent';\r\nimport { UpdateAllowedAlgorithmsForStudentRequest } from './requests';\r\nimport { GetAllStudentsForGroupResponse, GetMyAllowedAlgorithmsResponse, GetMyStudentsResponse } from './responses';\r\n\r\nexport const StudentsApi = {\r\n\tgetAllStudentsForGroup: (groupId: string): Promise =>\r\n\t\trequests.get(`/students/groups/${groupId}/all`),\r\n\tchangeWalletVisibility: (studentId: string): Promise =>\r\n\t\trequests.post(`/students/${studentId}/wallet-visibility`, {}),\r\n\tgetMyStudents: (): Promise => requests.get('/students/my'),\r\n\tupdateAllowedAlgorithmsForStudent: (\r\n\t\tstudentId: string,\r\n\t\tbody: UpdateAllowedAlgorithmsForStudentRequest\r\n\t): Promise => requests.put(`/students/${studentId}/allowed-algorithms`, body),\r\n\tgetMyAllowedAlgorithms: (): Promise =>\r\n\t\trequests.get('/students/my-allowed-algorithms'),\r\n};\r\n","import { HttpStatusCodeResponse } from 'App/types/httpResponse';\r\nimport { requests } from '../../agent/agent';\r\nimport {\r\n\tChangeLessonStatusRequest,\r\n\tChangePresenceStatusRequest,\r\n\tChangeReplacementTeacherRequest,\r\n\tChangeStudentLessonPointsRequest,\r\n\tCreateLessonRequest,\r\n\tUpdateLessonRequest,\r\n} from './requests';\r\nimport { GetLessonResponse, GetTeacherLessonResponse, GetTeacherLessonsFromMonthResponse } from './responses';\r\n\r\nexport const LessonsApi = {\r\n\tcreateLesson: (body: CreateLessonRequest): Promise => requests.post(`/lessons`, body),\r\n\tupdateLesson: (lessonId: string, body: UpdateLessonRequest): Promise =>\r\n\t\trequests.put(`/lessons/${lessonId}`, body),\r\n\tdeleteLesson: (lessonId: string): Promise => requests.delete(`/lessons/${lessonId}`),\r\n\tchangeLessonStatus: (lessonId: string, body: ChangeLessonStatusRequest): Promise =>\r\n\t\trequests.post(`/lessons/${lessonId}/status`, body),\r\n\tgetTeacherLessonsFromMonth: (month: number, year: number): Promise =>\r\n\t\trequests.get(`/lessons/teacher`, { month, year }),\r\n\tgetTeacherLesson: (lessonId: string): Promise =>\r\n\t\trequests.get(`/lessons/teacher/${lessonId}`),\r\n\tgetLesson: (lessonId: string): Promise => requests.get(`/lessons/${lessonId}`),\r\n\tchangePresenceStatus: (body: ChangePresenceStatusRequest): Promise =>\r\n\t\trequests.post(`/lessons/presence`, body),\r\n\tchangeStudentLessonPoints: (body: ChangeStudentLessonPointsRequest): Promise =>\r\n\t\trequests.post(`/lessons/points`, body),\r\n\tchangeLessonTopic: (lessonId: string, body: ChangeLessonTopicRequest): Promise =>\r\n\t\trequests.post(`/lessons/${lessonId}/lesson-topic`, body),\r\n\tchangeReplacementTeacher: (\r\n\t\tlessonId: string,\r\n\t\tbody: ChangeReplacementTeacherRequest\r\n\t): Promise => requests.post(`/lessons/${lessonId}/replacement-teacher`, body),\r\n};\r\n","import { requests } from 'App/api/agent/agent';\r\nimport { HttpStatusCodeResponse } from 'App/types/httpResponse';\r\nimport { CreateGameRequest } from './requests';\r\nimport { GetGamesResponse } from './responses';\r\n\r\nexport const GamesApi = {\r\n\tgetGames: (): Promise => requests.get('/games'),\r\n\tcreateGame: (body: CreateGameRequest): Promise => requests.post('/games', body),\r\n\tdeleteGame: (gameId: number): Promise => requests.delete(`/games/${gameId}`),\r\n};\r\n","import { requests } from 'App/api/agent/agent';\r\nimport { HttpStatusCodeResponse } from 'App/types/httpResponse';\r\nimport { CreateHomeworkInGroupRequest } from './requests';\r\nimport { GetMyHomeworksResponse, SolveExerciseResponse } from './responses';\r\n\r\nexport const HomeworksApi = {\r\n\tcreateHomeworkInGroup: (groupId: string, body: CreateHomeworkInGroupRequest): Promise =>\r\n\t\trequests.post(`/homeworks/group/${groupId}`, body),\r\n\tdeleteHomework: (homeworkId: number): Promise =>\r\n\t\trequests.post(`/homeworks/${homeworkId}/archive`, {}),\r\n\tgetMyHomeworks: (): Promise => requests.get('/homeworks/my'),\r\n\tsolveExercise: (exerciseId: number): Promise =>\r\n\t\trequests.post(`/homeworks/exercises/${exerciseId}/solve`, {}),\r\n};\r\n","import axios, { AxiosResponse, AxiosRequestConfig } from 'axios';\r\n\r\nimport { AccountApi } from '../endpoints/account/accountApi';\r\nimport { UsersApi } from '../endpoints/users/usersApi';\r\nimport { LogsApi } from '../endpoints/logs/logsApi';\r\nimport { AuthApi } from '../endpoints/auth/authApi';\r\nimport { baseURL } from './axios/configuration';\r\nimport { MaintenanceMessagesApi } from '../endpoints/maintenanceMessages/maintenanceMessagesApi';\r\nimport { CoursesApi } from '../endpoints/courses/coursesApi';\r\nimport { WalletsApi } from '../endpoints/wallets/walletsApi';\r\nimport { LessonTopicsApi } from '../endpoints/lessonTopic/lessonTopicsApi';\r\nimport { GroupsApi } from '../endpoints/groups/groupsApi';\r\nimport { TeachersApi } from '../endpoints/teachers/teachersApi';\r\nimport { StudentsApi } from '../endpoints/students/studentsApi';\r\nimport { LessonsApi } from '../endpoints/lessons/lessonsApi';\r\nimport { GamesApi } from '../endpoints/games/gamesApi';\r\nimport { HomeworksApi } from '../endpoints/homeworks/homeworksApi';\r\n\r\nconst responseBodyAxios = (response: AxiosResponse) => {\r\n\treturn response.data;\r\n};\r\n\r\nconst responseBodyFetch = (response: Response) => response.json();\r\n\r\nconst defaultHeaders = {\r\n\tAccept: 'application/json, text/plain, */*',\r\n\t'Content-Type': 'application/json;charset=utf-8',\r\n};\r\n\r\nexport const requests = {\r\n\tget: (url: string, params?: {}) =>\r\n\t\taxios\r\n\t\t\t.get(url, {\r\n\t\t\t\tparams,\r\n\t\t\t})\r\n\t\t\t.then(responseBodyAxios),\r\n\tpost: (url: string, body: {}, config?: AxiosRequestConfig | undefined) =>\r\n\t\taxios.post(url, body, config).then(responseBodyAxios),\r\n\tput: (url: string, body: {}, config?: AxiosRequestConfig | undefined) =>\r\n\t\taxios.put(url, body, config).then(responseBodyAxios),\r\n\tdelete: (url: string) => axios.delete(url).then(responseBodyAxios),\r\n\tfetch: (url: string, config?: RequestInit) =>\r\n\t\tfetch(`${baseURL}${url}`, { ...config, headers: config.headers || defaultHeaders }).then((response) => {\r\n\t\t\tif (response && response.status !== 200) throw response;\r\n\t\t\treturn responseBodyFetch(response);\r\n\t\t}),\r\n\tdownload: (url: string, fileName: string) =>\r\n\t\taxios({\r\n\t\t\turl: url,\r\n\t\t\tmethod: 'GET',\r\n\t\t\tresponseType: 'blob',\r\n\t\t}).then((response) => {\r\n\t\t\tconst url = window.URL.createObjectURL(new Blob([response.data]));\r\n\t\t\tconst link = document.createElement('a');\r\n\t\t\tlink.href = url;\r\n\t\t\tlink.setAttribute('download', fileName);\r\n\t\t\tdocument.body.appendChild(link);\r\n\t\t\tlink.click();\r\n\t\t\tdocument.body.removeChild(link);\r\n\t\t}),\r\n};\r\n\r\nconst agent = {\r\n\tAccount: AccountApi,\r\n\tAuth: AuthApi,\r\n\tLogs: LogsApi,\r\n\tUsers: UsersApi,\r\n\tMaintenanceMessages: MaintenanceMessagesApi,\r\n\tCourses: CoursesApi,\r\n\tWallets: WalletsApi,\r\n\tLessonTopics: LessonTopicsApi,\r\n\tGroups: GroupsApi,\r\n\tTeachers: TeachersApi,\r\n\tStudents: StudentsApi,\r\n\tLessons: LessonsApi,\r\n\tGames: GamesApi,\r\n\tHomeworks: HomeworksApi,\r\n};\r\n\r\nexport default agent;\r\n","import agent from 'App/api/agent/agent';\r\nimport { AppThunk } from '../store';\r\nimport { getWalletBalanceStart, getWalletBalanceSuccess, getWalletBalanceFailure } from './wallet.global.slice';\r\n\r\nexport const getWalletBalance = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getWalletBalanceStart());\r\n\tagent.Wallets.getWalletBalance()\r\n\t\t.then((response) => dispatch(getWalletBalanceSuccess(response)))\r\n\t\t.catch(() => dispatch(getWalletBalanceFailure()));\r\n};\r\n","import agent from 'App/api/agent/agent';\r\nimport { GetAccountDetailsResponse } from 'App/api/endpoints/account/responses';\r\nimport Role from 'App/types/role';\r\nimport { AppThunk } from '../store';\r\nimport { getWalletBalance } from '../wallet/wallet.global.thunk';\r\nimport {\r\n\tclearAccountStart,\r\n\tgetAccountDetailsFailure,\r\n\tgetAccountDetailsStart,\r\n\tgetAccountDetailsSuccess,\r\n} from './account.global.slice';\r\n\r\nexport const getAccountDetails =\r\n\t(onSuccess?: () => void, onFailure?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getAccountDetailsStart());\r\n\t\tagent.Account.getAccountDetails()\r\n\t\t\t.then((accountDetailsResponse: GetAccountDetailsResponse) => {\r\n\t\t\t\tdispatch(getAccountDetailsSuccess(accountDetailsResponse));\r\n\r\n\t\t\t\tif (accountDetailsResponse.roles.some((role) => role === Role.Student)) {\r\n\t\t\t\t\tdispatch(getWalletBalance());\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => {\r\n\t\t\t\tdispatch(getAccountDetailsFailure());\r\n\t\t\t\tif (onFailure) onFailure();\r\n\t\t\t});\r\n\t};\r\n\r\nexport const clearAccountDetails = (): AppThunk => async (dispatch) => {\r\n\tdispatch(clearAccountStart());\r\n};\r\n","import { CheckOutlined, ExclamationOutlined } from '@ant-design/icons';\r\nimport { Button, Col, notification, Row } from 'antd';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React, { useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { Typography } from 'antd';\r\n\r\nimport './styles/ConfirmEmailContainer.less';\r\nimport { Link } from 'react-router-dom';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { cleanUpAccountStatusStart } from '../../state/account.slice';\r\nimport { confirmEmail } from '../../state/account.thunk';\r\nimport LoadingScreen from 'App/components/common/loadingScreen/LoadingScreen';\r\n\r\nconst { Title } = Typography;\r\ninterface RouteParams {\r\n\tuserId: string;\r\n\tconfirmationCode: string;\r\n}\r\n\r\ninterface ConfirmEmailContainerProps extends RouteComponentProps {}\r\n\r\nconst ConfirmEmailContainer = ({ match }: ConfirmEmailContainerProps) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst status = useSelector((state: RootState) => state.pages.account.status.confirmEmail);\r\n\tconst { t } = useTranslation('page');\r\n\r\n\tuseEffect(() => {\r\n\t\tif (status === StatusType.Initial) {\r\n\t\t\tlet handleSuccess: () => void = () => {\r\n\t\t\t\tnotification.success({\r\n\t\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\t\tdescription: t('AccountPages.ConfirmSuccess'),\r\n\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\tconst { userId, confirmationCode } = match.params;\r\n\t\t\tdispatch(confirmEmail({ userId, confirmationCode }, handleSuccess));\r\n\t\t}\r\n\t\treturn () => {\r\n\t\t\tcleanUpAccountStatusStart();\r\n\t\t};\r\n\t});\r\n\r\n\treturn status === StatusType.Loading || status === StatusType.Initial ? (\r\n\t\t\r\n\t) : (\r\n\t\t<>\r\n\t\t\t{status === StatusType.Success && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('AccountPages.EmailConfirmed')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{status === StatusType.Failed && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('AccountPages.ConfirmError')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ConfirmEmailContainer;\r\n","import agent from 'App/api/agent/agent';\r\nimport {\r\n\tChangePasswordRequest,\r\n\tConfirmEmailRequest,\r\n\tForgotPasswordRequest,\r\n\tResendConfirmationEmailRequest,\r\n\tResetPasswordRequest,\r\n\tUpdateAccountDetailsRequest,\r\n} from 'App/api/endpoints/account/requests';\r\nimport { getAccountDetails } from 'App/globalState/account/account.global.thunk';\r\nimport { AppThunk } from 'App/globalState/store';\r\nimport {\r\n\tchangePasswordFailure,\r\n\tchangePasswordStart,\r\n\tchangePasswordSuccess,\r\n\tconfirmEmailFailure,\r\n\tconfirmEmailStart,\r\n\tconfirmEmailSuccess,\r\n\tdeleteAccountFailure,\r\n\tdeleteAccountStart,\r\n\tdeleteAccountSuccess,\r\n\tforgotPasswordFailure,\r\n\tforgotPasswordStart,\r\n\tforgotPasswordSuccess,\r\n\tgetIncomingInstallmentsFailure,\r\n\tgetIncomingInstallmentsStart,\r\n\tgetIncomingInstallmentsSuccess,\r\n\tgetWalletTransactionsFailure,\r\n\tgetWalletTransactionsStart,\r\n\tgetWalletTransactionsSuccess,\r\n\tresendConfirmationEmailFailure,\r\n\tresendConfirmationEmailStart,\r\n\tresendConfirmationEmailSuccess,\r\n\tresetPasswordFailure,\r\n\tresetPasswordStart,\r\n\tresetPasswordSuccess,\r\n\tupdateAccountDetailsFailure,\r\n\tupdateAccountDetailsStart,\r\n\tupdateAccountDetailsSuccess,\r\n} from './account.slice';\r\n\r\nexport const confirmEmail =\r\n\t(request: ConfirmEmailRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(confirmEmailStart());\r\n\t\tagent.Account.confirmEmail(request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(confirmEmailSuccess());\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(confirmEmailFailure()));\r\n\t};\r\n\r\nexport const forgotPassword =\r\n\t(request: ForgotPasswordRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(forgotPasswordStart());\r\n\t\tagent.Account.forgotPassword(request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(forgotPasswordSuccess());\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(forgotPasswordFailure()));\r\n\t};\r\n\r\nexport const updateAccountDetails =\r\n\t(request: UpdateAccountDetailsRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(updateAccountDetailsStart());\r\n\t\tagent.Account.updateAccountDetails(request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(updateAccountDetailsSuccess());\r\n\t\t\t\tdispatch(getAccountDetails());\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(updateAccountDetailsFailure()));\r\n\t};\r\n\r\nexport const resetPassword =\r\n\t(request: ResetPasswordRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(resetPasswordStart());\r\n\t\tagent.Account.resetPassword(request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(resetPasswordSuccess());\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(resetPasswordFailure()));\r\n\t};\r\n\r\nexport const deleteAccount =\r\n\t(request: UpdateAccountDetailsRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(deleteAccountStart());\r\n\t\tagent.Account.updateAccountDetails(request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(deleteAccountSuccess());\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(deleteAccountFailure()));\r\n\t};\r\n\r\nexport const resendConfirmationEmail =\r\n\t(request: ResendConfirmationEmailRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(resendConfirmationEmailStart());\r\n\t\tagent.Account.resendConfirmationEmail(request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(resendConfirmationEmailSuccess());\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(resendConfirmationEmailFailure()));\r\n\t};\r\n\r\nexport const changePassword =\r\n\t(request: ChangePasswordRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(changePasswordStart());\r\n\t\tagent.Account.changePassword(request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t\tdispatch(changePasswordSuccess());\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(changePasswordFailure()));\r\n\t};\r\n\r\nexport const getWalletTransactions = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getWalletTransactionsStart());\r\n\tagent.Wallets.getWalletTransactions()\r\n\t\t.then((response) => dispatch(getWalletTransactionsSuccess(response)))\r\n\t\t.catch(() => dispatch(getWalletTransactionsFailure()));\r\n};\r\n\r\nexport const getIncomingInstallments = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getIncomingInstallmentsStart());\r\n\tagent.Account.getIncomingInstallments()\r\n\t\t.then((response) => dispatch(getIncomingInstallmentsSuccess(response)))\r\n\t\t.catch(() => dispatch(getIncomingInstallmentsFailure()));\r\n};\r\n","import { AppThunk } from '../store';\r\nimport {\r\n\tloginStart,\r\n\tloginSuccess,\r\n\tloginFailure,\r\n\tlogoutStart,\r\n\tcleanUpAuthStatusStart,\r\n\tregisterFailure,\r\n\tregisterStart,\r\n\tregisterSuccess,\r\n\trefreshTokenStart,\r\n\trefreshTokenSuccess,\r\n\trefreshTokenFailure,\r\n\tloginFinish,\r\n} from './auth.global.slice';\r\nimport { LoginRequest, RegisterRequest } from 'App/api/endpoints/auth/requests';\r\nimport agent from 'App/api/agent/agent';\r\nimport { LoginResponse, RefreshTokenResponse } from 'App/api/endpoints/auth/responses';\r\nimport { clearAccountDetails, getAccountDetails } from '../account/account.global.thunk';\r\n\r\nexport const login =\r\n\t(payload: LoginRequest, onSuccess?: () => void, onFailure?: (detailedErrorCode: string) => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(loginStart());\r\n\t\tagent.Auth.login(payload)\r\n\t\t\t.then((response: LoginResponse) => {\r\n\t\t\t\tdispatch(loginSuccess(response));\r\n\t\t\t\tdispatch(getAccountDetails(() => dispatch(loginFinish())));\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t})\r\n\t\t\t.catch((e) => {\r\n\t\t\t\tif (e && e.json) {\r\n\t\t\t\t\te?.json()?.then((e) => {\r\n\t\t\t\t\t\tconst errorCode = e?.errors?.detailedErrors[0]?.errorCode?.replace('-', '.');\r\n\t\t\t\t\t\tif (onFailure) onFailure(errorCode);\r\n\t\t\t\t\t\tdispatch(loginFailure());\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t};\r\n\r\nexport const logout =\r\n\t(onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(logoutStart());\r\n\t\tagent.Auth.logout();\r\n\t\tlocalStorage.removeItem('returnUrl');\r\n\t\tdispatch(clearAccountDetails());\r\n\t\tif (onSuccess) onSuccess();\r\n\t};\r\n\r\nexport const register =\r\n\t(payload: RegisterRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(registerStart());\r\n\t\tagent.Auth.register(payload)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(registerSuccess());\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(registerFailure()));\r\n\t};\r\n\r\nexport const refreshToken =\r\n\t(onSuccess?: Function, onFailure?: Function): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(refreshTokenStart());\r\n\t\tagent.Auth.refreshToken()\r\n\t\t\t.then((response: RefreshTokenResponse) => {\r\n\t\t\t\tdispatch(refreshTokenSuccess(response));\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => {\r\n\t\t\t\tdispatch(refreshTokenFailure());\r\n\t\t\t\tif (onFailure) onFailure();\r\n\t\t\t});\r\n\t};\r\n\r\nexport const cleanUpAuthStatus = (): AppThunk => async (dispatch) => {\r\n\tdispatch(cleanUpAuthStatusStart());\r\n};\r\n","import { courseFormRules } from './models/course.rules';\r\nimport { customContactDataForStudentFormRules } from './models/customContactDataForStudent.rules';\r\nimport { gameFormRules } from './models/game.rules';\r\nimport { groupFormRules } from './models/group.rules';\r\nimport { homeworkFormRules } from './models/homework.rules';\r\nimport { lessonFormRules } from './models/lesson.rules';\r\nimport { lessonTopicFormRules } from './models/lessonTopic.rules';\r\nimport { maintenanceMessageFormRules } from './models/maintenanceMessage.rules';\r\nimport { userFormRules } from './models/user.rules';\r\nimport { walletTransactionFormRules } from './models/walletTransaction.rules';\r\nimport { gameSettingsFormRules } from './others/gameSettings.rules';\r\n\r\nexport const formRules = {\r\n\tuser: userFormRules,\r\n\tmaintenanceMessages: maintenanceMessageFormRules,\r\n\tcustomContactDataForStudent: customContactDataForStudentFormRules,\r\n\tcourse: courseFormRules,\r\n\tlessonTopic: lessonTopicFormRules,\r\n\twalletTransaction: walletTransactionFormRules,\r\n\tgroup: groupFormRules,\r\n\tlesson: lessonFormRules,\r\n\tgame: gameFormRules,\r\n\thomework: homeworkFormRules,\r\n\tothers: {\r\n\t\tgameSettings: gameSettingsFormRules,\r\n\t},\r\n};\r\n","import { Rule } from 'antd/lib/form';\r\nimport i18n from 'i18n';\r\n\r\nexport const userFormRules = {\r\n\tfirstName: (): Rule[] => [{ required: true, max: 255 }],\r\n\tlastName: (): Rule[] => [{ required: true, max: 255 }],\r\n\troles: (): Rule[] => [{ required: true, type: 'array', max: 1 }],\r\n\tisDeleted: (): Rule[] => [{ required: true }],\r\n\temail: (): Rule[] => [{ required: true, type: 'email', max: 255 }],\r\n\tbirthDate: (): Rule[] => [{ required: true }],\r\n\temailLanguage: (): Rule[] => [{ required: true }],\r\n\tlockoutEnd: (): Rule[] => [\r\n\t\t{ type: 'date' },\r\n\t\t({ getFieldValue }) => ({\r\n\t\t\tvalidator(rule, value) {\r\n\t\t\t\tif (!getFieldValue('lockoutEnabled')) {\r\n\t\t\t\t\treturn Promise.resolve();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (value) {\r\n\t\t\t\t\treturn Promise.resolve();\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn Promise.reject(\r\n\t\t\t\t\ti18n\r\n\t\t\t\t\t\t.t('form:ValidationMessages.Required')\r\n\t\t\t\t\t\t// eslint-disable-next-line no-template-curly-in-string\r\n\t\t\t\t\t\t.replace('${arg}', i18n.t('models:User.Labels.LockoutEnd'))\r\n\t\t\t\t);\r\n\t\t\t},\r\n\t\t}),\r\n\t],\r\n\tlockoutEnabled: (): Rule[] => [{ required: true }],\r\n\temailConfirmed: (): Rule[] => [{ required: true }],\r\n\tphoneConfirmed: (): Rule[] => [{ required: true }],\r\n\tphoneNumber: (): Rule[] => [\r\n\t\t{\r\n\t\t\tpattern: RegExp(\r\n\t\t\t\t'^(\\\\+\\\\s?)?((? [{ required: true }],\r\n\tpassword: (): Rule[] => [\r\n\t\t{\r\n\t\t\tpattern: RegExp('\\\\d'),\r\n\t\t\tmessage: i18n.t('form:ValidationMessages.Custom.MustContainNumber', {\r\n\t\t\t\targ: i18n.t('models:User.Labels.Password'),\r\n\t\t\t}),\r\n\t\t},\r\n\t\t{\r\n\t\t\tpattern: RegExp('[*@!#%&()^~{}]+'),\r\n\t\t\tmessage: i18n.t('form:ValidationMessages.Custom.MustContainSpecial', {\r\n\t\t\t\targ: i18n.t('models:User.Labels.Password'),\r\n\t\t\t}),\r\n\t\t},\r\n\t\t{\r\n\t\t\tpattern: RegExp('(?=.*[a-z])'),\r\n\t\t\tmessage: i18n.t('form:ValidationMessages.Custom.MustContainLowercase', {\r\n\t\t\t\targ: i18n.t('models:User.Labels.Password'),\r\n\t\t\t}),\r\n\t\t},\r\n\t\t{\r\n\t\t\tpattern: RegExp('(?=.*[A-Z])'),\r\n\t\t\tmessage: i18n.t('form:ValidationMessages.Custom.MustContainUppercase', {\r\n\t\t\t\targ: i18n.t('models:User.Labels.Password'),\r\n\t\t\t}),\r\n\t\t},\r\n\t\t{\r\n\t\t\tmin: 6,\r\n\t\t},\r\n\t\t{\r\n\t\t\trequired: true,\r\n\t\t\tmax: 100,\r\n\t\t},\r\n\t],\r\n\tconfirmPassword: (fieldToCompare: 'password' | 'newPassword'): Rule[] => [\r\n\t\t{\r\n\t\t\trequired: true,\r\n\t\t},\r\n\t\t({ getFieldValue }) => ({\r\n\t\t\tvalidator(rule, value) {\r\n\t\t\t\tif (!value || getFieldValue(fieldToCompare) === value) {\r\n\t\t\t\t\treturn Promise.resolve();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tconst arg = [i18n.t(`models:User.Labels.Password`), i18n.t('models:User.Labels.ConfirmPassword')];\r\n\t\t\t\treturn Promise.reject(i18n.t('form:ValidationMessages.Custom.PasswordMismatch', { arg }));\r\n\t\t\t},\r\n\t\t}),\r\n\t],\r\n};\r\n","import { Rule } from 'antd/lib/form';\r\n\r\nexport const maintenanceMessageFormRules = {\r\n\tstartDate: (): Rule[] => [{ required: true }],\r\n\tendDate: (): Rule[] => [{ required: true }],\r\n\tdescription: (): Rule[] => [{ required: true, max: 511 }],\r\n};\r\n","import { Rule } from 'antd/lib/form';\r\nimport i18n from 'i18n';\r\n\r\nexport const customContactDataForStudentFormRules = {\r\n\tcontactPersonFirstName: (required: boolean): Rule[] => [{ required: required, max: 255 }],\r\n\tcontactPersonLastName: (required: boolean): Rule[] => [{ required: required, max: 255 }],\r\n\tcontactPersonEmail: (required: boolean): Rule[] => [{ required: required, type: 'email', max: 255 }],\r\n\tcontactPersonPhone: (required: boolean): Rule[] => [\r\n\t\t{\r\n\t\t\tpattern: RegExp(\r\n\t\t\t\t'^(\\\\+\\\\s?)?((? [{ required: true, max: 255 }],\r\n\tcostGrossPerLessonInPln: (): Rule[] => [{ required: true, type: 'number', max: 2000, min: 0 }],\r\n\tdefaultNumberOfLessonsInCourse: (): Rule[] => [{ required: true, type: 'number', max: 100, min: 1 }],\r\n\tisDeleted: (): Rule[] => [{ required: true }],\r\n};\r\n","import { Rule } from 'antd/lib/form';\r\n\r\nexport const lessonTopicFormRules = {\r\n\tname: (): Rule[] => [{ required: true, max: 255 }],\r\n};\r\n","import { Rule } from 'antd/lib/form';\r\n\r\nexport const walletTransactionFormRules = {\r\n\ttransactionValue: (): Rule[] => [{ required: true, type: 'number', max: 3000, min: -3000 }],\r\n\tdescription: (): Rule[] => [{ required: true, max: 255 }],\r\n};\r\n","import { Rule } from 'antd/lib/form';\r\n\r\nexport const groupFormRules = {\r\n\tname: (): Rule[] => [{ required: true, max: 255 }],\r\n\tmaxParticipants: (): Rule[] => [{ required: true, max: 100, min: 1, type: 'number' }],\r\n\taddress: (): Rule[] => [{ required: false, max: 255 }],\r\n\tclassroom: (): Rule[] => [{ required: false, max: 255 }],\r\n\tdayOfLessons: (): Rule[] => [{ required: true }],\r\n\tlessonTime: (): Rule[] => [{ required: true }],\r\n\tgroupStartingDateTime: (): Rule[] => [{ required: true }],\r\n\tcourse: (): Rule[] => [{ required: true }],\r\n\tteacher: (): Rule[] => [{ required: true }],\r\n\tnumberOfLessons: (): Rule[] => [{ required: true, min: 1, max: 100, type: 'number' }],\r\n\tsurchargeForInstallments: (): Rule[] => [{ required: true, min: 0, max: 100000, type: 'number' }],\r\n\tnumberOfInstallments: (): Rule[] => [{ required: true, min: 1, max: 1000, type: 'number' }],\r\n\tcostGrossPerLessonInPln: (): Rule[] => [{ required: true, type: 'number', max: 2000 }],\r\n};\r\n","import { Rule } from 'antd/lib/form';\r\n\r\nexport const lessonFormRules = {\r\n\tlessonTime: (): Rule[] => [{ required: true }],\r\n\tlessonDate: (): Rule[] => [{ required: true }],\r\n\tdescription: (): Rule[] => [{ max: 4095 }],\r\n\taddress: (): Rule[] => [{ max: 255 }],\r\n\tclassroom: (): Rule[] => [{ max: 255 }],\r\n\tcostGrossInPln: (): Rule[] => [{ required: true, type: 'number', max: 2000 }],\r\n\tlessonTopic: (): Rule[] => [{ required: false }],\r\n\tlessonStatus: (): Rule[] => [{ required: true }],\r\n};\r\n","import { Rule } from 'antd/lib/form';\r\n\r\nexport const gameFormRules = {\r\n\tname: (): Rule[] => [{ required: true, max: 255 }],\r\n\trequiredRepetitions: (): Rule[] => [{ required: true, min: 1, max: 100, type: 'number' }],\r\n\trequiredMinimalMaxSteps: (): Rule[] => [{ required: true, min: 2, max: 100, type: 'number' }],\r\n\trequiredMinimalGeneratorSpeedInSeconds: (): Rule[] => [{ required: true, min: 0.1, max: 100, type: 'number' }],\r\n\trequiredMinimalLevel: (): Rule[] => [{ required: true }],\r\n\trequiredMinimalComplexity: (): Rule[] => [{ required: true }],\r\n\trequiredTurbo: (): Rule[] => [{ required: true }],\r\n\trequiredDoublePower: (): Rule[] => [{ required: true }],\r\n\trequiredCombinations: (): Rule[] => [{ required: true }],\r\n};\r\n","import { Rule } from 'antd/lib/form';\r\n\r\nexport const homeworkFormRules = {\r\n\tmaxRepetitionsPerDay: (): Rule[] => [{ required: true, min: 1, max: 1000, type: 'number' }],\r\n\trequiredRepetitions: (): Rule[] => [{ required: true, min: 1, max: 1000, type: 'number' }],\r\n\tavailableUntilUtc: (): Rule[] => [{ required: true, type: 'date' }],\r\n\tstudentIds: (): Rule[] => [{ required: true, type: 'array' }],\r\n\tgameAlgorithm: (): Rule[] => [{ required: true }],\r\n};\r\n","import { Rule } from 'antd/lib/form';\r\n\r\nexport const gameSettingsFormRules = {\r\n\tmaxSteps: (): Rule[] => [{ required: true, min: 2, max: 100, type: 'number' }],\r\n\tturbo: (): Rule[] => [{ required: true }],\r\n\tcombinations: (): Rule[] => [{ required: true }],\r\n\tgeneratorSpeedInSeconds: (): Rule[] => [{ required: true, min: 0.1, max: 100, type: 'number' }],\r\n\tlevel: (): Rule[] => [{ required: true }],\r\n\tcomplexity: (): Rule[] => [{ required: true }],\r\n\tgameAlgorithm: (): Rule[] => [{ required: true }],\r\n};\r\n","import { Form, Input, Button } from 'antd';\r\nimport { ChangePasswordRequest } from 'App/api/endpoints/account/requests';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ninterface ChangePasswordFormProps {\r\n\tonFinish: (values: ChangePasswordRequest) => void;\r\n\tloading: boolean;\r\n}\r\n\r\nconst ChangePasswordForm = ({ onFinish, loading }: ChangePasswordFormProps) => {\r\n\tconst { t } = useTranslation(['page', 'form', 'common', 'models']);\r\n\tconst { password, confirmPassword } = formRules.user;\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ChangePasswordForm;\r\n","import { Modal } from 'antd';\r\nimport { ChangePasswordRequest } from 'App/api/endpoints/account/requests';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport ChangePasswordForm from '../../forms/changePasswordForm/ChangePasswordForm';\r\n\r\ninterface ChangePasswordModalProps {\r\n\tshowModal: boolean;\r\n\tonCancel: () => void;\r\n\tonSave: (values: ChangePasswordRequest) => void;\r\n\tloading: boolean;\r\n}\r\n\r\nconst ChangePasswordModal = ({ showModal, onCancel, onSave, loading }: ChangePasswordModalProps) => {\r\n\tconst { t } = useTranslation(['page', 'common']);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ChangePasswordModal;\r\n","import { Input, Button, Form, DatePicker, Divider } from 'antd';\r\nimport { FormProps } from 'antd/lib/form';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ninterface EditProfileFormProps extends FormProps {\r\n\tloading: boolean;\r\n\tisStudent: boolean;\r\n}\r\n\r\nconst EditProfileForm = (props: EditProfileFormProps) => {\r\n\tconst { t } = useTranslation(['form', 'common']);\r\n\tconst { isStudent, loading, ...rest } = props;\r\n\tconst { firstName, lastName, phoneNumber, birthDate } = formRules.user;\r\n\tconst { contactPersonEmail, contactPersonFirstName, contactPersonLastName, contactPersonPhone } =\r\n\t\tformRules.customContactDataForStudent;\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t{isStudent && (\r\n\t\t\t\t<>\r\n\t\t\t\t\tDane osoby do kontaktu\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default EditProfileForm;\r\n","import { ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport { Button, Col, Divider, notification, PageHeader, Popconfirm, Result, Row } from 'antd';\r\nimport { ChangePasswordRequest } from 'App/api/endpoints/account/requests';\r\nimport { UpdateAccountDetailsRequest } from 'App/api/endpoints/account/requests/updateAccountDetailsRequest';\r\nimport LoadingScreen from 'App/components/common/loadingScreen/LoadingScreen';\r\nimport { getAccountDetails } from 'App/globalState/account/account.global.thunk';\r\nimport { logout } from 'App/globalState/auth/auth.global.thunk';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport Role from 'App/types/role';\r\nimport moment from 'moment';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { updateAccountDetails, deleteAccount, changePassword } from '../../state/account.thunk';\r\nimport ChangePasswordModal from '../changePassword/modals/changePasswordModal/ChangePasswordModal';\r\nimport EditProfileForm from './forms/EditProfileForm';\r\nimport './styles/EditProfileContainer.less';\r\n\r\nconst { Loading } = StatusType;\r\n\r\nconst EditProfileContainer = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst { t } = useTranslation(['page', 'common']);\r\n\tconst history = useHistory();\r\n\r\n\tconst accountDetails = useSelector((state: RootState) => state.global.account.accountDetails);\r\n\tconst updateAccountStatus = useSelector((state: RootState) => state.pages.account.status.updateAccountDetails);\r\n\tconst getAccountDetailsStatus = useSelector((state: RootState) => state.global.account.status.getAccountDetails);\r\n\tconst deleteAccountStatus = useSelector((state: RootState) => state.pages.account.status.deleteAccount);\r\n\tconst changePasswordStatus = useSelector((state: RootState) => state.pages.account.status.changePassword);\r\n\r\n\tconst [changePasswordModalVisiblity, setChangePasswordModalVisiblity] = useState(false);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!accountDetails) dispatch(getAccountDetails());\r\n\t}, [dispatch, accountDetails]);\r\n\r\n\tconst onFinish = (values: UpdateAccountDetailsRequest) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\tdescription: t('AccountPages.UpdateAccountDetailsSuccess'),\r\n\t\t\t});\r\n\t\t};\r\n\t\tdispatch(updateAccountDetails(values, onSuccess));\r\n\t};\r\n\r\n\tconst handleDeleteAccount = () => {\r\n\t\tconst onDeleteAccountSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\tdescription: t('AccountPages.DeleteAccountSuccess'),\r\n\t\t\t});\r\n\r\n\t\t\tlet onLogoutSuccess = () => {\r\n\t\t\t\thistory.push('/');\r\n\t\t\t};\r\n\r\n\t\t\tdispatch(logout(onLogoutSuccess));\r\n\t\t};\r\n\t\tdispatch(\r\n\t\t\tdeleteAccount(\r\n\t\t\t\t{ ...(accountDetails as UpdateAccountDetailsRequest), isDeleted: true },\r\n\t\t\t\tonDeleteAccountSuccess\r\n\t\t\t)\r\n\t\t);\r\n\t};\r\n\r\n\tconst handleChangePassword = () => {\r\n\t\tsetChangePasswordModalVisiblity(true);\r\n\t};\r\n\r\n\tconst handleChangePasswordModalCancel = () => {\r\n\t\tsetChangePasswordModalVisiblity(false);\r\n\t};\r\n\r\n\tconst handleChangePasswordModalSave = (values: ChangePasswordRequest) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\tdescription: t('AccountPages.SuccessChangePasswordDescription'),\r\n\t\t\t});\r\n\r\n\t\t\tsetChangePasswordModalVisiblity(false);\r\n\t\t};\r\n\t\tdispatch(changePassword(values, onSuccess));\r\n\t};\r\n\r\n\tif (accountDetails) {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t handleChangePasswordModalCancel()}\r\n\t\t\t\t\tonSave={(values: ChangePasswordRequest) => handleChangePasswordModalSave(values)}\r\n\t\t\t\t\tshowModal={changePasswordModalVisiblity}\r\n\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t r === Role.Student)}\r\n\t\t\t\t\t\t\t\t\tname='editProfileForm'\r\n\t\t\t\t\t\t\t\t\tsize='middle'\r\n\t\t\t\t\t\t\t\t\tonFinish={onFinish}\r\n\t\t\t\t\t\t\t\t\tinitialValues={{\r\n\t\t\t\t\t\t\t\t\t\t...accountDetails,\r\n\t\t\t\t\t\t\t\t\t\tbirthDate: accountDetails?.birthDate ? moment(accountDetails.birthDate) : '',\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t\tloading={updateAccountStatus === Loading}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\tonConfirm={handleDeleteAccount}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t} else {\r\n\t\tif (getAccountDetailsStatus === Loading) {\r\n\t\t\treturn ;\r\n\t\t} else {\r\n\t\t\treturn (\r\n\t\t\t\t history.push('/')}>\r\n\t\t\t\t\t\t\t{t('common:Actions.BackToHome')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\t\t}\r\n\t}\r\n};\r\n\r\nexport default EditProfileContainer;\r\n","import React from 'react';\r\nimport { Form, Input, Button } from 'antd';\r\nimport { UserOutlined } from '@ant-design/icons';\r\nimport { FormProps } from 'antd/lib/form/Form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport i18n from 'i18n';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\n\r\ninterface LoginFormProps extends FormProps {\r\n\tloading: boolean;\r\n}\r\n\r\nconst ForgotPasswordForm = (props: LoginFormProps) => {\r\n\tconst { t } = useTranslation(['page', 'form', 'common']);\r\n\tconst { loading, ...rest } = props;\r\n\tconst { email } = formRules.user;\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\tplaceholder={t('models:User.Placeholders.Email')}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default ForgotPasswordForm;\r\n","import { Col, notification, PageHeader, Row } from 'antd';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React, { useEffect } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { Store } from 'antd/lib/form/interface';\r\nimport { ForgotPasswordRequest } from 'App/api/endpoints/account/requests';\r\nimport ForgotPasswordForm from './forms/ForgotPasswordForm';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { cleanUpAccountStatusStart } from '../../state/account.slice';\r\nimport { forgotPassword } from '../../state/account.thunk';\r\n\r\ninterface ForgotPasswordContainerProps extends RouteComponentProps {}\r\n\r\nconst ForgotPasswordContainer = ({ history }: ForgotPasswordContainerProps) => {\r\n\ttype FinishFormType = (values: Store) => void;\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst forgotPasswordStatus = useSelector((state: RootState) => state.pages.account.status.forgotPassword);\r\n\tconst { t } = useTranslation('page');\r\n\r\n\tuseEffect(() => {\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpAccountStatusStart());\r\n\t\t};\r\n\t}, [dispatch]);\r\n\r\n\tconst forgotPasswordHandler: FinishFormType = (values: ForgotPasswordRequest) => {\r\n\t\tlet handleSuccess: () => void = () => {\r\n\t\t\thistory.push('/');\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\tdescription: t('AccountPages.ForgotPasswordEmailSuccess'),\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tdispatch(forgotPassword(values, handleSuccess));\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default ForgotPasswordContainer;\r\n","import React from 'react';\r\nimport { Form, Input, Button } from 'antd';\r\nimport { FormProps } from 'antd/lib/form/Form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { UserOutlined } from '@ant-design/icons';\r\nimport i18n from 'i18n';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\n\r\ninterface ResendConfirmationEmailProps extends FormProps {\r\n\tloading: boolean;\r\n}\r\n\r\nconst ResendConfirmationEmailForm = (props: ResendConfirmationEmailProps) => {\r\n\tconst { t } = useTranslation(['form', 'common']);\r\n\tconst { loading, ...rest } = props;\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\tplaceholder={t('models:User.Placeholders.Email')}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ResendConfirmationEmailForm;\r\n","import { Col, notification, PageHeader, Row } from 'antd';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { Store } from 'antd/lib/form/interface';\r\nimport { ResendConfirmationEmailRequest } from 'App/api/endpoints/account/requests';\r\nimport ResendConfirmationEmailForm from './forms/ResendConfirmationEmailForm';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { resendConfirmationEmail } from '../../state/account.thunk';\r\n\r\ninterface ResendConfirmationEmailContainerProps extends RouteComponentProps {}\r\n\r\nconst ResendConfirmationEmailContainer = ({ history }: ResendConfirmationEmailContainerProps) => {\r\n\ttype FinishFormType = (values: Store) => void;\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst resendConfirmationEmailStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.account.status.resendConfirmationEmail\r\n\t);\r\n\tconst { t } = useTranslation('page');\r\n\r\n\tconst resendConfirmationEmailHandler: FinishFormType = (values: ResendConfirmationEmailRequest) => {\r\n\t\tlet handleSuccess: () => void = () => {\r\n\t\t\thistory.push('/sign-in');\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\tdescription: t('AccountPages.EmailWasResent'),\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tdispatch(resendConfirmationEmail(values, handleSuccess));\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default ResendConfirmationEmailContainer;\r\n","import React from 'react';\r\nimport { Form, Input, Button } from 'antd';\r\nimport { FormProps } from 'antd/lib/form/Form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\n\r\ninterface ResetPasswordFormProps extends FormProps {\r\n\tloading: boolean;\r\n}\r\n\r\nconst ResetPasswordForm = (props: ResetPasswordFormProps) => {\r\n\tconst { t } = useTranslation(['page', 'common']);\r\n\tconst { loading, ...rest } = props;\r\n\tconst { password, confirmPassword } = formRules.user;\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ResetPasswordForm;\r\n","import { Col, notification, PageHeader, Row } from 'antd';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { Store } from 'antd/lib/form/interface';\r\nimport { ResetPasswordRequest } from 'App/api/endpoints/account/requests';\r\nimport ResetPasswordForm from './forms/ResetPasswordForm';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { resetPassword } from '../../state/account.thunk';\r\n\r\ninterface RouteParams {\r\n\tuserId: string;\r\n\tpasswordResetCode: string;\r\n}\r\n\r\ninterface ResetPasswordContainerProps extends RouteComponentProps {}\r\n\r\nconst ResetPasswordContainer = ({ history, match }: ResetPasswordContainerProps) => {\r\n\ttype FinishFormType = (values: Store) => void;\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst status = useSelector((state: RootState) => state.pages.account.status.resetPassword);\r\n\tconst { t } = useTranslation('page');\r\n\r\n\tconst resetPasswordHandler: FinishFormType = (values: ResetPasswordRequest) => {\r\n\t\tlet handleSuccess: () => void = () => {\r\n\t\t\thistory.push('/sign-in');\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\tdescription: t('AccountPages.ResetPasswordSuccess'),\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tconst { userId, passwordResetCode } = match.params;\r\n\r\n\t\tvalues.passwordResetCode = passwordResetCode;\r\n\t\tvalues.userId = userId;\r\n\r\n\t\tdispatch(resetPassword(values, handleSuccess));\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default ResetPasswordContainer;\r\n","import moment, { Moment } from 'moment';\r\n\r\nexport const dateTimeUtils = {\r\n\tformats: {\r\n\t\tYearMonthDay: 'YYYY-MM-DD',\r\n\t\tYearMonthDayHourMinute: 'YYYY-MM-DD HH:mm',\r\n\t\tYearMonthDayHourMinuteSecond: 'YYYY-MM-DD HH:mm:ss',\r\n\t\tHourMinute: 'HH:mm',\r\n\t\tHourMinuteSecond: 'HH:mm:ss',\r\n\t},\r\n\r\n\tgetLocalDateTimeString: (date: string): string => {\r\n\t\tif (date[date?.length - 1] !== 'Z') date += 'Z';\r\n\r\n\t\treturn moment(new Date(date)).local().format(dateTimeUtils.formats.YearMonthDayHourMinuteSecond);\r\n\t},\r\n\r\n\tgetLocalDateString: (date: string): string => {\r\n\t\tif (date[date?.length - 1] !== 'Z') date += 'Z';\r\n\r\n\t\treturn moment(new Date(date)).local().format(dateTimeUtils.formats.YearMonthDay);\r\n\t},\r\n\r\n\tgetLocalTimeString: (date: string): string => {\r\n\t\tif (date[date?.length - 1] !== 'Z') date += 'Z';\r\n\r\n\t\treturn moment(new Date(date)).local().format(dateTimeUtils.formats.HourMinute);\r\n\t},\r\n\r\n\tgetLocalTimeStringFromTimeBasedOnDate: (time: string, date: string): string => {\r\n\t\tlet dateTime = moment(new Date(date)).format(dateTimeUtils.formats.YearMonthDay);\r\n\t\tdateTime = dateTime + ' ' + time + 'Z';\r\n\r\n\t\treturn moment(new Date(dateTime)).local().format(dateTimeUtils.formats.HourMinute);\r\n\t},\r\n\r\n\tgetLocalDateTimeFromDateTimeOffsetString: (date: string): string => {\r\n\t\treturn moment(new Date(date)).local().format(dateTimeUtils.formats.YearMonthDayHourMinuteSecond);\r\n\t},\r\n\r\n\tgetLocalDateTime: (date: string): Moment => {\r\n\t\tif (date[date?.length - 1] !== 'Z') date += 'Z';\r\n\t\treturn moment(new Date(date)).local();\r\n\t},\r\n\r\n\tgetCurrentDayMonthAndYear: (): [number, number, number] => {\r\n\t\tconst currentDate = moment.utc().format(dateTimeUtils.formats.YearMonthDay);\r\n\t\tconst [day, month, year] = currentDate.split('-').map((x) => Number(x));\r\n\t\treturn [year, month, day];\r\n\t},\r\n\r\n\tgetDayMonthAndYear: (date: moment.Moment): [number, number, number] => {\r\n\t\tconst formattedDate = date.format(dateTimeUtils.formats.YearMonthDay);\r\n\t\tconst [day, month, year] = formattedDate.split('-').map((x) => Number(x));\r\n\t\treturn [year, month, day];\r\n\t},\r\n};\r\n","import { Table, Typography } from 'antd';\r\nimport Column from 'antd/lib/table/Column';\r\nimport { UserForCreateWalletTransactionResponse } from 'App/api/endpoints/wallets/responses';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport React from 'react';\r\n\r\nconst WalletTransactionsTable = ({ loading, walletTransactions }) => {\r\n\tconst { getLocalDateTimeString } = dateTimeUtils;\r\n\r\n\tconst renderTransactionValue = (transactionValue: number) => {\r\n\t\tif (transactionValue > 0)\r\n\t\t\treturn {`+${transactionValue.toFixed(2)} zł`};\r\n\t\tif (transactionValue < 0)\r\n\t\t\treturn {`${transactionValue.toFixed(2)} zł`};\r\n\r\n\t\treturn {`${transactionValue.toFixed(2)} zł`};\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t <>{`${balanceAfterTransaction.toFixed(2)} zł`}}\r\n\t\t\t/>\r\n\t\t\t <>{`${balanceBeforeTransaction.toFixed(2)} zł`}}\r\n\t\t\t/>\r\n\t\t\t renderTransactionValue(transactionValue)}\r\n\t\t\t/>\r\n\t\t\t <>{getLocalDateTimeString(createdAtUtc)}}\r\n\t\t\t/>\r\n\t\t\t <>{`${user.email}`}}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default WalletTransactionsTable;\r\n","import { PlusOutlined } from '@ant-design/icons';\r\nimport { Row, Col, Alert, Button, Typography } from 'antd';\r\nimport { WalletTransactionForGetUserResponse } from 'App/api/endpoints/users/responses/getUserResponse';\r\nimport { WalletTransactionForGetWalletTransactionResponse } from 'App/api/endpoints/wallets/responses';\r\nimport React from 'react';\r\nimport WalletTransactionsTable from './WalletTransactionsTable/WalletTransactionsTable';\r\n\r\ninterface WalletTransactionsProps {\r\n\tloading: boolean;\r\n\twalletTransactions?: WalletTransactionForGetUserResponse[] | WalletTransactionForGetWalletTransactionResponse[];\r\n\tstudentWalletBalance?: number;\r\n\tstudentView?: boolean;\r\n\tadminView?: boolean;\r\n\tshowWalletTransactionFormModal?: () => void;\r\n}\r\n\r\nconst WalletTransactions = ({\r\n\tadminView,\r\n\tstudentView,\r\n\tstudentWalletBalance,\r\n\twalletTransactions,\r\n\tloading,\r\n\tshowWalletTransactionFormModal,\r\n}: WalletTransactionsProps) => {\r\n\tconst anyTransactions = walletTransactions?.length > 0;\r\n\tconst walletBalance = anyTransactions ? walletTransactions[0].balanceAfterTransaction.toFixed(2) : '0.00';\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{adminView && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{studentView && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tAby zasilić konto należy wysłać przelew na numer konta:
\r\n\t\t\t\t\t\t\t\tXXXX XXXX XXXX XXXX XXXX XXXX\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
O treści:\r\n\t\t\t\t\t\t\t\t
\"\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tEDUrado - Zasilenie konta - Imię Nazwisko Email\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\"\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t(np. \"EDUrado - Zasilenie Konta - Jan Kowalski jankowalski@gmail.com\")\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tKonto zostanie zasilone w ciągu 24 godzin od daty zaksięgowania przelewu.\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\ttype='info'\r\n\t\t\t\t\t\tshowIcon\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tSaldo portfela: \r\n\t\t\t\t\t{`${studentView ? studentWalletBalance : walletBalance} zł`}\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t{adminView && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tHistoria transakcji: \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{anyTransactions ? (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\tBrak transakcji na tym portfelu\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default WalletTransactions;\r\n","import { Col, Row, Table, Typography } from 'antd';\r\nimport Column from 'antd/lib/table/Column';\r\nimport {\r\n\tGroupForGetIncomingInstallmentsResponse,\r\n\tInstallmentForGetIncomingInstallmentsResponse,\r\n} from 'App/api/endpoints/account/responses';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\n\r\nexport interface IncomingInstallmentsProps {\r\n\tinstallments: InstallmentForGetIncomingInstallmentsResponse[];\r\n}\r\n\r\nconst IncomingInstallments = ({ installments }: IncomingInstallmentsProps) => {\r\n\tconst renderDateToPay = (date: string): JSX.Element => {\r\n\t\tif (!date) return -;\r\n\r\n\t\tconst localDate = dateTimeUtils.getLocalDateString(date);\r\n\r\n\t\tif (moment(date) < moment.utc())\r\n\t\t\treturn {`${localDate} (Zaległa)`};\r\n\r\n\t\treturn {`${localDate}`};\r\n\t};\r\n\r\n\tif (!installments || installments?.length === 0)\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tBrak nadchodzących rat\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t <>{`${amount.toFixed(2)} zł`}}\r\n\t\t\t/>\r\n\r\n\t\t\t <>{group.name}}\r\n\t\t\t/>\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default IncomingInstallments;\r\n","import { Row, Col, Result, Button, Typography } from 'antd';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { cleanUpAccountStatusStart } from '../../state/account.slice';\r\nimport { getIncomingInstallments } from '../../state/account.thunk';\r\nimport { getWalletBalance } from 'App/globalState/wallet/wallet.global.thunk';\r\nimport LoadingScreen from 'App/components/common/loadingScreen/LoadingScreen';\r\nimport WalletTransactions from 'App/components/walletTransactions/WalletTransactions';\r\nimport IncomingInstallments from './components/IncomingInstallments';\r\n\r\nconst { Loading, Success } = StatusType;\r\n\r\nconst WalletContainer = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst history = useHistory();\r\n\r\n\tconst walletBalance = useSelector((state: RootState) => state.global.wallet.balance);\r\n\tconst walletBalanceStatus = useSelector((state: RootState) => state.global.wallet.status.getWalletBalance);\r\n\r\n\tconst incomingInstallments = useSelector((state: RootState) => state.pages.account.incomingInstallments);\r\n\tconst incomingInstallmentsStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.account.status.getIncomingInstallments\r\n\t);\r\n\r\n\tconst loading = walletBalanceStatus === Loading || incomingInstallmentsStatus === Loading;\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(getWalletBalance());\r\n\t\tdispatch(getIncomingInstallments());\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpAccountStatusStart());\r\n\t\t};\r\n\t}, [dispatch]);\r\n\r\n\tif (loading) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t} else if (walletBalanceStatus === Success && incomingInstallmentsStatus === Success) {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tPortfel\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tNadchodzące raty\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t} else {\r\n\t\treturn (\r\n\t\t\t history.push('/')}>\r\n\t\t\t\t\t\tStrona główna\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport default WalletContainer;\r\n","import React from 'react';\r\nimport { Route } from 'react-router-dom';\r\n\r\nimport ProtectedRoute from 'App/components/routing/protectedRoute/ProtectedRoute';\r\n\r\nimport Role from 'App/types/role';\r\nimport ConfirmEmailContainer from './views/confirmEmail/ConfirmEmailContainer';\r\nimport EditProfileContainer from './views/editProfile/EditProfileContainer';\r\nimport ForgotPasswordContainer from './views/forgotPassword/ForgotPasswordContainer';\r\nimport ResendConfirmationEmailContainer from './views/resendConfirmationEmail/ResendConfirmationEmailContainer';\r\nimport ResetPasswordContainer from './views/resetPassword/ResetPasswordContainer';\r\nimport WalletContainer from './views/wallet/WalletContainer';\r\n\r\nconst AccountPages = [\r\n\t,\r\n\t,\r\n\t,\r\n\t,\r\n\t,\r\n\t,\r\n\t,\r\n];\r\n\r\nexport default AccountPages;\r\n","export default __webpack_public_path__ + \"static/media/homepage_calculator.b3870079.svg\";","export default __webpack_public_path__ + \"static/media/homepage_admin.b73768d6.svg\";","export default __webpack_public_path__ + \"static/media/homepage_teacher.03ff6b89.svg\";","export default __webpack_public_path__ + \"static/media/homepage_student.b620ed46.svg\";","import agent from 'App/api/agent/agent';\r\nimport { SolveExerciseResponse } from 'App/api/endpoints/homeworks/responses';\r\nimport { AppThunk } from 'App/globalState/store';\r\nimport {\r\n\tgetCoursesCatalogFailure,\r\n\tgetCoursesCatalogStart,\r\n\tgetCoursesCatalogSuccess,\r\n\tgetHomeworksFailure,\r\n\tgetHomeworksStart,\r\n\tgetHomeworksSuccess,\r\n\tgetMyAllowedAlgorithmsFailure,\r\n\tgetMyAllowedAlgorithmsStart,\r\n\tgetMyAllowedAlgorithmsSuccess,\r\n\tsolveExerciseFailure,\r\n\tsolveExerciseStart,\r\n\tsolveExerciseSuccess,\r\n} from './student.slice';\r\n\r\nexport const getCoursesCatalog = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getCoursesCatalogStart());\r\n\tagent.Courses.getCoursesCatalogForStudent()\r\n\t\t.then((response) => dispatch(getCoursesCatalogSuccess(response)))\r\n\t\t.catch(() => dispatch(getCoursesCatalogFailure()));\r\n};\r\n\r\nexport const getHomeworks = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getHomeworksStart());\r\n\tagent.Homeworks.getMyHomeworks()\r\n\t\t.then((response) => dispatch(getHomeworksSuccess(response)))\r\n\t\t.catch(() => dispatch(getHomeworksFailure()));\r\n};\r\n\r\nexport const solveExercise =\r\n\t(exerciseId: number, onSuccess: (response: SolveExerciseResponse) => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(solveExerciseStart());\r\n\t\tagent.Homeworks.solveExercise(exerciseId)\r\n\t\t\t.then((response) => {\r\n\t\t\t\tdispatch(solveExerciseSuccess(response));\r\n\t\t\t\tonSuccess(response);\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(solveExerciseFailure()));\r\n\t};\r\n\r\nexport const getMyAllowedAlgorithms = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getMyAllowedAlgorithmsStart());\r\n\tagent.Students.getMyAllowedAlgorithms()\r\n\t\t.then((response) => dispatch(getMyAllowedAlgorithmsSuccess(response)))\r\n\t\t.catch(() => dispatch(getMyAllowedAlgorithmsFailure()));\r\n};\r\n","import { QuestionCircleOutlined } from '@ant-design/icons';\r\nimport { Collapse, Row, Col, Descriptions, List, Button, Popconfirm } from 'antd';\r\nimport { ExerciseForGetMyHomeworksResponse } from 'App/api/endpoints/homeworks/responses';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport { getGameAlgorithmTextByGameAlgorithmString } from 'App/pages/gamePages/types/gameAlgorithm';\r\nimport { GameComplexityStringToEnum } from 'App/pages/gamePages/types/gameComplexity';\r\nimport { GameLevelStringToEnum } from 'App/pages/gamePages/types/gameLevel';\r\nimport { setSelectedExercise } from 'App/pages/studentPages/state/student.slice';\r\nimport moment from \"moment-timezone\";\r\nimport React from 'react';\r\nimport { useDispatch } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\n\r\ninterface StudentHomeworkExerciseProps {\r\n\texercise: ExerciseForGetMyHomeworksResponse;\r\n}\r\n\r\nconst StudentHomeworkExercise = ({ exercise }: StudentHomeworkExerciseProps) => {\r\n\tconst history = useHistory();\r\n\tconst dispatch = useDispatch();\r\n\r\n\t// ile łącznie realizacji zadania ma wykonać student\r\n\tconst total = exercise.studentExercises.length;\r\n\r\n\t// liczba zrealizowanych powtórzeń przez studenta\r\n\tconst completed = exercise.studentExercises.filter((se) => se.completedAtUtc !== null).length;\r\n\r\n\tconst onSolveClick = () => {\r\n\t\thistory.push(`/student/exercises/${exercise.id}`);\r\n\t\tdispatch(setSelectedExercise(exercise));\r\n\t};\r\n\r\n\tconst renderSolveButton = () => {\r\n\t\tconst areAllSolved = total === completed;\r\n\r\n\t\tconst limit = exercise.maxRepetitionsPerDay;\r\n\t\tconst polishTimeZone = 'Europe/Warsaw';\r\n\t\tconst exercisesDoneToday = exercise.studentExercises.filter(\r\n\t\t\t(se) => se.completedAtUtc !== null && moment.tz(se.completedAtUtc, polishTimeZone).isSame(moment.tz(new Date(), polishTimeZone), 'day')\r\n\t\t);\r\n\r\n\t\tlet reachedTheLimit = exercisesDoneToday.length >= limit;\r\n\r\n\t\tif (areAllSolved) {\r\n\t\t\treturn (\r\n\t\t\t\t}\r\n\t\t\t\t\ttitle={\r\n\t\t\t\t\t\t'Zadanie zostało rozwiązane wystarczającą liczbę razy, kolejne podejście nie będzie liczone. Czy chcesz rozegrać grę w trybie gry dowolnej?'\r\n\t\t\t\t\t}\r\n\t\t\t\t\tonConfirm={onSolveClick}\r\n\t\t\t\t>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (reachedTheLimit) {\r\n\t\t\treturn (\r\n\t\t\t\t}\r\n\t\t\t\t\ttitle={`Zadanie dzisiaj zostało zrobione już ${limit} razy. Kolejne podejście nie zostanie zaliczone do pracy domowej. Czy chcesz rozegrać grę w trybie gry dowolnej?`}\r\n\t\t\t\t\tonConfirm={onSolveClick}\r\n\t\t\t\t>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{exercise.game.requiredCombinations ? 'wymagana' : 'niewymagana'}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{exercise.game.requiredTurbo ? 'wymagana' : 'niewymagana'}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{GameComplexityStringToEnum[exercise.game.requiredMinimalComplexity]}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{exercise.game.requiredMinimalGeneratorSpeedInSeconds}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{GameLevelStringToEnum[exercise.game.requiredMinimalLevel]}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{exercise.game.requiredMinimalMaxSteps}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{exercise.game.requiredRepetitions}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{getGameAlgorithmTextByGameAlgorithmString(exercise.gameAlgorithm)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tRozwiązanie {index + 1}:\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t{studentExercise.completedAtUtc === null\r\n\t\t\t\t\t\t\t\t\t\t\t\t? 'nie rozwiązano'\r\n\t\t\t\t\t\t\t\t\t\t\t\t: `rozwiązano ${dateTimeUtils.getLocalDateTimeString(\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstudentExercise.completedAtUtc\r\n\t\t\t\t\t\t\t\t\t\t\t\t )}`}\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default StudentHomeworkExercise;\r\n","import { Collapse } from 'antd';\r\nimport { HomeworkForGetMyHomeworksResponse } from 'App/api/endpoints/homeworks/responses';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\nimport StudentHomeworkExercise from '../studentHomeworkExercise/StudentHomeworkExercise';\r\nimport './StudentHomework.less';\r\n\r\ninterface StudentHomeworkProps {\r\n\thomework: HomeworkForGetMyHomeworksResponse;\r\n}\r\n\r\nconst StudentHomework = ({ homework }: StudentHomeworkProps) => {\r\n\tconst getAdditionalClassNames = () => {\r\n\t\tlet additionalClassNames = '';\r\n\r\n\t\tconst isOutdated = moment(homework.availableUntilUtc) < moment();\r\n\r\n\t\t// sprawdź czy skończone zostały wszystkie zadania w pracy domowej\r\n\t\tlet isFinished = true;\r\n\t\tfor (const exercise of homework.exercises) {\r\n\t\t\tconst finishedExercieses = exercise.studentExercises.filter((se) => se.completedAtUtc !== null).length;\r\n\t\t\tif (finishedExercieses !== exercise.requiredRepetitions) {\r\n\t\t\t\tisFinished = false;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isFinished) {\r\n\t\t\tif (isOutdated) {\r\n\t\t\t\tadditionalClassNames = 'student-homework__header--finished-outdated';\r\n\t\t\t} else {\r\n\t\t\t\tadditionalClassNames = 'student-homework__header--finished';\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tif (isOutdated) {\r\n\t\t\t\tadditionalClassNames = 'student-homework__header--not-finished-outdated';\r\n\t\t\t} else {\r\n\t\t\t\tadditionalClassNames = 'student-homework__header--not-finished';\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn additionalClassNames;\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{homework.exercises.map((exercise) => (\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default StudentHomework;\r\n","import { Card, List } from 'antd';\r\nimport { HomeworkForGetMyHomeworksResponse } from 'App/api/endpoints/homeworks/responses';\r\nimport React from 'react';\r\nimport StudentHomework from '../studentHomework/StudentHomework';\r\n\r\ninterface StudentHomeworksProps {\r\n\tloading: boolean;\r\n\thomeworks: HomeworkForGetMyHomeworksResponse[];\r\n}\r\n\r\nconst StudentHomeworks = ({ loading, homeworks }: StudentHomeworksProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default StudentHomeworks;\r\n","import { Col, Row } from 'antd';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { getHomeworks } from '../../state/student.thunk';\r\nimport StudentHomeworks from './studentHomeworks/StudentHomeworks';\r\n\r\nconst { Loading } = StatusType;\r\n\r\nexport interface StudenHomepageContainerProps {\r\n\tisStudentBlocked: boolean;\r\n}\r\n\r\nconst StudentHomepageContainer = ({ isStudentBlocked }: StudenHomepageContainerProps) => {\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst getHomeworksStatus = useSelector((state: RootState) => state.pages.student.status.getHomeworks);\r\n\tconst homeworks = useSelector((state: RootState) => state.pages.student.homeworks);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!isStudentBlocked) dispatch(getHomeworks());\r\n\t}, [dispatch, isStudentBlocked]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{!isStudentBlocked && (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default StudentHomepageContainer;\r\n","import React from 'react';\r\nimport { Alert, Button, Col, Row, Typography } from 'antd';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { useSelector } from 'react-redux';\r\nimport ImageFadeIn from 'react-image-fade-in';\r\n\r\nimport calculatorImage from './utils/homepage_calculator.svg';\r\nimport adminImage from './utils/homepage_admin.svg';\r\nimport teacherImage from './utils/homepage_teacher.svg';\r\nimport studentImage from './utils/homepage_student.svg';\r\n\r\nimport Role from 'App/types/role';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport LoadingScreen from 'App/components/common/loadingScreen/LoadingScreen';\r\nimport { Link } from 'react-router-dom';\r\nimport StudentHomepageContainer from 'App/pages/studentPages/views/studentHomepage/StudentHomepageContainer';\r\nimport { StudentInstallmentsNotPaidInCurrentMonth } from 'App/api/endpoints/account/responses/getAccountDetailsResponse';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\n\r\nconst HomeContainer = () => {\r\n\tconst accountDetails = useSelector((state: RootState) => state.global.account.accountDetails);\r\n\tconst accountDetailsStatus = useSelector((state: RootState) => state.global.account.status.getAccountDetails);\r\n\r\n\tconst getImageSrc = (): string => {\r\n\t\tif (!accountDetails) return calculatorImage;\r\n\r\n\t\tif (accountDetails.roles.includes(Role.Admin)) return adminImage;\r\n\r\n\t\tif (accountDetails.roles.includes(Role.Teacher)) return teacherImage;\r\n\r\n\t\tif (accountDetails.roles.includes(Role.Student)) return studentImage;\r\n\r\n\t\treturn calculatorImage;\r\n\t};\r\n\r\n\tconst getTitle = (): string => {\r\n\t\tif (!accountDetails) return '';\r\n\r\n\t\tif (accountDetails.roles.includes(Role.Admin)) return 'Konto Administratora';\r\n\r\n\t\tif (accountDetails.roles.includes(Role.Teacher)) return 'Konto Nauczyciela';\r\n\r\n\t\tif (accountDetails.roles.includes(Role.Student)) return 'Konto Studenta';\r\n\r\n\t\treturn '';\r\n\t};\r\n\r\n\tconst getStudentAccountBlockedAlert = () => {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tconst getStudentInstallmentsNotPaidInCurrentMonthAlert = (\r\n\t\tinstallments: StudentInstallmentsNotPaidInCurrentMonth[]\r\n\t) => {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{accountDetails?.additionalDataForTeacher?.isConfirmed === false && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{accountDetails?.isStudentBlocked && getStudentAccountBlockedAlert()}\r\n\t\t\t{accountDetails?.studentInstallmentsNotPaidInCurrentMonth &&\r\n\t\t\t\taccountDetails?.studentInstallmentsNotPaidInCurrentMonth?.length > 0 &&\r\n\t\t\t\tgetStudentInstallmentsNotPaidInCurrentMonthAlert(\r\n\t\t\t\t\taccountDetails?.studentInstallmentsNotPaidInCurrentMonth\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t\tEDUrado\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{accountDetailsStatus === StatusType.Loading ? (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t) : (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{getTitle()}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{accountDetails?.roles.includes(Role.Teacher) && (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t{accountDetails?.roles.includes(Role.Student) && (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default HomeContainer;\r\n","import React from 'react';\r\nimport { Route } from 'react-router';\r\nimport HomeContainer from './views/home/HomeContainer';\r\n\r\nconst HomePages = [];\r\n\r\nexport default HomePages;\r\n","import React from 'react';\r\nimport { Result, Button } from 'antd';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ninterface ForbbidenContainerProps extends RouteComponentProps {}\r\n\r\nconst ForbiddenContainer = ({ history }: ForbbidenContainerProps) => {\r\n\tconst buttonGoBackHomeOnClick = () => history.push('/');\r\n\tconst { t } = useTranslation(['page', 'common']);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t{t('common:Actions.BackToHome')}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t>\r\n\t);\r\n};\r\n\r\nexport default ForbiddenContainer;\r\n","import React from 'react';\r\nimport { Result, Button } from 'antd';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ninterface InternalServerErrorContainerProps extends RouteComponentProps {}\r\n\r\nconst InternalServerErrorContainer = ({ history }: InternalServerErrorContainerProps) => {\r\n\tconst buttonGoBackHomeOnClick = () => history.push('/');\r\n\tconst { t } = useTranslation(['page', 'common']);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t{t('common:Actions.BackToHome')}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t>\r\n\t);\r\n};\r\n\r\nexport default InternalServerErrorContainer;\r\n","import React from 'react';\r\nimport { Result, Button } from 'antd';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ninterface NotFoundContainerProps extends RouteComponentProps {}\r\n\r\nconst NotFoundContainer = ({ history }: NotFoundContainerProps) => {\r\n\tconst buttonGoBackHomeOnClick = () => history.push('/');\r\n\tconst { t } = useTranslation(['page', 'common']);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t{t('common:Actions.BackToHome')}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t>\r\n\t);\r\n};\r\n\r\nexport default NotFoundContainer;\r\n","import React from 'react';\r\nimport { Redirect, Route } from 'react-router-dom';\r\nimport ForbiddenContainer from './views/forbidden/ForbiddenContainer';\r\nimport InternalServerErrorContainer from './views/internalServerError/InternalServerErrorContainer';\r\nimport NotFoundContainer from './views/notFound/NotFoundContainer';\r\n\r\nconst ResultPages = [\r\n\t,\r\n\t,\r\n\t,\r\n\t,\r\n];\r\n\r\nexport default ResultPages;\r\n","import {\r\n\tgetUsersStart,\r\n\tgetUsersSuccess,\r\n\tgetUserStart,\r\n\tgetUserSuccess,\r\n\tgetUserFailure,\r\n\tdeleteUserStart,\r\n\tdeleteUserSuccess,\r\n\tdeleteUserFailure,\r\n\tcreateUserStart,\r\n\tcreateUserSuccess,\r\n\tcreateUserFailure,\r\n\tupdateUserStart,\r\n\tupdateUserSuccess,\r\n\tupdateUserFailure,\r\n\tgetUsersFailure,\r\n\tsetUserPasswordFailure,\r\n\tsetUserPasswordStart,\r\n\tsetUserPasswordSuccess,\r\n\tcreateWalletTransactionFailure,\r\n\tcreateWalletTransactionStart,\r\n\tcreateWalletTransactionSuccess,\r\n\tchangeWalletVisibilityFailure,\r\n\tchangeWalletVisibilityStart,\r\n\tchangeWalletVisibilitySuccess,\r\n} from './users.slice';\r\nimport {\r\n\tGetUsersRequest,\r\n\tCreateUserRequest,\r\n\tUpdateUserRequest,\r\n\tSetUserPasswordRequest,\r\n} from 'App/api/endpoints/users/requests';\r\nimport agent from 'App/api/agent/agent';\r\nimport { AppThunk } from 'App/globalState/store';\r\nimport { CreateWalletTransactionRequest } from 'App/api/endpoints/wallets/requests';\r\n\r\nexport const getUsers =\r\n\t(params: GetUsersRequest): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getUsersStart());\r\n\t\tagent.Users.getUsers(params)\r\n\t\t\t.then((response) => dispatch(getUsersSuccess(response)))\r\n\t\t\t.catch(() => dispatch(getUsersFailure()));\r\n\t};\r\n\r\nexport const getUser =\r\n\t(userId: string, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getUserStart());\r\n\t\tagent.Users.getUser(userId)\r\n\t\t\t.then((response) => {\r\n\t\t\t\tdispatch(getUserSuccess(response));\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(getUserFailure()));\r\n\t};\r\n\r\nexport const deleteUser =\r\n\t(userId: string, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(deleteUserStart());\r\n\t\tagent.Users.deleteUser(userId)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(deleteUserSuccess(userId));\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(deleteUserFailure()));\r\n\t};\r\n\r\nexport const createUser =\r\n\t(userToCreate: CreateUserRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(createUserStart());\r\n\t\tagent.Users.createUser(userToCreate)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(createUserSuccess());\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(createUserFailure()));\r\n\t};\r\n\r\nexport const updateUser =\r\n\t(userId: string, userToUpdate: UpdateUserRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(updateUserStart());\r\n\t\tagent.Users.updateUser(userId, userToUpdate)\r\n\t\t\t.then((res) => {\r\n\t\t\t\tdispatch(updateUserSuccess(res));\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(updateUserFailure()));\r\n\t};\r\n\r\nexport const setUserPassword =\r\n\t(userId: string, request: SetUserPasswordRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(setUserPasswordStart());\r\n\t\tagent.Users.setUserPassword(userId, request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t\tdispatch(setUserPasswordSuccess());\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(setUserPasswordFailure()));\r\n\t};\r\n\r\nexport const createWalletTransaction =\r\n\t(request: CreateWalletTransactionRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(createWalletTransactionStart());\r\n\t\tagent.Wallets.createWalletTransaction(request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t\tdispatch(createWalletTransactionSuccess());\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(createWalletTransactionFailure()));\r\n\t};\r\n\r\nexport const changeWalletVisibility =\r\n\t(studentId: string, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(changeWalletVisibilityStart());\r\n\t\tagent.Students.changeWalletVisibility(studentId)\r\n\t\t\t.then(() => {\r\n\t\t\t\tonSuccess();\r\n\t\t\t\tdispatch(changeWalletVisibilitySuccess());\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(changeWalletVisibilityFailure()));\r\n\t};\r\n","import { IFilterItem, IOrderByItem } from 'App/types/pagination/pagination';\r\n\r\nexport const tableUtils = {\r\n\t// funkcja pomocnicza do ustawiania stanu filtracji w tabeli\r\n\tmanageTableFilters(filters: any, columnKey: string) {\r\n\t\treturn filters[columnKey] || null;\r\n\t},\r\n\t// funkcja pomocnicza do ustawiania stanu sortowania w tabeli\r\n\tmanageTableOrderBy(orderBy: any, columnKey: string) {\r\n\t\treturn (\r\n\t\t\t(orderBy.columnKey === columnKey && orderBy.order) ||\r\n\t\t\t(Array.isArray(orderBy) &&\r\n\t\t\t\torderBy.find((c) => c.columnKey === columnKey) &&\r\n\t\t\t\torderBy.find((c) => c.columnKey === columnKey).order)\r\n\t\t);\r\n\t},\r\n\r\n\t// funkcja mapująca filtry z requestu/responsa na filtry tabeli antd\r\n\trequestFiltersToAntdFilters(filters: IFilterItem[]) {\r\n\t\tif (!filters) return {};\r\n\r\n\t\tlet filtersForTable = {};\r\n\t\tfilters.forEach((filter) => {\r\n\t\t\tfiltersForTable[filter.field] = filter.values;\r\n\t\t});\r\n\t\treturn filtersForTable;\r\n\t},\r\n\r\n\t// funkcja mapująca orderby z requestu/responsa na orderby tabeli antd\r\n\trequestOrderByToAntdOrderBy(orderBy: IOrderByItem[]) {\r\n\t\tif (!orderBy || orderBy.length <= 0) return {};\r\n\r\n\t\tlet orderByForTable = [];\r\n\t\torderBy.forEach((ob, index) => {\r\n\t\t\tif (ob !== null) {\r\n\t\t\t\tconst direction = ob.direction === 'Ascending' ? 'ascend' : 'descend';\r\n\r\n\t\t\t\torderByForTable.push({\r\n\t\t\t\t\tcolumn: {\r\n\t\t\t\t\t\tdataIndex: ob.field,\r\n\t\t\t\t\t\tkey: ob.field,\r\n\t\t\t\t\t\tsortOrder: direction,\r\n\t\t\t\t\t\tsorter: {\r\n\t\t\t\t\t\t\tmultiple: index,\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcolumnKey: ob.field,\r\n\t\t\t\t\tfield: ob.field,\r\n\t\t\t\t\torder: direction,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn orderByForTable;\r\n\t},\r\n};\r\n","import { PlusOutlined, SearchOutlined } from '@ant-design/icons';\r\nimport { Form, Row, Col, Button, Input, FormInstance } from 'antd';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { UsersSearchFormValues } from './utils/usersSearchFormValues';\r\n\r\ninterface UsersSearchFormProps {\r\n\tloading: boolean;\r\n\tform: FormInstance;\r\n\thandleSearch: (values: UsersSearchFormValues) => void;\r\n\tshowUserFormModal: (userId?: string) => void;\r\n}\r\n\r\nconst UsersSearchForm = ({ loading, form, handleSearch, showUserFormModal }: UsersSearchFormProps) => {\r\n\tconst { t } = useTranslation();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tshowUserFormModal();\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\ticon={}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{t('AdminPages.UsersPages.NewUserButton')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t (\r\n\t\t\t\t\t\t\t{firstName}\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\tsortOrder={manageTableOrderBy(translatedOrderBy, 'firstName')}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{selectedRole === Role.Student && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{selectedRole === Role.Teacher && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t (\r\n\t\t\t\t\t\t\t menuForActionDropdown(record)}\r\n\t\t\t\t\t\t\t\ttrigger={['click']}\r\n\t\t\t\t\t\t\t\tplacement='bottomCenter'\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default UsersTable;\r\n","export const breakpoints = {\r\n\txxs: {\r\n\t\tmin: 0,\r\n\t\tmax: 319,\r\n\t},\r\n\txs: {\r\n\t\tmin: 320,\r\n\t\tmax: 575,\r\n\t},\r\n\tsm: {\r\n\t\tmin: 576,\r\n\t\tmax: 767,\r\n\t},\r\n\tmd: {\r\n\t\tmin: 768,\r\n\t\tmax: 991,\r\n\t},\r\n\tlg: {\r\n\t\tmin: 992,\r\n\t\tmax: 1199,\r\n\t},\r\n\txl: {\r\n\t\tmin: 1200,\r\n\t\tmax: 1599,\r\n\t},\r\n\txxl: {\r\n\t\tmin: 1600,\r\n\t\tmax: 1999,\r\n\t},\r\n\txxxl: {\r\n\t\tmin: 2000,\r\n\t\tmax: 99999,\r\n\t},\r\n};\r\n","import { Modal } from 'antd';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport { UserFormValues } from '../../userForm/models/userFormValues';\r\n\r\ninterface UnconfirmTeacherModalProps {\r\n\tvisible: boolean;\r\n\tselectedUser: UserFormValues;\r\n\tonCancel: () => void;\r\n\tonOk: () => void;\r\n}\r\n\r\nconst UnconfirmTeacherModal = ({ visible, selectedUser, onCancel, onOk }: UnconfirmTeacherModalProps) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\tconst { t } = useTranslation();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\tNauczyciel jest przypisany do {selectedUser.additionalDataForTeacher?.groups.length} grup i nie będzie mógł\r\n\t\t\tprowadzić zajęć. Czy na pewno usunąć potwierdzenie nauczyciela?\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default UnconfirmTeacherModal;\r\n","import { Form, Input, Select, Button, Divider, Col, Row, DatePicker } from 'antd';\r\nimport Checkbox, { CheckboxChangeEvent } from 'antd/lib/checkbox/Checkbox';\r\nimport { useForm } from 'antd/lib/form/Form';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport Role from 'App/types/role';\r\nimport { languages } from 'i18n';\r\nimport React, { useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport UnconfirmTeacherModal from '../unconfirmTeacher/modals/UnconfirmTeacherModal';\r\nimport { UserFormValues } from './models/userFormValues';\r\n\r\ninterface UserFormProps {\r\n\tonFinish: (values: UserFormValues) => void;\r\n\tinitialValues?: UserFormValues;\r\n\tloading: boolean;\r\n}\r\n\r\nconst UserForm = ({ loading, initialValues, onFinish }: UserFormProps) => {\r\n\tconst {\r\n\t\tfirstName,\r\n\t\tlastName,\r\n\t\tbirthDate,\r\n\t\troles,\r\n\t\tisDeleted,\r\n\t\temailConfirmed,\r\n\t\tlockoutEnabled,\r\n\t\tlockoutEnd,\r\n\t\temail,\r\n\t\tpassword,\r\n\t\temailLanguage,\r\n\t\tphoneNumber,\r\n\t\tphoneConfirmed,\r\n\t} = formRules.user;\r\n\r\n\tconst { contactPersonEmail, contactPersonFirstName, contactPersonLastName, contactPersonPhone } =\r\n\t\tformRules.customContactDataForStudent;\r\n\r\n\tconst { t } = useTranslation(['form', 'common']);\r\n\tconst [form] = useForm();\r\n\tconst [islockoutEnabled, setIsLockoutEnabled] = useState(form.getFieldValue('lockoutEnabled'));\r\n\tconst [isSelectedStudentRole, setIsSelectedStudentRole] = useState(initialValues.roles[0] === Role.Student);\r\n\tconst [isSelectedTeacherRole, setIsSelectedTeacherRole] = useState(initialValues.roles[0] === Role.Teacher);\r\n\tconst [unconfirmTeacherModalVisibility, setUnconfirmTeacherModalVisibility] = useState(false);\r\n\r\n\tconst [areAdditionalContactFieldRequired] = useState(initialValues.roles[0] === Role.Student);\r\n\r\n\tconst editMode = initialValues.id !== undefined;\r\n\r\n\tconst onLockoutEnabledChange = (e: CheckboxChangeEvent) => {\r\n\t\tsetIsLockoutEnabled(e.target.checked);\r\n\t};\r\n\r\n\tconst onIsConfirmedChange = (e: any) => {\r\n\t\t// wyświetlanie modala tylko gdy nauczyciel posiada grupy, był potwierdzony i odznaczamy potwierdzenie\r\n\t\tif (\r\n\t\t\tinitialValues.additionalDataForTeacher.groups.length > 0 &&\r\n\t\t\tinitialValues.additionalDataForTeacher.isConfirmed &&\r\n\t\t\tform.getFieldValue(['additionalDataForTeacher', 'isConfirmed']) === false\r\n\t\t)\r\n\t\t\tsetUnconfirmTeacherModalVisibility(true);\r\n\t};\r\n\r\n\tconst onCancelUnconfirmTeacherModal = () => {\r\n\t\tform.setFieldsValue({\r\n\t\t\tadditionalDataForTeacher: {\r\n\t\t\t\tisConfirmed: true,\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetUnconfirmTeacherModalVisibility(false);\r\n\t};\r\n\r\n\tconst handleUnconfirmTeacher = () => {\r\n\t\tform.setFieldsValue({\r\n\t\t\tadditionalDataForTeacher: {\r\n\t\t\t\tisConfirmed: false,\r\n\t\t\t},\r\n\t\t});\r\n\t\tsetUnconfirmTeacherModalVisibility(false);\r\n\t};\r\n\r\n\tconst onRoleChange = (e: any) => {\r\n\t\tif (e.length === 1 && e[0] === Role.Student) {\r\n\t\t\tsetIsSelectedStudentRole(true);\r\n\t\t} else {\r\n\t\t\tsetIsSelectedStudentRole(false);\r\n\t\t}\r\n\r\n\t\tif (e.length === 1 && e[0] === Role.Teacher) {\r\n\t\t\tsetIsSelectedTeacherRole(true);\r\n\t\t} else {\r\n\t\t\tsetIsSelectedTeacherRole(false);\r\n\t\t}\r\n\t};\r\n\r\n\tconst onValuesChange = (changedValue, allValues) => {\r\n\t\tif (changedValue['phoneNumber'] !== null) {\r\n\t\t\tif (changedValue['phoneNumber']?.length <= 0) {\r\n\t\t\t\tform.setFieldsValue({\r\n\t\t\t\t\tphoneNumber: null,\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t onCancelUnconfirmTeacherModal()}\r\n\t\t\t\tonOk={() => handleUnconfirmTeacher()}\r\n\t\t\t\tvisible={unconfirmTeacherModalVisibility}\r\n\t\t\t\tselectedUser={initialValues}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{!editMode && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t{t('page:AdminPages.UsersPages.Login')}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{t('page:AdminPages.UsersPages.PersonalData')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('page:AdminPages.UsersPages.Security')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{t('common:Roles.Student')}\r\n\t\t\t\t\t\t\t\t{t('common:Roles.Teacher')}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{t('common:Roles.FacilityCaretaker')}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{t('common:Roles.Administrator')}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t{islockoutEnabled && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t{t('models:User.Labels.LockoutEnabled')}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{t('models:User.Labels.PhoneConfirmed')}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{t('models:User.Labels.IsDeleted')}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{t('models:User.Labels.EmailConfirmed')}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t{t('page:AdminPages.UsersPages.Other')}\r\n\r\n\t\t\t\t\t\t{!editMode && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{isSelectedTeacherRole && editMode && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tPotwierdzony nauczyciel\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t{areAdditionalContactFieldRequired && isSelectedStudentRole && (\r\n\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default UserForm;\r\n","import { Modal } from 'antd';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport Role from 'App/types/role';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport { UserFormValues } from '../../userForm/models/userFormValues';\r\nimport UserForm from '../../userForm/UserForm';\r\n\r\ninterface CreateUserModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tdefaultRole?: Role;\r\n\tonCreate: (values: UserFormValues) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst CreateUserModal = ({ visible, loading, onCancel, onCreate, defaultRole }: CreateUserModalProps) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\tconst { t } = useTranslation();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CreateUserModal;\r\n","import { Modal } from 'antd';\r\nimport { GetUserResponse } from 'App/api/endpoints/users/responses';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport { UserFormValues } from '../../userForm/models/userFormValues';\r\nimport UserForm from '../../userForm/UserForm';\r\n\r\ninterface UpdateUserModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tselectedUser: GetUserResponse;\r\n\tonUpdate: (values: UserFormValues) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst UpdateUserModal = ({ visible, loading, selectedUser, onCancel, onUpdate }: UpdateUserModalProps) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\tconst { t } = useTranslation();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default UpdateUserModal;\r\n","import { Form, Input, Button } from 'antd';\r\nimport { SetUserPasswordRequest } from 'App/api/endpoints/users/requests';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ninterface SetUserPasswordFormProps {\r\n\tonFinish: (values: SetUserPasswordRequest) => void;\r\n\tloading: boolean;\r\n}\r\n\r\nconst SetUserPasswordForm = ({ onFinish, loading }: SetUserPasswordFormProps) => {\r\n\tconst { t } = useTranslation(['page', 'form', 'common', 'models']);\r\n\tconst { password, confirmPassword } = formRules.user;\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default SetUserPasswordForm;\r\n","import { Modal } from 'antd';\r\nimport { SetUserPasswordRequest } from 'App/api/endpoints/users/requests';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport SetUserPasswordForm from '../../forms/setUserPasswordForm/SetUserPasswordForm';\r\n\r\ninterface SetUserPasswordModalProps {\r\n\tshowModal: boolean;\r\n\tonCancel: () => void;\r\n\tonSave: (values: SetUserPasswordRequest) => void;\r\n\tloading: boolean;\r\n}\r\n\r\nconst SetUserPasswordModal = ({ showModal, onCancel, onSave, loading }: SetUserPasswordModalProps) => {\r\n\tconst { t } = useTranslation(['page', 'common']);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default SetUserPasswordModal;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Row, Col, Modal, notification } from 'antd';\r\nimport { ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { cleanUpSelectedUser, cleanUpUsersTable } from 'App/pages/adminPages/usersPages/state/users.slice';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { changeWalletVisibility, createUser, getUser, updateUser } from '../../state/users.thunk';\r\nimport { paginationUtils } from 'App/common/utils/pagination.utils';\r\nimport { UserForGetUsersResponse } from 'App/api/endpoints/users/responses/getUsersResponse';\r\nimport UsersTable from './components/usersTable/UsersTable';\r\nimport CreateUserModal from '../createUser/modals/CreateUserModal';\r\nimport { UserFormValues } from '../userForm/models/userFormValues';\r\nimport moment from 'moment';\r\nimport UpdateUserModal from '../updateUser/modals/UpdateUserModal';\r\nimport { CreateUserRequest, UpdateUserRequest } from 'App/api/endpoints/users/requests';\r\nimport { deleteUser, getUsers, setUserPassword } from '../../state/users.thunk';\r\nimport SetUserPasswordModal from '../setUserPassword/modals/setUserPasswordModal/SetUserPasswordModal';\r\nimport { SetUserPasswordRequest } from 'App/api/endpoints/users/requests';\r\nimport Role from 'App/types/role';\r\nimport { useLocation } from 'react-router';\r\nimport { useForm } from 'antd/lib/form/Form';\r\n\r\nconst { Loading } = StatusType;\r\nconst { defaultPaginationValues } = paginationUtils;\r\n\r\nfunction useQuery() {\r\n\treturn new URLSearchParams(useLocation().search);\r\n}\r\n\r\nconst UsersTableContainer = () => {\r\n\tconst query = useQuery();\r\n\tconst dispatch = useDispatch();\r\n\tconst { t } = useTranslation();\r\n\tconst [userSearchForm] = useForm();\r\n\r\n\tconst users = useSelector((state: RootState) => state.pages.admin.users.users);\r\n\tconst usersStatus = useSelector((state: RootState) => state.pages.admin.users.status);\r\n\tconst getUserParams = useSelector((state: RootState) => state.pages.admin.users.getUsersParams);\r\n\tconst selectedUser = useSelector((state: RootState) => state.pages.admin.users.selectedUser);\r\n\tconst setUserPasswordStatus = useSelector((state: RootState) => state.pages.admin.users.status.setUserPassword);\r\n\r\n\tconst [userFormModalVisible, setUserFormModalVisible] = useState(false);\r\n\tconst [userSetPasswordModalVisiblity, setUserSetPasswordModalVisiblity] = useState(false);\r\n\tconst [userForSetPassword, setUserForSetPassword] = useState(null);\r\n\r\n\tconst role = query.get('role') as Role;\r\n\r\n\tuseEffect(() => {\r\n\t\t// pierwsze uruchomienie z domyślnie ustawionymi filtrami i orderby\r\n\t\tdispatch(\r\n\t\t\tgetUsers({\r\n\t\t\t\t...defaultPaginationValues,\r\n\t\t\t\tfilters: [{ field: 'isDeleted', values: ['false'] }],\r\n\t\t\t\torderBy: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: 'lastName',\r\n\t\t\t\t\t\tdirection: 'Ascending',\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t\trole,\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\treturn () => {\r\n\t\t\tuserSearchForm.resetFields();\r\n\t\t\tdispatch(cleanUpUsersTable());\r\n\t\t};\r\n\t}, [dispatch, role, userSearchForm]);\r\n\r\n\tconst onDeleteUser = (userToDelete: UserForGetUsersResponse) => {\r\n\t\tModal.confirm({\r\n\t\t\ttitle: `${t('AdminPages.UsersPages.ConfirmUserDeletionTitle')} ${userToDelete?.firstName} ${\r\n\t\t\t\tuserToDelete?.lastName\r\n\t\t\t}?`,\r\n\t\t\ticon: ,\r\n\t\t\tcontent: t('common:Warnings.ActionWillBeIrreversible'),\r\n\t\t\tokText: t('common:Actions.Yes'),\r\n\t\t\tokType: 'primary',\r\n\t\t\tcancelText: t('common:Actions.No'),\r\n\t\t\tonOk() {\r\n\t\t\t\tconst onSucces = () => {\r\n\t\t\t\t\tnotification.success({\r\n\t\t\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\t\t\tdescription: t('AdminPages.UsersPages.SuccessDeleteDescription'),\r\n\t\t\t\t\t});\r\n\t\t\t\t};\r\n\t\t\t\tdispatch(deleteUser(userToDelete.id, onSucces));\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst showUserFormModal = (userId?: string) => {\r\n\t\tif (userId) {\r\n\t\t\tconst onSuccess = () => {\r\n\t\t\t\tsetUserFormModalVisible(true);\r\n\t\t\t};\r\n\r\n\t\t\tdispatch(getUser(userId, onSuccess));\r\n\t\t} else {\r\n\t\t\tsetUserFormModalVisible(true);\r\n\t\t}\r\n\t};\r\n\r\n\tconst hideUserFormModal = () => {\r\n\t\tsetUserFormModalVisible(false);\r\n\t\tdispatch(cleanUpSelectedUser());\r\n\t};\r\n\r\n\tconst onCreateUser = (values: UserFormValues) => {\r\n\t\tconst request: CreateUserRequest = {\r\n\t\t\t...values,\r\n\t\t\tpassword: values.password,\r\n\t\t\tlanguage: values.language,\r\n\t\t\tlockoutEndUtc: moment.utc(values.lockoutEndUtc)?.format(),\r\n\t\t\tbirthDate: moment.utc(values.birthDate).format(),\r\n\t\t};\r\n\r\n\t\t// jeśli wśród ról nie ma roli ucznia lub odznaczono 'areAdditionalContactFieldsRequired'\r\n\t\t// to na pewno nie może posiadać custom contact data\r\n\t\tif (!values.roles.some((r) => r === Role.Student)) {\r\n\t\t\trequest.customContactDataForStudent = null;\r\n\t\t}\r\n\r\n\t\tconst onSucces = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\tdescription: t('AdminPages.UsersPages.SuccessCreateDescription'),\r\n\t\t\t});\r\n\t\t\tdispatch(\r\n\t\t\t\tgetUsers({\r\n\t\t\t\t\t...getUserParams,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\thideUserFormModal();\r\n\t\t};\r\n\t\tdispatch(createUser(request, onSucces));\r\n\t};\r\n\r\n\tconst onUpdateUser = (values: UserFormValues) => {\r\n\t\tconst request: UpdateUserRequest = {\r\n\t\t\t...values,\r\n\t\t\tbirthDate: moment.utc(values.birthDate).format(),\r\n\t\t};\r\n\r\n\t\t// jeśli wśród ról nie ma roli ucznia\r\n\t\t// to na pewno nie może posiadać custom contact data\r\n\t\tif (!values.roles.some((r) => r === Role.Student)) {\r\n\t\t\trequest.customContactDataForStudent = null;\r\n\t\t}\r\n\r\n\t\t// analogicznie dla nauczyciela i 'additionalDataForTeacher'\r\n\t\tif (!values.roles.some((r) => r === Role.Teacher)) {\r\n\t\t\trequest.additionalDataForTeacher = null;\r\n\t\t}\r\n\r\n\t\tconst onSucces = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\tdescription: t('AdminPages.UsersPages.SuccessUpdateDescription'),\r\n\t\t\t});\r\n\t\t\tdispatch(\r\n\t\t\t\tgetUsers({\r\n\t\t\t\t\t...getUserParams,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\thideUserFormModal();\r\n\t\t};\r\n\t\tdispatch(updateUser(selectedUser.id, request, onSucces));\r\n\t};\r\n\r\n\tconst onSetUserPassword = (userToChangePassword: UserForGetUsersResponse) => {\r\n\t\tsetUserSetPasswordModalVisiblity(true);\r\n\t\tsetUserForSetPassword(userToChangePassword);\r\n\t};\r\n\r\n\tconst handleSetUserPasswordModalCancel = () => {\r\n\t\tsetUserSetPasswordModalVisiblity(false);\r\n\t\tsetUserForSetPassword(null);\r\n\t};\r\n\r\n\tconst handleSetUserPasswordModalSave = (values: SetUserPasswordRequest) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\tdescription: t('AdminPages.UsersPages.SuccessSetPasswordDescription'),\r\n\t\t\t});\r\n\r\n\t\t\tsetUserSetPasswordModalVisiblity(false);\r\n\t\t\tsetUserForSetPassword(null);\r\n\t\t};\r\n\t\tdispatch(setUserPassword(userForSetPassword.id, values, onSuccess));\r\n\t};\r\n\r\n\tconst handleChangeWalletVisibility = (studentId: string) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\tdescription: 'Pomyślnie zmieniono widoczność portfela',\r\n\t\t\t});\r\n\t\t\tdispatch(\r\n\t\t\t\tgetUsers({\r\n\t\t\t\t\t...getUserParams,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t};\r\n\t\tdispatch(changeWalletVisibility(studentId, onSuccess));\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t handleSetUserPasswordModalCancel()}\r\n\t\t\t\tonSave={(values: SetUserPasswordRequest) => handleSetUserPasswordModalSave(values)}\r\n\t\t\t\tshowModal={userSetPasswordModalVisiblity}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default UsersTableContainer;\r\n","export enum LessonStatus {\r\n\tPlanned = 'Planned',\r\n\tGoingOn = 'GoingOn',\r\n\tCompleted = 'Completed',\r\n\tMovedCompleted = 'MovedCompleted',\r\n\tCanceled = 'Canceled',\r\n}\r\n\r\nexport interface ILessonStatus {\r\n\tvalue: LessonStatus;\r\n\ttext: string;\r\n}\r\n\r\nexport const LessonStatusDict = {\r\n\tPlanned: 'Zaplanowana',\r\n\tGoingOn: 'W trakcie',\r\n\tCompleted: 'Zakończona',\r\n\tMovedCompleted: 'Przeniesiona, zakończona',\r\n\tCanceled: 'Anulowana',\r\n};\r\n\r\nexport const lessonStatus: ILessonStatus[] = [\r\n\t{\r\n\t\tvalue: LessonStatus.Planned,\r\n\t\ttext: 'Zaplanowana',\r\n\t},\r\n\t{\r\n\t\tvalue: LessonStatus.GoingOn,\r\n\t\ttext: 'W trakcie',\r\n\t},\r\n\t{\r\n\t\tvalue: LessonStatus.Completed,\r\n\t\ttext: 'Zakończona',\r\n\t},\r\n\t{\r\n\t\tvalue: LessonStatus.MovedCompleted,\r\n\t\ttext: 'Przeniesiona, zakończona',\r\n\t},\r\n\t{\r\n\t\tvalue: LessonStatus.Canceled,\r\n\t\ttext: 'Anulowana',\r\n\t},\r\n];\r\n","export enum DayOfWeek {\r\n\tSunday = 0,\r\n\tMonday = 1,\r\n\tTuesday = 2,\r\n\tWednesday = 3,\r\n\tThursday = 4,\r\n\tFriday = 5,\r\n\tSaturday = 6,\r\n}\r\n\r\n// export enum DayOfWeek {\r\n// \tSunday = 'Sunday',\r\n// \tMonday = 'Monday',\r\n// \tTuesday = 'Tuesday',\r\n// \tWednesday = 'Wednesday',\r\n// \tThursday = 'Thursday',\r\n// \tFriday = 'Friday',\r\n// \tSaturday = 'Saturday',\r\n// }\r\n\r\nexport interface IDayOfWeek {\r\n\tvalue: DayOfWeek;\r\n\ttext: string;\r\n}\r\n\r\nexport const DayOfWeekDict = {\r\n\tSunday: 'Niedziela',\r\n\tTuesday: 'Wtorek',\r\n\tMonday: 'Poniedziałek',\r\n\tThursday: 'Czwartek',\r\n\tWednesday: 'Środa',\r\n\tSaturday: 'Sobota',\r\n\tFriday: 'Piątek',\r\n};\r\n\r\nexport const daysOfWeek: IDayOfWeek[] = [\r\n\t{\r\n\t\tvalue: DayOfWeek.Monday,\r\n\t\ttext: 'Poniedziałek',\r\n\t},\r\n\t{\r\n\t\tvalue: DayOfWeek.Tuesday,\r\n\t\ttext: 'Wtorek',\r\n\t},\r\n\t{\r\n\t\tvalue: DayOfWeek.Wednesday,\r\n\t\ttext: 'Środa',\r\n\t},\r\n\t{\r\n\t\tvalue: DayOfWeek.Thursday,\r\n\t\ttext: 'Czwartek',\r\n\t},\r\n\t{\r\n\t\tvalue: DayOfWeek.Friday,\r\n\t\ttext: 'Piątek',\r\n\t},\r\n\t{\r\n\t\tvalue: DayOfWeek.Saturday,\r\n\t\ttext: 'Sobota',\r\n\t},\r\n\t{\r\n\t\tvalue: DayOfWeek.Sunday,\r\n\t\ttext: 'Niedziela',\r\n\t},\r\n];\r\n","import { Badge, Descriptions, Popover, Row, Tag } from 'antd';\r\nimport { LessonForGetTeacherLessonsFromMonthResponse } from 'App/api/endpoints/lessons/responses';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport { LessonStatus, LessonStatusDict } from 'App/common/utils/lessonStatus';\r\nimport React from 'react';\r\n\r\nexport interface TeacherCalendarCellProps {\r\n\tlessons: LessonForGetTeacherLessonsFromMonthResponse[];\r\n\tonClick: (lessonId: string) => void;\r\n}\r\n\r\nconst TeacherCalendarCell = ({ lessons, onClick }: TeacherCalendarCellProps) => {\r\n\tconst getLessonColor = (lesson: LessonForGetTeacherLessonsFromMonthResponse): string => {\r\n\t\tswitch (lesson.lessonStatus) {\r\n\t\t\tcase LessonStatus.Planned:\r\n\t\t\t\treturn 'orange';\r\n\t\t\tcase LessonStatus.GoingOn:\r\n\t\t\t\treturn 'blue';\r\n\t\t\tcase LessonStatus.Completed:\r\n\t\t\t\treturn 'green';\r\n\t\t\tcase LessonStatus.MovedCompleted:\r\n\t\t\t\treturn 'lime';\r\n\t\t\tcase LessonStatus.Canceled:\r\n\t\t\t\treturn 'red';\r\n\t\t\tdefault:\r\n\t\t\t\treturn 'default';\r\n\t\t}\r\n\t};\r\n\r\n\tconst renderLessonStatusTag = (lesson: LessonForGetTeacherLessonsFromMonthResponse) => {\r\n\t\tlet color;\r\n\t\tswitch (lesson.lessonStatus) {\r\n\t\t\tcase LessonStatus.Planned:\r\n\t\t\t\tcolor = 'orange';\r\n\t\t\t\tbreak;\r\n\t\t\tcase LessonStatus.GoingOn:\r\n\t\t\t\tcolor = 'processing';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase LessonStatus.Completed:\r\n\t\t\t\tcolor = 'success';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase LessonStatus.MovedCompleted:\r\n\t\t\t\tcolor = 'lime';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase LessonStatus.Canceled:\r\n\t\t\t\tcolor = 'error';\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tcolor = 'default';\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn {LessonStatusDict[lesson.lessonStatus]};\r\n\t};\r\n\r\n\tconst renderLessonTypeIndividual = (lesson: LessonForGetTeacherLessonsFromMonthResponse) => {\r\n\t\tif (lesson.isIndividual) {\r\n\t\t\treturn Indywidualna;\r\n\t\t}\r\n\t\treturn Zwykła;\r\n\t};\r\n\r\n\tconst getLessonTime = (lesson: LessonForGetTeacherLessonsFromMonthResponse): string => {\r\n\t\treturn `${dateTimeUtils\r\n\t\t\t.getLocalDateTime(lesson.startUtc)\r\n\t\t\t.format(dateTimeUtils.formats.HourMinute)}-${dateTimeUtils\r\n\t\t\t.getLocalDateTime(lesson.endUtc)\r\n\t\t\t.format(dateTimeUtils.formats.HourMinute)}`;\r\n\t};\r\n\r\n\tconst getPopoverContent = (lesson: LessonForGetTeacherLessonsFromMonthResponse): JSX.Element => {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t{lesson.lessonTopic?.name ?? 'brak'}\r\n\t\t\t\t{lesson.description ?? 'brak'}\r\n\t\t\t\t{renderLessonStatusTag(lesson)}\r\n\t\t\t\t{lesson.address ?? 'brak'}\r\n\t\t\t\t{lesson.classroom ?? 'brak'}\r\n\t\t\t\t{renderLessonTypeIndividual(lesson)}\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tif (!lessons || lessons?.length === 0) return <>;\r\n\r\n\treturn (\r\n\t\t
    \r\n\t\t\t{lessons.map((lesson) => (\r\n\t\t\t\t
  • \r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\t\tonClick(lesson.id);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
  • \r\n\t\t\t))}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default TeacherCalendarCell;\r\n","import { Select, Row, Col, Typography } from 'antd';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\n\r\ninterface TeacherCalendarHeaderProps {\r\n\tvalue: moment.Moment;\r\n\tonChange: (date: moment.Moment) => void;\r\n}\r\n\r\nconst TeacherCalendarHeader = ({ value, onChange }: TeacherCalendarHeaderProps) => {\r\n\tconst localeData = value.localeData();\r\n\r\n\tconst getMonthOptions = (): JSX.Element[] => {\r\n\t\tconst monthOptions: JSX.Element[] = [];\r\n\t\tconst months: string[] = [];\r\n\r\n\t\tconst current = value.clone();\r\n\t\tconst localeData = value.localeData();\r\n\r\n\t\tfor (let i = 0; i < 12; i++) {\r\n\t\t\tcurrent.month(i);\r\n\t\t\tmonths.push(localeData.months(current));\r\n\t\t}\r\n\r\n\t\tfor (let index = 0; index < 12; index++) {\r\n\t\t\tmonthOptions.push(\r\n\t\t\t\t\r\n\t\t\t\t\t{months[index]}\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn monthOptions;\r\n\t};\r\n\r\n\tconst getYearOptions = (): JSX.Element[] => {\r\n\t\tconst year = value.year();\r\n\t\tconst yearOptions = [];\r\n\r\n\t\tfor (let i = year - 2; i < year + 10; i += 1) {\r\n\t\t\tyearOptions.push(\r\n\t\t\t\t\r\n\t\t\t\t\t{i}\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\t\treturn yearOptions;\r\n\t};\r\n\r\n\tconst handleOnYearChange = (selectedYear: string) => {\r\n\t\tconst now = value.clone().year(Number(selectedYear));\r\n\t\tonChange(now);\r\n\t};\r\n\r\n\tconst handleOnMonthChange = (selectedMonth: string) => {\r\n\t\tconst newValue = value.clone();\r\n\t\tnewValue.month(parseInt(String(selectedMonth), 10));\r\n\t\tonChange(newValue);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\tKalendarz lekcji\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default TeacherCalendarHeader;\r\n","import { Calendar } from 'antd';\r\nimport { LessonForGetTeacherLessonsFromMonthResponse } from 'App/api/endpoints/lessons/responses';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\nimport TeacherCalendarCell from './components/TeacherCalendarCell';\r\nimport TeacherCalendarHeader from './components/TeacherCalendarHeader';\r\n\r\nimport './TeacherCalendar.less';\r\n\r\ninterface TeacherCalendarProps {\r\n\tinitialMonth: number;\r\n\tinitialYear: number;\r\n\tloading: boolean;\r\n\tlessons: LessonForGetTeacherLessonsFromMonthResponse[];\r\n\tonLessonClick?: (lessonId: string) => void;\r\n\r\n\tonChange?: (date: moment.Moment) => void;\r\n}\r\n\r\nconst TeacherCalendar = ({\r\n\tloading,\r\n\tinitialMonth,\r\n\tinitialYear,\r\n\tlessons,\r\n\tonChange,\r\n\tonLessonClick,\r\n}: TeacherCalendarProps) => {\r\n\tconst dateCellRender = (date: moment.Moment) => {\r\n\t\tconst formatedDate = date.format(dateTimeUtils.formats.YearMonthDay);\r\n\t\tconst lessonFromThisDate = lessons.filter((x) => dateTimeUtils.getLocalDateString(x.startUtc) === formatedDate);\r\n\r\n\t\treturn {}} />;\r\n\t};\r\n\r\n\tconst defaultDate =\r\n\t\tinitialMonth === 0 || initialYear === 0 ? moment() : moment(new Date(`${initialMonth}-01-${initialYear}`));\r\n\r\n\treturn (\r\n\t\t {}}\r\n\t\t\tclassName='teacher-calendar'\r\n\t\t\tdateCellRender={dateCellRender}\r\n\t\t\theaderRender={({ value, type, onChange, onTypeChange }) => (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default TeacherCalendar;\r\n","export enum PaymentType {\r\n\tInstallments = 0,\r\n\tPayAtOnce = 1,\r\n}\r\n\r\nexport const PaymenTypeStringToEnum = {\r\n\tInstallments: PaymentType.Installments,\r\n\tPayAtOnce: PaymentType.PayAtOnce,\r\n};\r\n","import { Table, Tag } from 'antd';\r\nimport Column from 'antd/lib/table/Column';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport { DayOfWeekDict } from 'App/common/utils/dayOfWeek';\r\nimport {\r\n\tCourseForAdditionalDataForTeacher,\r\n\tGroupForAdditionalDataForTeacher,\r\n} from 'App/pages/adminPages/usersPages/views/userForm/models/additionalDataForTeacher';\r\nimport React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\ninterface TeacherDetailsGroupsTableProps {\r\n\tdataSource: GroupForAdditionalDataForTeacher[];\r\n}\r\n\r\nconst { getLocalTimeStringFromTimeBasedOnDate } = dateTimeUtils;\r\n\r\nconst TeacherDetailsGroupsTable = ({ dataSource }: TeacherDetailsGroupsTableProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t (\r\n\t\t\t\t\t{name}\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\t (\r\n\t\t\t\t\t<>{`${numberOfParticipants}/${maxParticipants}`}\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\t\r\n\r\n\t\t\t `${cost.toFixed()} zł`} />\r\n\r\n\t\t\t `${surcharge.toFixed()} zł`}\r\n\t\t\t/>\r\n\r\n\t\t\t\r\n\r\n\t\t\t\r\n\r\n\t\t\t\r\n\r\n\t\t\t <>{DayOfWeekDict[value]}}\r\n\t\t\t/>\r\n\r\n\t\t\t (\r\n\t\t\t\t\t<>{`${getLocalTimeStringFromTimeBasedOnDate(\r\n\t\t\t\t\t\tlessonTimeStartUtc,\r\n\t\t\t\t\t\tcreatedAtUtc\r\n\t\t\t\t\t)}-${getLocalTimeStringFromTimeBasedOnDate(lessonTimeEndUtc, createdAtUtc)}`}\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\r\n\t\t\t (\r\n\t\t\t\t\t{name}\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\r\n\t\t\t\r\n\t\t\t\t\tisActive ? Aktywna : Nieaktywna\r\n\t\t\t\t}\r\n\t\t\t/>\r\n\r\n\t\t\t <>{isDeleted ? 'Tak' : 'Nie'}}\r\n\t\t\t/>\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default TeacherDetailsGroupsTable;\r\n","import { Col, Typography, Badge, Tag } from 'antd';\r\nimport { GetUserResponse } from 'App/api/endpoints/users/responses';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport interface UserGeneralInfoProps {\r\n\tuser: GetUserResponse;\r\n}\r\n\r\nconst UserGeneralInfo = ({ user }: UserGeneralInfoProps) => {\r\n\tconst { t } = useTranslation(['page', 'form', 'common']);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{t('models:User.Labels.FirstName')}: \r\n\t\t\t\t\t{user.firstName}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{t('models:User.Labels.LastName')}: \r\n\t\t\t\t\t{user.lastName}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('models:User.Labels.Email')}: \r\n\t\t\t\t\t\t{user.email}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('models:User.Labels.PhoneNumber')}: \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{user.phoneNumber || t('AdminPages.UsersPages.BlankPhoneNumber')}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{t('models:User.Labels.UserName')}: \r\n\t\t\t\t\t{user.userName}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{t('models:User.Labels.Roles')}: \r\n\t\t\t\t\t{user.roles.map((role, index) => {\r\n\t\t\t\t\t\tconst generatedRoleKey = `common:Roles.${role}`;\r\n\t\t\t\t\t\treturn {t(generatedRoleKey)};\r\n\t\t\t\t\t})}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default UserGeneralInfo;\r\n","import { Col, Divider, Row } from 'antd';\r\nimport { GetUserResponse } from 'App/api/endpoints/users/responses';\r\nimport WalletTransactions from 'App/components/walletTransactions/WalletTransactions';\r\nimport TeacherCalendar from 'App/pages/teacherPages/views/teacherCalendar/components/teacherCalendar/TeacherCalendar';\r\nimport Role from 'App/types/role';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport TeacherDetailsGroupsTable from './components/TeacherDetailsGroupsTable';\r\nimport UserGeneralInfo from './components/UserGeneralInfo';\r\n\r\ninterface UserGeneralTabProps {\r\n\tuser: GetUserResponse;\r\n\twalletLoading: boolean;\r\n\tshowWalletTransactionFormModal: () => void;\r\n}\r\n\r\nconst UserGeneralTab = ({ user, walletLoading, showWalletTransactionFormModal }: UserGeneralTabProps) => {\r\n\tconst isStudent = user?.roles?.includes(Role.Student);\r\n\tconst isTeacher = user?.roles?.includes(Role.Teacher);\r\n\tconst history = useHistory();\r\n\r\n\tif (user) {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{isStudent && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t{isTeacher && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t history.push(`/admin/groups/lessons/${lessonId}`)}\r\n\t\t\t\t\t\t\t\tloading={false}\r\n\t\t\t\t\t\t\t\tlessons={user?.additionalDataForTeacher.lessons}\r\n\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t} else {\r\n\t\treturn <>;\r\n\t}\r\n};\r\n\r\nexport default UserGeneralTab;\r\n","import { Row, Col, Typography } from 'antd';\r\nimport { GetUserResponse } from 'App/api/endpoints/users/responses';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ninterface UserSecurityTabProps {\r\n\tuser: GetUserResponse;\r\n}\r\n\r\nconst UserSecurityTab = ({ user }: UserSecurityTabProps) => {\r\n\tconst { t } = useTranslation(['page', 'form', 'common']);\r\n\r\n\tif (user) {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\t\t\t\t\t{user.lockoutEnabled && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{t('models:User.Labels.LockoutEnd')}:{' '}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{user.lockoutEndUtc\r\n\t\t\t\t\t\t\t\t\t\t? dateTimeUtils.getLocalDateTimeFromDateTimeOffsetString(user.lockoutEndUtc)\r\n\t\t\t\t\t\t\t\t\t\t: '---'}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{t('models:User.Labels.AccessFailedCount')}:{' '}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{user.accessFailedCount}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{t('models:User.Labels.TwoFactor')}: \r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{user.twoFactorEnabled\r\n\t\t\t\t\t\t\t\t\t? t('AdminPages.UsersPages.Active')\r\n\t\t\t\t\t\t\t\t\t: t('AdminPages.UsersPages.Inactive')}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t} else {\r\n\t\treturn <>;\r\n\t}\r\n};\r\n\r\nexport default UserSecurityTab;\r\n","import React, { ReactNode, useState } from 'react';\r\nimport { Card, Col, Row } from 'antd';\r\nimport { GetUserResponse } from 'App/api/endpoints/users/responses';\r\nimport { useTranslation } from 'react-i18next';\r\nimport UserGeneralTab from './userGeneralTab/UserGeneralTab';\r\nimport UserSecurityTab from './userSecurityTab/UserSecurityTab';\r\n\r\ninterface GetUserTabsProps {\r\n\tuser: GetUserResponse;\r\n\twalletLoading: boolean;\r\n\tshowWalletTransactionFormModal: () => void;\r\n}\r\n\r\nexport const GetUserTabs = ({ user, showWalletTransactionFormModal, walletLoading }: GetUserTabsProps) => {\r\n\tinterface AvailableTab {\r\n\t\tkey: string;\r\n\t\tcontent: ReactNode;\r\n\t\ttab: string;\r\n\t}\r\n\r\n\tconst { t } = useTranslation('page');\r\n\r\n\tconst availableTabs = [\r\n\t\t{\r\n\t\t\tkey: 'k1',\r\n\t\t\ttab: t('AdminPages.UsersPages.TabGeneral'),\r\n\t\t\tcontent: (\r\n\t\t\t\t\r\n\t\t\t),\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: 'k2',\r\n\t\t\ttab: t('AdminPages.UsersPages.TabSecurity'),\r\n\t\t\tcontent: ,\r\n\t\t},\r\n\t] as AvailableTab[];\r\n\r\n\tconst [activeTab, setActiveTab] = useState(availableTabs.find((a) => a.key === 'k1'));\r\n\r\n\tconst onTabChange = (key: string) => {\r\n\t\tsetActiveTab(availableTabs.find((a) => a.key === key));\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\tonTabChange(key);\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t{activeTab.content}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n","import { Button, Col, Form, Input, InputNumber, Row, Statistic } from 'antd';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport React, { useState } from 'react';\r\nimport { WalletTransactionFormValues } from './models/walletTransactionFormValues';\r\n\r\ninterface WalletTransactionFormProps {\r\n\tloading: boolean;\r\n\tcurrentWalletBalance: number;\r\n\tonFinish: (values: WalletTransactionFormValues) => void;\r\n}\r\n\r\nconst WalletTransactionForm = ({ loading, onFinish, currentWalletBalance }: WalletTransactionFormProps) => {\r\n\tconst { transactionValue, description } = formRules.walletTransaction;\r\n\r\n\tconst [walletBalanceAfterTransaction, setWalletBalanceAfterTransaction] = useState(currentWalletBalance);\r\n\r\n\tconst onValuesChange = (changedValues, values: WalletTransactionFormValues) => {\r\n\t\tconst transactionValue = values['transactionValue'];\r\n\r\n\t\tsetWalletBalanceAfterTransaction(currentWalletBalance + transactionValue);\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default WalletTransactionForm;\r\n","import { Modal } from 'antd';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport React from 'react';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport { WalletTransactionFormValues } from '../forms/models/walletTransactionFormValues';\r\nimport WalletTransactionForm from '../forms/WalletTransactionForm';\r\n\r\ninterface CreateWalletTransactionModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tcurrentWalletBalance: number;\r\n\tonCreate: (values: WalletTransactionFormValues) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst CreateWalletTransactionModal = ({\r\n\tvisible,\r\n\tloading,\r\n\tonCancel,\r\n\tonCreate,\r\n\tcurrentWalletBalance,\r\n}: CreateWalletTransactionModalProps) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CreateWalletTransactionModal;\r\n","import { useMediaQuery } from 'react-responsive';\r\nimport { breakpoints } from './utils/breakpoints';\r\n\r\nexport const Default = ({ children }) => {\r\n\tconst isNotMobile = useMediaQuery({ minWidth: breakpoints.md.min });\r\n\treturn isNotMobile ? children : null;\r\n};\r\n","import { useMediaQuery } from 'react-responsive';\r\nimport { breakpoints } from './utils/breakpoints';\r\n\r\nexport const Mobile = ({ children }) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\treturn isMobile ? children : null;\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport { RouteComponentProps, useHistory } from 'react-router';\r\nimport { useSelector, useDispatch } from 'react-redux';\r\nimport { Avatar, Badge, Button, Col, notification, Result, Row, Typography } from 'antd';\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { cleanUpSelectedUser, cleanUpUserStatus } from 'App/pages/adminPages/usersPages/state/users.slice';\r\nimport { ArrowLeftOutlined, LockOutlined, UserOutlined } from '@ant-design/icons';\r\nimport { GetUserTabs } from './components/getUserTabs/GetUserTabs';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { createWalletTransaction, getUser } from '../../state/users.thunk';\r\nimport './styles/UserDetailsContainer.less';\r\nimport CreateWalletTransactionModal from '../createWalletTransaction/modals/CreateWalletTransactionModal';\r\nimport { WalletTransactionFormValues } from '../createWalletTransaction/forms/models/walletTransactionFormValues';\r\nimport { CreateWalletTransactionRequest } from 'App/api/endpoints/wallets/requests';\r\nimport LoadingScreen from 'App/components/common/loadingScreen/LoadingScreen';\r\nimport { Default } from 'App/components/common/responsive/Default';\r\nimport { Mobile } from 'App/components/common/responsive/Mobile';\r\n\r\ninterface RouteParams {\r\n\tuserId: string;\r\n}\r\n\r\ninterface UserDetailsContainerProps extends RouteComponentProps {}\r\n\r\nconst { Loading } = StatusType;\r\n\r\nconst UserDetailsContainer = ({ match }: UserDetailsContainerProps) => {\r\n\tconst userId = match.params.userId;\r\n\tconst { t } = useTranslation(['page', 'common']);\r\n\r\n\tconst history = useHistory();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst user = useSelector((state: RootState) => state.pages.admin.users.selectedUser);\r\n\tconst usersStatus = useSelector((state: RootState) => state.pages.admin.users.status);\r\n\r\n\tconst [walletTransactionFormModalVisible, setWalletTransactionFormModalVisible] = useState(false);\r\n\r\n\tconst currentWalletBalance =\r\n\t\tuser?.walletTransactionForStudent?.length > 0 ? user.walletTransactionForStudent[0].balanceAfterTransaction : 0;\r\n\tconst walletLoading =\r\n\t\tusersStatus.createWalletTransaction === StatusType.Loading || usersStatus.getUser === StatusType.Loading;\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!user) {\r\n\t\t\tdispatch(getUser(userId));\r\n\t\t}\r\n\t}, [dispatch, user, userId]);\r\n\r\n\tuseEffect(() => {\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpUserStatus());\r\n\t\t\tdispatch(cleanUpSelectedUser());\r\n\t\t};\r\n\t}, [dispatch]);\r\n\r\n\tconst showWalletTransactionFormModal = () => {\r\n\t\tsetWalletTransactionFormModalVisible(true);\r\n\t};\r\n\r\n\tconst hideWalletTransactionFormModal = () => {\r\n\t\tsetWalletTransactionFormModalVisible(false);\r\n\t};\r\n\r\n\tconst onCreateWalletTransaction = (values: WalletTransactionFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Dodano nową transakcję',\r\n\t\t\t});\r\n\t\t\tdispatch(getUser(userId));\r\n\t\t\thideWalletTransactionFormModal();\r\n\t\t};\r\n\r\n\t\tconst request: CreateWalletTransactionRequest = {\r\n\t\t\tstudentId: user?.id,\r\n\t\t\t...values,\r\n\t\t};\r\n\r\n\t\tdispatch(createWalletTransaction(request, onSuccess));\r\n\t};\r\n\r\n\treturn usersStatus.getUser === Loading ? (\r\n\t\t\r\n\t) : user ? (\r\n\t\t<>\r\n\t\t\t\r\n\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t} />\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t} />\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t : 0}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{user.firstName} {user.lastName}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{user.email}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t) : (\r\n\t\t history.push('/')}>\r\n\t\t\t\t\t{t('common:Actions.BackToHome')}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default UserDetailsContainer;\r\n","import React from 'react';\r\nimport { Route, Switch } from 'react-router';\r\nimport UsersTableContainer from './views/usersTable/UsersTableContainer';\r\nimport UserDetailsContainer from './views/userDetails/UserDetailsContainer';\r\n\r\nconst AdminUsersPages = () => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AdminUsersPages;\r\n","import React from 'react';\r\n\r\nimport { Card, Col, Row } from 'antd';\r\nimport { DownloadOutlined } from '@ant-design/icons';\r\n\r\nimport { LogForGetLogsFilesResponse } from 'App/api/endpoints/logs/responses';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport './styles/LogCard.less';\r\n\r\ninterface LogCardProps {\r\n\tlog: LogForGetLogsFilesResponse;\r\n\tactiveCardIndex: number;\r\n\tindex: number;\r\n\tonCardClick: (name: string, index: number) => () => void;\r\n\tonDownloadClick: (name: string) => () => void;\r\n}\r\n\r\nconst LogCard = ({ log, activeCardIndex, index, onCardClick, onDownloadClick }: LogCardProps) => {\r\n\tlet cardClasses = activeCardIndex === index ? 'log-card log-card--active' : 'log-card';\r\n\tconst { i18n } = useTranslation();\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{new Date(log.date).toLocaleString(i18n.language, {\r\n\t\t\t\t\t\t\tmonth: 'short',\r\n\t\t\t\t\t\t\tday: '2-digit',\r\n\t\t\t\t\t\t\tyear: 'numeric',\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\tclassName={cardClasses}\r\n\t\t\tonClick={onCardClick(log.name, index)}\r\n\t\t\tkey={index}\r\n\t\t>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default LogCard;\r\n","import React from 'react';\r\nimport { Card, Row } from 'antd';\r\nimport { DownloadOutlined } from '@ant-design/icons';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nimport './styles/AllLogsCard.less';\r\n\r\ninterface AllLogsCardProps {\r\n\tonDownloadClick: () => void;\r\n}\r\n\r\nconst AllLogsCard = ({ onDownloadClick }: AllLogsCardProps) => {\r\n\tconst { t } = useTranslation('page');\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AllLogsCard;\r\n","import React from 'react';\r\n\r\nimport { PageHeader } from 'antd';\r\n\r\ninterface PageTitleProps {\r\n\ttitle: string;\r\n\ticon?: React.ReactNode;\r\n}\r\n\r\nconst PageTitle = (props: PageTitleProps) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t{props.icon ? (\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default PageTitle;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nimport { FileSearchOutlined } from '@ant-design/icons';\r\nimport { Row, Col } from 'antd';\r\nimport { Input } from 'antd';\r\n\r\nimport { LogForGetLogsFilesResponse } from 'App/api/endpoints/logs/responses';\r\nimport LogCard from './components/logCard/LogCard';\r\n\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { useTranslation } from 'react-i18next';\r\nimport AllLogsCard from './components/allLogsCard/AllLogsCard';\r\n\r\nimport './styles/AllLogsContainer.less';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { getLogsFiles, getLogsFileContent, downloadLogsFile, downloadAllLogsFiles } from '../../state/logs.thunk';\r\nimport PageTitle from 'App/components/common/pageTitle/PageTitle';\r\nimport LoadingScreen from 'App/components/common/loadingScreen/LoadingScreen';\r\n\r\nconst { TextArea } = Input;\r\nconst { Loading } = StatusType;\r\n\r\nconst AllLogsContainer = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst { t } = useTranslation('page');\r\n\r\n\tconst { logs, logContent, status } = useSelector((state: RootState) => state.pages.admin.logs);\r\n\r\n\tconst [fileName, setFileName] = useState('');\r\n\tconst [activeCardIndex, setActiveCardIndex] = useState(-1);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(getLogsFiles());\r\n\t}, [dispatch]);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(getLogsFileContent(fileName));\r\n\t}, [dispatch, fileName]);\r\n\r\n\tconst showLogsFileContent = (fileName: string) => {\r\n\t\tsetFileName(fileName);\r\n\t};\r\n\r\n\tconst handleLogCardClick = (name: string, index: number) => {\r\n\t\treturn () => {\r\n\t\t\tshowLogsFileContent(name);\r\n\t\t\tsetActiveCardIndex(index);\r\n\t\t};\r\n\t};\r\n\r\n\tconst handleDownloadClick = (name: string) => {\r\n\t\treturn () => {\r\n\t\t\tdispatch(downloadLogsFile(name));\r\n\t\t};\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t} />\r\n\t\t\t{status.getLogsFiles === Loading ? (\r\n\t\t\t\t\r\n\t\t\t) : (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{status.getLogsFileContent === Loading ? (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t dispatch(downloadAllLogsFiles('allLogs'))} />\r\n\t\t\t\t\t\t{logs.map((log: LogForGetLogsFilesResponse, index: number) => {\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t})}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default AllLogsContainer;\r\n","import {\r\n\tgetLogsFilesStart,\r\n\tgetLogsFilesSuccess,\r\n\tgetLogsFilesFailure,\r\n\tgetLogsFileContentStart,\r\n\tgetLogsFileContentSuccess,\r\n\tgetLogsFileContentFailure,\r\n\tdownloadLogsFileStart,\r\n\tdownloadLogsFileSuccess,\r\n\tdownloadLogsFileFailure,\r\n\tdownloadAllLogsFilesStart,\r\n\tdownloadAllLogsFilesSuccess,\r\n\tdownloadAllLogsFilesFailure,\r\n\tcleanUpLogStatusStart,\r\n} from './logs.slice';\r\nimport agent from 'App/api/agent/agent';\r\nimport { AppThunk } from 'App/globalState/store';\r\n\r\nexport const getLogsFiles = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getLogsFilesStart());\r\n\tagent.Logs.getLogsFiles()\r\n\t\t.then((response) => dispatch(getLogsFilesSuccess(response)))\r\n\t\t.catch(() => dispatch(getLogsFilesFailure()));\r\n};\r\n\r\nexport const getLogsFileContent =\r\n\t(logName: string): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getLogsFileContentStart());\r\n\t\tagent.Logs.getLogsFileContent(logName)\r\n\t\t\t.then((response) => dispatch(getLogsFileContentSuccess(response)))\r\n\t\t\t.catch(() => dispatch(getLogsFileContentFailure()));\r\n\t};\r\n\r\nexport const downloadLogsFile =\r\n\t(logName: string): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(downloadLogsFileStart());\r\n\t\tagent.Logs.downloadLogsFile(logName)\r\n\t\t\t.then(() => dispatch(downloadLogsFileSuccess()))\r\n\t\t\t.catch(() => dispatch(downloadLogsFileFailure()));\r\n\t};\r\n\r\nexport const downloadAllLogsFiles =\r\n\t(zipName: string): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(downloadAllLogsFilesStart());\r\n\t\tagent.Logs.downloadAllLogsFiles(zipName)\r\n\t\t\t.then(() => dispatch(downloadAllLogsFilesSuccess()))\r\n\t\t\t.catch(() => dispatch(downloadAllLogsFilesFailure()));\r\n\t};\r\n\r\nexport const cleanUpLogStatus = (): AppThunk => async (dispatch) => {\r\n\tdispatch(cleanUpLogStatusStart());\r\n};\r\n","import React from 'react';\r\n\r\nimport { Route, Switch } from 'react-router';\r\nimport AllLogsContainer from './views/allLogs/AllLogsContainer';\r\n\r\nconst AdminLogsPages = () => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AdminLogsPages;\r\n","import React from 'react';\r\nimport { Form, Input, Button, DatePicker } from 'antd';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { MessageFormValues } from './utils/messageFormValues';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\n\r\ninterface MaintenanceMessageFormProps {\r\n\tonFinish: (values: MessageFormValues) => void;\r\n\tinitialValues?: MessageFormValues;\r\n\tloading: boolean;\r\n}\r\n\r\nconst MessageForm = ({ initialValues, loading, onFinish }: MaintenanceMessageFormProps) => {\r\n\tconst { t } = useTranslation(['form', 'common']);\r\n\tconst { startDate, endDate, description } = formRules.maintenanceMessages;\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MessageForm;\r\n","import React from 'react';\r\nimport { Modal } from 'antd';\r\nimport MessageForm from '../../forms/MessageForm';\r\nimport { MessageFormValues } from '../../forms/utils/messageFormValues';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\nexport interface CreateMessageModalProps {\r\n\tshowModal: boolean;\r\n\tloading: boolean;\r\n\tonOk: (values: MessageFormValues) => void;\r\n\tonCancel: Function;\r\n}\r\n\r\nconst CreateMessageModal = ({ onCancel, onOk, showModal, loading }: CreateMessageModalProps) => {\r\n\tconst { t } = useTranslation();\r\n\r\n\treturn (\r\n\t\t onCancel()}\r\n\t\t\tmaskClosable={false}\r\n\t\t\tdestroyOnClose\r\n\t\t>\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CreateMessageModal;\r\n","import {\r\n\tgetMessagesStart,\r\n\tgetMessagesSuccess,\r\n\tgetMessageStart,\r\n\tgetMessageSuccess,\r\n\tgetMessageFailure,\r\n\tdeleteMessageStart,\r\n\tdeleteMessageSuccess,\r\n\tdeleteMessageFailure,\r\n\tcreateMessageStart,\r\n\tcreateMessageSuccess,\r\n\tcreateMessageFailure,\r\n\tupdateMessageStart,\r\n\tupdateMessageSuccess,\r\n\tupdateMessageFailure,\r\n\tgetMessagesFailure,\r\n} from './maintenanceMessages.slice';\r\nimport {\r\n\tCreateMessageRequest,\r\n\tGetMessagesRequest,\r\n\tUpdateMessageRequest,\r\n} from 'App/api/endpoints/maintenanceMessages/requests';\r\nimport agent from 'App/api/agent/agent';\r\nimport { IPagination } from 'App/types/pagination/pagination';\r\nimport { AppThunk } from 'App/globalState/store';\r\n\r\nexport const getAllMessages = (params: IPagination): AppThunk => async (dispatch) => {\r\n\tgetMessages({ ...params, messagesType: 'All' });\r\n};\r\n\r\nexport const getUpcomingMessages = (params: IPagination): AppThunk => async (dispatch) => {\r\n\tgetMessages({ ...params, messagesType: 'Upcoming' });\r\n};\r\n\r\nexport const getCurrentMessages = (params: IPagination): AppThunk => async (dispatch) => {\r\n\tgetMessages({ ...params, messagesType: 'Current' });\r\n};\r\n\r\nexport const getMessages = (params: GetMessagesRequest): AppThunk => async (dispatch) => {\r\n\tdispatch(getMessagesStart());\r\n\tagent.MaintenanceMessages.getMessages(params)\r\n\t\t.then((response) => dispatch(getMessagesSuccess(response)))\r\n\t\t.catch(() => dispatch(getMessagesFailure()));\r\n};\r\n\r\nexport const getMessage = (messageId: number): AppThunk => async (dispatch) => {\r\n\tdispatch(getMessageStart());\r\n\tagent.MaintenanceMessages.getMessage(messageId)\r\n\t\t.then((response) => dispatch(getMessageSuccess(response)))\r\n\t\t.catch(() => dispatch(getMessageFailure()));\r\n};\r\n\r\nexport const deleteMessage = (messageId: number, onSuccess?: () => void): AppThunk => async (dispatch) => {\r\n\tdispatch(deleteMessageStart());\r\n\tagent.MaintenanceMessages.deleteMessage(messageId)\r\n\t\t.then(() => {\r\n\t\t\tif (onSuccess) {\r\n\t\t\t\tonSuccess();\r\n\t\t\t}\r\n\t\t\tdispatch(deleteMessageSuccess(messageId));\r\n\t\t})\r\n\t\t.catch(() => dispatch(deleteMessageFailure()));\r\n};\r\n\r\nexport const createMessage = (messageToCreate: CreateMessageRequest, onSuccess?: () => void): AppThunk => async (\r\n\tdispatch\r\n) => {\r\n\tdispatch(createMessageStart());\r\n\tagent.MaintenanceMessages.createMessage(messageToCreate)\r\n\t\t.then(() => {\r\n\t\t\tdispatch(createMessageSuccess());\r\n\t\t\tif (onSuccess) {\r\n\t\t\t\tonSuccess();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(() => dispatch(createMessageFailure()));\r\n};\r\n\r\nexport const updateMessage = (\r\n\tmessageId: number,\r\n\tmessageToUpdate: UpdateMessageRequest,\r\n\tonSuccess?: () => void\r\n): AppThunk => async (dispatch) => {\r\n\tdispatch(updateMessageStart());\r\n\tagent.MaintenanceMessages.updateMessage(messageId, messageToUpdate)\r\n\t\t.then((res) => {\r\n\t\t\tdispatch(updateMessageSuccess(res));\r\n\t\t\tif (onSuccess) {\r\n\t\t\t\tonSuccess();\r\n\t\t\t}\r\n\t\t})\r\n\t\t.catch(() => dispatch(updateMessageFailure()));\r\n};\r\n","import React from 'react';\r\nimport { Modal } from 'antd';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { MessageFormValues } from '../../forms/utils/messageFormValues';\r\nimport MessageForm from '../../forms/MessageForm';\r\n\r\nexport interface CreateMessageModalProps {\r\n\tshowModal: boolean;\r\n\tinitialValues: MessageFormValues;\r\n\tloading: boolean;\r\n\tonOk: (values: MessageFormValues) => void;\r\n\tonCancel: Function;\r\n}\r\n\r\nconst UpdateMessageModal = ({ onCancel, onOk, showModal, loading, initialValues }: CreateMessageModalProps) => {\r\n\tconst { t } = useTranslation();\r\n\r\n\tif (!initialValues) return <>;\r\n\r\n\treturn (\r\n\t\t onCancel()}\r\n\t\t\tmaskClosable={false}\r\n\t\t\tdestroyOnClose\r\n\t\t>\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default UpdateMessageModal;\r\n","import { PlusOutlined, SearchOutlined } from '@ant-design/icons';\r\nimport { Form, Row, Col, Button, Input } from 'antd';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\ninterface MessagesSearchFormProps {\r\n\tloading: boolean;\r\n\thandleSearch: (values: MessagesSearchFormValues) => void;\r\n\tsetCreateMessageModalVisibility: (visible: boolean) => void;\r\n\tsetMessagesType: (messageType: 'All' | 'Upcoming' | 'Current') => void;\r\n}\r\n\r\nconst MessagesSearchForm = ({\r\n\tloading,\r\n\thandleSearch,\r\n\tsetCreateMessageModalVisibility,\r\n\tsetMessagesType,\r\n}: MessagesSearchFormProps) => {\r\n\tconst { t } = useTranslation();\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t <>{getLocalDateTimeString(startDate)}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t <>{getLocalDateTimeString(endDate)}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t
{description}
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default MessagesTable;\r\n","import React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { Row, Col, notification, Modal } from 'antd';\r\nimport { ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport moment from 'moment';\r\n\r\nimport { StatusType } from 'App/types/requestStatus';\r\nimport { useTranslation } from 'react-i18next';\r\nimport CreateMessageModal from '../createMessage/modals/CreateMessageModal';\r\nimport { MessageFormValues } from '../forms/utils/messageFormValues';\r\nimport { CreateMessageRequest, UpdateMessageRequest } from 'App/api/endpoints/maintenanceMessages/requests';\r\nimport { MessageForGetMessagesResponse } from 'App/api/endpoints/maintenanceMessages/responses/getMessagesResponse';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { createMessage, deleteMessage, getMessages, updateMessage } from '../../state/maintenanceMessages.thunk';\r\nimport { cleanUpMessagesTable } from '../../state/maintenanceMessages.slice';\r\nimport UpdateMessageModal from '../updateMessage/modals/UpdateMessageModal';\r\nimport { paginationUtils } from 'App/common/utils/pagination.utils';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport MessagesTable from './components/messagesTable/MessagesTable';\r\n\r\nconst { Loading } = StatusType;\r\nconst { defaultPaginationValues } = paginationUtils;\r\n\r\nconst { getLocalDateTime } = dateTimeUtils;\r\n\r\nconst MessagesTableContainer = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst { t } = useTranslation();\r\n\r\n\tconst messages = useSelector((state: RootState) => state.pages.admin.messages.messages);\r\n\tconst messagesStatus = useSelector((state: RootState) => state.pages.admin.messages.status);\r\n\tconst getMessagesParams = useSelector((state: RootState) => state.pages.admin.messages.getMessagesParams);\r\n\r\n\tconst [messagesType, setMessagesType] = useState<'All' | 'Upcoming' | 'Current'>('All');\r\n\tconst [selectedMessage, setSelectedMessage] = useState(null);\r\n\tconst [createMessageModalVisibility, setCreateMessageModalVisibility] = useState(false);\r\n\tconst [updateMessageModalVisibility, setUpdateMessageModalVisibility] = useState(false);\r\n\r\n\tconst tableLoading =\r\n\t\tmessagesStatus.getMessages === Loading ||\r\n\t\tmessagesStatus.createMessage === Loading ||\r\n\t\tmessagesStatus.updateMessage === Loading ||\r\n\t\tmessagesStatus.deleteMessage === Loading;\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(getMessages({ ...getMessagesParams, messagesType: messagesType }));\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, [dispatch, messagesType]);\r\n\r\n\tuseEffect(() => {\r\n\t\t// pierwsze uruchomienie z domyślnie ustawionymi filtrami i orderby\r\n\t\tdispatch(\r\n\t\t\tgetMessages({\r\n\t\t\t\t...defaultPaginationValues,\r\n\t\t\t\tmessagesType: 'All',\r\n\t\t\t\torderBy: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: 'startDate',\r\n\t\t\t\t\t\tdirection: 'Ascending',\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpMessagesTable());\r\n\t\t};\r\n\t}, [dispatch]);\r\n\r\n\tconst onCreateMessageModalOk = (values: MessageFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\tdescription: t('AdminPages.MaintenanceMessagesPages.CreateMessageSuccess'),\r\n\t\t\t});\r\n\t\t\tsetCreateMessageModalVisibility(false);\r\n\t\t\tdispatch(getMessages(getMessagesParams));\r\n\t\t};\r\n\r\n\t\tlet request: CreateMessageRequest = {\r\n\t\t\tdescription: values.description,\r\n\t\t\tstartDateInUtc: moment.utc(values.startDate).toJSON(),\r\n\t\t\tendDateInUtc: moment.utc(values.endDate).toJSON(),\r\n\t\t};\r\n\t\tdispatch(createMessage(request, onSuccess));\r\n\t};\r\n\r\n\tconst onUpdateMessageModalOk = (values: MessageFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\tdescription: t('AdminPages.MaintenanceMessagesPages.UpdateMessageSuccess'),\r\n\t\t\t});\r\n\t\t\tsetUpdateMessageModalVisibility(false);\r\n\t\t\tdispatch(getMessages(getMessagesParams));\r\n\t\t};\r\n\r\n\t\tlet request: UpdateMessageRequest = {\r\n\t\t\tdescription: values.description,\r\n\t\t\tstartDateInUtc: moment.utc(values.startDate).toJSON(),\r\n\t\t\tendDateInUtc: moment.utc(values.endDate).toJSON(),\r\n\t\t};\r\n\t\tdispatch(updateMessage(selectedMessage?.id, request, onSuccess));\r\n\t};\r\n\r\n\tconst onUpdateMessageClick = (message: MessageForGetMessagesResponse) => {\r\n\t\tsetSelectedMessage(message);\r\n\t\tsetUpdateMessageModalVisibility(true);\r\n\t};\r\n\r\n\tconst onDeleteMessage = (message: MessageForGetMessagesResponse) => {\r\n\t\tModal.confirm({\r\n\t\t\ttitle: `${t('AdminPages.MaintenanceMessagesPages.ConfirmMessageDeletionTitle')}`,\r\n\t\t\ticon: ,\r\n\t\t\tcontent: t('common:Warnings.ActionWillBeIrreversible'),\r\n\t\t\tokText: t('common:Actions.Yes'),\r\n\t\t\tokType: 'primary',\r\n\t\t\tcancelText: t('common:Actions.No'),\r\n\t\t\tonOk() {\r\n\t\t\t\tconst onSucces = () => {\r\n\t\t\t\t\tnotification.success({\r\n\t\t\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\t\t\tdescription: t('AdminPages.MaintenanceMessagesPages.SuccessDeleteDescription'),\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdispatch(getMessages(getMessagesParams));\r\n\t\t\t\t};\r\n\t\t\t\tdispatch(deleteMessage(message.id, onSucces));\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t setCreateMessageModalVisibility(false)}\r\n\t\t\t\tonOk={onCreateMessageModalOk}\r\n\t\t\t\tshowModal={createMessageModalVisibility}\r\n\t\t\t/>\r\n\t\t\t setUpdateMessageModalVisibility(false)}\r\n\t\t\t\tonOk={onUpdateMessageModalOk}\r\n\t\t\t\tshowModal={updateMessageModalVisibility}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MessagesTableContainer;\r\n","import React from 'react';\r\n\r\nimport { Route, Switch } from 'react-router';\r\nimport MessagesTableContainer from './views/messagesTable/MessagesTableContainer';\r\n\r\nconst AdminMessagesPages = () => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AdminMessagesPages;\r\n","import React, { useEffect, useState } from 'react';\r\n\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport { Menu } from 'antd';\r\nimport {\r\n\tUserOutlined,\r\n\tFileTextOutlined,\r\n\tIssuesCloseOutlined,\r\n\tTagsOutlined,\r\n\tTeamOutlined,\r\n\tFormOutlined,\r\n} from '@ant-design/icons';\r\nimport { useTranslation } from 'react-i18next';\r\nimport Role from 'App/types/role';\r\n\r\nconst AdminNavbarContainer = () => {\r\n\tconst { t } = useTranslation('page');\r\n\r\n\tconst location = useLocation();\r\n\r\n\tinterface NavbarItems {\r\n\t\tkey: string;\r\n\t\tsubkeys: string[];\r\n\t}\r\n\r\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\tconst navbarItems = [\r\n\t\t{\r\n\t\t\tkey: 'admin/users',\r\n\t\t\tsubkeys: [\r\n\t\t\t\t'admin-users-fallback',\r\n\t\t\t\t`/admin/users?role=${Role.Student}`,\r\n\t\t\t\t`/admin/users?role=${Role.Teacher}`,\r\n\t\t\t\t`/admin/users?role=${Role.FacilityCaretaker}`,\r\n\t\t\t\t`/admin/users?role=${Role.Admin}`,\r\n\t\t\t\t'/admin/users/create',\r\n\t\t\t],\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: 'admin/courses',\r\n\t\t\tsubkeys: ['admin-courses-fallback', '/admin/courses'],\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: 'admin/lesson-topics',\r\n\t\t\tsubkeys: ['admin-lesson-topics-fallback', '/admin/lesson-topics'],\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: 'admin/logs',\r\n\t\t\tsubkeys: ['/admin/logs'],\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: 'admin/maintenance-messages',\r\n\t\t\tsubkeys: ['/admin/maintenance-messages'],\r\n\t\t},\r\n\t\t{\r\n\t\t\tkey: 'admin/groups',\r\n\t\t\tsubkeys: ['admin-groups-fallback', '/admin/groups'],\r\n\t\t},\r\n\t] as NavbarItems[];\r\n\r\n\tconst [activeNavbarItemKey, setActiveNavbarItemKey] = useState('');\r\n\tconst [activeSubKey, setActiveSubKey] = useState('');\r\n\tconst [loading, setLoading] = useState(true);\r\n\r\n\t// ustawienie automatycznego mapowania ścieżki URL na rozwinięcie SubMenu oraz zaznaczenie Menu.Itema\r\n\tuseEffect(() => {\r\n\t\tsetLoading(true);\r\n\t\tconst navbarItem = navbarItems.find((navbarItem) =>\r\n\t\t\t`${location.pathname}${location.search}`.includes(navbarItem.key)\r\n\t\t);\r\n\t\tsetActiveNavbarItemKey(navbarItem.key);\r\n\r\n\t\tif (navbarItem) {\r\n\t\t\tconst subKey = navbarItem.subkeys.find((subkey) =>\r\n\t\t\t\tsubkey.includes(`${location.pathname}${location.search}`)\r\n\t\t\t);\r\n\t\t\tif (subKey === undefined) {\r\n\t\t\t\tsetActiveSubKey(navbarItem.subkeys[0]);\r\n\t\t\t} else {\r\n\t\t\t\tsetActiveSubKey(subKey);\r\n\t\t\t}\r\n\t\t}\r\n\t\tsetLoading(false);\r\n\t}, [navbarItems, location.pathname, location.search]);\r\n\r\n\tconst usersSubMenu = (\r\n\t\t} title={t('AdminPages.AdminLayout.Users')}>\r\n\t\t\t\r\n\t\t\t\t{'Studenci'}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{'Nauczyciele'}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{'Opiekuni placówek'}\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t{'Administratorzy'}\r\n\t\t\t\r\n\t\t\t\r\n\t);\r\n\r\n\tconst coursesSubMenu = (\r\n\t\t} title={'Kursy'}>\r\n\t\t\t\r\n\t\t\t\t{'Lista kursów'}\r\n\t\t\t\r\n\t\t\t\r\n\t);\r\n\r\n\tconst lessonTopicsSubMenu = (\r\n\t\t} title={'Tematy lekcji'}>\r\n\t\t\t\r\n\t\t\t\t{'Lista tematów'}\r\n\t\t\t\r\n\t\t\t\r\n\t);\r\n\r\n\tconst logsSubMenu = (\r\n\t\t} title={t('AdminPages.AdminLayout.Logs')}>\r\n\t\t\t\r\n\t\t\t\t{t('AdminPages.AdminLayout.LogList')}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n\r\n\tconst maintenanceMessagesMenu = (\r\n\t\t}\r\n\t\t\ttitle={t('AdminPages.AdminLayout.MaintenanceMessages')}\r\n\t\t>\r\n\t\t\t\r\n\t\t\t\t{t('AdminPages.AdminLayout.MaintenanceMessagesList')}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n\r\n\tconst groupsSubMenu = (\r\n\t\t} title={'Grupy'}>\r\n\t\t\t\r\n\t\t\t\t{'Lista grup'}\r\n\t\t\t\r\n\t\t\t\r\n\t);\r\n\r\n\treturn (\r\n\t\t!loading && (\r\n\t\t\t\r\n\t\t\t\t{usersSubMenu}\r\n\t\t\t\t{coursesSubMenu}\r\n\t\t\t\t{groupsSubMenu}\r\n\t\t\t\t{lessonTopicsSubMenu}\r\n\t\t\t\t{logsSubMenu}\r\n\t\t\t\t{maintenanceMessagesMenu}\r\n\t\t\t\r\n\t\t)\r\n\t);\r\n};\r\n\r\nexport default AdminNavbarContainer;\r\n","import agent from 'App/api/agent/agent';\r\nimport { CreateCourseRequest, GetCoursesRequest, UpdateCourseRequest } from 'App/api/endpoints/courses/requests';\r\nimport { AppThunk } from 'App/globalState/store';\r\nimport {\r\n\tgetCoursesStart,\r\n\tgetCoursesSuccess,\r\n\tgetCoursesFailure,\r\n\tgetCourseFailure,\r\n\tgetCourseStart,\r\n\tgetCourseSuccess,\r\n\tcreateCourseFailure,\r\n\tcreateCourseStart,\r\n\tcreateCourseSuccess,\r\n\tupdateCourseFailure,\r\n\tupdateCourseStart,\r\n\tupdateCourseSuccess,\r\n\tdeleteCourseFailure,\r\n\tdeleteCourseStart,\r\n\tdeleteCourseSuccess,\r\n} from './courses.slice';\r\n\r\nexport const getCourses =\r\n\t(body: GetCoursesRequest): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getCoursesStart());\r\n\t\tagent.Courses.getCourses(body)\r\n\t\t\t.then((response) => dispatch(getCoursesSuccess(response)))\r\n\t\t\t.catch(() => dispatch(getCoursesFailure()));\r\n\t};\r\n\r\nexport const getCourse =\r\n\t(courseId: string, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getCourseStart());\r\n\t\tagent.Courses.getCourse(courseId)\r\n\t\t\t.then((response) => {\r\n\t\t\t\tdispatch(getCourseSuccess(response));\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(getCourseFailure()));\r\n\t};\r\n\r\nexport const createCourse =\r\n\t(body: CreateCourseRequest, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(createCourseStart());\r\n\t\tagent.Courses.createCourse(body)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(createCourseSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(createCourseFailure()));\r\n\t};\r\n\r\nexport const updateCourse =\r\n\t(courseId: string, body: UpdateCourseRequest, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(updateCourseStart());\r\n\t\tagent.Courses.updateCourse(courseId, body)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(updateCourseSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(updateCourseFailure()));\r\n\t};\r\n\r\nexport const deleteCourse =\r\n\t(courseId: string, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(deleteCourseStart());\r\n\t\tagent.Courses.deleteCourse(courseId)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(deleteCourseSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(deleteCourseFailure()));\r\n\t};\r\n","import { Descriptions, Tag } from 'antd';\r\nimport { GetCourseResponse } from 'App/api/endpoints/courses/responses';\r\nimport React from 'react';\r\n\r\ninterface CourseBasicInfoProps {\r\n\tcourse: GetCourseResponse;\r\n}\r\n\r\nconst CourseBasicInfo = ({ course }: CourseBasicInfoProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t{course.name}\r\n\t\t\t\r\n\t\t\t\t{course.costGrossPerLessonInPln.toFixed(2)} zł\r\n\t\t\t\r\n\t\t\t{course.defaultNumberOfLessonsInCourse}\r\n\t\t\t\r\n\t\t\t\t{course.isDeleted ? Usunięty : Aktywny}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CourseBasicInfo;\r\n","import { Col, PageHeader, Row } from 'antd';\r\nimport React from 'react';\r\nimport { useHistory } from 'react-router';\r\n\r\ninterface CourseDetailsHeaderProps {\r\n\tcourseName: string;\r\n}\r\n\r\nconst CourseDetailsHeader = ({ courseName }: CourseDetailsHeaderProps) => {\r\n\tconst history = useHistory();\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CourseDetailsHeader;\r\n","import { Col, Row, Table, Tag } from 'antd';\r\nimport Column from 'antd/lib/table/Column';\r\nimport { GroupForGetCourseResponse, UserForGroupForGetCourseResponse } from 'App/api/endpoints/courses/responses';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport { DayOfWeekDict } from 'App/common/utils/dayOfWeek';\r\nimport React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\ninterface CourseGroupsTableProps {\r\n\tdataSource: GroupForGetCourseResponse[];\r\n}\r\n\r\nconst { getLocalTimeStringFromTimeBasedOnDate } = dateTimeUtils;\r\n\r\nconst CourseGroupsTable = ({ dataSource }: CourseGroupsTableProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t 0}\r\n\t\t\t\t\tpagination={false}\r\n\t\t\t\t>\r\n\t\t\t\t\t (\r\n\t\t\t\t\t\t\t{name}\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t (\r\n\t\t\t\t\t\t\t<>{`${numberOfParticipants}/${maxParticipants}`}\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t `${cost.toFixed()} zł`}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t <>{DayOfWeekDict[value]}}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t (\r\n\t\t\t\t\t\t\t<>{`${getLocalTimeStringFromTimeBasedOnDate(\r\n\t\t\t\t\t\t\t\tlessonTimeStartUtc,\r\n\t\t\t\t\t\t\t\tcreatedAtUtc\r\n\t\t\t\t\t\t\t)}-${getLocalTimeStringFromTimeBasedOnDate(lessonTimeEndUtc, createdAtUtc)}`}\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t (\r\n\t\t\t\t\t\t\t{`${lastName} ${firstName}`}\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\tisActive ? Aktywna : Nieaktywna\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t <>{isDeleted ? 'Tak' : 'Nie'}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CourseGroupsTable;\r\n","import { Button, Card, Col, Result, Row } from 'antd';\r\nimport LoadingScreen from 'App/components/common/loadingScreen/LoadingScreen';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RouteComponentProps, useHistory } from 'react-router';\r\nimport { cleanUpSelectedCourse } from '../../state/courses.slice';\r\nimport { getCourse } from '../../state/courses.thunk';\r\nimport CourseBasicInfo from './components/CourseBasicInfo';\r\nimport CourseDetailsHeader from './components/CourseDetailsHeader';\r\nimport CourseGroupsTable from './components/CourseGroupsTable';\r\n\r\ninterface RouteParams {\r\n\tcourseId: string;\r\n}\r\n\r\ninterface CourseDetailsContainerProps extends RouteComponentProps {}\r\n\r\nconst { Loading, Success } = StatusType;\r\n\r\nconst CourseDetailsContainer = ({ match }: CourseDetailsContainerProps) => {\r\n\tconst courseId = match.params.courseId;\r\n\r\n\tconst history = useHistory();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst selectedCourse = useSelector((state: RootState) => state.pages.admin.courses.selectedCourse);\r\n\tconst getCourseStatus = useSelector((state: RootState) => state.pages.admin.courses.status.getCourse);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!selectedCourse) {\r\n\t\t\tdispatch(getCourse(courseId));\r\n\t\t}\r\n\t}, [dispatch, selectedCourse, courseId]);\r\n\r\n\tuseEffect(() => {\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpSelectedCourse());\r\n\t\t};\r\n\t}, [dispatch]);\r\n\r\n\tif (getCourseStatus === Loading) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t} else if (getCourseStatus === Success && selectedCourse) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t} else {\r\n\t\treturn (\r\n\t\t\t history.push('/')}>\r\n\t\t\t\t\t\tStrona główna\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport default CourseDetailsContainer;\r\n","import { Button, Col, Form, Input, InputNumber, Row } from 'antd';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport React from 'react';\r\nimport { CourseFormValues } from './models/courseFormValues';\r\n\r\ninterface CourseFormProps {\r\n\tloading: boolean;\r\n\tmode: 'update' | 'create';\r\n\tinitialValues?: CourseFormValues;\r\n\tonFinish: (values: CourseFormValues) => void;\r\n}\r\n\r\nconst CourseForm = ({ loading, initialValues, mode, onFinish }: CourseFormProps) => {\r\n\tconst { defaultNumberOfLessonsInCourse, costGrossPerLessonInPln, name } = formRules.course;\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default CourseForm;\r\n","import Modal from 'antd/lib/modal/Modal';\r\nimport React from 'react';\r\nimport CourseForm from '../../courseForm/CourseForm';\r\nimport { CourseFormValues } from '../../courseForm/models/courseFormValues';\r\n\r\ninterface CreateCourseModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tonCreate: (values: CourseFormValues) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst CreateCourseModal = ({ visible, loading, onCancel, onCreate }: CreateCourseModalProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CreateCourseModal;\r\n","import { Modal } from 'antd';\r\nimport { GetCourseResponse } from 'App/api/endpoints/courses/responses';\r\nimport React from 'react';\r\nimport CourseForm from '../../courseForm/CourseForm';\r\nimport { CourseFormValues } from '../../courseForm/models/courseFormValues';\r\n\r\ninterface UpdateCourseModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tinitialValues: GetCourseResponse;\r\n\tonUpdate: (values: CourseFormValues) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst UpdateCourseModal = ({ visible, loading, initialValues, onCancel, onUpdate }: UpdateCourseModalProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default UpdateCourseModal;\r\n","import { PlusOutlined, SearchOutlined } from '@ant-design/icons';\r\nimport { Row, Col, Button, Input, Form } from 'antd';\r\nimport React from 'react';\r\nimport { CoursesSearchFormValues } from './utils/coursesSearchFormValues';\r\n\r\ninterface CoursesSearchFormProps {\r\n\tloading: boolean;\r\n\thandleSearch: (values: CoursesSearchFormValues) => void;\r\n\tshowCourseFormModal: (courseId?: string) => void;\r\n}\r\n\r\nconst CoursesSearchForm = ({ loading, handleSearch, showCourseFormModal }: CoursesSearchFormProps) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tshowCourseFormModal();\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\ticon={}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{'Nowy kurs'}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t (\r\n\t\t\t\t\t\t\t{name}\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\tsortOrder={manageTableOrderBy(translatedOrderBy, 'name')}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t <>{costGrossPerLessonInPln.toFixed(2)} zł}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\t <>{isDeleted ? 'Tak' : 'Nie'}}\r\n\t\t\t\t\t\tfilters={[\r\n\t\t\t\t\t\t\t{ text: 'Tak', value: true },\r\n\t\t\t\t\t\t\t{ text: 'Nie', value: false },\r\n\t\t\t\t\t\t]}\r\n\t\t\t\t\t\tfilterMultiple={false}\r\n\t\t\t\t\t\tfilteredValue={manageTableFilters(translatedFilters, 'isDeleted')}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tif (record.isDeleted) {\r\n\t\t\t\t\t\t\t\treturn <>;\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t menuForActionDropdown(record)}\r\n\t\t\t\t\t\t\t\t\t\ttrigger={['click']}\r\n\t\t\t\t\t\t\t\t\t\tplacement='bottomCenter'\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CoursesTable;\r\n","import { ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport { Col, Modal, notification, Row } from 'antd';\r\nimport { CreateCourseRequest } from 'App/api/endpoints/courses/requests/createCourseRequest';\r\nimport { CourseForGetCoursesResponse } from 'App/api/endpoints/courses/responses';\r\nimport { paginationUtils } from 'App/common/utils/pagination.utils';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { cleanUpCoursesTable, cleanUpSelectedCourse } from '../../state/courses.slice';\r\nimport { createCourse, deleteCourse, getCourse, getCourses, updateCourse } from '../../state/courses.thunk';\r\nimport { CourseFormValues } from '../courseForm/models/courseFormValues';\r\nimport CreateCourseModal from '../createCourse/modals/CreateCourseModal';\r\nimport UpdateCourseModal from '../updateCourse/modals/UpdateCourseModal';\r\nimport CoursesTable from './components/CoursesTable';\r\n\r\nconst { Loading } = StatusType;\r\nconst { defaultPaginationValues } = paginationUtils;\r\n\r\nconst CoursesTableContainer = () => {\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst courses = useSelector((state: RootState) => state.pages.admin.courses.courses);\r\n\tconst selectedCourse = useSelector((state: RootState) => state.pages.admin.courses.selectedCourse);\r\n\tconst getCoursesParams = useSelector((state: RootState) => state.pages.admin.courses.getCoursesParams);\r\n\tconst getCoursesStatus = useSelector((state: RootState) => state.pages.admin.courses.status.getCourses);\r\n\tconst createCourseStatus = useSelector((state: RootState) => state.pages.admin.courses.status.createCourse);\r\n\tconst deleteCourseStatus = useSelector((state: RootState) => state.pages.admin.courses.status.deleteCourse);\r\n\tconst updateCourseStatus = useSelector((state: RootState) => state.pages.admin.courses.status.updateCourse);\r\n\r\n\tconst [courseFormModalVisible, setCourseFormModalVisible] = useState(false);\r\n\r\n\tuseEffect(() => {\r\n\t\t// pierwsze uruchomienie z domyślnie ustawionymi filtrami i orderby\r\n\t\tdispatch(\r\n\t\t\tgetCourses({\r\n\t\t\t\t...defaultPaginationValues,\r\n\t\t\t\tfilters: [{ field: 'isDeleted', values: ['false'] }],\r\n\t\t\t\torderBy: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: 'name',\r\n\t\t\t\t\t\tdirection: 'Ascending',\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpCoursesTable());\r\n\t\t};\r\n\t}, [dispatch]);\r\n\r\n\tconst showCourseFormModal = (courseId?: string) => {\r\n\t\tif (courseId) {\r\n\t\t\tconst onSuccess = () => {\r\n\t\t\t\tsetCourseFormModalVisible(true);\r\n\t\t\t};\r\n\r\n\t\t\tdispatch(getCourse(courseId, onSuccess));\r\n\t\t} else {\r\n\t\t\tsetCourseFormModalVisible(true);\r\n\t\t}\r\n\t};\r\n\r\n\tconst hideCourseFormModal = () => {\r\n\t\tsetCourseFormModalVisible(false);\r\n\t\tdispatch(cleanUpSelectedCourse());\r\n\t};\r\n\r\n\tconst onCreateCourse = (values: CreateCourseRequest) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Dodano nowy kurs',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getCourses({ ...getCoursesParams }));\r\n\t\t\thideCourseFormModal();\r\n\t\t};\r\n\r\n\t\tdispatch(createCourse(values, onSuccess));\r\n\t};\r\n\r\n\tconst onDeleteCourse = (courseToDelete: CourseForGetCoursesResponse) => {\r\n\t\tModal.confirm({\r\n\t\t\ttitle: `Czy na pewno chcesz usunąć kurs \"${courseToDelete.name}\"?`,\r\n\t\t\ticon: ,\r\n\t\t\tcontent: 'Wykonanie tej akcji będzie nieodwracalne',\r\n\t\t\tokText: 'Tak',\r\n\t\t\tcancelText: 'Nie',\r\n\t\t\tokType: 'primary',\r\n\t\t\tonOk() {\r\n\t\t\t\tconst onSucces = () => {\r\n\t\t\t\t\tnotification.success({\r\n\t\t\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\t\t\tdescription: 'Kurs został usunięty',\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdispatch(getCourses({ ...getCoursesParams }));\r\n\t\t\t\t};\r\n\t\t\t\tdispatch(deleteCourse(courseToDelete.id, onSucces));\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst onUpdateCourse = (values: CourseFormValues) => {\r\n\t\tconst onSucces = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Kurs został zaktualizowany',\r\n\t\t\t});\r\n\t\t\tdispatch(\r\n\t\t\t\tgetCourses({\r\n\t\t\t\t\t...getCoursesParams,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\thideCourseFormModal();\r\n\t\t};\r\n\t\tdispatch(updateCourse(selectedCourse.id, values, onSucces));\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CoursesTableContainer;\r\n","import React from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport CourseDetailsContainer from './views/courseDetails/CourseDetailsContainer';\r\nimport CoursesTableContainer from './views/coursesTable/CoursesTableContainer';\r\n\r\nconst AdminCoursesPages = () => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AdminCoursesPages;\r\n","export enum PresenceStatus {\r\n\tPresent = 'Present',\r\n\tAbsent = 'Absent',\r\n}\r\n\r\nexport const PresenceStatusDictionary = {\r\n\t[PresenceStatus.Present]: 'Obecny/a',\r\n\t[PresenceStatus.Absent]: 'Nieobecny/a',\r\n};\r\n\r\nexport const presenceStatusArray = [\r\n\t{\r\n\t\ttext: PresenceStatusDictionary[PresenceStatus.Present],\r\n\t\tvalue: PresenceStatus.Present,\r\n\t},\r\n\t{\r\n\t\ttext: PresenceStatusDictionary[PresenceStatus.Absent],\r\n\t\tvalue: PresenceStatus.Absent,\r\n\t},\r\n];\r\n","import agent from 'App/api/agent/agent';\r\nimport { GetGroupsRequest, CreateGroupRequest, UpdateGroupRequest } from 'App/api/endpoints/groups/requests';\r\nimport { UpdateGroupStudentsRequest } from 'App/api/endpoints/groups/requests/updateGroupStudentsRequest';\r\nimport { CreateHomeworkInGroupRequest } from 'App/api/endpoints/homeworks/requests';\r\nimport {\r\n\tChangeLessonStatusRequest,\r\n\tChangeReplacementTeacherRequest,\r\n\tCreateLessonRequest,\r\n\tUpdateLessonRequest,\r\n} from 'App/api/endpoints/lessons/requests';\r\nimport { AppThunk } from 'App/globalState/store';\r\nimport { PaymenTypeStringToEnum } from 'App/types/paymentType/paymentType';\r\nimport { PresenceStatus } from 'App/types/studentLesson/pressenceStatus';\r\nimport {\r\n\tgetGroupsStart,\r\n\tgetGroupsSuccess,\r\n\tgetGroupsFailure,\r\n\tcreateGroupFailure,\r\n\tcreateGroupStart,\r\n\tcreateGroupSuccess,\r\n\tupdateGroupFailure,\r\n\tupdateGroupStart,\r\n\tupdateGroupSuccess,\r\n\tdeleteGroupFailure,\r\n\tdeleteGroupStart,\r\n\tdeleteGroupSuccess,\r\n\tgetAllTeachersFailure,\r\n\tgetAllTeachersStart,\r\n\tgetAllTeachersSuccess,\r\n\tgetAllCoursesFailure,\r\n\tgetAllCoursesStart,\r\n\tgetAllCoursesSuccess,\r\n\tgetGroupFailure,\r\n\tgetGroupStart,\r\n\tgetGroupSuccess,\r\n\tactivateGroupFailure,\r\n\tactivateGroupStart,\r\n\tactivateGroupSuccess,\r\n\tgetAllStudentsForGroupFailure,\r\n\tgetAllStudentsForGroupStart,\r\n\tgetAllStudentsForGroupSuccess,\r\n\tupdateGroupStudentsFailure,\r\n\tupdateGroupStudentsStart,\r\n\tupdateGroupStudentsSuccess,\r\n\tgetAllLessonTopicsFailure,\r\n\tgetAllLessonTopicsStart,\r\n\tgetAllLessonTopicsSuccess,\r\n\tcreateLessonFailure,\r\n\tcreateLessonStart,\r\n\tcreateLessonSuccess,\r\n\tupdateLessonStart,\r\n\tupdateLessonSuccess,\r\n\tupdateLessonFailure,\r\n\tdeleteLessonStart,\r\n\tdeleteLessonSuccess,\r\n\tdeleteLessonFailure,\r\n\tchangeLessonStatusFailure,\r\n\tchangeLessonStatusStart,\r\n\tchangeLessonStatusSuccess,\r\n\tcreateHomeworkInGroupFailure,\r\n\tcreateHomeworkInGroupStart,\r\n\tcreateHomeworkInGroupSuccess,\r\n\tdeleteHomeworkFailure,\r\n\tdeleteHomeworkStart,\r\n\tdeleteHomeworkSuccess,\r\n\tgetAllGamesFailure,\r\n\tgetAllGamesStart,\r\n\tgetAllGamesSuccess,\r\n\tgetLessonStart,\r\n\tgetLessonFailure,\r\n\tgetLessonSuccess,\r\n\tchangePresenceStatusStart,\r\n\tchangePresenceStatusSuccess,\r\n\tchangePresenceStatusFailure,\r\n\tchangeStudentLessonPointsStart,\r\n\tchangeStudentLessonPointsSuccess,\r\n\tchangeStudentLessonPointsFailure,\r\n\tchangeLessonTopicFailure,\r\n\tchangeLessonTopicStart,\r\n\tchangeLessonTopicSuccess,\r\n\tchangeReplacementTeacherStart,\r\n\tchangeReplacementTeacherSuccess,\r\n\tchangeReplacementTeacherFailure,\r\n} from './groups.slice';\r\n\r\nexport const getGroups =\r\n\t(body: GetGroupsRequest): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getGroupsStart());\r\n\t\tagent.Groups.getGroups(body)\r\n\t\t\t.then((response) => dispatch(getGroupsSuccess(response)))\r\n\t\t\t.catch(() => dispatch(getGroupsFailure()));\r\n\t};\r\n\r\nexport const getGroup =\r\n\t(groupId: string): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getGroupStart());\r\n\t\tagent.Groups.getGroup(groupId)\r\n\t\t\t.then((response) => dispatch(getGroupSuccess(response)))\r\n\t\t\t.catch(() => dispatch(getGroupFailure()));\r\n\t};\r\n\r\nexport const createGroup =\r\n\t(body: CreateGroupRequest, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(createGroupStart());\r\n\t\tagent.Groups.createGroup(body)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(createGroupSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(createGroupFailure()));\r\n\t};\r\n\r\nexport const updateGroup =\r\n\t(groupId: string, body: UpdateGroupRequest, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(updateGroupStart());\r\n\t\tagent.Groups.updateGroup(groupId, body)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(updateGroupSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(updateGroupFailure()));\r\n\t};\r\n\r\nexport const deleteGroup =\r\n\t(groupId: string, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(deleteGroupStart());\r\n\t\tagent.Groups.deleteGroup(groupId)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(deleteGroupSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(deleteGroupFailure()));\r\n\t};\r\n\r\nexport const activateGroup =\r\n\t(groupId: string, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(activateGroupStart());\r\n\t\tagent.Groups.activateGroup(groupId)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(activateGroupSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(activateGroupFailure()));\r\n\t};\r\n\r\nexport const getAllTeachers = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getAllTeachersStart());\r\n\tagent.Teachers.getAllTeachers()\r\n\t\t.then((response) => dispatch(getAllTeachersSuccess(response)))\r\n\t\t.catch(() => dispatch(getAllTeachersFailure()));\r\n};\r\n\r\nexport const getAllCourses = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getAllCoursesStart());\r\n\tagent.Courses.getAllCourses()\r\n\t\t.then((response) => dispatch(getAllCoursesSuccess(response)))\r\n\t\t.catch(() => dispatch(getAllCoursesFailure()));\r\n};\r\n\r\nexport const getAllStudentsForGroup =\r\n\t(groupId: string): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getAllStudentsForGroupStart());\r\n\t\tagent.Students.getAllStudentsForGroup(groupId)\r\n\t\t\t.then((response) => {\r\n\t\t\t\tconst mappedResponse = {\r\n\t\t\t\t\t...response,\r\n\t\t\t\t\tstudents: response.students.map((student) => {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\t...student,\r\n\t\t\t\t\t\t\tpaymentType: PaymenTypeStringToEnum[student.paymentType],\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t}),\r\n\t\t\t\t};\r\n\r\n\t\t\t\tdispatch(getAllStudentsForGroupSuccess(mappedResponse));\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(getAllStudentsForGroupFailure()));\r\n\t};\r\n\r\nexport const updateGroupStudents =\r\n\t(groupId: string, request: UpdateGroupStudentsRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(updateGroupStudentsStart());\r\n\t\tagent.Groups.updateGroupStudents(groupId, request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t\tdispatch(updateGroupStudentsSuccess());\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(updateGroupStudentsFailure()));\r\n\t};\r\n\r\nexport const getAllLessonTopics = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getAllLessonTopicsStart());\r\n\tagent.LessonTopics.getAllLessonTopics()\r\n\t\t.then((response) => dispatch(getAllLessonTopicsSuccess(response)))\r\n\t\t.catch(() => dispatch(getAllLessonTopicsFailure()));\r\n};\r\n\r\nexport const createLesson =\r\n\t(request: CreateLessonRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(createLessonStart());\r\n\t\tagent.Lessons.createLesson(request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t\tdispatch(createLessonSuccess());\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(createLessonFailure()));\r\n\t};\r\n\r\nexport const updateLesson =\r\n\t(lessonId: string, request: UpdateLessonRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(updateLessonStart());\r\n\t\tagent.Lessons.updateLesson(lessonId, request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t\tdispatch(updateLessonSuccess());\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(updateLessonFailure()));\r\n\t};\r\n\r\nexport const deleteLesson =\r\n\t(lessonId: string, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(deleteLessonStart());\r\n\t\tagent.Lessons.deleteLesson(lessonId)\r\n\t\t\t.then(() => {\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t\tdispatch(deleteLessonSuccess());\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(deleteLessonFailure()));\r\n\t};\r\n\r\nexport const changeLessonStatus =\r\n\t(lessonId: string, request: ChangeLessonStatusRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(changeLessonStatusStart());\r\n\t\tagent.Lessons.changeLessonStatus(lessonId, request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t\tdispatch(changeLessonStatusSuccess({ lessonId, lessonStatus: request.lessonStatus }));\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(changeLessonStatusFailure()));\r\n\t};\r\n\r\nexport const deleteHomework =\r\n\t(homeworkId: number, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(deleteHomeworkStart());\r\n\t\tagent.Homeworks.deleteHomework(homeworkId)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(deleteHomeworkSuccess());\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(deleteHomeworkFailure()));\r\n\t};\r\n\r\nexport const createHomeworkInGroup =\r\n\t(groupId: string, request: CreateHomeworkInGroupRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(createHomeworkInGroupStart());\r\n\t\tagent.Homeworks.createHomeworkInGroup(groupId, request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(createHomeworkInGroupSuccess());\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(createHomeworkInGroupFailure()));\r\n\t};\r\n\r\nexport const getAllGames = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getAllGamesStart());\r\n\tagent.Games.getGames()\r\n\t\t.then((response) => dispatch(getAllGamesSuccess(response)))\r\n\t\t.catch(() => dispatch(getAllGamesFailure()));\r\n};\r\n\r\nexport const getLesson =\r\n\t(lessonId: string): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getLessonStart());\r\n\t\tagent.Lessons.getLesson(lessonId)\r\n\t\t\t.then((response) => dispatch(getLessonSuccess(response)))\r\n\t\t\t.catch(() => dispatch(getLessonFailure()));\r\n\t};\r\n\r\nexport const changePresenceStatus =\r\n\t(studentLessonId: number, presenceStatus: PresenceStatus): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(changePresenceStatusStart());\r\n\t\tagent.Lessons.changePresenceStatus({ studentLessonId, presenceStatus })\r\n\t\t\t.then(() => dispatch(changePresenceStatusSuccess({ studentLessonId, presenceStatus })))\r\n\t\t\t.catch(() => dispatch(changePresenceStatusFailure()));\r\n\t};\r\n\r\nexport const changeStudentLessonPoints =\r\n\t(studentLessonId: number, points: number): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(changeStudentLessonPointsStart());\r\n\t\tagent.Lessons.changeStudentLessonPoints({ studentLessonId, points })\r\n\t\t\t.then(() => dispatch(changeStudentLessonPointsSuccess({ studentLessonId, points })))\r\n\t\t\t.catch(() => dispatch(changeStudentLessonPointsFailure()));\r\n\t};\r\n\r\nexport const changeLessonTopic =\r\n\t(lessonId: string, request: ChangeLessonTopicRequest, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(changeLessonTopicStart());\r\n\t\tagent.Lessons.changeLessonTopic(lessonId, request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(changeLessonTopicSuccess());\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(changeLessonTopicFailure()));\r\n\t};\r\n\r\nexport const changeReplacementTeacher =\r\n\t(lessonId: string, request: ChangeReplacementTeacherRequest, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(changeReplacementTeacherStart());\r\n\t\tagent.Lessons.changeReplacementTeacher(lessonId, request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(changeReplacementTeacherSuccess());\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(changeReplacementTeacherFailure()));\r\n\t};\r\n","import { Button, Col, DatePicker, Form, Input, InputNumber, Row, Select, TimePicker } from 'antd';\r\nimport { LessonTopicForGetAllLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport { lessonStatus as lessonStatuses } from 'App/common/utils/lessonStatus';\r\nimport React from 'react';\r\nimport { LessonFormValues } from './models/lessonFormValues';\r\n\r\ninterface LessonFormProps {\r\n\tloading: boolean;\r\n\tmode: 'update' | 'create';\r\n\teditMode: 'simple' | 'extended' | 'disabled';\r\n\tinitialValues?: LessonFormValues;\r\n\tlessonTopics: LessonTopicForGetAllLessonTopicsResponse[];\r\n\tonFinish: (values: LessonFormValues) => void;\r\n}\r\n\r\nconst LessonForm = ({ loading, initialValues, mode, editMode, onFinish, lessonTopics }: LessonFormProps) => {\r\n\tconst { lessonTopic, lessonDate, description, lessonTime, address, classroom, costGrossInPln, lessonStatus } =\r\n\t\tformRules.lesson;\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\treturn { label: `${name}`, value: id };\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t{(mode === 'create' || (mode === 'update' && editMode === 'extended')) && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\treturn { label: text, value: value };\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default LessonForm;\r\n","import Modal from 'antd/lib/modal/Modal';\r\nimport { LessonTopicForGetAllLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport LessonForm from 'App/components/lessons/lessonForm/LessonForm';\r\nimport { LessonFormValues } from 'App/components/lessons/lessonForm/models/lessonFormValues';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport React from 'react';\r\nimport { useMediaQuery } from 'react-responsive';\r\n\r\ninterface CreateLessonModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tlessonTopics: LessonTopicForGetAllLessonTopicsResponse[];\r\n\tonCreate: (values: LessonFormValues) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst CreateLessonModal = ({ visible, loading, lessonTopics, onCancel, onCreate }: CreateLessonModalProps) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CreateLessonModal;\r\n","import Modal from 'antd/lib/modal/Modal';\r\nimport { LessonForGetGroupResponse } from 'App/api/endpoints/groups/responses';\r\nimport { LessonTopicForGetAllLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport LessonForm from '../../lessonForm/LessonForm';\r\nimport { LessonFormValues } from '../../lessonForm/models/lessonFormValues';\r\n\r\ninterface UpdateLessonModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tselectedLesson: LessonForGetGroupResponse;\r\n\teditMode: 'simple' | 'extended' | 'disabled';\r\n\tlessonTopics: LessonTopicForGetAllLessonTopicsResponse[];\r\n\tonCreate: (values: LessonFormValues) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst UpdateLessonModal = ({\r\n\tvisible,\r\n\tloading,\r\n\tlessonTopics,\r\n\teditMode,\r\n\tonCancel,\r\n\tonCreate,\r\n\tselectedLesson,\r\n}: UpdateLessonModalProps) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\r\n\tconst initialValues: LessonFormValues = {\r\n\t\t...selectedLesson,\r\n\r\n\t\tlessonTopicId: selectedLesson?.lessonTopic?.id,\r\n\t\tlessonDate: moment(selectedLesson?.startUtc + 'Z').utc(),\r\n\t\tlessonTime: [moment(selectedLesson?.startUtc + 'Z'), moment(selectedLesson?.endUtc + 'Z')],\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default UpdateLessonModal;\r\n","import { Descriptions, Popconfirm, Tag, Typography } from 'antd';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport { DayOfWeekDict } from 'App/common/utils/dayOfWeek';\r\nimport React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { GroupDescriptionProps } from './models';\r\nimport './GroupDescription.less';\r\n\r\nconst GroupDescription = ({ group, adminView, onActivateGroup }: GroupDescriptionProps) => {\r\n\tconst renderConditionallyActivateGroup = () => {\r\n\t\tif (onActivateGroup) {\r\n\t\t\treturn (\r\n\t\t\t\t onActivateGroup(group.id)}\r\n\t\t\t\t>\r\n\t\t\t\t\t(aktywuj)\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn '';\r\n\t};\r\n\treturn (\r\n\t\t\r\n\t\t\t{group.name}\r\n\r\n\t\t\t\r\n\t\t\t\t{group.numberOfParticipants} / {group.maxParticipants}\r\n\t\t\t\r\n\r\n\t\t\tStatus grupy\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\tStatus grupy {renderConditionallyActivateGroup()}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)\r\n\t\t\t\t}\r\n\t\t\t>\r\n\t\t\t\t{group.isActive ? Aktywna : Nieaktywna}\r\n\t\t\t\r\n\r\n\t\t\t{group.price && group.surchargeForInstallments && group.numberOfInstallments && (\r\n\t\t\t\t{`${group.price + group.surchargeForInstallments} zł na ${\r\n\t\t\t\t\tgroup.numberOfInstallments\r\n\t\t\t\t} rat/y`}\r\n\t\t\t)}\r\n\r\n\t\t\t{group.price && group.surchargeForInstallments && group.numberOfInstallments && (\r\n\t\t\t\t{`${group.price} zł`}\r\n\t\t\t)}\r\n\r\n\t\t\t{group.address ?? 'brak'}\r\n\r\n\t\t\t{group.classroom ?? 'brak'}\r\n\r\n\t\t\t{DayOfWeekDict[group.dayOfLessons]}\r\n\r\n\t\t\t\r\n\t\t\t\t{`${dateTimeUtils.getLocalTimeStringFromTimeBasedOnDate(\r\n\t\t\t\t\tgroup.lessonTimeStartUtc,\r\n\t\t\t\t\tgroup.createdAtUtc\r\n\t\t\t\t)}-${dateTimeUtils.getLocalTimeStringFromTimeBasedOnDate(group.lessonTimeEndUtc, group.createdAtUtc)}`}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t{dateTimeUtils.getLocalDateTimeString(group.createdAtUtc)}\r\n\t\t\t\r\n\r\n\t\t\t{group.isDeleted && (\r\n\t\t\t\t\r\n\t\t\t\t\t{group.deletedAtUtc ? dateTimeUtils.getLocalDateTimeString(group.deletedAtUtc) : ''}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{group.course && adminView && (\r\n\t\t\t\t\r\n\t\t\t\t\t{group.course.name}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t{group.course && !adminView && {group.course.name}}\r\n\r\n\t\t\t{/* todo trzeba podlinkować nauczyciela jak już zrobimy widok profilu nauczyciela */}\r\n\t\t\t\r\n\t\t\t\t{group.teacher.user.firstName} {group.teacher.user.lastName}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GroupDescription;\r\n","import { CreateGroupRequest } from 'App/api/endpoints/groups/requests';\r\nimport { CreateLessonRequest, UpdateLessonRequest } from 'App/api/endpoints/lessons/requests';\r\nimport { LessonFormValues } from 'App/components/lessons/lessonForm/models/lessonFormValues';\r\nimport { GroupFormValues } from 'App/components/groups/groupForm/models/groupFormValues';\r\nimport moment from 'moment';\r\n\r\nexport const groupsGlobalService = {\r\n\tgetGroupPriceWithoutSurchargeForInstallments(lessons: LessonForGetGroupPrice[]): number {\r\n\t\tif (!lessons || lessons?.length === 0) return 0;\r\n\r\n\t\treturn (\r\n\t\t\tlessons\r\n\t\t\t\t//albo isDeleted na false albo isDeleted nie istnieje w tym interfejsie\r\n\t\t\t\t.filter(\r\n\t\t\t\t\t(lesson) => !lesson.isIndividual && (lesson.isDeleted === false || lesson.isDeleted === undefined)\r\n\t\t\t\t)\r\n\t\t\t\t.map((lesson) => lesson.costGrossInPln)\r\n\t\t\t\t.reduce((previousValue, currentValue) => previousValue + currentValue)\r\n\t\t);\r\n\t},\r\n\r\n\tcheckIfFirstLessonEnd(lessons: LessonForCheckIfFirstLessonEnded[]): boolean {\r\n\t\tif (!lessons || lessons?.length === 0) return false;\r\n\r\n\t\tconst sortedLessons = [...lessons].filter((lesson) => !lesson.isDeleted);\r\n\t\tsortedLessons.sort((a, b) => a.startUtc.localeCompare(b.startUtc));\r\n\r\n\t\tif (sortedLessons.length === 0) return false;\r\n\r\n\t\tlet firstLessonEndDateTime = sortedLessons[0].endUtc;\r\n\r\n\t\tif (firstLessonEndDateTime[firstLessonEndDateTime?.length - 1] !== 'Z') firstLessonEndDateTime += 'Z';\r\n\r\n\t\tconst firstLessonEndDateTimeValue = moment(new Date(firstLessonEndDateTime)).valueOf();\r\n\t\tconst currentDate = moment.utc().valueOf();\r\n\r\n\t\tif (firstLessonEndDateTimeValue > currentDate) return false;\r\n\t\treturn true;\r\n\t},\r\n\r\n\tcheckIfFirstLessonIsInCurrentMonth(lessons: LessonForCheckIfFirstLessonIsInCurrentMonth[]): boolean {\r\n\t\tif (!lessons || lessons?.length === 0) return false;\r\n\r\n\t\tconst sortedLessons = [...lessons].filter((lesson) => !lesson.isDeleted);\r\n\t\tsortedLessons.sort((a, b) => a.startUtc.localeCompare(b.startUtc));\r\n\r\n\t\tif (sortedLessons.length === 0) return false;\r\n\r\n\t\tlet firstLessonEndDateTime = sortedLessons[0].endUtc;\r\n\r\n\t\tif (firstLessonEndDateTime[firstLessonEndDateTime?.length - 1] !== 'Z') firstLessonEndDateTime += 'Z';\r\n\r\n\t\tconst firstLessonMonth = moment(new Date(firstLessonEndDateTime)).month();\r\n\t\tconst currentMonth = moment.utc().month();\r\n\r\n\t\tif (firstLessonMonth === currentMonth) return true;\r\n\t\treturn false;\r\n\t},\r\n\r\n\tgetFirstInstallmentValue(\r\n\t\tlessons: LessonForGetFirstInstallmentValue[],\r\n\t\tnumberOfInstallments: number,\r\n\t\tsurchargeForInstallments: number\r\n\t): number {\r\n\t\tconst price = groupsGlobalService.getGroupPriceWithoutSurchargeForInstallments(lessons);\r\n\r\n\t\tif (numberOfInstallments === 0) return 0.0;\r\n\r\n\t\treturn price / numberOfInstallments + surchargeForInstallments / numberOfInstallments;\r\n\t},\r\n\r\n\tconvertToCreateGroupRequest(values: GroupFormValues): CreateGroupRequest {\r\n\t\tconst [lessonTimeStart, lessonTimeEnd] = values.lessonTime;\r\n\r\n\t\tconst request: CreateGroupRequest = {\r\n\t\t\t...values,\r\n\t\t\tlessonTimeStartUtc: moment.utc(lessonTimeStart).format('HH:mm'),\r\n\t\t\tlessonTimeEndUtc: moment.utc(lessonTimeEnd).format('HH:mm'),\r\n\t\t\tgroupStartingAtUtc: moment.utc(values.groupStartingDateTime).toJSON(),\r\n\t\t};\r\n\t\treturn request;\r\n\t},\r\n\r\n\tconvertToCreateOrUpdateLessonRequest(\r\n\t\tvalues: LessonFormValues,\r\n\t\tgroupId: string\r\n\t): CreateLessonRequest | UpdateLessonRequest {\r\n\t\tconst [lessonTimeStart, lessonTimeEnd] = values.lessonTime;\r\n\t\tconst date = values.lessonDate.format('YYYY-MM-DD');\r\n\t\tconst startDateTimeString = `${date} ${lessonTimeStart.format('HH:mm')}`;\r\n\t\tconst endDateTimeString = `${date} ${lessonTimeEnd.format('HH:mm')}`;\r\n\r\n\t\tconst request: CreateLessonRequest | UpdateLessonRequest = {\r\n\t\t\t...values,\r\n\t\t\tgroupId,\r\n\t\t\tstartUtc: moment.utc(moment(startDateTimeString)).toJSON(),\r\n\t\t\tendUtc: moment.utc(moment(endDateTimeString)).toJSON(),\r\n\t\t};\r\n\r\n\t\treturn request;\r\n\t},\r\n};\r\n","import { GetGroupResponse } from 'App/api/endpoints/groups/responses';\r\nimport GroupDescription from 'App/components/groups/groupDescription/GroupDescription';\r\nimport { groupsGlobalService } from 'App/globalServices/groupsService/groups.global.service';\r\nimport React from 'react';\r\n\r\ninterface GroupBasicInfoProps {\r\n\tgroup: GetGroupResponse;\r\n\tonActivateGroup: (groupId: string) => void;\r\n}\r\n\r\nconst GroupBasicInfo = ({ group, onActivateGroup }: GroupBasicInfoProps) => {\r\n\tconst price = groupsGlobalService.getGroupPriceWithoutSurchargeForInstallments(group.lessons);\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GroupBasicInfo;\r\n","import { Row, Col, PageHeader } from 'antd';\r\nimport React from 'react';\r\nimport { useHistory } from 'react-router';\r\n\r\ninterface GroupDetailsHeaderProps {\r\n\tgroupName: string;\r\n}\r\n\r\nconst GroupDetailsHeader = ({ groupName }: GroupDetailsHeaderProps) => {\r\n\tconst history = useHistory();\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GroupDetailsHeader;\r\n","import { Descriptions } from 'antd';\r\nimport React from 'react';\r\nimport { StudentDescriptionProps } from './models';\r\n\r\nconst StudentDescription = ({ student, totalPayment }: StudentDescriptionProps) => {\r\n\tconst statusToString = (status: string): string => {\r\n\t\tswitch (status) {\r\n\t\t\tcase 'GainedAccess':\r\n\t\t\t\treturn 'Dostęp do platformy';\r\n\t\t\tcase 'InProgress':\r\n\t\t\t\treturn 'Przechodzi szkolenie';\r\n\t\t\tcase 'OnVacation':\r\n\t\t\t\treturn 'Na wakacjach';\r\n\t\t\tcase 'FinishedCourse':\r\n\t\t\t\treturn 'Ukończył kurs';\r\n\t\t\tdefault:\r\n\t\t\t\treturn 'brak';\r\n\t\t}\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t{student.user.email ?? 'brak'}\r\n\t\t\t\t{student.user.phoneNumber ?? 'brak'}\r\n\t\t\t\t{student.groupStatus && (\r\n\t\t\t\t\t{statusToString(student.groupStatus)}\r\n\t\t\t\t)}\r\n\t\t\t\t{student.individualLessons && (\r\n\t\t\t\t\t{student.individualLessons}\r\n\t\t\t\t)}\r\n\t\t\t\t{student.paymentPaid && totalPayment && (\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{`${student.paymentPaid} zł / ${totalPayment} zł`}\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t{(student.contactPersonEmail ||\r\n\t\t\t\tstudent.contactPersonFirstName ||\r\n\t\t\t\tstudent.contactPersonLastName ||\r\n\t\t\t\tstudent.contactPersonPhone) && (\r\n\t\t\t\t\r\n\t\t\t\t\t{student.contactPersonFirstName ?? 'brak'}\r\n\t\t\t\t\t{student.contactPersonLastName ?? 'brak'}\r\n\t\t\t\t\t{student.contactPersonEmail ?? 'brak'}\r\n\t\t\t\t\t{student.contactPersonPhone ?? 'brak'}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default StudentDescription;\r\n","import { EditOutlined, InfoCircleOutlined } from '@ant-design/icons';\r\nimport { Button, Card, Collapse, List, Row, Tooltip } from 'antd';\r\nimport { StudentForGetGroupResponse } from 'App/api/endpoints/groups/responses';\r\nimport StudentDescription from 'App/components/students/studentDescription/StudentDescription';\r\nimport React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\ninterface GroupStudentsProps {\r\n\tstudents: StudentForGetGroupResponse[];\r\n\ttotalPayment: number;\r\n\tloading: boolean;\r\n\tisGroupActive: boolean;\r\n\tonEditClick: () => void;\r\n}\r\n\r\nconst GroupStudents = ({ students, totalPayment, onEditClick, isGroupActive, loading }: GroupStudentsProps) => {\r\n\tconst sortedStudents = [...students];\r\n\tsortedStudents.sort((a, b) => a.user.lastName.localeCompare(b.user.lastName));\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t{isGroupActive && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t{!isGroupActive && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t>\r\n\t\t\t {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t{student.user.lastName} {student.user.firstName}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GroupStudents;\r\n","import { SearchOutlined } from '@ant-design/icons';\r\nimport { Form, Row, Col, Button, Input } from 'antd';\r\nimport React from 'react';\r\nimport { GroupStudentsSearchFormValues } from './utils/groupStudentsSearchFormValues';\r\n\r\ninterface GroupStudentsSearchFormProps {\r\n\tloading: boolean;\r\n\thandleSearch: (values: GroupStudentsSearchFormValues) => void;\r\n\tonSaveChanges: () => void;\r\n}\r\n\r\nconst GroupStudentsSearchForm = ({ loading, handleSearch, onSaveChanges }: GroupStudentsSearchFormProps) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ChangeLessonStatusForm;\r\n","import Modal from 'antd/lib/modal/Modal';\r\nimport { LessonStatus } from 'App/common/utils/lessonStatus';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport React from 'react';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport { LessonFormValues } from '../../lessonForm/models/lessonFormValues';\r\nimport ChangeLessonStatusForm from '../forms/ChangeLessonStatusForm';\r\n\r\ninterface ChangeLessonStatusModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tlessonStatus: LessonStatus;\r\n\tonCreate: (values: LessonFormValues) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst ChangeLessonStatusModal = ({\r\n\tvisible,\r\n\tloading,\r\n\tonCancel,\r\n\tonCreate,\r\n\tlessonStatus,\r\n}: ChangeLessonStatusModalProps) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ChangeLessonStatusModal;\r\n","import { Tag } from 'antd';\r\nimport { LessonStatus, LessonStatusDict } from 'App/common/utils/lessonStatus';\r\nimport React from 'react';\r\n\r\ninterface LessonStatusTagProps {\r\n\tlessonStatus: LessonStatus;\r\n}\r\n\r\nexport const LessonStatusTag = ({ lessonStatus }: LessonStatusTagProps) => {\r\n\tlet color;\r\n\tswitch (lessonStatus) {\r\n\t\tcase LessonStatus.Planned:\r\n\t\t\tcolor = 'orange';\r\n\t\t\tbreak;\r\n\t\tcase LessonStatus.GoingOn:\r\n\t\t\tcolor = 'processing';\r\n\t\t\tbreak;\r\n\r\n\t\tcase LessonStatus.Completed:\r\n\t\t\tcolor = 'success';\r\n\t\t\tbreak;\r\n\r\n\t\tcase LessonStatus.MovedCompleted:\r\n\t\t\tcolor = 'lime';\r\n\t\t\tbreak;\r\n\r\n\t\tcase LessonStatus.Canceled:\r\n\t\t\tcolor = 'error';\r\n\t\t\tbreak;\r\n\r\n\t\tdefault:\r\n\t\t\tcolor = 'default';\r\n\t\t\tbreak;\r\n\t}\r\n\r\n\treturn {LessonStatusDict[lessonStatus]};\r\n};\r\n","import { Tag } from 'antd';\r\nimport React from 'react';\r\n\r\ninterface LessonTypeTagProps {\r\n\tisIndividual: boolean;\r\n}\r\n\r\nconst LessonTypeTag = ({ isIndividual }: LessonTypeTagProps) => {\r\n\tif (isIndividual) {\r\n\t\treturn Indywidualna;\r\n\t}\r\n\treturn Zwykła;\r\n};\r\n\r\nexport default LessonTypeTag;\r\n","import { Button, Descriptions } from 'antd';\r\nimport React from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport { LessonStatusTag } from '../lessonStatusTag/LessonStatusTag';\r\nimport LessonTypeTag from '../lessonTypeTag/LessonTypeTag';\r\nimport { LessonDescriptionProps } from './models';\r\n\r\nconst LessonDescription = ({\r\n\tlesson,\r\n\tcanEdit,\r\n\tcanSetReplacementTeacher,\r\n\tonChangeLessonStatus,\r\n\tonChangeLessonTopicClick,\r\n\tonChangeReplacementTeacherClick,\r\n}: LessonDescriptionProps) => {\r\n\tconst renderReplacementTeacher = () => {\r\n\t\tif (!lesson.replacementTeacher) {\r\n\t\t\treturn (\r\n\t\t\t\t<>\r\n\t\t\t\t\tbrak{' '}\r\n\t\t\t\t\t{canSetReplacementTeacher && onChangeReplacementTeacherClick && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (!canSetReplacementTeacher) {\r\n\t\t\treturn (\r\n\t\t\t\t<>\r\n\t\t\t\t\t{lesson.replacementTeacher.user.firstName} {lesson.replacementTeacher.user.lastName}\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\t\t\t\t\t{lesson.replacementTeacher.user.firstName} {lesson.replacementTeacher.user.lastName}\r\n\t\t\t\t{' '}\r\n\t\t\t\t{onChangeReplacementTeacherClick && (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t{lesson.lessonTopic?.name ?? 'brak'}{' '}\r\n\t\t\t\t\t\t{onChangeLessonTopicClick && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\r\n\t\t\t{lesson.description ?? 'brak'}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{onChangeLessonStatus && canEdit && (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\r\n\t\t\t{lesson.address ?? 'brak'}\r\n\t\t\t{lesson.classroom ?? 'brak'}\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{lesson.costGrossInPln && (\r\n\t\t\t\t{lesson.costGrossInPln.toFixed(2)} zł\r\n\t\t\t)}\r\n\t\t\t{renderReplacementTeacher()}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default LessonDescription;\r\n","import { ExclamationCircleOutlined, InfoCircleOutlined } from '@ant-design/icons';\r\nimport { Button, Card, Collapse, List, Popconfirm, Row, Tag, Tooltip } from 'antd';\r\nimport { LessonForGetGroupResponse } from 'App/api/endpoints/groups/responses';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport LessonDescription from 'App/components/lessons/lessonDescription/LessonDescription';\r\nimport { LessonStatusTag } from 'App/components/lessons/lessonStatusTag/LessonStatusTag';\r\nimport React, { useState } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport MoveLessonModal, { MoveLessonFormValues } from './moveLesson/MoveLessonModal';\r\nimport moment from 'moment';\r\n\r\ninterface GroupLessonsProps {\r\n\tlessons: LessonForGetGroupResponse[];\r\n\tisGroupActive: boolean;\r\n\tloading: boolean;\r\n\tteacherView?: boolean;\r\n\tonDeleteLesson: (lessonId: string) => void;\r\n\tonUpdateLesson: (lesson: LessonForGetGroupResponse, editMode: 'simple' | 'extended' | 'disabled') => void;\r\n\tonNewLesson: () => void;\r\n\tonChangeLessonStatus?: (lesson: LessonForGetGroupResponse) => void;\r\n\tonReplacementLesson: (lessonId: string) => void;\r\n\tonMoveLesson: (lesson: LessonForGetGroupResponse) => void;\r\n\tcanEdit: boolean;\r\n}\r\n\r\nconst GroupLessons = ({\r\n\tlessons,\r\n\tisGroupActive,\r\n\tteacherView,\r\n\tloading,\r\n\tonDeleteLesson,\r\n\tonUpdateLesson,\r\n\tonChangeLessonStatus,\r\n\tonNewLesson,\r\n\tonReplacementLesson,\r\n\tonMoveLesson,\r\n\tcanEdit,\r\n}: GroupLessonsProps) => {\r\n\tconst sortedLessons = [...lessons];\r\n\tsortedLessons.sort((a, b) => a.startUtc.localeCompare(b.startUtc));\r\n\r\n\tconst renderLessonHeader = (lesson: LessonForGetGroupResponse, index: number) => {\r\n\t\tconst lessonName = teacherView ? (\r\n\t\t\t{`Lekcja ${index + 1}`}\r\n\t\t) : (\r\n\t\t\t{`Lekcja ${index + 1}`}\r\n\t\t);\r\n\r\n\t\tconst hasCollidingDate = anyOtherLessonHasTheSameStartAndEnd(lesson);\r\n\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t{hasCollidingDate && (\r\n\t\t\t\t\tData tej lekcji koliduje z datą innej lekcji w tej grupie!}>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t\t{lessonName}\r\n\t\t\t\t\r\n\t\t\t\t\t{` - ${dateTimeUtils.getLocalDateString(lesson.startUtc)} ${dateTimeUtils.getLocalTimeString(\r\n\t\t\t\t\t\tlesson.startUtc\r\n\t\t\t\t\t)} - ${dateTimeUtils.getLocalTimeString(lesson.endUtc)} `}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t};\r\n\r\n\tconst anyOtherLessonHasTheSameStartAndEnd = (lesson: LessonForGetGroupResponse) => {\r\n\t\tconst { startUtc, endUtc } = lesson;\r\n\r\n\t\tlet overlapping = false;\r\n\r\n\t\tfor (const element of sortedLessons.filter(x => x.id !== lesson.id)) {\r\n\t\t\tconst elStart = moment(element.startUtc);\r\n\t\t\tconst elEnd = moment(element.endUtc);\r\n\r\n\t\t\tif(moment(startUtc).isBetween(elStart, elEnd, undefined, '[]') || moment(endUtc).isBetween(elStart, elEnd, undefined, '[]')) {\r\n\t\t\t\toverlapping = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\t\r\n\t\t}\r\n\r\n\t\treturn overlapping;\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t{!isGroupActive && canEdit && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t>\r\n\t\t\t {\r\n\t\t\t\t\tconst isLessonDeleted = lesson.isDeleted;\r\n\t\t\t\t\tconst hasLessonTopic = lesson.lessonTopic?.name !== null && lesson.lessonTopic?.name !== undefined;\r\n\t\t\t\t\tconst isFunctionForChangeStatusDefined =\r\n\t\t\t\t\t\tonChangeLessonStatus !== undefined && onChangeLessonStatus !== null;\r\n\r\n\t\t\t\t\tlet editMode: 'simple' | 'extended' | 'disabled' = 'disabled';\r\n\t\t\t\t\tif (canEdit && !isLessonDeleted) {\r\n\t\t\t\t\t\tif (isGroupActive) {\r\n\t\t\t\t\t\t\teditMode = 'simple';\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\teditMode = 'extended';\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t event.stopPropagation()}>\r\n\t\t\t\t\t\t\t\t\t\t\t\t{!isLessonDeleted && !hasLessonTopic && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\tBrak tematu lekcji\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{(editMode === 'simple' || editMode === 'extended') && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t onUpdateLesson(lesson, editMode)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tEdytuj\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t{!isLessonDeleted && editMode === 'extended' && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonConfirm={() => onDeleteLesson(lesson.id)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{isLessonDeleted && Usunięta}\r\n\r\n\t\t\t\t\t\t\t\t\t\t\t\t{isGroupActive && !isLessonDeleted && isFunctionForChangeStatusDefined && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t onChangeLessonStatus(lesson)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tStatus\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* To ma niższy priorytet niż inne zadania to potem dorobimy */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{/* onReplacementLesson(lesson.id)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tZastępstwo\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t */}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GroupLessons;\r\n","import { Checkbox, Col, Form, Input, InputNumber, Row, Select } from 'antd';\r\nimport { CreateGameRequest } from 'App/api/endpoints/games/requests';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport React from 'react';\r\n\r\ninterface TeacherGamesFormItemsProps {\r\n\tmodalMode?: boolean;\r\n\tfieldName?: number;\r\n\tfieldKey?: number;\r\n\tinitialValues: CreateGameRequest;\r\n}\r\n\r\nconst TeacherGamesFormItems = ({ modalMode, fieldKey, fieldName, initialValues }: TeacherGamesFormItemsProps) => {\r\n\tconst {\r\n\t\tname,\r\n\t\trequiredCombinations,\r\n\t\trequiredDoublePower,\r\n\t\trequiredMinimalComplexity,\r\n\t\trequiredMinimalGeneratorSpeedInSeconds,\r\n\t\trequiredMinimalLevel,\r\n\t\trequiredMinimalMaxSteps,\r\n\t\trequiredRepetitions,\r\n\t\trequiredTurbo,\r\n\t} = formRules.game;\r\n\r\n\tconst getInitialValues = () => {\r\n\t\tif (!modalMode) {\r\n\t\t\treturn initialValues;\r\n\t\t}\r\n\r\n\t\tconst emptyInitialValues: CreateGameRequest = {\r\n\t\t\trequiredTurbo: false,\r\n\t\t\trequiredDoublePower: false,\r\n\t\t\trequiredCombinations: false,\r\n\t\t\trequiredMinimalGeneratorSpeedInSeconds: 1,\r\n\t\t\trequiredMinimalMaxSteps: 5,\r\n\t\t\trequiredRepetitions: 4,\r\n\t\t\tname: '',\r\n\t\t\trequiredMinimalComplexity: 1,\r\n\t\t\trequiredMinimalLevel: 9,\r\n\t\t};\r\n\r\n\t\treturn {\r\n\t\t\t...emptyInitialValues,\r\n\t\t\t...initialValues,\r\n\t\t};\r\n\t};\r\n\r\n\tconst getName = (name: string) => {\r\n\t\tif (modalMode) {\r\n\t\t\treturn [fieldName, name];\r\n\t\t}\r\n\r\n\t\treturn name;\r\n\t};\r\n\r\n\tconst getFieldKey = (key: string) => {\r\n\t\tif (modalMode) {\r\n\t\t\treturn [fieldKey, key];\r\n\t\t}\r\n\r\n\t\treturn key;\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tWymagana migawka\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tWymagane double power\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tWymagana przeplatanka\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default TeacherGamesFormItems;\r\n","import { MinusCircleOutlined, PlusOutlined } from '@ant-design/icons';\r\nimport { Button, Col, Collapse, DatePicker, Form, InputNumber, Row, Select } from 'antd';\r\nimport { CreateGameRequest } from 'App/api/endpoints/games/requests';\r\nimport { GameForGetGamesResponse } from 'App/api/endpoints/games/responses';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport { GameAlgorithmOptions } from 'App/pages/gamePages/types/gameAlgorithm';\r\nimport TeacherGamesFormItems from 'App/pages/teacherPages/views/teacherGames/teacherGamesForm/TeacherGamesFormItems';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\nimport { AvailableStudent } from '../createHomework/types/availableStudent';\r\nimport { GroupForHomework } from '../createHomework/types/groupForHomework';\r\nimport { HomeworkFormValues } from './models/homeworkFormValues';\r\n\r\ninterface HomeworkFormProps {\r\n\tloading: boolean;\r\n\tavailableStudents: AvailableStudent[];\r\n\tavailableGames: GameForGetGamesResponse[];\r\n\tinitialValues: HomeworkFormValues;\r\n\tselectedGroup: GroupForHomework;\r\n\tonFinish: (values: HomeworkFormValues) => void;\r\n}\r\n\r\nconst HomeworkForm = ({ loading, availableStudents, initialValues, selectedGroup, onFinish }: HomeworkFormProps) => {\r\n\tconst { availableUntilUtc, maxRepetitionsPerDay, requiredRepetitions, gameAlgorithm, studentIds } =\r\n\t\tformRules.homework;\r\n\r\n\t// nie można wybrać w przeszłość\r\n\tconst disabledDates = (current) => {\r\n\t\treturn current < moment().endOf('day');\r\n\t};\r\n\r\n\tconst getInitialGameValues = (index: number) => {\r\n\t\tconst { name, course, homeworks } = selectedGroup;\r\n\t\tconst homeworkNumber = homeworks.length;\r\n\t\tconst str = `${course.name} (${name}) - Zad. ${homeworkNumber + 1}_${index + 1}`;\r\n\r\n\t\treturn {\r\n\t\t\tname: str,\r\n\t\t} as CreateGameRequest;\r\n\t};\r\n\r\n\tconst handleSubmit = (values: any) => {\r\n\t\tconst { games, ...rest } = values;\r\n\r\n\t\tconst mappedGames = games.map((x) => {\r\n\t\t\tconst { gameAlgorithm, ...gamePayload } = x;\r\n\t\t\treturn {\r\n\t\t\t\tgameAlgorithm,\r\n\t\t\t\tgamePayload: { ...gamePayload },\r\n\t\t\t};\r\n\t\t});\r\n\r\n\t\tonFinish({\r\n\t\t\t...rest,\r\n\t\t\tgames: mappedGames,\r\n\t\t});\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{(fields, { add, remove }) => (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t\t{fields.map(({ key, name, fieldKey, ...restField }, index) => {\r\n\t\t\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t remove(name)} />}\r\n\t\t\t\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default HomeworkForm;\r\n","import { Modal } from 'antd';\r\nimport { GameForGetGamesResponse } from 'App/api/endpoints/games/responses';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport HomeworkForm from '../../homeworkForm/HomeworkForm';\r\nimport { HomeworkFormValues } from '../../homeworkForm/models/homeworkFormValues';\r\nimport { AvailableStudent } from '../types/availableStudent';\r\nimport { GroupForHomework } from '../types/groupForHomework';\r\n\r\ninterface CreateHomeworkModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tavailableGames: GameForGetGamesResponse[];\r\n\tavailableStudents: AvailableStudent[];\r\n\tselectedGroup: GroupForHomework;\r\n\tonCancel: () => void;\r\n\tonCreateHomework: (values: HomeworkFormValues) => void;\r\n}\r\n\r\nconst CreateHomeworkModal = ({\r\n\tvisible,\r\n\tloading,\r\n\tavailableGames,\r\n\tavailableStudents,\r\n\tselectedGroup,\r\n\tonCancel,\r\n\tonCreateHomework,\r\n}: CreateHomeworkModalProps) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t student.id),\r\n\t\t\t\t\tgames: [],\r\n\t\t\t\t\trequiredRepetitions: 4,\r\n\t\t\t\t\tmaxRepetitionsPerDay: 2,\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CreateHomeworkModal;\r\n","import { Collapse, Row, Col, Descriptions, Card } from 'antd';\r\nimport { ExerciseForGetGroupResponse } from 'App/api/endpoints/groups/responses';\r\nimport { getGameAlgorithmTextByGameAlgorithmString } from 'App/pages/gamePages/types/gameAlgorithm';\r\nimport { GameComplexityStringToEnum } from 'App/pages/gamePages/types/gameComplexity';\r\nimport { GameLevelStringToEnum } from 'App/pages/gamePages/types/gameLevel';\r\nimport React from 'react';\r\n\r\ninterface HomeworkExerciseProps {\r\n\texercise: ExerciseForGetGroupResponse;\r\n\tuniqueStudentIds: string[];\r\n}\r\n\r\nconst HomeworkExercise = ({ exercise, uniqueStudentIds }: HomeworkExerciseProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{exercise.game.requiredCombinations ? 'wymagana' : 'niewymagana'}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{exercise.game.requiredTurbo ? 'wymagana' : 'niewymagana'}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{GameComplexityStringToEnum[exercise.game.requiredMinimalComplexity]}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{exercise.game.requiredMinimalGeneratorSpeedInSeconds}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{GameLevelStringToEnum[exercise.game.requiredMinimalLevel]}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{exercise.game.requiredMinimalMaxSteps}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{exercise.game.requiredRepetitions}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{getGameAlgorithmTextByGameAlgorithmString(exercise.gameAlgorithm)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{uniqueStudentIds.map((uniqueStudentId) => {\r\n\t\t\t\t\t\t// podstawowe dane o studencie\r\n\t\t\t\t\t\tconst student = exercise.studentExercises.filter((se) => se.student.id === uniqueStudentId)[0]\r\n\t\t\t\t\t\t\t.student;\r\n\r\n\t\t\t\t\t\t// ile łącznie realizacji zadania ma wykonać student\r\n\t\t\t\t\t\tconst total = exercise.studentExercises.filter(\r\n\t\t\t\t\t\t\t(se) => se.student.id === uniqueStudentId\r\n\t\t\t\t\t\t).length;\r\n\r\n\t\t\t\t\t\t// liczba zrealizowanych powtórzeń przez studenta\r\n\t\t\t\t\t\tconst completed = exercise.studentExercises.filter(\r\n\t\t\t\t\t\t\t(se) => se.completedAtUtc !== null && se.student.id === uniqueStudentId\r\n\t\t\t\t\t\t).length;\r\n\r\n\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t{completed} / {total}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t);\r\n\t\t\t\t\t})}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default HomeworkExercise;\r\n","import { List, Collapse, Button, Popconfirm } from 'antd';\r\nimport { HomeworkForGetGroupResponse } from 'App/api/endpoints/groups/responses';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\nimport HomeworkExercise from '../homeworkExercise/HomeworkExercise';\r\n\r\ninterface HomeworkListItemProps {\r\n\thomework: HomeworkForGetGroupResponse;\r\n\tonDeleteHomework: (homeworkId: number) => void;\r\n}\r\n\r\nconst HomeworkListItem = ({ homework, onDeleteHomework }: HomeworkListItemProps) => {\r\n\tconst isOutdated = moment(homework.availableUntilUtc) < moment();\r\n\tlet additionalClassNames = '';\r\n\r\n\tif (isOutdated) {\r\n\t\tadditionalClassNames = 'group-homeworks__header--outdated';\r\n\t}\r\n\r\n\tconst uniqueStudentIds = [\r\n\t\t...new Set(\r\n\t\t\thomework.exercises.flatMap((exercise) =>\r\n\t\t\t\texercise.studentExercises.flatMap((studentExercise) => studentExercise.student.id)\r\n\t\t\t)\r\n\t\t),\r\n\t];\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t onDeleteHomework(homework.id)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\theader={`Zadanie do ${dateTimeUtils.getLocalDateTimeString(homework.availableUntilUtc)}`}\r\n\t\t\t\t>\r\n\t\t\t\t\t{homework.exercises.map((exercise) => (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t))}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default HomeworkListItem;\r\n","import { PlusOutlined } from '@ant-design/icons';\r\nimport { Button, Card, List } from 'antd';\r\nimport { HomeworkForGetGroupResponse } from 'App/api/endpoints/groups/responses';\r\nimport React from 'react';\r\nimport HomeworkListItem from './components/homeworkListItem/HomeworkListItem';\r\nimport './GroupHomeworks.less';\r\n\r\ninterface GroupHomeworksProps {\r\n\tloading: boolean;\r\n\thomeworks: HomeworkForGetGroupResponse[];\r\n\tonCreateClick: () => void;\r\n\tonDeleteHomework: (homeworkId: number) => void;\r\n}\r\n\r\nconst GroupHomeworks = ({ loading, homeworks, onCreateClick, onDeleteHomework }: GroupHomeworksProps) => {\r\n\tconst homeworksToShow = homeworks.filter((homework) => homework.isDeleted === false);\r\n\treturn (\r\n\t\t} loading={loading} onClick={onCreateClick} type='link'>\r\n\t\t\t\t\tDodaj\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t>\r\n\t\t\t (\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\t\t\t/>\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GroupHomeworks;\r\n","import {\r\n\tGetTeacherGroupResponse,\r\n\tLessonForGetGroupResponse,\r\n} from 'App/api/endpoints/groups/responses';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport { Button, Col, DatePicker, Form, Modal, Row, TimePicker, Typography } from 'antd';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\nimport { useMediaQuery } from 'react-responsive';\r\n\r\nexport interface MoveLessonFormValues {\r\n\tlessonId: string;\r\n\tnewLessonTime: [moment.Moment, moment.Moment];\r\n\tnewLessonDate: moment.Moment;\r\n}\r\n\r\ninterface MoveLessonModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tselectedGroup: GetTeacherGroupResponse;\r\n\tselectedLesson: LessonForGetGroupResponse;\r\n\tonSubmit: (values: MoveLessonFormValues) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst MoveLessonModal = ({ visible, loading, selectedGroup, selectedLesson, onCancel, onSubmit }: MoveLessonModalProps) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\r\n\tconst { lessonDate, lessonTime } = formRules.lesson;\r\n\r\n\tconst getInitialValues = () => {\r\n\t\treturn {\r\n\t\t\toldLessonDate: moment(selectedLesson?.startUtc + 'Z').utc(),\r\n\t\t\toldLessonTime: [moment(selectedLesson?.startUtc + 'Z'), moment(selectedLesson?.endUtc + 'Z')],\r\n\t\t\tnewLessonDate: moment(selectedLesson?.startUtc + 'Z').add(7, 'days').utc(),\r\n\t\t\tnewLessonTime: [moment(selectedLesson?.startUtc + 'Z'), moment(selectedLesson?.endUtc + 'Z')],\r\n\t\t};\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tPrzenosisz lekcję z dnia\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tNa dzień\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MoveLessonModal;\r\n","import { Button, Col, notification, Result, Row } from 'antd';\r\nimport { StudentForGetAllStudentsForGroupResponse } from 'App/api/endpoints/students/responses';\r\nimport { LessonForGetGroupResponse } from 'App/api/endpoints/groups/responses';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RouteComponentProps, useHistory } from 'react-router';\r\nimport { cleanUpSelectedGroup } from '../../state/groups.slice';\r\nimport {\r\n\tcreateLesson,\r\n\tdeleteLesson,\r\n\tgetAllLessonTopics,\r\n\tgetGroup,\r\n\tupdateLesson,\r\n\tupdateGroupStudents,\r\n\tchangeLessonStatus,\r\n\tactivateGroup,\r\n\tgetAllGames,\r\n\tdeleteHomework,\r\n\tcreateHomeworkInGroup,\r\n} from '../../state/groups.thunk';\r\nimport CreateLessonModal from '../../../../../components/lessons/createLesson/modals/CreateLessonModal';\r\nimport { LessonFormValues } from '../../../../../components/lessons/lessonForm/models/lessonFormValues';\r\nimport UpdateLessonModal from '../../../../../components/lessons/updateLesson/modals/UpdateLessonModal';\r\nimport GroupBasicInfo from './components/GroupBasicInfo';\r\nimport GroupDetailsHeader from './components/GroupDetailsHeader';\r\nimport GroupStudents from './components/GroupStudents';\r\nimport EditGroupStudentsModal from './modals/EditGroupStudentsModal';\r\nimport ChangeLessonStatusModal from '../../../../../components/lessons/changeLessonStatus/modals/ChangeLessonStatusModal';\r\nimport { ChangeLessonStatusFormValues } from '../../../../../components/lessons/changeLessonStatus/forms/changeLessonStatusForm/models/changeLessonStatusFormValues';\r\nimport { groupsGlobalService } from 'App/globalServices/groupsService/groups.global.service';\r\nimport LoadingScreen from 'App/components/common/loadingScreen/LoadingScreen';\r\nimport GroupLessons from 'App/components/groups/groupLessons/GroupLessons';\r\nimport CreateHomeworkModal from 'App/components/homeworks/createHomework/modals/CreateHomeworkModal';\r\nimport { HomeworkFormValues } from 'App/components/homeworks/homeworkForm/models/homeworkFormValues';\r\nimport { CreateHomeworkInGroupRequest } from 'App/api/endpoints/homeworks/requests';\r\nimport moment from 'moment';\r\nimport GroupHomeworks from 'App/components/groups/groupHomeworks/GroupHomeworks';\r\nimport MoveLessonModal, { MoveLessonFormValues } from 'App/components/groups/groupLessons/moveLesson/MoveLessonModal';\r\n\r\ninterface RouteParams {\r\n\tgroupId: string;\r\n}\r\n\r\ninterface GroupDetailsContainerProps extends RouteComponentProps {}\r\n\r\nconst { Loading, Success } = StatusType;\r\n\r\nconst GroupDetailsContainer = ({ match }: GroupDetailsContainerProps): JSX.Element => {\r\n\tconst groupId = match.params.groupId;\r\n\r\n\tconst history = useHistory();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst selectedGroup = useSelector((state: RootState) => state.pages.admin.groups.selectedGroup);\r\n\tconst getGroupStatus = useSelector((state: RootState) => state.pages.admin.groups.status.getGroup);\r\n\tconst updateGroupStudentsStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.admin.groups.status.updateGroupStudents\r\n\t);\r\n\r\n\tconst [editGroupStudentsModalVisible, setEditGroupStudentsModalVisible] = useState(false);\r\n\r\n\tconst createLessonStatus = useSelector((state: RootState) => state.pages.admin.groups.status.createLesson);\r\n\tconst updateLessonStatus = useSelector((state: RootState) => state.pages.admin.groups.status.updateLesson);\r\n\tconst deleteLessonStatus = useSelector((state: RootState) => state.pages.admin.groups.status.deleteLesson);\r\n\tconst changeLessonStatusStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.admin.groups.status.changeLessonStatus\r\n\t);\r\n\tconst createHomeworkStatus = useSelector((state: RootState) => state.pages.admin.groups.status.createHomework);\r\n\tconst deleteHomeworkStatus = useSelector((state: RootState) => state.pages.admin.groups.status.deleteHomework);\r\n\r\n\tconst getAllLessonTopicsStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.admin.groups.status.getAllLessonTopics\r\n\t);\r\n\tconst getAllGamesStatus = useSelector((state: RootState) => state.pages.admin.groups.status.getAllGames);\r\n\r\n\tconst allLessonTopics = useSelector((state: RootState) => state.pages.admin.groups.allLessonTopics);\r\n\tconst allGames = useSelector((state: RootState) => state.pages.admin.groups.allGames);\r\n\r\n\tconst [selectedLesson, setSelectedLesson] = useState(null);\r\n\tconst [createLessonModalVisibility, setCreateLessonModalVisibility] = useState(false);\r\n\tconst [updateLessonModalVisibility, setUpdateLessonModalVisibility] = useState(false);\r\n\tconst [createHomeworkModalVisibility, setCreateHomeworkModalVisibility] = useState(false);\r\n\tconst [moveLessonModalVisibility, setMoveLessonModalVisibility] = useState(false);\r\n\tconst [changeLessonStatusModalVisiblity, setChangeLessonStatusModalVisiblity] = useState(false);\r\n\t// const [replacementLessonModalVisibility, setReplacementLessonModalVisibility] = useState(false);\r\n\r\n\tconst [editMode, setEditMode] = useState<'simple' | 'extended' | 'disabled'>('disabled');\r\n\r\n\tconst firstInstallmentValue = groupsGlobalService.getFirstInstallmentValue(\r\n\t\tselectedGroup?.lessons,\r\n\t\tselectedGroup?.numberOfInstallments,\r\n\t\tselectedGroup?.surchargeForInstallments\r\n\t);\r\n\tconst groupPriceWithoutSurchargeForInstallments = groupsGlobalService.getGroupPriceWithoutSurchargeForInstallments(\r\n\t\tselectedGroup?.lessons\r\n\t);\r\n\tconst isFirstLessonInCurrentMonth = groupsGlobalService.checkIfFirstLessonIsInCurrentMonth(selectedGroup?.lessons);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!selectedGroup) {\r\n\t\t\tdispatch(getGroup(groupId));\r\n\t\t}\r\n\t}, [dispatch, selectedGroup, groupId]);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(getAllLessonTopics());\r\n\t\tdispatch(getAllGames());\r\n\t}, [dispatch]);\r\n\r\n\tuseEffect(() => {\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpSelectedGroup());\r\n\t\t};\r\n\t}, [dispatch]);\r\n\r\n\tconst showEditGroupStudentsModal = () => {\r\n\t\tsetEditGroupStudentsModalVisible(true);\r\n\t};\r\n\r\n\tconst hideEditGroupStudentsModal = () => {\r\n\t\tsetEditGroupStudentsModalVisible(false);\r\n\t};\r\n\r\n\tconst onUpdateStudentsAssignedToGroup = (updatedStudents: StudentForGetAllStudentsForGroupResponse[]) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Edytowano studentów w grupie',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getGroup(groupId));\r\n\t\t\tsetEditGroupStudentsModalVisible(false);\r\n\t\t};\r\n\r\n\t\tconst request = {\r\n\t\t\tstudents: updatedStudents.map((updateStudent) => {\r\n\t\t\t\treturn { id: updateStudent.id, paymentType: updateStudent.paymentType };\r\n\t\t\t}),\r\n\t\t};\r\n\r\n\t\tdispatch(updateGroupStudents(groupId, request, onSuccess));\r\n\t};\r\n\tconst handleUpdateLessonClick = (\r\n\t\tlesson: LessonForGetGroupResponse,\r\n\t\teditMode: 'simple' | 'extended' | 'disabled'\r\n\t) => {\r\n\t\tsetSelectedLesson(lesson);\r\n\t\tsetUpdateLessonModalVisibility(true);\r\n\t\tsetEditMode(editMode);\r\n\t};\r\n\r\n\tconst handleUpdateLesson = (values: LessonFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Edytowano lekcje',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getGroup(groupId));\r\n\t\t\tsetSelectedLesson(null);\r\n\t\t\tsetUpdateLessonModalVisibility(false);\r\n\t\t};\r\n\r\n\t\tconst request = groupsGlobalService.convertToCreateOrUpdateLessonRequest(values, groupId);\r\n\r\n\t\t// upewniamy się, że nie poleci request z zmienionym kosztem\r\n\t\tif (editMode === 'simple') {\r\n\t\t\trequest.costGrossInPln = selectedLesson.costGrossInPln;\r\n\t\t}\r\n\r\n\t\tdispatch(updateLesson(selectedLesson.id, request, onSuccess));\r\n\t};\r\n\r\n\tconst handleDeleteLessonClick = (lessonId: string) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Usunięto lekcje',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getGroup(groupId));\r\n\t\t};\r\n\r\n\t\tdispatch(deleteLesson(lessonId, onSuccess));\r\n\t};\r\n\r\n\tconst handleCreateLessonClick = () => {\r\n\t\tsetCreateLessonModalVisibility(true);\r\n\t};\r\n\r\n\tconst handleCreateLesson = (values: LessonFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Dodano nową lekcje',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getGroup(groupId));\r\n\t\t\tsetCreateLessonModalVisibility(false);\r\n\t\t};\r\n\r\n\t\tconst request = groupsGlobalService.convertToCreateOrUpdateLessonRequest(values, groupId);\r\n\r\n\t\tdispatch(createLesson(request, onSuccess));\r\n\t};\r\n\r\n\tconst handleChangeLessonStatusClick = (lesson: LessonForGetGroupResponse) => {\r\n\t\tsetSelectedLesson(lesson);\r\n\t\tsetChangeLessonStatusModalVisiblity(true);\r\n\t};\r\n\r\n\tconst handleMoveLessonClick = (lesson: LessonForGetGroupResponse) => {\r\n\t\tsetSelectedLesson(lesson);\r\n\t\tsetMoveLessonModalVisibility(true);\r\n\t};\r\n\r\n\tconst handleChangeLessonStatus = (values: ChangeLessonStatusFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Zmieniono status lekcji',\r\n\t\t\t});\r\n\r\n\t\t\tsetSelectedLesson(null);\r\n\t\t\tsetChangeLessonStatusModalVisiblity(false);\r\n\t\t};\r\n\r\n\t\tdispatch(changeLessonStatus(selectedLesson.id, values, onSuccess));\r\n\t};\r\n\r\n\tconst handleReplacementLessonClick = (lessonId: string) => {\r\n\t\t// todo setReplacementLessonModalVisibility(true);\r\n\t};\r\n\r\n\tconst handleMoveLesson = (values: MoveLessonFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Lekcja została przniesiona',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getGroup(groupId));\r\n\t\t\tsetSelectedLesson(null);\r\n\t\t\tsetMoveLessonModalVisibility(false);\r\n\t\t};\r\n\r\n\t\tconst request = groupsGlobalService.convertToCreateOrUpdateLessonRequest(\r\n\t\t\t{\r\n\t\t\t\taddress: selectedLesson.address,\r\n\t\t\t\tclassroom: selectedLesson.classroom,\r\n\t\t\t\tcostGrossInPln: selectedLesson.costGrossInPln,\r\n\t\t\t\tdescription: selectedLesson.description,\r\n\t\t\t\tlessonDate: values.newLessonDate,\r\n\t\t\t\tlessonTime: values.newLessonTime,\r\n\t\t\t\tlessonStatus: selectedLesson.lessonStatus,\r\n\t\t\t\tlessonTopicId: selectedLesson.lessonTopic?.id,\r\n\t\t\t},\r\n\t\t\tgroupId\r\n\t\t);\r\n\r\n\t\tdispatch(updateLesson(selectedLesson.id, request, onSuccess));\r\n\t};\r\n\r\n\tconst onActivateGroup = (groupId: string) => {\r\n\t\tconst onSucces = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Grupa została aktywowana',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getGroup(groupId));\r\n\t\t};\r\n\t\tdispatch(activateGroup(groupId, onSucces));\r\n\t};\r\n\r\n\tconst onCreateHomework = (values: HomeworkFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Zadanie domowe zostało dodane',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getGroup(groupId));\r\n\t\t\tsetCreateHomeworkModalVisibility(false);\r\n\t\t};\r\n\r\n\t\tconst request: CreateHomeworkInGroupRequest = {\r\n\t\t\t...values,\r\n\t\t\tavailableUntilUtc: moment.utc(values.availableUntilUtc).format(),\r\n\t\t};\r\n\t\tdispatch(createHomeworkInGroup(groupId, request, onSuccess));\r\n\t};\r\n\r\n\tconst onDeleteHomework = (homeworkId: number) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Zadanie domowe zostało usunięte',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getGroup(groupId));\r\n\t\t};\r\n\r\n\t\tdispatch(deleteHomework(homeworkId, onSuccess));\r\n\t};\r\n\r\n\tif (getGroupStatus === Loading) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t} else if (getGroupStatus === Success && selectedGroup) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\tsetMoveLessonModalVisibility(false);\r\n\t\t\t\t\t\tsetSelectedLesson(null);\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tselectedGroup={selectedGroup}\r\n\t\t\t\t\tselectedLesson={selectedLesson}\r\n\t\t\t\t/>\r\n\t\t\t\t setCreateHomeworkModalVisibility(false)}\r\n\t\t\t\t\tonCreateHomework={onCreateHomework}\r\n\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\t setCreateLessonModalVisibility(false)}\r\n\t\t\t\t\tonCreate={handleCreateLesson}\r\n\t\t\t\t\tvisible={createLessonModalVisibility}\r\n\t\t\t\t/>\r\n\t\t\t\t {\r\n\t\t\t\t\t\tsetUpdateLessonModalVisibility(false);\r\n\t\t\t\t\t\tsetSelectedLesson(null);\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tonCreate={handleUpdateLesson}\r\n\t\t\t\t\tvisible={updateLessonModalVisibility}\r\n\t\t\t\t\teditMode={editMode}\r\n\t\t\t\t/>\r\n\t\t\t\t {\r\n\t\t\t\t\t\tsetChangeLessonStatusModalVisiblity(false);\r\n\t\t\t\t\t\tsetSelectedLesson(null);\r\n\t\t\t\t\t}}\r\n\t\t\t\t\tonCreate={handleChangeLessonStatus}\r\n\t\t\t\t\tvisible={changeLessonStatusModalVisiblity}\r\n\t\t\t\t/>\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t setCreateHomeworkModalVisibility(true)}\r\n\t\t\t\t\t\thomeworks={selectedGroup.homeworks}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t} else {\r\n\t\treturn (\r\n\t\t\t history.push('/')}>\r\n\t\t\t\t\t\tStrona główna\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport default GroupDetailsContainer;\r\n","import { Button, Form, Select } from 'antd';\r\nimport { LessonTopicForGetAllLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport React from 'react';\r\n\r\ninterface ChangeLessonTopicFormProps {\r\n\tinitialValues: ChangeLessonTopicFormValues;\r\n\tavailableLessonTopics: LessonTopicForGetAllLessonTopicsResponse[];\r\n\tloading: boolean;\r\n\tonFinish: (values: ChangeLessonTopicFormValues) => void;\r\n}\r\n\r\nconst ChangeLessonTopicForm = ({\r\n\tinitialValues,\r\n\tavailableLessonTopics,\r\n\tloading,\r\n\tonFinish,\r\n}: ChangeLessonTopicFormProps) => {\r\n\tconst { lessonTopic } = formRules.lesson;\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\treturn { label: `${name}`, value: id };\r\n\t\t\t\t\t})}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ChangeLessonTopicForm;\r\n","import { Modal } from 'antd';\r\nimport { LessonTopicForGetAllLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport React from 'react';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport ChangeLessonTopicForm from '../forms/ChangeLessonTopicForm';\r\n\r\ninterface ChangeLessonTopicModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tcurrentLessonTopicId: number | null;\r\n\tavailableLessonTopics: LessonTopicForGetAllLessonTopicsResponse[];\r\n\tonFinish: (values: ChangeLessonTopicFormValues) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst ChangeLessonTopicModal = ({\r\n\tvisible,\r\n\tloading,\r\n\tavailableLessonTopics,\r\n\tcurrentLessonTopicId,\r\n\tonFinish,\r\n\tonCancel,\r\n}: ChangeLessonTopicModalProps) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ChangeLessonTopicModal;\r\n","import { Button, Form, Select } from 'antd';\r\nimport { TeacherForGetAllTeachersResponse } from 'App/api/endpoints/teachers/responses';\r\nimport React from 'react';\r\n\r\ninterface ChangeReplacementTeacherFormProps {\r\n\tcurrentReplacementTeacherId: string | null;\r\n\tavailableTeachers: TeacherForGetAllTeachersResponse[];\r\n\tloading: boolean;\r\n\tonFinish: (replacementTeacherId: string | null) => void;\r\n}\r\n\r\nconst ChangeReplacementTeacherForm = ({\r\n\tcurrentReplacementTeacherId,\r\n\tavailableTeachers,\r\n\tloading,\r\n\tonFinish,\r\n}: ChangeReplacementTeacherFormProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t {\r\n\t\t\t\t\t\treturn {\r\n\t\t\t\t\t\t\tlabel: `${replacementTeacher.firstName} ${replacementTeacher.lastName}`,\r\n\t\t\t\t\t\t\tvalue: replacementTeacher.id,\r\n\t\t\t\t\t\t};\r\n\t\t\t\t\t})}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ChangeReplacementTeacherForm;\r\n","import { Modal } from 'antd';\r\nimport { TeacherForGetAllTeachersResponse } from 'App/api/endpoints/teachers/responses';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport React from 'react';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport ChangeReplacementTeacherForm from '../forms/ChangeReplacementTeacherForm';\r\n\r\ninterface ChangeReplacementTeacherModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tcurrentReplacementTeacherId: string | null;\r\n\tavailableTeachers: TeacherForGetAllTeachersResponse[];\r\n\tonFinish: (replacementTeacherId: string | null) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst ChangeReplacementTeacherModal = ({\r\n\tvisible,\r\n\tloading,\r\n\tavailableTeachers,\r\n\tcurrentReplacementTeacherId,\r\n\tonFinish,\r\n\tonCancel,\r\n}: ChangeReplacementTeacherModalProps) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default ChangeReplacementTeacherModal;\r\n","import { InfoCircleOutlined } from '@ant-design/icons';\r\nimport { Input, Tooltip } from 'antd';\r\nimport React, { useState } from 'react';\r\n\r\ninterface PointsInputProps {\r\n\tpointsEarned: number;\r\n\tstudentLessonId: number;\r\n\tonPointsChange: (studentLessonId: number, points: number) => void;\r\n}\r\n\r\nconst PointsInput = ({ pointsEarned, studentLessonId, onPointsChange }: PointsInputProps) => {\r\n\tconst [timer, setTimer] = useState(null);\r\n\r\n\tconst delayedPointsChangeRequest = (points: number, studentLessonId: number) => {\r\n\t\tif (timer) {\r\n\t\t\tclearTimeout(timer);\r\n\t\t\tsetTimer(null);\r\n\t\t}\r\n\t\tsetTimer(\r\n\t\t\tsetTimeout(() => {\r\n\t\t\t\tif (!isNaN(points)) {\r\n\t\t\t\t\tpoints = Math.round(points);\r\n\t\t\t\t\tonPointsChange(studentLessonId, points);\r\n\t\t\t\t}\r\n\t\t\t}, 300)\r\n\t\t);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t\ttype='number'\r\n\t\t\tdefaultValue={pointsEarned}\r\n\t\t\tstep='1'\r\n\t\t\tinputMode='numeric'\r\n\t\t\tonClick={(e) => e.stopPropagation()}\r\n\t\t\tonChange={(e) => {\r\n\t\t\t\tdelayedPointsChangeRequest(Number(e.target.value), studentLessonId);\r\n\t\t\t}}\r\n\t\t\tmin={-1000}\r\n\t\t\tmax={1000}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default PointsInput;\r\n","import { Select } from 'antd';\r\nimport { PresenceStatus, presenceStatusArray } from 'App/types/studentLesson/pressenceStatus';\r\nimport React from 'react';\r\n\r\ninterface PresenceSelectProps {\r\n\tpresenceStatus: PresenceStatus;\r\n\tstudentLessonId: number;\r\n\tonPresenceStatusChange: (studentLessonIdE: number, presenceStatus: PresenceStatus) => void;\r\n}\r\n\r\nconst PresenceSelect = ({ presenceStatus, studentLessonId, onPresenceStatusChange }: PresenceSelectProps) => {\r\n\treturn (\r\n\t\t e.stopPropagation()}\r\n\t\t\tonChange={(newStatus) => onPresenceStatusChange(studentLessonId, newStatus)}\r\n\t\t\tdefaultValue={presenceStatus}\r\n\t\t\toptions={presenceStatusArray.map(({ text, value }) => {\r\n\t\t\t\treturn { label: text, value: value };\r\n\t\t\t})}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default PresenceSelect;\r\n","import { Card, List, Row, Collapse, Col } from 'antd';\r\nimport { GetTeacherLessonResponse } from 'App/api/endpoints/lessons/responses';\r\nimport StudentDescription from 'App/components/students/studentDescription/StudentDescription';\r\nimport { PresenceStatus } from 'App/types/studentLesson/pressenceStatus';\r\nimport React from 'react';\r\nimport PointsInput from './components/PointsInput';\r\nimport PresenceSelect from './components/PresenceSelect';\r\n\r\nimport './LessonStudents.less';\r\n\r\ninterface LessonStudentsProps {\r\n\tlesson: GetTeacherLessonResponse;\r\n\tonPresenceStatusChange: (studentLessonIdE: number, presenceStatus: PresenceStatus) => void;\r\n\tonPointsChange: (studentLessonId: number, points: number) => void;\r\n\tcanEdit: boolean;\r\n}\r\n\r\nconst LessonStudents = ({ lesson, onPresenceStatusChange, onPointsChange, canEdit }: LessonStudentsProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{canEdit && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t{canEdit && (\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default LessonStudents;\r\n","import { Col, notification, PageHeader, Row } from 'antd';\r\nimport { GetLessonResponse } from 'App/api/endpoints/lessons/responses';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport LoadingScreen from 'App/components/common/loadingScreen/LoadingScreen';\r\nimport { ChangeLessonStatusFormValues } from 'App/components/lessons/changeLessonStatus/forms/changeLessonStatusForm/models/changeLessonStatusFormValues';\r\nimport ChangeLessonStatusModal from 'App/components/lessons/changeLessonStatus/modals/ChangeLessonStatusModal';\r\nimport ChangeLessonTopicModal from 'App/components/lessons/changeLessonTopic/modals/ChangeLessonTopicModal';\r\nimport ChangeReplacementTeacherModal from 'App/components/lessons/changeReplacementTeacher/modals/ChangeReplacementTeacherModal';\r\nimport LessonDescription from 'App/components/lessons/lessonDescription/LessonDescription';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport LessonStudents from 'App/pages/teacherPages/views/teacherLessonDetails/components/lessonStudents/LessonStudents';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport { PresenceStatus } from 'App/types/studentLesson/pressenceStatus';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport { cleanUpLessonDetails } from '../../state/groups.slice';\r\nimport {\r\n\tchangeLessonStatus,\r\n\tchangeLessonTopic,\r\n\tchangePresenceStatus,\r\n\tchangeReplacementTeacher,\r\n\tchangeStudentLessonPoints,\r\n\tgetAllLessonTopics,\r\n\tgetAllTeachers,\r\n\tgetLesson,\r\n} from '../../state/groups.thunk';\r\n\r\nconst { Loading } = StatusType;\r\n\r\ninterface GroupLessonContainerParams {\r\n\tlessonId: string;\r\n}\r\n\r\nconst GroupLessonContainer = () => {\r\n\tconst params = useParams();\r\n\tconst lessonId = params.lessonId;\r\n\tconst dispatch = useDispatch();\r\n\tconst history = useHistory();\r\n\r\n\tconst lesson = useSelector((state: RootState) => state.pages.admin.groups.selectedLesson);\r\n\tconst getLessonStatus = useSelector((state: RootState) => state.pages.admin.groups.status.getLesson);\r\n\tconst changeLessonStatusStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.admin.groups.status.changeLessonStatus\r\n\t);\r\n\tconst allLessonTopics = useSelector((state: RootState) => state.pages.admin.groups.allLessonTopics);\r\n\tconst allTeachers = useSelector((state: RootState) => state.pages.admin.groups.allTeachers);\r\n\tconst getAllTeachersStatus = useSelector((state: RootState) => state.pages.admin.groups.status.getAllTeachers);\r\n\tconst getAllLessonTopicsStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.admin.groups.status.getAllLessonTopics\r\n\t);\r\n\tconst changeLessonTopicStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.admin.groups.status.changeLessonTopic\r\n\t);\r\n\tconst changeReplacementTeacherStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.admin.groups.status.changeReplacementTeacher\r\n\t);\r\n\r\n\tconst [changeLessonTopicModalVisibility, setChangeLessonTopicModalVisibility] = useState(false);\r\n\tconst [changeLessonStatusModalVisiblity, setChangeLessonStatusModalVisiblity] = useState(false);\r\n\tconst [changeReplacementTeacherModalVisibility, setChangeReplacementTeacherModalVisibility] = useState(false);\r\n\tconst [selectedLesson, setSelectedLesson] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(getLesson(lessonId));\r\n\t\tdispatch(getAllLessonTopics());\r\n\t\tdispatch(getAllTeachers());\r\n\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpLessonDetails());\r\n\t\t};\r\n\t}, [dispatch, lessonId]);\r\n\r\n\tconst getLessonTime = (lesson: GetLessonResponse): string => {\r\n\t\treturn `${dateTimeUtils\r\n\t\t\t.getLocalDateTime(lesson.startUtc)\r\n\t\t\t.format(dateTimeUtils.formats.HourMinute)}-${dateTimeUtils\r\n\t\t\t.getLocalDateTime(lesson.endUtc)\r\n\t\t\t.format(dateTimeUtils.formats.HourMinute)}`;\r\n\t};\r\n\r\n\tconst getLessonDate = (lesson: GetLessonResponse): string => {\r\n\t\treturn `${dateTimeUtils.getLocalDateTime(lesson.startUtc).format(dateTimeUtils.formats.YearMonthDay)}`;\r\n\t};\r\n\r\n\tconst handlePresenceStatusChange = (studentLessonId: number, presenceStatus: PresenceStatus) => {\r\n\t\tdispatch(changePresenceStatus(studentLessonId, presenceStatus));\r\n\t};\r\n\r\n\tconst handlePointsChange = (studentLessonId: number, points: number) => {\r\n\t\tdispatch(changeStudentLessonPoints(studentLessonId, points));\r\n\t};\r\n\r\n\tconst handleChangeLessonStatusClick = (lesson: GetLessonResponse) => {\r\n\t\tsetSelectedLesson(lesson);\r\n\t\tsetChangeLessonStatusModalVisiblity(true);\r\n\t};\r\n\r\n\tconst handleChangeLessonStatus = (values: ChangeLessonStatusFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Zmieniono status lekcji',\r\n\t\t\t});\r\n\r\n\t\t\tsetSelectedLesson(null);\r\n\t\t\tsetChangeLessonStatusModalVisiblity(false);\r\n\t\t\tdispatch(getLesson(lessonId));\r\n\t\t};\r\n\r\n\t\tdispatch(changeLessonStatus(selectedLesson.id, values, onSuccess));\r\n\t};\r\n\r\n\tconst onChangeLessonTopic = (values: ChangeLessonTopicFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Zmieniono temat lekcji',\r\n\t\t\t});\r\n\t\t\tsetChangeLessonTopicModalVisibility(false);\r\n\t\t\tdispatch(getLesson(lessonId));\r\n\t\t};\r\n\r\n\t\tdispatch(changeLessonTopic(lessonId, values, onSuccess));\r\n\t};\r\n\r\n\tconst onChangeReplacementTeacher = (values: any) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Zmieniono nauczyciela na zastępstwo',\r\n\t\t\t});\r\n\t\t\tsetChangeReplacementTeacherModalVisibility(false);\r\n\t\t\tdispatch(getLesson(lessonId));\r\n\t\t};\r\n\r\n\t\tdispatch(\r\n\t\t\tchangeReplacementTeacher(lessonId, { replacementTeacherId: values.replacementTeacherId || null }, onSuccess)\r\n\t\t);\r\n\t};\r\n\r\n\tconst onChangeLessonTopicClick = () => {\r\n\t\tsetChangeLessonTopicModalVisibility(true);\r\n\t};\r\n\r\n\tconst onChangeReplacementTeacherClick = () => {\r\n\t\tsetChangeReplacementTeacherModalVisibility(true);\r\n\t};\r\n\r\n\tconst getCurrentLessonTopic = () => {\r\n\t\tconst foundLessonTopics = allLessonTopics.filter((l) => l.name === lesson?.lessonTopic?.name);\r\n\r\n\t\tif (foundLessonTopics && foundLessonTopics.length > 0) {\r\n\t\t\treturn foundLessonTopics[0].id;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t};\r\n\r\n\tif (getLessonStatus === Loading || !lesson) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t setChangeLessonTopicModalVisibility(false)}\r\n\t\t\t\tcurrentLessonTopicId={getCurrentLessonTopic()}\r\n\t\t\t/>\r\n\t\t\t {\r\n\t\t\t\t\tsetChangeLessonStatusModalVisiblity(false);\r\n\t\t\t\t\tsetSelectedLesson(null);\r\n\t\t\t\t}}\r\n\t\t\t\tonCreate={handleChangeLessonStatus}\r\n\t\t\t\tvisible={changeLessonStatusModalVisiblity}\r\n\t\t\t/>\r\n\t\t\t setChangeReplacementTeacherModalVisibility(false)}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{lesson.group.name}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GroupLessonContainer;\r\n","import { Col, Row, Typography } from 'antd';\r\nimport { CourseForGetAllCoursesResponse } from 'App/api/endpoints/courses/responses';\r\nimport React from 'react';\r\n\r\ninterface InfoAboutCostsProps {\r\n\tselectedCourse: CourseForGetAllCoursesResponse;\r\n\tselectedCost: number;\r\n\tselectedNumberOfLessons: number;\r\n\tselectedSurchargeForInstallments: number;\r\n}\r\n\r\nconst InfoAboutCosts = ({\r\n\tselectedCourse,\r\n\tselectedCost,\r\n\tselectedNumberOfLessons,\r\n\tselectedSurchargeForInstallments,\r\n}: InfoAboutCostsProps) => {\r\n\tconst validData =\r\n\t\t!isNaN(selectedCost) && !isNaN(selectedNumberOfLessons) && !isNaN(selectedSurchargeForInstallments);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tDomyślny kurs:\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tLiczba zajęć: \r\n\t\t\t\t\t\t{selectedCourse?.defaultNumberOfLessonsInCourse}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tKoszt: \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{`${(\r\n\t\t\t\t\t\t\t\tselectedCourse?.defaultNumberOfLessonsInCourse * selectedCourse?.costGrossPerLessonInPln\r\n\t\t\t\t\t\t\t).toFixed(2)} zł`}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tTworzony kurs:\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tLiczba zajęć: \r\n\t\t\t\t\t\t{selectedNumberOfLessons}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tKoszt: \r\n\t\t\t\t\t\t{`${\r\n\t\t\t\t\t\t\tvalidData ? (selectedCost * selectedNumberOfLessons).toFixed(2) : '0.00'\r\n\t\t\t\t\t\t} zł`}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tKoszt na raty: \r\n\t\t\t\t\t\t{`${\r\n\t\t\t\t\t\t\tvalidData\r\n\t\t\t\t\t\t\t\t? (selectedCost * selectedNumberOfLessons + selectedSurchargeForInstallments).toFixed(2)\r\n\t\t\t\t\t\t\t\t: '0.00'\r\n\t\t\t\t\t\t} zł`}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default InfoAboutCosts;\r\n","import { Button, Col, DatePicker, Form, Input, InputNumber, Row, Select, TimePicker } from 'antd';\r\nimport { useForm } from 'antd/lib/form/Form';\r\nimport { CourseForGetAllCoursesResponse } from 'App/api/endpoints/courses/responses';\r\nimport { TeacherForGetAllTeachersResponse } from 'App/api/endpoints/teachers/responses';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport { IDayOfWeek } from 'App/common/utils/dayOfWeek';\r\nimport React, { useState } from 'react';\r\nimport InfoAboutCosts from './components/InfoAboutCosts';\r\nimport { GroupFormInitialValues } from './models/groupFormInitialValues';\r\nimport { GroupFormValues } from './models/groupFormValues';\r\n\r\ninterface GroupFormProps {\r\n\tloading: boolean;\r\n\tview: 'admin' | 'teacher';\r\n\tmode: 'update' | 'create';\r\n\tinitialValues?: GroupFormInitialValues;\r\n\tdaysOfWeek: IDayOfWeek[];\r\n\tteachers: TeacherForGetAllTeachersResponse[];\r\n\tcourses: CourseForGetAllCoursesResponse[];\r\n\tonFinish: (values: GroupFormValues) => void;\r\n}\r\n\r\nconst GroupForm = ({ loading, initialValues, mode, view, onFinish, daysOfWeek, teachers, courses }: GroupFormProps) => {\r\n\tconst [form] = useForm();\r\n\tconst [selectedCourse, setSelectedCourse] = useState({\r\n\t\tcostGrossPerLessonInPln: 0,\r\n\t\tdefaultNumberOfLessonsInCourse: 0,\r\n\t\tid: null,\r\n\t\tname: '',\r\n\t});\r\n\tconst [selectedCost, setSelectedCost] = useState(0);\r\n\tconst [selectedSurchargeForInstallments, setSelectedSurchargeForInstallments] = useState(0);\r\n\tconst [selectedNumberOfLessons, setSelectedNumberOfLessons] = useState(0);\r\n\r\n\tconst {\r\n\t\tname,\r\n\t\tmaxParticipants,\r\n\t\taddress,\r\n\t\tclassroom,\r\n\t\tdayOfLessons,\r\n\t\tlessonTime,\r\n\t\tgroupStartingDateTime,\r\n\t\tcourse,\r\n\t\tteacher,\r\n\t\tnumberOfLessons,\r\n\t\tcostGrossPerLessonInPln,\r\n\t\tnumberOfInstallments,\r\n\t\tsurchargeForInstallments,\r\n\t} = formRules.group;\r\n\r\n\tconst onValuesChange = (changedValue, values) => {\r\n\t\tif (changedValue['courseId']) {\r\n\t\t\tconst { defaultNumberOfLessonsInCourse, costGrossPerLessonInPln } = courses.find(\r\n\t\t\t\t(x) => x.id === changedValue['courseId']\r\n\t\t\t);\r\n\t\t\tform.setFieldsValue({\r\n\t\t\t\tnumberOfLessons: defaultNumberOfLessonsInCourse,\r\n\t\t\t\tcostGrossPerLessonInPln: costGrossPerLessonInPln,\r\n\t\t\t});\r\n\r\n\t\t\tsetSelectedNumberOfLessons(defaultNumberOfLessonsInCourse);\r\n\t\t\tsetSelectedCost(costGrossPerLessonInPln);\r\n\t\t} else {\r\n\t\t\tsetSelectedNumberOfLessons(values['numberOfLessons']);\r\n\t\t\tsetSelectedCost(values['costGrossPerLessonInPln']);\r\n\t\t\tsetSelectedSurchargeForInstallments(values['surchargeForInstallments']);\r\n\t\t}\r\n\t};\r\n\r\n\t// jeśli podano courseId w initial values, to uzupełnij pola związane z wybranym kursem\r\n\tif (initialValues.courseId && selectedCourse.id === null) {\r\n\t\tsetSelectedCourse(courses.find((x) => x.id === initialValues.courseId));\r\n\t\tonValuesChange({ courseId: initialValues.courseId }, initialValues);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t{mode === 'create' && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\treturn { label: text, value: value };\r\n\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\treturn { label: `${name}`, value: id };\r\n\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\tonSelect={(value) => setSelectedCourse(courses.find((x) => x.id === value))}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t{mode === 'create' && (\r\n\t\t\t\t\t<>\r\n\t\t\t\t\t\t{view === 'admin' && (\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t teacher.isConfirmed === true)\r\n\t\t\t\t\t\t\t\t\t\t\t.map(({ firstName, lastName, id }) => {\r\n\t\t\t\t\t\t\t\t\t\t\t\treturn { label: `${lastName} ${firstName}`, value: id };\r\n\t\t\t\t\t\t\t\t\t\t\t})}\r\n\t\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t)}\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GroupForm;\r\n","import Modal from 'antd/lib/modal/Modal';\r\nimport { CourseForGetAllCoursesResponse } from 'App/api/endpoints/courses/responses';\r\nimport { TeacherForGetAllTeachersResponse } from 'App/api/endpoints/teachers/responses';\r\nimport { daysOfWeek } from 'App/common/utils/dayOfWeek';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport moment from 'moment';\r\nimport React from 'react';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport GroupForm from '../../groupForm/GroupForm';\r\nimport { GroupFormValues } from '../../groupForm/models/groupFormValues';\r\n\r\ninterface CreateGroupModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tview: 'teacher' | 'admin';\r\n\tallTeachers?: TeacherForGetAllTeachersResponse[];\r\n\tallCourses: CourseForGetAllCoursesResponse[];\r\n\tonCreate: (values: GroupFormValues) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst CreateGroupModal = ({\r\n\tvisible,\r\n\tloading,\r\n\tview,\r\n\tallTeachers,\r\n\tallCourses,\r\n\tonCancel,\r\n\tonCreate,\r\n}: CreateGroupModalProps) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t 0 ? allCourses[0]?.id : null,\r\n\t\t\t\t\tname: '',\r\n\t\t\t\t\tdayOfLessons: daysOfWeek[0].value,\r\n\t\t\t\t\tmaxParticipants: 8,\r\n\t\t\t\t\tgroupStartingDateTime: moment().add(7, 'days'),\r\n\t\t\t\t\tteacherId: allTeachers?.length > 0 ? allTeachers[0]?.id : null,\r\n\t\t\t\t}}\r\n\t\t\t\tonFinish={onCreate}\r\n\t\t\t/>\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CreateGroupModal;\r\n","import { Modal } from 'antd';\r\nimport { CourseForGetAllCoursesResponse } from 'App/api/endpoints/courses/responses';\r\nimport { UpdateGroupRequest } from 'App/api/endpoints/groups/requests';\r\nimport { GroupForGetGroupsResponse } from 'App/api/endpoints/groups/responses';\r\nimport { TeacherForGetAllTeachersResponse } from 'App/api/endpoints/teachers/responses';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport { daysOfWeek } from 'App/common/utils/dayOfWeek';\r\nimport React from 'react';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport GroupForm from '../../groupForm/GroupForm';\r\n\r\ninterface UpdateGroupModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tview: 'teacher' | 'admin';\r\n\tallTeachers?: TeacherForGetAllTeachersResponse[];\r\n\tallCourses: CourseForGetAllCoursesResponse[];\r\n\tinitialValues: GroupForGetGroupsResponse;\r\n\tonUpdate: (values: UpdateGroupRequest) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst UpdateGroupModal = ({\r\n\tvisible,\r\n\tloading,\r\n\tview,\r\n\tinitialValues,\r\n\tallTeachers,\r\n\tallCourses,\r\n\tonCancel,\r\n\tonUpdate,\r\n}: UpdateGroupModalProps) => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default UpdateGroupModal;\r\n","import { PlusOutlined, SearchOutlined } from '@ant-design/icons';\r\nimport { Row, Col, Button, Input, Form } from 'antd';\r\nimport { GroupForGetGroupsResponse } from 'App/api/endpoints/groups/responses';\r\nimport React from 'react';\r\nimport { GroupsSearchFormValues } from './utils/groupsSearchFormValues';\r\n\r\ninterface GroupsSearchFormProps {\r\n\tloading: boolean;\r\n\tdataForFormLoading: boolean;\r\n\thandleSearch: (values: GroupsSearchFormValues) => void;\r\n\tshowGroupFormModal: (group?: GroupForGetGroupsResponse) => void;\r\n\tcanCreate: boolean;\r\n}\r\n\r\nconst GroupsSearchForm = ({\r\n\tloading,\r\n\tdataForFormLoading,\r\n\thandleSearch,\r\n\tshowGroupFormModal,\r\n\tcanCreate,\r\n}: GroupsSearchFormProps) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{canCreate && (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\tshowGroupFormModal();\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\ticon={}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{'Nowa grupa'}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{!record.isDeleted && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t (\r\n\t\t\t\t\t\t\t{name}\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t (\r\n\t\t\t\t\t\t\t<>{`${numberOfParticipants}/${maxParticipants}`}\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t{view === 'admin' && (\r\n\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t `${cost.toFixed()} zł`}\r\n\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t `${surcharge.toFixed()} zł`}\r\n\t\t\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t <>{DayOfWeekDict[value]}}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t (\r\n\t\t\t\t\t\t\t<>{`${getLocalTimeStringFromTimeBasedOnDate(\r\n\t\t\t\t\t\t\t\tlessonTimeStartUtc,\r\n\t\t\t\t\t\t\t\tcreatedAtUtc\r\n\t\t\t\t\t\t\t)}-${getLocalTimeStringFromTimeBasedOnDate(lessonTimeEndUtc, createdAtUtc)}`}\r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tif (view === 'admin') {\r\n\t\t\t\t\t\t\t\treturn {name};\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\treturn name;\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t{view === 'admin' && (\r\n\t\t\t\t\t\t (\r\n\t\t\t\t\t\t\t\t{`${lastName} ${firstName}`}\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\tisActive ? Aktywna : Nieaktywna\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tfilters={[\r\n\t\t\t\t\t\t\t{ text: 'Aktywna', value: true },\r\n\t\t\t\t\t\t\t{ text: 'Nieaktywna', value: false },\r\n\t\t\t\t\t\t]}\r\n\t\t\t\t\t\tfilterMultiple={false}\r\n\t\t\t\t\t\tfilteredValue={manageTableFilters(translatedFilters, 'isActive')}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t <>{isDeleted ? 'Tak' : 'Nie'}}\r\n\t\t\t\t\t\tfilters={[\r\n\t\t\t\t\t\t\t{ text: 'Tak', value: true },\r\n\t\t\t\t\t\t\t{ text: 'Nie', value: false },\r\n\t\t\t\t\t\t]}\r\n\t\t\t\t\t\tfilterMultiple={false}\r\n\t\t\t\t\t\tfilteredValue={manageTableFilters(translatedFilters, 'isDeleted')}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t{canEdit === true && (\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tif (record.isDeleted) return <>;\r\n\t\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t\t menuForActionDropdown(record)}\r\n\t\t\t\t\t\t\t\t\t\ttrigger={['click']}\r\n\t\t\t\t\t\t\t\t\t\tplacement='bottomCenter'\r\n\t\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t/>\r\n\t\t\t\t\t)}\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GroupsTable;\r\n","import { ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport { Col, Modal, notification, Row } from 'antd';\r\nimport { UpdateGroupRequest } from 'App/api/endpoints/groups/requests';\r\nimport { GroupForGetGroupsResponse } from 'App/api/endpoints/groups/responses';\r\nimport { paginationUtils } from 'App/common/utils/pagination.utils';\r\nimport { groupsGlobalService } from 'App/globalServices/groupsService/groups.global.service';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { cleanUpGroupForm, cleanUpGroupsTable } from '../../state/groups.slice';\r\nimport {\r\n\tactivateGroup,\r\n\tcreateGroup,\r\n\tdeleteGroup,\r\n\tgetAllCourses,\r\n\tgetAllTeachers,\r\n\tgetGroups,\r\n\tupdateGroup,\r\n} from '../../state/groups.thunk';\r\nimport CreateGroupModal from '../../../../../components/groups/createGroup/modals/CreateGroupModal';\r\nimport { GroupFormValues } from '../../../../../components/groups/groupForm/models/groupFormValues';\r\nimport UpdateGroupModal from '../../../../../components/groups/updateGroup/modals/UpdateGroupModal';\r\nimport GroupsTable from '../../../../../components/groups/groupsTable/components/GroupsTable';\r\n\r\nconst { Loading } = StatusType;\r\nconst { defaultPaginationValues } = paginationUtils;\r\n\r\nconst GroupsTableContainer = () => {\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst groups = useSelector((state: RootState) => state.pages.admin.groups.groups);\r\n\tconst getGroupsParams = useSelector((state: RootState) => state.pages.admin.groups.getGroupsParams);\r\n\tconst getGroupsStatus = useSelector((state: RootState) => state.pages.admin.groups.status.getGroups);\r\n\tconst createGroupStatus = useSelector((state: RootState) => state.pages.admin.groups.status.createGroup);\r\n\tconst deleteGroupStatus = useSelector((state: RootState) => state.pages.admin.groups.status.deleteGroup);\r\n\tconst updateGroupStatus = useSelector((state: RootState) => state.pages.admin.groups.status.updateGroup);\r\n\r\n\tconst allTeachers = useSelector((state: RootState) => state.pages.admin.groups.allTeachers);\r\n\tconst allCourses = useSelector((state: RootState) => state.pages.admin.groups.allCourses);\r\n\tconst getAllTeachersStatus = useSelector((state: RootState) => state.pages.admin.groups.status.getAllTeachers);\r\n\tconst getAllCoursesStatus = useSelector((state: RootState) => state.pages.admin.groups.status.getAllCourses);\r\n\r\n\tconst [groupFormModalVisible, setGroupFormModalVisible] = useState(false);\r\n\tconst [selectedGroup, setSelectedGroup] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\t// pierwsze uruchomienie z domyślnie ustawionymi filtrami i orderby\r\n\t\tdispatch(\r\n\t\t\tgetGroups({\r\n\t\t\t\t...defaultPaginationValues,\r\n\t\t\t\tfilters: [{ field: 'isDeleted', values: ['false'] }],\r\n\t\t\t\torderBy: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: 'name',\r\n\t\t\t\t\t\tdirection: 'Ascending',\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tdispatch(getAllTeachers());\r\n\t\tdispatch(getAllCourses());\r\n\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpGroupsTable());\r\n\t\t\tdispatch(cleanUpGroupForm());\r\n\t\t};\r\n\t}, [dispatch]);\r\n\r\n\tconst showGroupFormModal = (group?: GroupForGetGroupsResponse) => {\r\n\t\tsetSelectedGroup(group);\r\n\t\tsetGroupFormModalVisible(true);\r\n\t};\r\n\r\n\tconst hideGroupFormModal = () => {\r\n\t\tsetGroupFormModalVisible(false);\r\n\t\tsetSelectedGroup(null);\r\n\t};\r\n\r\n\tconst onCreateGroup = (values: GroupFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Dodano nową grupę',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getGroups({ ...getGroupsParams }));\r\n\t\t\thideGroupFormModal();\r\n\t\t};\r\n\r\n\t\tconst request = groupsGlobalService.convertToCreateGroupRequest(values);\r\n\t\tdispatch(createGroup(request, onSuccess));\r\n\t};\r\n\r\n\tconst onDeleteGroup = (groupToDelete: GroupForGetGroupsResponse) => {\r\n\t\tModal.confirm({\r\n\t\t\ttitle: `Czy na pewno chcesz usunąć grupę \"${groupToDelete.name}\"?`,\r\n\t\t\ticon: ,\r\n\t\t\tcontent: 'Wykonanie tej akcji będzie nieodwracalne',\r\n\t\t\tokText: 'Tak',\r\n\t\t\tcancelText: 'Nie',\r\n\t\t\tokType: 'primary',\r\n\t\t\tonOk() {\r\n\t\t\t\tconst onSucces = () => {\r\n\t\t\t\t\tnotification.success({\r\n\t\t\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\t\t\tdescription: 'Grupa została usunięta',\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdispatch(getGroups({ ...getGroupsParams }));\r\n\t\t\t\t};\r\n\t\t\t\tdispatch(deleteGroup(groupToDelete.id, onSucces));\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst onUpdateGroup = (values: UpdateGroupRequest) => {\r\n\t\tconst onSucces = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Grupa została zaktualizowana',\r\n\t\t\t});\r\n\t\t\tdispatch(\r\n\t\t\t\tgetGroups({\r\n\t\t\t\t\t...getGroupsParams,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\thideGroupFormModal();\r\n\t\t};\r\n\t\tdispatch(updateGroup(selectedGroup.id, values, onSucces));\r\n\t};\r\n\r\n\tconst onActivateGroup = (group: GroupForGetGroupsResponse) => {\r\n\t\tconst onSucces = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Grupa została aktywowana',\r\n\t\t\t});\r\n\t\t\tdispatch(\r\n\t\t\t\tgetGroups({\r\n\t\t\t\t\t...getGroupsParams,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t};\r\n\t\tdispatch(activateGroup(group.id, onSucces));\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GroupsTableContainer;\r\n","import React from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport GroupDetailsContainer from './views/groupDetails/GroupDetailsContainer';\r\nimport GroupLessonContainer from './views/groupLesson/GroupLessonContainer';\r\nimport GroupsTableContainer from './views/groupsTable/GroupsTableContainer';\r\n\r\nconst AdminGroupsPages = () => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AdminGroupsPages;\r\n","import agent from 'App/api/agent/agent';\r\nimport {\r\n\tGetLessonTopicsRequest,\r\n\tCreateLessonTopicRequest,\r\n\tUpdateLessonTopicRequest,\r\n} from 'App/api/endpoints/lessonTopic/requests';\r\nimport { AppThunk } from 'App/globalState/store';\r\nimport {\r\n\tgetLessonTopicsStart,\r\n\tgetLessonTopicsSuccess,\r\n\tgetLessonTopicsFailure,\r\n\tcreateLessonTopicFailure,\r\n\tcreateLessonTopicStart,\r\n\tcreateLessonTopicSuccess,\r\n\tupdateLessonTopicFailure,\r\n\tupdateLessonTopicStart,\r\n\tupdateLessonTopicSuccess,\r\n\tdeleteLessonTopicFailure,\r\n\tdeleteLessonTopicStart,\r\n\tdeleteLessonTopicSuccess,\r\n} from './lessonTopics.slice';\r\n\r\nexport const getLessonTopics =\r\n\t(body: GetLessonTopicsRequest): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getLessonTopicsStart());\r\n\t\tagent.LessonTopics.getLessonTopics(body)\r\n\t\t\t.then((response) => dispatch(getLessonTopicsSuccess(response)))\r\n\t\t\t.catch(() => dispatch(getLessonTopicsFailure()));\r\n\t};\r\n\r\nexport const createLessonTopic =\r\n\t(body: CreateLessonTopicRequest, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(createLessonTopicStart());\r\n\t\tagent.LessonTopics.createLessonTopic(body)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(createLessonTopicSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(createLessonTopicFailure()));\r\n\t};\r\n\r\nexport const updateLessonTopic =\r\n\t(lessonTopicId: number, body: UpdateLessonTopicRequest, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(updateLessonTopicStart());\r\n\t\tagent.LessonTopics.updateLessonTopic(lessonTopicId, body)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(updateLessonTopicSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(updateLessonTopicFailure()));\r\n\t};\r\n\r\nexport const deleteLessonTopic =\r\n\t(lessonTopicId: number, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(deleteLessonTopicStart());\r\n\t\tagent.LessonTopics.deleteLessonTopic(lessonTopicId)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(deleteLessonTopicSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(deleteLessonTopicFailure()));\r\n\t};\r\n","import { Button, Col, Form, Input, Row } from 'antd';\r\nimport { CreateLessonTopicRequest, UpdateLessonTopicRequest } from 'App/api/endpoints/lessonTopic/requests';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport React from 'react';\r\n\r\ninterface LessonTopicFormProps {\r\n\tloading: boolean;\r\n\tmode: 'update' | 'create';\r\n\tinitialValues?: UpdateLessonTopicRequest;\r\n\tonFinish: (values: UpdateLessonTopicRequest | CreateLessonTopicRequest) => void;\r\n}\r\n\r\nconst LessonTopicForm = ({ loading, initialValues, mode, onFinish }: LessonTopicFormProps) => {\r\n\tconst { name } = formRules.lessonTopic;\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default LessonTopicForm;\r\n","import Modal from 'antd/lib/modal/Modal';\r\nimport { CreateLessonTopicRequest } from 'App/api/endpoints/lessonTopic/requests';\r\nimport React from 'react';\r\nimport LessonTopicForm from '../../lessonTopicForm/LessonTopicForm';\r\n\r\ninterface CreateLessonTopicModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tonCreate: (values: CreateLessonTopicRequest) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst CreateLessonTopicModal = ({ visible, loading, onCancel, onCreate }: CreateLessonTopicModalProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default CreateLessonTopicModal;\r\n","import { Modal } from 'antd';\r\nimport { UpdateLessonTopicRequest } from 'App/api/endpoints/lessonTopic/requests';\r\nimport { LessonTopicForGetLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport React from 'react';\r\nimport LessonTopicForm from '../../lessonTopicForm/LessonTopicForm';\r\n\r\ninterface UpdateLessonTopicModalProps {\r\n\tvisible: boolean;\r\n\tloading: boolean;\r\n\tinitialValues: LessonTopicForGetLessonTopicsResponse;\r\n\tonUpdate: (values: UpdateLessonTopicRequest) => void;\r\n\tonCancel: () => void;\r\n}\r\n\r\nconst UpdateLessonTopicModal = ({\r\n\tvisible,\r\n\tloading,\r\n\tinitialValues,\r\n\tonCancel,\r\n\tonUpdate,\r\n}: UpdateLessonTopicModalProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default UpdateLessonTopicModal;\r\n","import { PlusOutlined, SearchOutlined } from '@ant-design/icons';\r\nimport { Row, Col, Button, Input, Form } from 'antd';\r\nimport { LessonTopicForGetLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport React from 'react';\r\nimport { LessonTopicsSearchFormValues } from './utils/lessonTopicsSearchFormValues';\r\n\r\ninterface LessonTopicsSearchFormProps {\r\n\tloading: boolean;\r\n\thandleSearch: (values: LessonTopicsSearchFormValues) => void;\r\n\tshowLessonTopicFormModal: (lessonTopic?: LessonTopicForGetLessonTopicsResponse) => void;\r\n}\r\n\r\nconst LessonTopicsSearchForm = ({ loading, handleSearch, showLessonTopicFormModal }: LessonTopicsSearchFormProps) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tshowLessonTopicFormModal();\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\ticon={}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{'Nowy temat'}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t <>{isDeleted ? 'Tak' : 'Nie'}}\r\n\t\t\t\t\t\tfilters={[\r\n\t\t\t\t\t\t\t{ text: 'Tak', value: true },\r\n\t\t\t\t\t\t\t{ text: 'Nie', value: false },\r\n\t\t\t\t\t\t]}\r\n\t\t\t\t\t\tfilterMultiple={false}\r\n\t\t\t\t\t\tfilteredValue={manageTableFilters(translatedFilters, 'isDeleted')}\r\n\t\t\t\t\t/>\r\n\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tif (record.isDeleted) return <>;\r\n\t\t\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\t\t menuForActionDropdown(record)}\r\n\t\t\t\t\t\t\t\t\ttrigger={['click']}\r\n\t\t\t\t\t\t\t\t\tplacement='bottomCenter'\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default LessonTopicsTable;\r\n","import { ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport { Col, Modal, notification, Row } from 'antd';\r\nimport { CreateLessonTopicRequest, UpdateLessonTopicRequest } from 'App/api/endpoints/lessonTopic/requests';\r\nimport { LessonTopicForGetLessonTopicsResponse } from 'App/api/endpoints/lessonTopic/responses';\r\nimport { paginationUtils } from 'App/common/utils/pagination.utils';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { cleanUpLessonTopicsTable } from '../../state/lessonTopics.slice';\r\nimport {\r\n\tcreateLessonTopic,\r\n\tdeleteLessonTopic,\r\n\tgetLessonTopics,\r\n\tupdateLessonTopic,\r\n} from '../../state/lessonTopics.thunk';\r\nimport CreateLessonTopicModal from '../createLessonTopic/modals/CreateLessonTopicModal';\r\nimport UpdateLessonTopicModal from '../updateLessonTopic/modals/UpdateLessonTopicModal';\r\nimport LessonTopicsTable from './components/LessonTopicsTable';\r\n\r\nconst { Loading } = StatusType;\r\nconst { defaultPaginationValues } = paginationUtils;\r\n\r\nconst LessonTopicsTableContainer = () => {\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst lessonTopics = useSelector((state: RootState) => state.pages.admin.lessonTopics.lessonTopics);\r\n\tconst getLessonTopicsParams = useSelector(\r\n\t\t(state: RootState) => state.pages.admin.lessonTopics.getLessonTopicsParams\r\n\t);\r\n\tconst getLessonTopicsStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.admin.lessonTopics.status.getLessonTopics\r\n\t);\r\n\tconst createLessonTopicStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.admin.lessonTopics.status.createLessonTopic\r\n\t);\r\n\tconst deleteLessonTopicStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.admin.lessonTopics.status.deleteLessonTopic\r\n\t);\r\n\tconst updateLessonTopicStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.admin.lessonTopics.status.updateLessonTopic\r\n\t);\r\n\r\n\tconst [lessonTopicFormModalVisible, setLessonTopicFormModalVisible] = useState(false);\r\n\tconst [selectedLessonTopic, setSelectedLessonTopic] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\t// pierwsze uruchomienie z domyślnie ustawionymi filtrami i orderby\r\n\t\tdispatch(\r\n\t\t\tgetLessonTopics({\r\n\t\t\t\t...defaultPaginationValues,\r\n\t\t\t\tfilters: [{ field: 'isDeleted', values: ['false'] }],\r\n\t\t\t\torderBy: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: 'name',\r\n\t\t\t\t\t\tdirection: 'Ascending',\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpLessonTopicsTable());\r\n\t\t};\r\n\t}, [dispatch]);\r\n\r\n\tconst showLessonTopicFormModal = (lessonTopic?: LessonTopicForGetLessonTopicsResponse) => {\r\n\t\tsetSelectedLessonTopic(lessonTopic);\r\n\t\tsetLessonTopicFormModalVisible(true);\r\n\t};\r\n\r\n\tconst hideLessonTopicFormModal = () => {\r\n\t\tsetLessonTopicFormModalVisible(false);\r\n\t};\r\n\r\n\tconst onCreateLessonTopic = (values: CreateLessonTopicRequest) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Dodano nowy temat lekcji',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getLessonTopics({ ...getLessonTopicsParams }));\r\n\t\t\thideLessonTopicFormModal();\r\n\t\t};\r\n\r\n\t\tdispatch(createLessonTopic(values, onSuccess));\r\n\t};\r\n\r\n\tconst onDeleteLessonTopic = (lessonTopicToDelete: LessonTopicForGetLessonTopicsResponse) => {\r\n\t\tModal.confirm({\r\n\t\t\ttitle: `Czy na pewno chcesz usunąć temat lekcji \"${lessonTopicToDelete.name}\"?`,\r\n\t\t\ticon: ,\r\n\t\t\tcontent: 'Wykonanie tej akcji będzie nieodwracalne',\r\n\t\t\tokText: 'Tak',\r\n\t\t\tcancelText: 'Nie',\r\n\t\t\tokType: 'primary',\r\n\t\t\tonOk() {\r\n\t\t\t\tconst onSucces = () => {\r\n\t\t\t\t\tnotification.success({\r\n\t\t\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\t\t\tdescription: 'Temat lekcji został usunięty',\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdispatch(getLessonTopics({ ...getLessonTopicsParams }));\r\n\t\t\t\t};\r\n\t\t\t\tdispatch(deleteLessonTopic(lessonTopicToDelete.id, onSucces));\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst onUpdateLessonTopic = (values: UpdateLessonTopicRequest) => {\r\n\t\tconst onSucces = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Temat lekcji został zaktualizowany',\r\n\t\t\t});\r\n\t\t\tdispatch(\r\n\t\t\t\tgetLessonTopics({\r\n\t\t\t\t\t...getLessonTopicsParams,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\thideLessonTopicFormModal();\r\n\t\t};\r\n\t\tdispatch(updateLessonTopic(selectedLessonTopic.id, values, onSucces));\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default LessonTopicsTableContainer;\r\n","import React from 'react';\r\nimport { Route, Switch } from 'react-router-dom';\r\nimport LessonTopicsTableContainer from './views/lessonTopicsTable/LessonTopicsTableContainer';\r\n\r\nconst AdminLessonTopicsPages = () => {\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AdminLessonTopicsPages;\r\n","import React from 'react';\r\n\r\nimport { Layout } from 'antd';\r\nimport { useMediaQuery } from 'react-responsive';\r\n\r\nimport AdminUsersPages from '../usersPages/AdminUsersPages';\r\nimport AdminLogsPages from '../logsPages/AdminLogsPages';\r\nimport AdminMessagesPages from '../maintenanceMessagesPages/AdminMessagesPages';\r\nimport AdminNavbarContainer from '../adminNavbar/AdminNavbarContainer';\r\n\r\nimport './styles/AdminLayoutContainer.less';\r\nimport AdminCoursesPages from '../coursesPages/AdminCoursesPages';\r\nimport AdminGroupsPages from '../groupsPages/AdminGroupsPages';\r\nimport AdminLessonTopicsPages from '../lessonTopicsPages/AdminLessonTopicsPages';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\n\r\nconst AdminLayoutContainer = () => {\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.xs.max });\r\n\r\n\tconst Content = (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{Content}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AdminLayoutContainer;\r\n","import ProtectedRoute from 'App/components/routing/protectedRoute/ProtectedRoute';\r\nimport Role from 'App/types/role';\r\nimport React from 'react';\r\nimport AdminLayoutContainer from './adminLayout/AdminLayoutContainer';\r\n\r\nconst AdminPages = [\r\n\t,\r\n];\r\n\r\nexport default AdminPages;\r\n","import React from 'react';\r\nimport { Form, Input, Button, Row, Col } from 'antd';\r\nimport { UserOutlined, LockOutlined } from '@ant-design/icons';\r\nimport { FormProps } from 'antd/lib/form/Form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Link } from 'react-router-dom';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\n\r\ninterface LoginFormProps extends FormProps {\r\n\tloading: boolean;\r\n}\r\n\r\nconst LoginForm = (props: LoginFormProps) => {\r\n\tconst { t } = useTranslation(['page', 'form', 'common']);\r\n\tconst { loading, ...rest } = props;\r\n\tconst { email, loginPassword } = formRules.user;\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\tplaceholder={t('models:User.Placeholders.Email')}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\ttype='password'\r\n\t\t\t\t\tplaceholder={t('models:User.Placeholders.Password')}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('AuthPages.ResendConfirmationEmail')}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{t('AuthPages.ForgotPassword')}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default LoginForm;\r\n","import React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RouteChildrenProps } from 'react-router';\r\n\r\nimport { PageHeader, Row, Col, notification } from 'antd';\r\nimport { Store } from 'antd/lib/form/interface';\r\n\r\nimport LoginForm from './forms/loginForm/LoginForm';\r\nimport { LoginRequest } from 'App/api/endpoints/auth/requests';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport { useTranslation } from 'react-i18next';\r\nimport i18n from 'i18n';\r\nimport { cleanUpAuthStatus, login } from 'App/globalState/auth/auth.global.thunk';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\n\r\ninterface LoginContainerProps extends RouteChildrenProps {\r\n\tname?: string;\r\n}\r\n\r\nconst LoginContainer = ({ history }: LoginContainerProps) => {\r\n\ttype FinishFormType = (values: Store) => void;\r\n\r\n\tconst { t } = useTranslation('page');\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst status = useSelector((state: RootState) => state.global.auth.status.login);\r\n\r\n\tuseEffect(() => {\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpAuthStatus());\r\n\t\t};\r\n\t}, [dispatch]);\r\n\r\n\tconst formInitialValues = {\r\n\t\temail: '',\r\n\t\tpassword: '',\r\n\t};\r\n\r\n\tconst signInHandler: FinishFormType = (values: LoginRequest) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tlet returnUrl = localStorage.getItem('returnUrl');\r\n\t\t\tlocalStorage.removeItem('returnUrl');\r\n\t\t\tlet path = returnUrl ? returnUrl : '/';\r\n\t\t\thistory.push(path);\r\n\t\t};\r\n\t\tconst onFailure = (detailedErrorCode: string) => {\r\n\t\t\tnotification['error']({\r\n\t\t\t\tmessage: i18n.t('common:Errors.Error'),\r\n\t\t\t\tdescription: i18n.t(`detailedErrors:${detailedErrorCode}.DescriptionFormatter`),\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tdispatch(login(values, onSuccess, onFailure));\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default LoginContainer;\r\n","import { Button, Col, Row, Typography } from 'antd';\r\nimport React from 'react';\r\nimport { Link } from 'react-router-dom';\r\n\r\nconst PreRegisterContainer = () => {\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tKim jesteś?\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default PreRegisterContainer;\r\n","import React, { useState } from 'react';\r\nimport { Form, Input, Button, DatePicker, Divider } from 'antd';\r\nimport { FormProps } from 'antd/lib/form/Form';\r\nimport { useTranslation } from 'react-i18next';\r\nimport i18n from '../../../../../../../i18n';\r\nimport Role from 'App/types/role';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\n\r\ninterface RegisterFormProps extends FormProps {\r\n\tloading: boolean;\r\n\trole: Role.Student | Role.Teacher;\r\n}\r\n\r\nconst RegisterForm = (props: RegisterFormProps) => {\r\n\tconst { t } = useTranslation(['page', 'form', 'common']);\r\n\tconst { role, loading, ...rest } = props;\r\n\tconst isStudent = role === Role.Student;\r\n\r\n\tconst { firstName, lastName, birthDate, email, password, confirmPassword } = formRules.user;\r\n\tconst { contactPersonEmail, contactPersonFirstName, contactPersonLastName, contactPersonPhone } =\r\n\t\tformRules.customContactDataForStudent;\r\n\r\n\tconst [areAdditionalContactFieldRequired] = useState(isStudent);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t{isStudent && areAdditionalContactFieldRequired && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tDane osoby do kontaktu\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default RegisterForm;\r\n","import React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RouteComponentProps } from 'react-router';\r\n\r\nimport { PageHeader, Row, Col, notification } from 'antd';\r\nimport { Store } from 'antd/lib/form/interface';\r\n\r\nimport RegisterForm from './forms/registerForm/RegisterForm';\r\nimport { RegisterRequest } from 'App/api/endpoints/auth/requests';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { register } from 'App/globalState/auth/auth.global.thunk';\r\nimport Role from 'App/types/role';\r\nimport { RegisterFormValues } from './models/registerFormValues';\r\nimport moment from 'moment';\r\n\r\ninterface RouteParams {\r\n\trole: string;\r\n}\r\n\r\ninterface RegisterContainerProps extends RouteComponentProps {}\r\n\r\nconst RegisterContainer = ({ history, match }: RegisterContainerProps) => {\r\n\ttype FinishFormType = (values: Store) => void;\r\n\r\n\tconst { t } = useTranslation('page');\r\n\r\n\tconst dispatch = useDispatch();\r\n\tconst status = useSelector((state: RootState) => state.global.auth.status.register);\r\n\r\n\tconst registerHandler: FinishFormType = (values: RegisterFormValues) => {\r\n\t\tlet handleSuccess: () => void = () => {\r\n\t\t\thistory.push('/sign-in');\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: t('common:Success.Success'),\r\n\t\t\t\tdescription: t('AuthPages.RegisterSuccess'),\r\n\t\t\t});\r\n\t\t};\r\n\t\tconst request : RegisterRequest = {\r\n\t\t\t...values,\r\n\t\t\tbirthDate: moment.utc(values.birthDate).format()\r\n\t\t};\r\n\t\tdispatch(register(request, handleSuccess));\r\n\t};\r\n\r\n\t// sprawdzamy jaką role przesłano, jeśli teacher no to teacher, w każdym innym razie jest to student\r\n\tlet roleToPassToForm = Role.Student;\r\n\tif (match.params.role === 'teacher') {\r\n\t\troleToPassToForm = Role.Teacher;\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\r\n\t\t\t\t\t{roleToPassToForm === Role.Student ? (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t)}\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default RegisterContainer;\r\n","import React from 'react';\r\nimport { Route } from 'react-router-dom';\r\nimport LoginContainer from './views/login/LoginContainer';\r\nimport PreRegisterContainer from './views/register/PreRegisterContainer';\r\nimport RegisterContainer from './views/register/RegisterContainer';\r\n\r\nconst AuthPages = [\r\n\t,\r\n\t,\r\n\t,\r\n];\r\n\r\nexport default AuthPages;\r\n","import { defaultLookupTable } from './default.lookup';\r\nimport { duzyBrat1LookupTable } from './duzyBrat1.lookup';\r\nimport { duzyBrat2LookupTable } from './duzyBrat2.lookup';\r\nimport { duzyBrat3LookupTable } from './duzyBrat3.lookup';\r\nimport { duzyBrat4LookupTable } from './duzyBrat4.lookup';\r\nimport { duzyBrat5LookupTable } from './duzyBrat5.lookup';\r\nimport { duzyBrat6LookupTable } from './duzyBrat6.lookup';\r\nimport { duzyBrat7LookupTable } from './duzyBrat7.lookup';\r\nimport { duzyBrat8LookupTable } from './duzyBrat8.lookup';\r\nimport { duzyBrat9LookupTable } from './duzyBrat9.lookup';\r\nimport { malyBrat1LookupTable } from './malyBrat1.lookup';\r\nimport { malyBrat2LookupTable } from './malyBrat2.lookup';\r\nimport { malyBrat3LookupTable } from './malyBrat3.lookup';\r\nimport { malyBrat4LookupTable } from './malyBrat4.lookup';\r\n\r\nexport const lookupTable = {\r\n\tdefaultAlgorithm: defaultLookupTable,\r\n\tmalyBrat4: malyBrat4LookupTable,\r\n\tmalyBrat3: malyBrat3LookupTable,\r\n\tmalyBrat2: malyBrat2LookupTable,\r\n\tmalyBrat1: malyBrat1LookupTable,\r\n\tduzyBrat9: duzyBrat9LookupTable,\r\n\tduzyBrat8: duzyBrat8LookupTable,\r\n\tduzyBrat7: duzyBrat7LookupTable,\r\n\tduzyBrat6: duzyBrat6LookupTable,\r\n\tduzyBrat5: duzyBrat5LookupTable,\r\n\tduzyBrat4: duzyBrat4LookupTable,\r\n\tduzyBrat3: duzyBrat3LookupTable,\r\n\tduzyBrat2: duzyBrat2LookupTable,\r\n\tduzyBrat1: duzyBrat1LookupTable,\r\n};\r\n","export const defaultLookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 9,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t0: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 0,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 0,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 1,\r\n\t\t\t3: 0,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 2,\r\n\t\t\t3: 1,\r\n\t\t\t4: 0,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 0,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 1,\r\n\t\t\t6: 0,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 5,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 2,\r\n\t\t\t6: 1,\r\n\t\t\t7: 0,\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 6,\r\n\t\t\t3: 5,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 3,\r\n\t\t\t6: 2,\r\n\t\t\t7: 1,\r\n\t\t\t8: 0,\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 7,\r\n\t\t\t3: 6,\r\n\t\t\t4: 5,\r\n\t\t\t5: 4,\r\n\t\t\t6: 3,\r\n\t\t\t7: 2,\r\n\t\t\t8: 1,\r\n\t\t\t9: 0,\r\n\t\t},\r\n\t},\r\n};","export const malyBrat4LookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 5,\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 6,\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 7,\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 8,\r\n\t\t\t5: 9,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t0: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 0,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 0,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 1,\r\n\t\t\t3: 0,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 2,\r\n\t\t\t3: 1,\r\n\t\t\t4: 0,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 1,\r\n\t\t\t5: 0,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 2,\r\n\t\t\t5: 1,\r\n\t\t\t6: 0,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 5,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 3,\r\n\t\t\t5: 2,\r\n\t\t\t6: 1,\r\n\t\t\t7: 0,\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 6,\r\n\t\t\t3: 5,\r\n\t\t\t4: 4,\r\n\t\t\t5: 3,\r\n\t\t\t6: 2,\r\n\t\t\t7: 1,\r\n\t\t\t8: 0,\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 7,\r\n\t\t\t3: 6,\r\n\t\t\t4: 5,\r\n\t\t\t5: 4,\r\n\t\t\t6: 3,\r\n\t\t\t7: 2,\r\n\t\t\t8: 1,\r\n\t\t\t9: 0,\r\n\t\t},\r\n\t},\r\n};\r\n","export const malyBrat3LookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 5,\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 5,\r\n\t\t\t4: 6,\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 6,\r\n\t\t\t4: 7,\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 7,\r\n\t\t\t4: 8,\r\n\t\t\t5: 9,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t0: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 0,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 0,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 1,\r\n\t\t\t3: 0,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 2,\r\n\t\t\t3: 1,\r\n\t\t\t4: 0,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 2,\r\n\t\t\t4: 1,\r\n\t\t\t5: 0,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 3,\r\n\t\t\t4: 2,\r\n\t\t\t5: 1,\r\n\t\t\t6: 0,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 5,\r\n\t\t\t3: 4,\r\n\t\t\t4: 3,\r\n\t\t\t5: 2,\r\n\t\t\t6: 1,\r\n\t\t\t7: 0,\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 6,\r\n\t\t\t3: 5,\r\n\t\t\t4: 4,\r\n\t\t\t5: 3,\r\n\t\t\t6: 2,\r\n\t\t\t7: 1,\r\n\t\t\t8: 0,\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 7,\r\n\t\t\t3: 6,\r\n\t\t\t4: 5,\r\n\t\t\t5: 4,\r\n\t\t\t6: 3,\r\n\t\t\t7: 2,\r\n\t\t\t8: 1,\r\n\t\t\t9: 0,\r\n\t\t},\r\n\t},\r\n};\r\n","export const malyBrat2LookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 5,\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 5,\r\n\t\t\t4: 6,\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 5,\r\n\t\t\t3: 6,\r\n\t\t\t4: 7,\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 6,\r\n\t\t\t3: 7,\r\n\t\t\t4: 8,\r\n\t\t\t5: 9,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t0: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 0,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 0,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 1,\r\n\t\t\t3: 0,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 2,\r\n\t\t\t3: 1,\r\n\t\t\t4: 0,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 3,\r\n\t\t\t3: 2,\r\n\t\t\t4: 1,\r\n\t\t\t5: 0,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 4,\r\n\t\t\t3: 3,\r\n\t\t\t4: 2,\r\n\t\t\t5: 1,\r\n\t\t\t6: 0,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 5,\r\n\t\t\t3: 4,\r\n\t\t\t4: 3,\r\n\t\t\t5: 2,\r\n\t\t\t6: 1,\r\n\t\t\t7: 0,\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 6,\r\n\t\t\t3: 5,\r\n\t\t\t4: 4,\r\n\t\t\t5: 3,\r\n\t\t\t6: 2,\r\n\t\t\t7: 1,\r\n\t\t\t8: 0,\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 7,\r\n\t\t\t3: 6,\r\n\t\t\t4: 5,\r\n\t\t\t5: 4,\r\n\t\t\t6: 3,\r\n\t\t\t7: 2,\r\n\t\t\t8: 1,\r\n\t\t\t9: 0,\r\n\t\t},\r\n\t},\r\n};\r\n","export const malyBrat1LookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 5,\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 5,\r\n\t\t\t4: 6,\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 5,\r\n\t\t\t3: 6,\r\n\t\t\t4: 7,\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 6,\r\n\t\t\t3: 7,\r\n\t\t\t4: 8,\r\n\t\t\t5: 9,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t0: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 0,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 0,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 1,\r\n\t\t\t3: 0,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 2,\r\n\t\t\t3: 1,\r\n\t\t\t4: 0,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 3,\r\n\t\t\t3: 2,\r\n\t\t\t4: 1,\r\n\t\t\t5: 0,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 4,\r\n\t\t\t3: 3,\r\n\t\t\t4: 2,\r\n\t\t\t5: 1,\r\n\t\t\t6: 0,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 5,\r\n\t\t\t3: 4,\r\n\t\t\t4: 3,\r\n\t\t\t5: 2,\r\n\t\t\t6: 1,\r\n\t\t\t7: 0,\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 6,\r\n\t\t\t3: 5,\r\n\t\t\t4: 4,\r\n\t\t\t5: 3,\r\n\t\t\t6: 2,\r\n\t\t\t7: 1,\r\n\t\t\t8: 0,\r\n\t\t\t9: 'N/A',\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 7,\r\n\t\t\t3: 6,\r\n\t\t\t4: 5,\r\n\t\t\t5: 4,\r\n\t\t\t6: 3,\r\n\t\t\t7: 2,\r\n\t\t\t8: 1,\r\n\t\t\t9: 0,\r\n\t\t},\r\n\t},\r\n};\r\n","export const duzyBrat9LookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 5,\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 5,\r\n\t\t\t4: 6,\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 11,\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 5,\r\n\t\t\t3: 6,\r\n\t\t\t4: 7,\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 12,\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 6,\r\n\t\t\t3: 7,\r\n\t\t\t4: 8,\r\n\t\t\t5: 9,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 13,\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 14,\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 15,\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 16,\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 17,\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 18,\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t10: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 1,\r\n\t\t},\r\n\t\t11: {\r\n\t\t\t1: 10,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 2,\r\n\t\t},\r\n\t\t12: {\r\n\t\t\t1: 11,\r\n\t\t\t2: 10,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 3,\r\n\t\t},\r\n\t\t13: {\r\n\t\t\t1: 12,\r\n\t\t\t2: 11,\r\n\t\t\t3: 10,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 4,\r\n\t\t},\r\n\t\t14: {\r\n\t\t\t1: 13,\r\n\t\t\t2: 12,\r\n\t\t\t3: 11,\r\n\t\t\t4: 10,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 5,\r\n\t\t},\r\n\t\t15: {\r\n\t\t\t1: 14,\r\n\t\t\t2: 13,\r\n\t\t\t3: 12,\r\n\t\t\t4: 11,\r\n\t\t\t5: 10,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 6,\r\n\t\t},\r\n\t\t16: {\r\n\t\t\t1: 15,\r\n\t\t\t2: 14,\r\n\t\t\t3: 13,\r\n\t\t\t4: 12,\r\n\t\t\t5: 11,\r\n\t\t\t6: 10,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 7,\r\n\t\t},\r\n\t\t17: {\r\n\t\t\t1: 16,\r\n\t\t\t2: 15,\r\n\t\t\t3: 14,\r\n\t\t\t4: 13,\r\n\t\t\t5: 12,\r\n\t\t\t6: 11,\r\n\t\t\t7: 10,\r\n\t\t\t8: 'N/A',\r\n\t\t\t9: 8,\r\n\t\t},\r\n\t\t18: {\r\n\t\t\t1: 17,\r\n\t\t\t2: 16,\r\n\t\t\t3: 15,\r\n\t\t\t4: 14,\r\n\t\t\t5: 13,\r\n\t\t\t6: 12,\r\n\t\t\t7: 11,\r\n\t\t\t8: 10,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t19: {\r\n\t\t\t1: 18,\r\n\t\t\t2: 17,\r\n\t\t\t3: 16,\r\n\t\t\t4: 15,\r\n\t\t\t5: 14,\r\n\t\t\t6: 13,\r\n\t\t\t7: 12,\r\n\t\t\t8: 11,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t},\r\n};\r\n","export const duzyBrat8LookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 5,\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 5,\r\n\t\t\t4: 6,\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 10,\r\n\t\t\t9: 11,\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 5,\r\n\t\t\t3: 6,\r\n\t\t\t4: 7,\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 11,\r\n\t\t\t9: 12,\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 6,\r\n\t\t\t3: 7,\r\n\t\t\t4: 8,\r\n\t\t\t5: 9,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 12,\r\n\t\t\t9: 13,\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 13,\r\n\t\t\t9: 14,\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 14,\r\n\t\t\t9: 15,\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 15,\r\n\t\t\t9: 16,\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 16,\r\n\t\t\t9: 17,\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 17,\r\n\t\t\t9: 18,\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t10: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 2,\r\n\t\t\t9: 1,\r\n\t\t},\r\n\t\t11: {\r\n\t\t\t1: 10,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 3,\r\n\t\t\t9: 2,\r\n\t\t},\r\n\t\t12: {\r\n\t\t\t1: 11,\r\n\t\t\t2: 10,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 4,\r\n\t\t\t9: 3,\r\n\t\t},\r\n\t\t13: {\r\n\t\t\t1: 12,\r\n\t\t\t2: 11,\r\n\t\t\t3: 10,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 5,\r\n\t\t\t9: 4,\r\n\t\t},\r\n\t\t14: {\r\n\t\t\t1: 13,\r\n\t\t\t2: 12,\r\n\t\t\t3: 11,\r\n\t\t\t4: 10,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 6,\r\n\t\t\t9: 5,\r\n\t\t},\r\n\t\t15: {\r\n\t\t\t1: 14,\r\n\t\t\t2: 13,\r\n\t\t\t3: 12,\r\n\t\t\t4: 11,\r\n\t\t\t5: 10,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 7,\r\n\t\t\t9: 6,\r\n\t\t},\r\n\t\t16: {\r\n\t\t\t1: 15,\r\n\t\t\t2: 14,\r\n\t\t\t3: 13,\r\n\t\t\t4: 12,\r\n\t\t\t5: 11,\r\n\t\t\t6: 10,\r\n\t\t\t7: 'N/A',\r\n\t\t\t8: 8,\r\n\t\t\t9: 7,\r\n\t\t},\r\n\t\t17: {\r\n\t\t\t1: 16,\r\n\t\t\t2: 15,\r\n\t\t\t3: 14,\r\n\t\t\t4: 13,\r\n\t\t\t5: 12,\r\n\t\t\t6: 11,\r\n\t\t\t7: 10,\r\n\t\t\t8: 9,\r\n\t\t\t9: 8,\r\n\t\t},\r\n\t\t18: {\r\n\t\t\t1: 17,\r\n\t\t\t2: 16,\r\n\t\t\t3: 15,\r\n\t\t\t4: 14,\r\n\t\t\t5: 13,\r\n\t\t\t6: 12,\r\n\t\t\t7: 11,\r\n\t\t\t8: 10,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t19: {\r\n\t\t\t1: 18,\r\n\t\t\t2: 17,\r\n\t\t\t3: 16,\r\n\t\t\t4: 15,\r\n\t\t\t5: 14,\r\n\t\t\t6: 13,\r\n\t\t\t7: 12,\r\n\t\t\t8: 11,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t},\r\n};\r\n","export const duzyBrat7LookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 5,\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 5,\r\n\t\t\t4: 6,\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 10,\r\n\t\t\t9: 11,\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 5,\r\n\t\t\t3: 6,\r\n\t\t\t4: 7,\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 10,\r\n\t\t\t8: 11,\r\n\t\t\t9: 12,\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 6,\r\n\t\t\t3: 7,\r\n\t\t\t4: 8,\r\n\t\t\t5: 9,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 11,\r\n\t\t\t8: 12,\r\n\t\t\t9: 13,\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 12,\r\n\t\t\t8: 13,\r\n\t\t\t9: 14,\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 13,\r\n\t\t\t8: 14,\r\n\t\t\t9: 15,\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 14,\r\n\t\t\t8: 15,\r\n\t\t\t9: 16,\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 15,\r\n\t\t\t8: 16,\r\n\t\t\t9: 17,\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 16,\r\n\t\t\t8: 17,\r\n\t\t\t9: 18,\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t10: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 3,\r\n\t\t\t8: 2,\r\n\t\t\t9: 1,\r\n\t\t},\r\n\t\t11: {\r\n\t\t\t1: 10,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 4,\r\n\t\t\t8: 3,\r\n\t\t\t9: 2,\r\n\t\t},\r\n\t\t12: {\r\n\t\t\t1: 11,\r\n\t\t\t2: 10,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 5,\r\n\t\t\t8: 4,\r\n\t\t\t9: 3,\r\n\t\t},\r\n\t\t13: {\r\n\t\t\t1: 12,\r\n\t\t\t2: 11,\r\n\t\t\t3: 10,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 6,\r\n\t\t\t8: 5,\r\n\t\t\t9: 4,\r\n\t\t},\r\n\t\t14: {\r\n\t\t\t1: 13,\r\n\t\t\t2: 12,\r\n\t\t\t3: 11,\r\n\t\t\t4: 10,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 7,\r\n\t\t\t8: 6,\r\n\t\t\t9: 5,\r\n\t\t},\r\n\t\t15: {\r\n\t\t\t1: 14,\r\n\t\t\t2: 13,\r\n\t\t\t3: 12,\r\n\t\t\t4: 11,\r\n\t\t\t5: 10,\r\n\t\t\t6: 'N/A',\r\n\t\t\t7: 8,\r\n\t\t\t8: 7,\r\n\t\t\t9: 6,\r\n\t\t},\r\n\t\t16: {\r\n\t\t\t1: 15,\r\n\t\t\t2: 14,\r\n\t\t\t3: 13,\r\n\t\t\t4: 12,\r\n\t\t\t5: 11,\r\n\t\t\t6: 10,\r\n\t\t\t7: 9,\r\n\t\t\t8: 8,\r\n\t\t\t9: 7,\r\n\t\t},\r\n\t\t17: {\r\n\t\t\t1: 16,\r\n\t\t\t2: 15,\r\n\t\t\t3: 14,\r\n\t\t\t4: 13,\r\n\t\t\t5: 12,\r\n\t\t\t6: 11,\r\n\t\t\t7: 10,\r\n\t\t\t8: 9,\r\n\t\t\t9: 8,\r\n\t\t},\r\n\t\t18: {\r\n\t\t\t1: 17,\r\n\t\t\t2: 16,\r\n\t\t\t3: 15,\r\n\t\t\t4: 14,\r\n\t\t\t5: 13,\r\n\t\t\t6: 12,\r\n\t\t\t7: 11,\r\n\t\t\t8: 10,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t19: {\r\n\t\t\t1: 18,\r\n\t\t\t2: 17,\r\n\t\t\t3: 16,\r\n\t\t\t4: 15,\r\n\t\t\t5: 14,\r\n\t\t\t6: 13,\r\n\t\t\t7: 12,\r\n\t\t\t8: 11,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t},\r\n};\r\n","export const duzyBrat6LookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 5,\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 5,\r\n\t\t\t4: 6,\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 10,\r\n\t\t\t9: 11,\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 5,\r\n\t\t\t3: 6,\r\n\t\t\t4: 7,\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 10,\r\n\t\t\t8: 11,\r\n\t\t\t9: 12,\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 6,\r\n\t\t\t3: 7,\r\n\t\t\t4: 8,\r\n\t\t\t5: 9,\r\n\t\t\t6: 10,\r\n\t\t\t7: 11,\r\n\t\t\t8: 12,\r\n\t\t\t9: 13,\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 11,\r\n\t\t\t7: 12,\r\n\t\t\t8: 13,\r\n\t\t\t9: 14,\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 12,\r\n\t\t\t7: 13,\r\n\t\t\t8: 14,\r\n\t\t\t9: 15,\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 13,\r\n\t\t\t7: 14,\r\n\t\t\t8: 15,\r\n\t\t\t9: 16,\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 14,\r\n\t\t\t7: 15,\r\n\t\t\t8: 16,\r\n\t\t\t9: 17,\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 15,\r\n\t\t\t7: 16,\r\n\t\t\t8: 17,\r\n\t\t\t9: 18,\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t10: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 4,\r\n\t\t\t7: 3,\r\n\t\t\t8: 2,\r\n\t\t\t9: 1,\r\n\t\t},\r\n\t\t11: {\r\n\t\t\t1: 10,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 5,\r\n\t\t\t7: 4,\r\n\t\t\t8: 3,\r\n\t\t\t9: 2,\r\n\t\t},\r\n\t\t12: {\r\n\t\t\t1: 11,\r\n\t\t\t2: 10,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 6,\r\n\t\t\t7: 5,\r\n\t\t\t8: 4,\r\n\t\t\t9: 3,\r\n\t\t},\r\n\t\t13: {\r\n\t\t\t1: 12,\r\n\t\t\t2: 11,\r\n\t\t\t3: 10,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 7,\r\n\t\t\t7: 6,\r\n\t\t\t8: 5,\r\n\t\t\t9: 4,\r\n\t\t},\r\n\t\t14: {\r\n\t\t\t1: 13,\r\n\t\t\t2: 12,\r\n\t\t\t3: 11,\r\n\t\t\t4: 10,\r\n\t\t\t5: 'N/A',\r\n\t\t\t6: 8,\r\n\t\t\t7: 7,\r\n\t\t\t8: 6,\r\n\t\t\t9: 5,\r\n\t\t},\r\n\t\t15: {\r\n\t\t\t1: 14,\r\n\t\t\t2: 13,\r\n\t\t\t3: 12,\r\n\t\t\t4: 11,\r\n\t\t\t5: 10,\r\n\t\t\t6: 9,\r\n\t\t\t7: 8,\r\n\t\t\t8: 7,\r\n\t\t\t9: 6,\r\n\t\t},\r\n\t\t16: {\r\n\t\t\t1: 15,\r\n\t\t\t2: 14,\r\n\t\t\t3: 13,\r\n\t\t\t4: 12,\r\n\t\t\t5: 11,\r\n\t\t\t6: 10,\r\n\t\t\t7: 9,\r\n\t\t\t8: 8,\r\n\t\t\t9: 7,\r\n\t\t},\r\n\t\t17: {\r\n\t\t\t1: 16,\r\n\t\t\t2: 15,\r\n\t\t\t3: 14,\r\n\t\t\t4: 13,\r\n\t\t\t5: 12,\r\n\t\t\t6: 11,\r\n\t\t\t7: 10,\r\n\t\t\t8: 9,\r\n\t\t\t9: 8,\r\n\t\t},\r\n\t\t18: {\r\n\t\t\t1: 17,\r\n\t\t\t2: 16,\r\n\t\t\t3: 15,\r\n\t\t\t4: 14,\r\n\t\t\t5: 13,\r\n\t\t\t6: 12,\r\n\t\t\t7: 11,\r\n\t\t\t8: 10,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t19: {\r\n\t\t\t1: 18,\r\n\t\t\t2: 17,\r\n\t\t\t3: 16,\r\n\t\t\t4: 15,\r\n\t\t\t5: 14,\r\n\t\t\t6: 13,\r\n\t\t\t7: 12,\r\n\t\t\t8: 11,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t},\r\n};\r\n","export const duzyBrat5LookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 5,\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 5,\r\n\t\t\t4: 6,\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 10,\r\n\t\t\t9: 11,\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 5,\r\n\t\t\t3: 6,\r\n\t\t\t4: 7,\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 10,\r\n\t\t\t8: 11,\r\n\t\t\t9: 12,\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 6,\r\n\t\t\t3: 7,\r\n\t\t\t4: 8,\r\n\t\t\t5: 9,\r\n\t\t\t6: 10,\r\n\t\t\t7: 11,\r\n\t\t\t8: 12,\r\n\t\t\t9: 13,\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 10,\r\n\t\t\t6: 11,\r\n\t\t\t7: 12,\r\n\t\t\t8: 13,\r\n\t\t\t9: 14,\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 11,\r\n\t\t\t6: 12,\r\n\t\t\t7: 13,\r\n\t\t\t8: 14,\r\n\t\t\t9: 15,\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 12,\r\n\t\t\t6: 13,\r\n\t\t\t7: 14,\r\n\t\t\t8: 15,\r\n\t\t\t9: 16,\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 13,\r\n\t\t\t6: 14,\r\n\t\t\t7: 15,\r\n\t\t\t8: 16,\r\n\t\t\t9: 17,\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 14,\r\n\t\t\t6: 15,\r\n\t\t\t7: 16,\r\n\t\t\t8: 17,\r\n\t\t\t9: 18,\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t10: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 5,\r\n\t\t\t6: 4,\r\n\t\t\t7: 3,\r\n\t\t\t8: 2,\r\n\t\t\t9: 1,\r\n\t\t},\r\n\t\t11: {\r\n\t\t\t1: 10,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 6,\r\n\t\t\t6: 5,\r\n\t\t\t7: 4,\r\n\t\t\t8: 3,\r\n\t\t\t9: 2,\r\n\t\t},\r\n\t\t12: {\r\n\t\t\t1: 11,\r\n\t\t\t2: 10,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 7,\r\n\t\t\t6: 6,\r\n\t\t\t7: 5,\r\n\t\t\t8: 4,\r\n\t\t\t9: 3,\r\n\t\t},\r\n\t\t13: {\r\n\t\t\t1: 12,\r\n\t\t\t2: 11,\r\n\t\t\t3: 10,\r\n\t\t\t4: 'N/A',\r\n\t\t\t5: 8,\r\n\t\t\t6: 7,\r\n\t\t\t7: 6,\r\n\t\t\t8: 5,\r\n\t\t\t9: 4,\r\n\t\t},\r\n\t\t14: {\r\n\t\t\t1: 13,\r\n\t\t\t2: 12,\r\n\t\t\t3: 11,\r\n\t\t\t4: 10,\r\n\t\t\t5: 9,\r\n\t\t\t6: 8,\r\n\t\t\t7: 7,\r\n\t\t\t8: 6,\r\n\t\t\t9: 5,\r\n\t\t},\r\n\t\t15: {\r\n\t\t\t1: 14,\r\n\t\t\t2: 13,\r\n\t\t\t3: 12,\r\n\t\t\t4: 11,\r\n\t\t\t5: 10,\r\n\t\t\t6: 9,\r\n\t\t\t7: 8,\r\n\t\t\t8: 7,\r\n\t\t\t9: 6,\r\n\t\t},\r\n\t\t16: {\r\n\t\t\t1: 15,\r\n\t\t\t2: 14,\r\n\t\t\t3: 13,\r\n\t\t\t4: 12,\r\n\t\t\t5: 11,\r\n\t\t\t6: 10,\r\n\t\t\t7: 9,\r\n\t\t\t8: 8,\r\n\t\t\t9: 7,\r\n\t\t},\r\n\t\t17: {\r\n\t\t\t1: 16,\r\n\t\t\t2: 15,\r\n\t\t\t3: 14,\r\n\t\t\t4: 13,\r\n\t\t\t5: 12,\r\n\t\t\t6: 11,\r\n\t\t\t7: 10,\r\n\t\t\t8: 9,\r\n\t\t\t9: 8,\r\n\t\t},\r\n\t\t18: {\r\n\t\t\t1: 17,\r\n\t\t\t2: 16,\r\n\t\t\t3: 15,\r\n\t\t\t4: 14,\r\n\t\t\t5: 13,\r\n\t\t\t6: 12,\r\n\t\t\t7: 11,\r\n\t\t\t8: 10,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t19: {\r\n\t\t\t1: 18,\r\n\t\t\t2: 17,\r\n\t\t\t3: 16,\r\n\t\t\t4: 15,\r\n\t\t\t5: 14,\r\n\t\t\t6: 13,\r\n\t\t\t7: 12,\r\n\t\t\t8: 11,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t},\r\n};\r\n","export const duzyBrat4LookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 5,\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 5,\r\n\t\t\t4: 6,\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 10,\r\n\t\t\t9: 11,\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 5,\r\n\t\t\t3: 6,\r\n\t\t\t4: 7,\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 10,\r\n\t\t\t8: 11,\r\n\t\t\t9: 12,\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 6,\r\n\t\t\t3: 7,\r\n\t\t\t4: 8,\r\n\t\t\t5: 9,\r\n\t\t\t6: 10,\r\n\t\t\t7: 11,\r\n\t\t\t8: 12,\r\n\t\t\t9: 13,\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 10,\r\n\t\t\t6: 11,\r\n\t\t\t7: 12,\r\n\t\t\t8: 13,\r\n\t\t\t9: 14,\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 10,\r\n\t\t\t5: 11,\r\n\t\t\t6: 12,\r\n\t\t\t7: 13,\r\n\t\t\t8: 14,\r\n\t\t\t9: 15,\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 11,\r\n\t\t\t5: 12,\r\n\t\t\t6: 13,\r\n\t\t\t7: 14,\r\n\t\t\t8: 15,\r\n\t\t\t9: 16,\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 12,\r\n\t\t\t5: 13,\r\n\t\t\t6: 14,\r\n\t\t\t7: 15,\r\n\t\t\t8: 16,\r\n\t\t\t9: 17,\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 13,\r\n\t\t\t5: 14,\r\n\t\t\t6: 15,\r\n\t\t\t7: 16,\r\n\t\t\t8: 17,\r\n\t\t\t9: 18,\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t10: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 6,\r\n\t\t\t5: 5,\r\n\t\t\t6: 4,\r\n\t\t\t7: 3,\r\n\t\t\t8: 2,\r\n\t\t\t9: 1,\r\n\t\t},\r\n\t\t11: {\r\n\t\t\t1: 10,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 7,\r\n\t\t\t5: 6,\r\n\t\t\t6: 5,\r\n\t\t\t7: 4,\r\n\t\t\t8: 3,\r\n\t\t\t9: 2,\r\n\t\t},\r\n\t\t12: {\r\n\t\t\t1: 11,\r\n\t\t\t2: 10,\r\n\t\t\t3: 'N/A',\r\n\t\t\t4: 8,\r\n\t\t\t5: 7,\r\n\t\t\t6: 6,\r\n\t\t\t7: 5,\r\n\t\t\t8: 4,\r\n\t\t\t9: 3,\r\n\t\t},\r\n\t\t13: {\r\n\t\t\t1: 12,\r\n\t\t\t2: 11,\r\n\t\t\t3: 10,\r\n\t\t\t4: 9,\r\n\t\t\t5: 8,\r\n\t\t\t6: 7,\r\n\t\t\t7: 6,\r\n\t\t\t8: 5,\r\n\t\t\t9: 4,\r\n\t\t},\r\n\t\t14: {\r\n\t\t\t1: 13,\r\n\t\t\t2: 12,\r\n\t\t\t3: 11,\r\n\t\t\t4: 10,\r\n\t\t\t5: 9,\r\n\t\t\t6: 8,\r\n\t\t\t7: 7,\r\n\t\t\t8: 6,\r\n\t\t\t9: 5,\r\n\t\t},\r\n\t\t15: {\r\n\t\t\t1: 14,\r\n\t\t\t2: 13,\r\n\t\t\t3: 12,\r\n\t\t\t4: 11,\r\n\t\t\t5: 10,\r\n\t\t\t6: 9,\r\n\t\t\t7: 8,\r\n\t\t\t8: 7,\r\n\t\t\t9: 6,\r\n\t\t},\r\n\t\t16: {\r\n\t\t\t1: 15,\r\n\t\t\t2: 14,\r\n\t\t\t3: 13,\r\n\t\t\t4: 12,\r\n\t\t\t5: 11,\r\n\t\t\t6: 10,\r\n\t\t\t7: 9,\r\n\t\t\t8: 8,\r\n\t\t\t9: 7,\r\n\t\t},\r\n\t\t17: {\r\n\t\t\t1: 16,\r\n\t\t\t2: 15,\r\n\t\t\t3: 14,\r\n\t\t\t4: 13,\r\n\t\t\t5: 12,\r\n\t\t\t6: 11,\r\n\t\t\t7: 10,\r\n\t\t\t8: 9,\r\n\t\t\t9: 8,\r\n\t\t},\r\n\t\t18: {\r\n\t\t\t1: 17,\r\n\t\t\t2: 16,\r\n\t\t\t3: 15,\r\n\t\t\t4: 14,\r\n\t\t\t5: 13,\r\n\t\t\t6: 12,\r\n\t\t\t7: 11,\r\n\t\t\t8: 10,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t19: {\r\n\t\t\t1: 18,\r\n\t\t\t2: 17,\r\n\t\t\t3: 16,\r\n\t\t\t4: 15,\r\n\t\t\t5: 14,\r\n\t\t\t6: 13,\r\n\t\t\t7: 12,\r\n\t\t\t8: 11,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t},\r\n};\r\n","export const duzyBrat3LookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 5,\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 5,\r\n\t\t\t4: 6,\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 10,\r\n\t\t\t9: 11,\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 5,\r\n\t\t\t3: 6,\r\n\t\t\t4: 7,\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 10,\r\n\t\t\t8: 11,\r\n\t\t\t9: 12,\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 6,\r\n\t\t\t3: 7,\r\n\t\t\t4: 8,\r\n\t\t\t5: 9,\r\n\t\t\t6: 10,\r\n\t\t\t7: 11,\r\n\t\t\t8: 12,\r\n\t\t\t9: 13,\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 10,\r\n\t\t\t6: 11,\r\n\t\t\t7: 12,\r\n\t\t\t8: 13,\r\n\t\t\t9: 14,\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 10,\r\n\t\t\t5: 11,\r\n\t\t\t6: 12,\r\n\t\t\t7: 13,\r\n\t\t\t8: 14,\r\n\t\t\t9: 15,\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 10,\r\n\t\t\t4: 11,\r\n\t\t\t5: 12,\r\n\t\t\t6: 13,\r\n\t\t\t7: 14,\r\n\t\t\t8: 15,\r\n\t\t\t9: 16,\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 11,\r\n\t\t\t4: 12,\r\n\t\t\t5: 13,\r\n\t\t\t6: 14,\r\n\t\t\t7: 15,\r\n\t\t\t8: 16,\r\n\t\t\t9: 17,\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 12,\r\n\t\t\t4: 13,\r\n\t\t\t5: 14,\r\n\t\t\t6: 15,\r\n\t\t\t7: 16,\r\n\t\t\t8: 17,\r\n\t\t\t9: 18,\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t10: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 7,\r\n\t\t\t4: 6,\r\n\t\t\t5: 5,\r\n\t\t\t6: 4,\r\n\t\t\t7: 3,\r\n\t\t\t8: 2,\r\n\t\t\t9: 1,\r\n\t\t},\r\n\t\t11: {\r\n\t\t\t1: 10,\r\n\t\t\t2: 'N/A',\r\n\t\t\t3: 8,\r\n\t\t\t4: 7,\r\n\t\t\t5: 6,\r\n\t\t\t6: 5,\r\n\t\t\t7: 4,\r\n\t\t\t8: 3,\r\n\t\t\t9: 2,\r\n\t\t},\r\n\t\t12: {\r\n\t\t\t1: 11,\r\n\t\t\t2: 10,\r\n\t\t\t3: 9,\r\n\t\t\t4: 8,\r\n\t\t\t5: 7,\r\n\t\t\t6: 6,\r\n\t\t\t7: 5,\r\n\t\t\t8: 4,\r\n\t\t\t9: 3,\r\n\t\t},\r\n\t\t13: {\r\n\t\t\t1: 12,\r\n\t\t\t2: 11,\r\n\t\t\t3: 10,\r\n\t\t\t4: 9,\r\n\t\t\t5: 8,\r\n\t\t\t6: 7,\r\n\t\t\t7: 6,\r\n\t\t\t8: 5,\r\n\t\t\t9: 4,\r\n\t\t},\r\n\t\t14: {\r\n\t\t\t1: 13,\r\n\t\t\t2: 12,\r\n\t\t\t3: 11,\r\n\t\t\t4: 10,\r\n\t\t\t5: 9,\r\n\t\t\t6: 8,\r\n\t\t\t7: 7,\r\n\t\t\t8: 6,\r\n\t\t\t9: 5,\r\n\t\t},\r\n\t\t15: {\r\n\t\t\t1: 14,\r\n\t\t\t2: 13,\r\n\t\t\t3: 12,\r\n\t\t\t4: 11,\r\n\t\t\t5: 10,\r\n\t\t\t6: 9,\r\n\t\t\t7: 8,\r\n\t\t\t8: 7,\r\n\t\t\t9: 6,\r\n\t\t},\r\n\t\t16: {\r\n\t\t\t1: 15,\r\n\t\t\t2: 14,\r\n\t\t\t3: 13,\r\n\t\t\t4: 12,\r\n\t\t\t5: 11,\r\n\t\t\t6: 10,\r\n\t\t\t7: 9,\r\n\t\t\t8: 8,\r\n\t\t\t9: 7,\r\n\t\t},\r\n\t\t17: {\r\n\t\t\t1: 16,\r\n\t\t\t2: 15,\r\n\t\t\t3: 14,\r\n\t\t\t4: 13,\r\n\t\t\t5: 12,\r\n\t\t\t6: 11,\r\n\t\t\t7: 10,\r\n\t\t\t8: 9,\r\n\t\t\t9: 8,\r\n\t\t},\r\n\t\t18: {\r\n\t\t\t1: 17,\r\n\t\t\t2: 16,\r\n\t\t\t3: 15,\r\n\t\t\t4: 14,\r\n\t\t\t5: 13,\r\n\t\t\t6: 12,\r\n\t\t\t7: 11,\r\n\t\t\t8: 10,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t19: {\r\n\t\t\t1: 18,\r\n\t\t\t2: 17,\r\n\t\t\t3: 16,\r\n\t\t\t4: 15,\r\n\t\t\t5: 14,\r\n\t\t\t6: 13,\r\n\t\t\t7: 12,\r\n\t\t\t8: 11,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t},\r\n};\r\n","export const duzyBrat2LookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 5,\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 5,\r\n\t\t\t4: 6,\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 10,\r\n\t\t\t9: 11,\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 5,\r\n\t\t\t3: 6,\r\n\t\t\t4: 7,\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 10,\r\n\t\t\t8: 11,\r\n\t\t\t9: 12,\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 6,\r\n\t\t\t3: 7,\r\n\t\t\t4: 8,\r\n\t\t\t5: 9,\r\n\t\t\t6: 10,\r\n\t\t\t7: 11,\r\n\t\t\t8: 12,\r\n\t\t\t9: 13,\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 10,\r\n\t\t\t6: 11,\r\n\t\t\t7: 12,\r\n\t\t\t8: 13,\r\n\t\t\t9: 14,\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 10,\r\n\t\t\t5: 11,\r\n\t\t\t6: 12,\r\n\t\t\t7: 13,\r\n\t\t\t8: 14,\r\n\t\t\t9: 15,\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 10,\r\n\t\t\t4: 11,\r\n\t\t\t5: 12,\r\n\t\t\t6: 13,\r\n\t\t\t7: 14,\r\n\t\t\t8: 15,\r\n\t\t\t9: 16,\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 10,\r\n\t\t\t3: 11,\r\n\t\t\t4: 12,\r\n\t\t\t5: 13,\r\n\t\t\t6: 14,\r\n\t\t\t7: 15,\r\n\t\t\t8: 16,\r\n\t\t\t9: 17,\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 11,\r\n\t\t\t3: 12,\r\n\t\t\t4: 13,\r\n\t\t\t5: 14,\r\n\t\t\t6: 15,\r\n\t\t\t7: 16,\r\n\t\t\t8: 17,\r\n\t\t\t9: 18,\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t10: {\r\n\t\t\t1: 'N/A',\r\n\t\t\t2: 8,\r\n\t\t\t3: 7,\r\n\t\t\t4: 6,\r\n\t\t\t5: 5,\r\n\t\t\t6: 4,\r\n\t\t\t7: 3,\r\n\t\t\t8: 2,\r\n\t\t\t9: 1,\r\n\t\t},\r\n\t\t11: {\r\n\t\t\t1: 10,\r\n\t\t\t2: 9,\r\n\t\t\t3: 8,\r\n\t\t\t4: 7,\r\n\t\t\t5: 6,\r\n\t\t\t6: 5,\r\n\t\t\t7: 4,\r\n\t\t\t8: 3,\r\n\t\t\t9: 2,\r\n\t\t},\r\n\t\t12: {\r\n\t\t\t1: 11,\r\n\t\t\t2: 10,\r\n\t\t\t3: 9,\r\n\t\t\t4: 8,\r\n\t\t\t5: 7,\r\n\t\t\t6: 6,\r\n\t\t\t7: 5,\r\n\t\t\t8: 4,\r\n\t\t\t9: 3,\r\n\t\t},\r\n\t\t13: {\r\n\t\t\t1: 12,\r\n\t\t\t2: 11,\r\n\t\t\t3: 10,\r\n\t\t\t4: 9,\r\n\t\t\t5: 8,\r\n\t\t\t6: 7,\r\n\t\t\t7: 6,\r\n\t\t\t8: 5,\r\n\t\t\t9: 4,\r\n\t\t},\r\n\t\t14: {\r\n\t\t\t1: 13,\r\n\t\t\t2: 12,\r\n\t\t\t3: 11,\r\n\t\t\t4: 10,\r\n\t\t\t5: 9,\r\n\t\t\t6: 8,\r\n\t\t\t7: 7,\r\n\t\t\t8: 6,\r\n\t\t\t9: 5,\r\n\t\t},\r\n\t\t15: {\r\n\t\t\t1: 14,\r\n\t\t\t2: 13,\r\n\t\t\t3: 12,\r\n\t\t\t4: 11,\r\n\t\t\t5: 10,\r\n\t\t\t6: 9,\r\n\t\t\t7: 8,\r\n\t\t\t8: 7,\r\n\t\t\t9: 6,\r\n\t\t},\r\n\t\t16: {\r\n\t\t\t1: 15,\r\n\t\t\t2: 14,\r\n\t\t\t3: 13,\r\n\t\t\t4: 12,\r\n\t\t\t5: 11,\r\n\t\t\t6: 10,\r\n\t\t\t7: 9,\r\n\t\t\t8: 8,\r\n\t\t\t9: 7,\r\n\t\t},\r\n\t\t17: {\r\n\t\t\t1: 16,\r\n\t\t\t2: 15,\r\n\t\t\t3: 14,\r\n\t\t\t4: 13,\r\n\t\t\t5: 12,\r\n\t\t\t6: 11,\r\n\t\t\t7: 10,\r\n\t\t\t8: 9,\r\n\t\t\t9: 8,\r\n\t\t},\r\n\t\t18: {\r\n\t\t\t1: 17,\r\n\t\t\t2: 16,\r\n\t\t\t3: 15,\r\n\t\t\t4: 14,\r\n\t\t\t5: 13,\r\n\t\t\t6: 12,\r\n\t\t\t7: 11,\r\n\t\t\t8: 10,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t19: {\r\n\t\t\t1: 18,\r\n\t\t\t2: 17,\r\n\t\t\t3: 16,\r\n\t\t\t4: 15,\r\n\t\t\t5: 14,\r\n\t\t\t6: 13,\r\n\t\t\t7: 12,\r\n\t\t\t8: 11,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t},\r\n};\r\n","export const duzyBrat1LookupTable = {\r\n\tpositive: {\r\n\t\t0: {\r\n\t\t\t1: 1,\r\n\t\t\t2: 2,\r\n\t\t\t3: 3,\r\n\t\t\t4: 4,\r\n\t\t\t5: 5,\r\n\t\t\t6: 6,\r\n\t\t\t7: 7,\r\n\t\t\t8: 8,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t1: {\r\n\t\t\t1: 2,\r\n\t\t\t2: 3,\r\n\t\t\t3: 4,\r\n\t\t\t4: 5,\r\n\t\t\t5: 6,\r\n\t\t\t6: 7,\r\n\t\t\t7: 8,\r\n\t\t\t8: 9,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t\t2: {\r\n\t\t\t1: 3,\r\n\t\t\t2: 4,\r\n\t\t\t3: 5,\r\n\t\t\t4: 6,\r\n\t\t\t5: 7,\r\n\t\t\t6: 8,\r\n\t\t\t7: 9,\r\n\t\t\t8: 10,\r\n\t\t\t9: 11,\r\n\t\t},\r\n\t\t3: {\r\n\t\t\t1: 4,\r\n\t\t\t2: 5,\r\n\t\t\t3: 6,\r\n\t\t\t4: 7,\r\n\t\t\t5: 8,\r\n\t\t\t6: 9,\r\n\t\t\t7: 10,\r\n\t\t\t8: 11,\r\n\t\t\t9: 12,\r\n\t\t},\r\n\t\t4: {\r\n\t\t\t1: 5,\r\n\t\t\t2: 6,\r\n\t\t\t3: 7,\r\n\t\t\t4: 8,\r\n\t\t\t5: 9,\r\n\t\t\t6: 10,\r\n\t\t\t7: 11,\r\n\t\t\t8: 12,\r\n\t\t\t9: 13,\r\n\t\t},\r\n\t\t5: {\r\n\t\t\t1: 6,\r\n\t\t\t2: 7,\r\n\t\t\t3: 8,\r\n\t\t\t4: 9,\r\n\t\t\t5: 10,\r\n\t\t\t6: 11,\r\n\t\t\t7: 12,\r\n\t\t\t8: 13,\r\n\t\t\t9: 14,\r\n\t\t},\r\n\t\t6: {\r\n\t\t\t1: 7,\r\n\t\t\t2: 8,\r\n\t\t\t3: 9,\r\n\t\t\t4: 10,\r\n\t\t\t5: 11,\r\n\t\t\t6: 12,\r\n\t\t\t7: 13,\r\n\t\t\t8: 14,\r\n\t\t\t9: 15,\r\n\t\t},\r\n\t\t7: {\r\n\t\t\t1: 8,\r\n\t\t\t2: 9,\r\n\t\t\t3: 10,\r\n\t\t\t4: 11,\r\n\t\t\t5: 12,\r\n\t\t\t6: 13,\r\n\t\t\t7: 14,\r\n\t\t\t8: 15,\r\n\t\t\t9: 16,\r\n\t\t},\r\n\t\t8: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 10,\r\n\t\t\t3: 11,\r\n\t\t\t4: 12,\r\n\t\t\t5: 13,\r\n\t\t\t6: 14,\r\n\t\t\t7: 15,\r\n\t\t\t8: 16,\r\n\t\t\t9: 17,\r\n\t\t},\r\n\t\t9: {\r\n\t\t\t1: 10,\r\n\t\t\t2: 11,\r\n\t\t\t3: 12,\r\n\t\t\t4: 13,\r\n\t\t\t5: 14,\r\n\t\t\t6: 15,\r\n\t\t\t7: 16,\r\n\t\t\t8: 17,\r\n\t\t\t9: 18,\r\n\t\t},\r\n\t},\r\n\r\n\tnegative: {\r\n\t\t10: {\r\n\t\t\t1: 9,\r\n\t\t\t2: 8,\r\n\t\t\t3: 7,\r\n\t\t\t4: 6,\r\n\t\t\t5: 5,\r\n\t\t\t6: 4,\r\n\t\t\t7: 3,\r\n\t\t\t8: 2,\r\n\t\t\t9: 1,\r\n\t\t},\r\n\t\t11: {\r\n\t\t\t1: 10,\r\n\t\t\t2: 9,\r\n\t\t\t3: 8,\r\n\t\t\t4: 7,\r\n\t\t\t5: 6,\r\n\t\t\t6: 5,\r\n\t\t\t7: 4,\r\n\t\t\t8: 3,\r\n\t\t\t9: 2,\r\n\t\t},\r\n\t\t12: {\r\n\t\t\t1: 11,\r\n\t\t\t2: 10,\r\n\t\t\t3: 9,\r\n\t\t\t4: 8,\r\n\t\t\t5: 7,\r\n\t\t\t6: 6,\r\n\t\t\t7: 5,\r\n\t\t\t8: 4,\r\n\t\t\t9: 3,\r\n\t\t},\r\n\t\t13: {\r\n\t\t\t1: 12,\r\n\t\t\t2: 11,\r\n\t\t\t3: 10,\r\n\t\t\t4: 9,\r\n\t\t\t5: 8,\r\n\t\t\t6: 7,\r\n\t\t\t7: 6,\r\n\t\t\t8: 5,\r\n\t\t\t9: 4,\r\n\t\t},\r\n\t\t14: {\r\n\t\t\t1: 13,\r\n\t\t\t2: 12,\r\n\t\t\t3: 11,\r\n\t\t\t4: 10,\r\n\t\t\t5: 9,\r\n\t\t\t6: 8,\r\n\t\t\t7: 7,\r\n\t\t\t8: 6,\r\n\t\t\t9: 5,\r\n\t\t},\r\n\t\t15: {\r\n\t\t\t1: 14,\r\n\t\t\t2: 13,\r\n\t\t\t3: 12,\r\n\t\t\t4: 11,\r\n\t\t\t5: 10,\r\n\t\t\t6: 9,\r\n\t\t\t7: 8,\r\n\t\t\t8: 7,\r\n\t\t\t9: 6,\r\n\t\t},\r\n\t\t16: {\r\n\t\t\t1: 15,\r\n\t\t\t2: 14,\r\n\t\t\t3: 13,\r\n\t\t\t4: 12,\r\n\t\t\t5: 11,\r\n\t\t\t6: 10,\r\n\t\t\t7: 9,\r\n\t\t\t8: 8,\r\n\t\t\t9: 7,\r\n\t\t},\r\n\t\t17: {\r\n\t\t\t1: 16,\r\n\t\t\t2: 15,\r\n\t\t\t3: 14,\r\n\t\t\t4: 13,\r\n\t\t\t5: 12,\r\n\t\t\t6: 11,\r\n\t\t\t7: 10,\r\n\t\t\t8: 9,\r\n\t\t\t9: 8,\r\n\t\t},\r\n\t\t18: {\r\n\t\t\t1: 17,\r\n\t\t\t2: 16,\r\n\t\t\t3: 15,\r\n\t\t\t4: 14,\r\n\t\t\t5: 13,\r\n\t\t\t6: 12,\r\n\t\t\t7: 11,\r\n\t\t\t8: 10,\r\n\t\t\t9: 9,\r\n\t\t},\r\n\t\t19: {\r\n\t\t\t1: 18,\r\n\t\t\t2: 17,\r\n\t\t\t3: 16,\r\n\t\t\t4: 15,\r\n\t\t\t5: 14,\r\n\t\t\t6: 13,\r\n\t\t\t7: 12,\r\n\t\t\t8: 11,\r\n\t\t\t9: 10,\r\n\t\t},\r\n\t},\r\n};\r\n","import { GameAlgorithm } from '../types/gameAlgorithm';\r\nimport { GameComplexity } from '../types/gameComplexity';\r\nimport { GameLevel } from '../types/gameLevel';\r\nimport { lookupTable } from './utils/lookupTables/lookupTable';\r\n\r\nexport const gameBoardService = {\r\n\t// losuje wartość int z podanego zakresu [min, max] włącznie\r\n\trandomizeNumber(min: number, max: number, allowZero = false) {\r\n\t\tmin = Math.ceil(min);\r\n\t\tmax = Math.floor(max);\r\n\r\n\t\tlet result = Math.floor(Math.random() * (max - min + 1)) + min;\r\n\r\n\t\tif (allowZero) {\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\twhile (result === 0) {\r\n\t\t\tresult = Math.floor(Math.random() * (max - min + 1)) + min;\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t},\r\n\r\n\tgetBlinkSpeedInMs(generatorSpeedInSeconds: number): number {\r\n\t\tlet blinkSpeedInMs = 200;\r\n\r\n\t\tif (generatorSpeedInSeconds <= 300) {\r\n\t\t\tblinkSpeedInMs = 50;\r\n\t\t} else if (generatorSpeedInSeconds <= 500) {\r\n\t\t\tblinkSpeedInMs = 100;\r\n\t\t}\r\n\r\n\t\treturn blinkSpeedInMs;\r\n\t},\r\n\r\n\tgetOperationsHistoryAsString(operationsHistory: number[], correctSum: number): string {\r\n\t\tlet finalString = '';\r\n\r\n\t\toperationsHistory.forEach((val, index) => {\r\n\t\t\t// jeśli liczba 0 lub ujemna, to i tak ma w sobie minusa więc nie musimy go dodatkowo pokazywać\r\n\t\t\tif (val <= 0) {\r\n\t\t\t\tfinalString += `${val} `;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// w takim razie liczba dodatnia, pytnie czy jako pierwsza - jeśli tak, to wtedy nie pokazujemy plusa z przodu\r\n\t\t\tif (index === 0) {\r\n\t\t\t\tfinalString += `${val} `;\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// liczba dodatnia i nie pierwsza w działaniu, dopisujemy plusa\r\n\t\t\tfinalString += `+${val} `;\r\n\t\t});\r\n\r\n\t\t// dołóż spację po każdym + oraz -\r\n\t\tfinalString = finalString.replaceAll('+', '+ ');\r\n\t\tfinalString = finalString.replaceAll('-', '- ');\r\n\r\n\t\tfinalString += `= ${correctSum}`;\r\n\t\treturn finalString;\r\n\t},\r\n\r\n\t// jeśli liczba cyfr w aktualnej liczbie spełnia warunek, to sprawdzamy\r\n\t// czy jakakolwiek cyfra w aktualnej liczbie jest niedozwolona (wychodzi poza level)\r\n\tareAllDigitsInNumberAllowed(numberToCheckAsString: string, level: GameLevel): boolean {\r\n\t\tfor (let index = 0; index < numberToCheckAsString.length; index++) {\r\n\t\t\tconst digitAsNumber = Number(numberToCheckAsString[index]);\r\n\t\t\tif (digitAsNumber > level) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn true;\r\n\t},\r\n\r\n\t// funkcja zwracająca wszystkie możliwe liczby, które można wykorzystać w kolejnym kroku działań\r\n\tgetAllowedNumbers(\r\n\t\tlevel: GameLevel,\r\n\t\tcomplexity: GameComplexity,\r\n\t\tcombinations: boolean,\r\n\t\tscoreFromLastRound: number,\r\n\t\tisLastRound: boolean,\r\n\t\tgameAlgorithm: GameAlgorithm\r\n\t) {\r\n\t\t// generujemy wartość maksymalną na podstawie złożoności i poziomu\r\n\t\t// przykładowo dla level = 2 i complexity = 10 maksymalna wartość to 22 (min. -22)\r\n\t\tconst complexityLength = complexity.toString().length;\r\n\t\tlet tresholdNumber = '';\r\n\t\tfor (let i = 0; i < complexityLength; i++) {\r\n\t\t\ttresholdNumber = `${level}${tresholdNumber}`;\r\n\t\t}\r\n\t\tconst max = Number(tresholdNumber);\r\n\r\n\t\t// przygotowujemy arraykę z możliwymi wartościami\r\n\t\tconst allPossibleNumbers = [];\r\n\r\n\t\t// iterujemy od 1 do current number, czyli generujemy tylko te dodatnie\r\n\t\t// (ujemne będą dokładnie takie same więc nie ma potrzeby)\r\n\t\t// wyłączone jest także zero, dlatego iterujemy od 1\r\n\t\tfor (let currentNumber = 1; currentNumber <= max; currentNumber++) {\r\n\t\t\tlet currentNumberAsString = currentNumber.toString();\r\n\t\t\tlet isCurrentNumberAllowed = true;\r\n\r\n\t\t\t// jeśli przeplatanka jest wyłączona\r\n\t\t\tif (!combinations) {\r\n\t\t\t\t// to sprawdzamy, czy obecna liczba ma tyle samo cyfr, ile wymagamy\r\n\t\t\t\tif (currentNumberAsString.length !== complexity.toString().length) {\r\n\t\t\t\t\t// jeśli nie, to liczba nie jest dozwolona\r\n\t\t\t\t\tisCurrentNumberAllowed = false;\r\n\t\t\t\t\tcontinue;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tisCurrentNumberAllowed = gameBoardService.areAllDigitsInNumberAllowed(currentNumberAsString, level);\r\n\r\n\t\t\t// jeśli liczba spełnia wymagania, ona oraz ujemna jest dodawana\r\n\t\t\t// do tablicy liczb możliwych dla obecnych ustawień gry\r\n\t\t\tif (isCurrentNumberAllowed) {\r\n\t\t\t\tallPossibleNumbers.push(currentNumber);\r\n\t\t\t\tallPossibleNumbers.push(-currentNumber);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t// mając listę wszystkich możliwych liczb, odsiewamy te, które nam grę \"popsują\"\r\n\t\t// czyli jeśli dodanie nowej liczby spowoduje, że otrzymamy wynik cząstkowy spoza liczb\r\n\t\t// dopuszczonych, to tej wartości nie możemy użyć (chyba, że to ostatnia runda, to można)\r\n\t\tconst tempAllowedNumbers = [];\r\n\r\n\t\tconst allPossibleNumbersDict = {};\r\n\t\tallPossibleNumbers.forEach((val) => {\r\n\t\t\tallPossibleNumbersDict[val] = val;\r\n\t\t});\r\n\r\n\t\tallPossibleNumbers.forEach((val) => {\r\n\t\t\tconst scoreAfterAddition: number = scoreFromLastRound + val;\r\n\r\n\t\t\t// jeśli ostatnia runda, to każda wartość jest dozwolona, jeśli wynik jest >= 0 i jeśli nie wykraczamy poza poziom\r\n\t\t\tif (\r\n\t\t\t\tisLastRound &&\r\n\t\t\t\tgameBoardService.areAllDigitsInNumberAllowed(scoreAfterAddition.toString(), level) &&\r\n\t\t\t\tscoreAfterAddition >= 0\r\n\t\t\t) {\r\n\t\t\t\ttempAllowedNumbers.push(val);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (gameBoardService.isDuzyBrat(gameAlgorithm)) {\r\n\t\t\t\t// jeśli wynik po dodaniu wartości będzie zawierać się w\r\n\t\t\t\t// \ttablicy możliwych liczb (wynik pośredni/ostateczniy nie może byc także mniejszy od zera), to ta wartość jest dozwolona\r\n\t\t\t\t// jeśli algorytmem jest duży brat, to chcemy dodatkowo wyniki dwucyfrowe oraz jednocyfrowe dla złożoności 1\r\n\t\t\t\tif (scoreAfterAddition >= 0) {\r\n\t\t\t\t\tconst scoreAfterAdditionDigits = scoreAfterAddition.toString().length;\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\tallPossibleNumbersDict[scoreAfterAddition] ||\r\n\t\t\t\t\t\tscoreAfterAddition === 0 ||\r\n\t\t\t\t\t\t(complexity === GameComplexity.C1 && scoreAfterAdditionDigits === 2)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\ttempAllowedNumbers.push(val);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// jeśli wynik po dodaniu wartości będzie zawierać się w\r\n\t\t\t\t// \ttablicy możliwych liczb (wynik pośredni/ostateczniy nie może byc także mniejszy od zera), to ta wartość jest dozwolona\r\n\t\t\t\tif (scoreAfterAddition >= 0) {\r\n\t\t\t\t\tif (allPossibleNumbersDict[scoreAfterAddition] || scoreAfterAddition === 0) {\r\n\t\t\t\t\t\ttempAllowedNumbers.push(val);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// jeśli wynik po dodaniu wartości będzie zawierać się w\r\n\t\t\t// \ttablicy możliwych liczb (wynik pośredni/ostateczniy nie może byc także mniejszy od zera), to ta wartość jest dozwolona\r\n\t\t\tif (scoreAfterAddition >= 0) {\r\n\t\t\t\tif (allPossibleNumbersDict[scoreAfterAddition] || scoreAfterAddition === 0) {\r\n\t\t\t\t\ttempAllowedNumbers.push(val);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\t// teraz trzeba sprawdzić, czy operacja jest dozwolona na macierzy operacji\r\n\t\t// lecimy po każdej cyfrze po każdym rzędzie wielkości, czyli\r\n\t\t// \tjedności z jednościami, dziesiątki z dziesiątkami, setki z setkami itd\r\n\t\t// bierzemy najmniejszą liczbę cyfr z liczb bazowych (bez minusów)\r\n\t\tconst numberOfDigitsInScoreFromLastRound = scoreFromLastRound.toString().replace('-', '').length;\r\n\r\n\t\tconst allowedNumbers = [];\r\n\t\ttempAllowedNumbers.forEach((tempAllowedNumber: number) => {\r\n\t\t\t// liczymy ile jest cyfr w tymczasowo-dozwolonej liczbie\r\n\t\t\tconst numberOfDigitsInAllowedNumber = tempAllowedNumber.toString().replace('-', '').length;\r\n\r\n\t\t\t// ile razy ma się kręcić pętla po liczbie (czyli ile cyfr)\r\n\t\t\tconst numberOfIterations =\r\n\t\t\t\tnumberOfDigitsInScoreFromLastRound > numberOfDigitsInAllowedNumber\r\n\t\t\t\t\t? numberOfDigitsInScoreFromLastRound\r\n\t\t\t\t\t: numberOfDigitsInAllowedNumber;\r\n\r\n\t\t\t// sprawdzamy czy będzie to odejmowanie czy dodawanie, na tego podstawie określamy\r\n\t\t\t// \tjest skąd bierzemy wartość z lookup table\r\n\t\t\tconst isNegative = gameBoardService.checkIfWillBeSubtracting(tempAllowedNumber, scoreFromLastRound);\r\n\r\n\t\t\tconst { scoreFromLastRoundAsString, tempAllowedNumberAsString } = gameBoardService.alignZerosInNumbers(\r\n\t\t\t\ttempAllowedNumber,\r\n\t\t\t\tscoreFromLastRound,\r\n\t\t\t\tnumberOfDigitsInAllowedNumber,\r\n\t\t\t\tnumberOfDigitsInScoreFromLastRound\r\n\t\t\t);\r\n\r\n\t\t\tconst isAllowed = gameBoardService.checkIfIsAllowedInLookupTable(\r\n\t\t\t\tscoreFromLastRoundAsString,\r\n\t\t\t\tnumberOfIterations,\r\n\t\t\t\ttempAllowedNumberAsString,\r\n\t\t\t\tisNegative,\r\n\t\t\t\tgameAlgorithm\r\n\t\t\t);\r\n\r\n\t\t\t// jeśli liczba jest dozwolona, no to leci do arrayki dozwolonych liczb\r\n\t\t\tif (isAllowed) {\r\n\t\t\t\tallowedNumbers.push(tempAllowedNumber);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\treturn allowedNumbers;\r\n\t},\r\n\r\n\tgetDigitFromResultParsedForDuzyBrat(\r\n\t\tscoreFromLastRoundAsString: string,\r\n\t\tdigitFromResult: string,\r\n\t\tcurrentDigitIndex: number\r\n\t) {\r\n\t\t// do cyfry dopisujemy 1 z przodu, co stanowi \"pożyczkę\" z następnej pozycji\r\n\t\t// jeśli na nastepnej pozycji znajduje się cyfra, to musimy od niej odjąć 1\r\n\t\t// jeśli nie znajduje się cyfra, to nie odejmujemy (ale wciaż dopisujemy 1)\r\n\t\tconst nextDigitIndex = currentDigitIndex - 1;\r\n\r\n\t\t// jeśli na jakiejkolwiek pozycji powyżej obecnej znajduje się inna cyfra niż 0\r\n\t\tlet isAnotherDigitOnHigherPosition = false;\r\n\t\tfor (let index = nextDigitIndex; index >= 0; index--) {\r\n\t\t\tconst element = scoreFromLastRoundAsString[index];\r\n\t\t\tif (element && element !== '0') {\r\n\t\t\t\tisAnotherDigitOnHigherPosition = true;\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (isAnotherDigitOnHigherPosition) {\r\n\t\t\t// do obecnej cyfry dopisujemy 1 z przodu\r\n\t\t\tdigitFromResult = `1${digitFromResult}`;\r\n\t\t\tlet foundValueToBorrowFromAtIndex = -1;\r\n\r\n\t\t\t// odejmujemy 1 od najbliższej niezerowej cyfry o wyższym rzędzie\r\n\t\t\tfor (let idx = nextDigitIndex; idx < scoreFromLastRoundAsString.length; idx--) {\r\n\t\t\t\tlet digit = Number.parseInt(scoreFromLastRoundAsString[idx]);\r\n\t\t\t\tif (digit > 0) {\r\n\t\t\t\t\t// odejmujemy od niej 1\r\n\t\t\t\t\tdigit -= 1;\r\n\t\t\t\t\t// i zapisujemy do stringa z powrotem\r\n\t\t\t\t\tscoreFromLastRoundAsString =\r\n\t\t\t\t\t\tscoreFromLastRoundAsString.substring(0, idx) +\r\n\t\t\t\t\t\tdigit.toString() +\r\n\t\t\t\t\t\tscoreFromLastRoundAsString.substring(idx + 1);\r\n\r\n\t\t\t\t\tfoundValueToBorrowFromAtIndex = idx;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// i teraz musimy przelecieć wszystkie pozycje między foundValueToBorrowFromAtIndex a nextDigitIndex\r\n\t\t\t// i powpisywać tam 9\r\n\t\t\t// wygeneruj stringa, którym będziemy replacować\r\n\t\t\tlet replacement = '';\r\n\t\t\tfor (let idx = 0; idx < nextDigitIndex - foundValueToBorrowFromAtIndex; idx++) {\r\n\t\t\t\treplacement += '9';\r\n\t\t\t}\r\n\r\n\t\t\tif (replacement.length > 0) {\r\n\t\t\t\tscoreFromLastRoundAsString =\r\n\t\t\t\t\tscoreFromLastRoundAsString.substring(0, foundValueToBorrowFromAtIndex + 1) +\r\n\t\t\t\t\treplacement +\r\n\t\t\t\t\tscoreFromLastRoundAsString.substring(foundValueToBorrowFromAtIndex + 1 + replacement.length);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// jeśli to ostatnia cyfra w liczbie to bez pożyczki\r\n\t\t\t// do obecnej cyfry dopisujemy 1 z przodu\r\n\t\t\tdigitFromResult = `1${digitFromResult}`;\r\n\t\t}\r\n\r\n\t\treturn { newDigitFromResult: digitFromResult, newScoreFromLastRoundAsString: scoreFromLastRoundAsString };\r\n\t},\r\n\r\n\tcheckIfIsAllowedInLookupTable(\r\n\t\tscoreFromLastRoundAsString: string,\r\n\t\tnumberOfIterations: number,\r\n\t\ttempAllowedNumberAsString: string,\r\n\t\tisNegative: boolean,\r\n\t\tgameAlgorithm: GameAlgorithm\r\n\t): boolean {\r\n\t\tlet isAllowed = true;\r\n\r\n\t\t// i teraz dla każdej cyfry\r\n\t\tfor (let index = 0; index < numberOfIterations; index++) {\r\n\t\t\tconst currentDigitIndexInScore = scoreFromLastRoundAsString.length - 1 - index;\r\n\t\t\tlet digitFromResult = scoreFromLastRoundAsString.charAt(currentDigitIndexInScore);\r\n\t\t\tconst digitFromTempAllowedNumber = tempAllowedNumberAsString.charAt(\r\n\t\t\t\ttempAllowedNumberAsString.length - 1 - index\r\n\t\t\t);\r\n\r\n\t\t\tconst notAllowed = 'N/A';\r\n\t\t\tconst {\r\n\t\t\t\tdefaultAlgorithm,\r\n\t\t\t\tmalyBrat4,\r\n\t\t\t\tmalyBrat1,\r\n\t\t\t\tmalyBrat2,\r\n\t\t\t\tmalyBrat3,\r\n\t\t\t\tduzyBrat1,\r\n\t\t\t\tduzyBrat2,\r\n\t\t\t\tduzyBrat3,\r\n\t\t\t\tduzyBrat4,\r\n\t\t\t\tduzyBrat5,\r\n\t\t\t\tduzyBrat6,\r\n\t\t\t\tduzyBrat7,\r\n\t\t\t\tduzyBrat8,\r\n\t\t\t\tduzyBrat9,\r\n\t\t\t} = lookupTable;\r\n\r\n\t\t\t// sprawdzamy czy operacja jest dozwolona w lookuptable\r\n\t\t\t// UJEMNE\r\n\t\t\tif (isNegative) {\r\n\t\t\t\tif (gameAlgorithm === GameAlgorithm.MalyBrat4) {\r\n\t\t\t\t\tif (malyBrat4.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.MalyBrat3) {\r\n\t\t\t\t\tif (malyBrat3.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.MalyBrat2) {\r\n\t\t\t\t\tif (malyBrat2.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.MalyBrat1) {\r\n\t\t\t\t\tif (malyBrat1.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat9) {\r\n\t\t\t\t\tconst { newDigitFromResult, newScoreFromLastRoundAsString } =\r\n\t\t\t\t\t\tgameBoardService.getDigitFromResultParsedForDuzyBrat(\r\n\t\t\t\t\t\t\tscoreFromLastRoundAsString,\r\n\t\t\t\t\t\t\tdigitFromResult,\r\n\t\t\t\t\t\t\tcurrentDigitIndexInScore\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tdigitFromResult = newDigitFromResult;\r\n\t\t\t\t\tscoreFromLastRoundAsString = newScoreFromLastRoundAsString;\r\n\r\n\t\t\t\t\tif (duzyBrat9.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat8) {\r\n\t\t\t\t\tconst { newDigitFromResult, newScoreFromLastRoundAsString } =\r\n\t\t\t\t\t\tgameBoardService.getDigitFromResultParsedForDuzyBrat(\r\n\t\t\t\t\t\t\tscoreFromLastRoundAsString,\r\n\t\t\t\t\t\t\tdigitFromResult,\r\n\t\t\t\t\t\t\tcurrentDigitIndexInScore\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tdigitFromResult = newDigitFromResult;\r\n\t\t\t\t\tscoreFromLastRoundAsString = newScoreFromLastRoundAsString;\r\n\r\n\t\t\t\t\tif (duzyBrat8.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat7) {\r\n\t\t\t\t\tconst { newDigitFromResult, newScoreFromLastRoundAsString } =\r\n\t\t\t\t\t\tgameBoardService.getDigitFromResultParsedForDuzyBrat(\r\n\t\t\t\t\t\t\tscoreFromLastRoundAsString,\r\n\t\t\t\t\t\t\tdigitFromResult,\r\n\t\t\t\t\t\t\tcurrentDigitIndexInScore\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tdigitFromResult = newDigitFromResult;\r\n\t\t\t\t\tscoreFromLastRoundAsString = newScoreFromLastRoundAsString;\r\n\r\n\t\t\t\t\tif (duzyBrat7.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat6) {\r\n\t\t\t\t\tconst { newDigitFromResult, newScoreFromLastRoundAsString } =\r\n\t\t\t\t\t\tgameBoardService.getDigitFromResultParsedForDuzyBrat(\r\n\t\t\t\t\t\t\tscoreFromLastRoundAsString,\r\n\t\t\t\t\t\t\tdigitFromResult,\r\n\t\t\t\t\t\t\tcurrentDigitIndexInScore\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tdigitFromResult = newDigitFromResult;\r\n\t\t\t\t\tscoreFromLastRoundAsString = newScoreFromLastRoundAsString;\r\n\r\n\t\t\t\t\tif (duzyBrat6.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat5) {\r\n\t\t\t\t\tconst { newDigitFromResult, newScoreFromLastRoundAsString } =\r\n\t\t\t\t\t\tgameBoardService.getDigitFromResultParsedForDuzyBrat(\r\n\t\t\t\t\t\t\tscoreFromLastRoundAsString,\r\n\t\t\t\t\t\t\tdigitFromResult,\r\n\t\t\t\t\t\t\tcurrentDigitIndexInScore\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tdigitFromResult = newDigitFromResult;\r\n\t\t\t\t\tscoreFromLastRoundAsString = newScoreFromLastRoundAsString;\r\n\r\n\t\t\t\t\tif (duzyBrat5.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat4) {\r\n\t\t\t\t\tconst { newDigitFromResult, newScoreFromLastRoundAsString } =\r\n\t\t\t\t\t\tgameBoardService.getDigitFromResultParsedForDuzyBrat(\r\n\t\t\t\t\t\t\tscoreFromLastRoundAsString,\r\n\t\t\t\t\t\t\tdigitFromResult,\r\n\t\t\t\t\t\t\tcurrentDigitIndexInScore\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tdigitFromResult = newDigitFromResult;\r\n\t\t\t\t\tscoreFromLastRoundAsString = newScoreFromLastRoundAsString;\r\n\r\n\t\t\t\t\tif (duzyBrat4.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat3) {\r\n\t\t\t\t\tconst { newDigitFromResult, newScoreFromLastRoundAsString } =\r\n\t\t\t\t\t\tgameBoardService.getDigitFromResultParsedForDuzyBrat(\r\n\t\t\t\t\t\t\tscoreFromLastRoundAsString,\r\n\t\t\t\t\t\t\tdigitFromResult,\r\n\t\t\t\t\t\t\tcurrentDigitIndexInScore\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tdigitFromResult = newDigitFromResult;\r\n\t\t\t\t\tscoreFromLastRoundAsString = newScoreFromLastRoundAsString;\r\n\r\n\t\t\t\t\tif (duzyBrat3.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat2) {\r\n\t\t\t\t\tconst { newDigitFromResult, newScoreFromLastRoundAsString } =\r\n\t\t\t\t\t\tgameBoardService.getDigitFromResultParsedForDuzyBrat(\r\n\t\t\t\t\t\t\tscoreFromLastRoundAsString,\r\n\t\t\t\t\t\t\tdigitFromResult,\r\n\t\t\t\t\t\t\tcurrentDigitIndexInScore\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tdigitFromResult = newDigitFromResult;\r\n\t\t\t\t\tscoreFromLastRoundAsString = newScoreFromLastRoundAsString;\r\n\r\n\t\t\t\t\tif (duzyBrat2.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat1) {\r\n\t\t\t\t\tconst { newDigitFromResult, newScoreFromLastRoundAsString } =\r\n\t\t\t\t\t\tgameBoardService.getDigitFromResultParsedForDuzyBrat(\r\n\t\t\t\t\t\t\tscoreFromLastRoundAsString,\r\n\t\t\t\t\t\t\tdigitFromResult,\r\n\t\t\t\t\t\t\tcurrentDigitIndexInScore\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\tdigitFromResult = newDigitFromResult;\r\n\t\t\t\t\tscoreFromLastRoundAsString = newScoreFromLastRoundAsString;\r\n\r\n\t\t\t\t\tif (duzyBrat1.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (defaultAlgorithm.negative[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t// DODATNIE\r\n\r\n\t\t\t\tif (gameAlgorithm === GameAlgorithm.MalyBrat4) {\r\n\t\t\t\t\tif (malyBrat4.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.MalyBrat3) {\r\n\t\t\t\t\tif (malyBrat3.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.MalyBrat2) {\r\n\t\t\t\t\tif (malyBrat2.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.MalyBrat1) {\r\n\t\t\t\t\tif (malyBrat1.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat1) {\r\n\t\t\t\t\tif (duzyBrat1.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat2) {\r\n\t\t\t\t\tif (duzyBrat2.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat3) {\r\n\t\t\t\t\tif (duzyBrat3.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat4) {\r\n\t\t\t\t\tif (duzyBrat4.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat5) {\r\n\t\t\t\t\tif (duzyBrat5.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat6) {\r\n\t\t\t\t\tif (duzyBrat6.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat7) {\r\n\t\t\t\t\tif (duzyBrat7.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat8) {\r\n\t\t\t\t\tif (duzyBrat8.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (gameAlgorithm === GameAlgorithm.DuzyBrat9) {\r\n\t\t\t\t\tif (duzyBrat9.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (defaultAlgorithm.positive[digitFromResult][digitFromTempAllowedNumber] === notAllowed) {\r\n\t\t\t\t\t\tisAllowed = false;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn isAllowed;\r\n\t},\r\n\r\n\talignZerosInNumbers(\r\n\t\ttempAllowedNumber: number,\r\n\t\tscoreFromLastRound: number,\r\n\t\tnumberOfDigitsInAllowedNumber: number,\r\n\t\tnumberOfDigitsInScoreFromLastRound: number\r\n\t) {\r\n\t\t// liczymy ile zer musimy dopisać do każdej z liczb (bo muszą mieć równą liczbę cyfr)\r\n\t\tconst requiredZerosBeforeScoreFromLastRound =\r\n\t\t\tnumberOfDigitsInAllowedNumber - numberOfDigitsInScoreFromLastRound;\r\n\t\tconst requiredZerosBeforeTempAllowedNumber = numberOfDigitsInScoreFromLastRound - numberOfDigitsInAllowedNumber;\r\n\r\n\t\t// konwertujemy obie liczby na string (do nich będziemy dopisywać zera) i usuwamy z nich znaki minus\r\n\t\t// \tżeby miały równą liczbę znaków\r\n\t\tlet scoreFromLastRoundAsString = scoreFromLastRound.toString().replace('-', '');\r\n\t\tlet tempAllowedNumberAsString = tempAllowedNumber.toString().replace('-', '');\r\n\r\n\t\t// i dopisujemy do nich zera\r\n\t\tif (requiredZerosBeforeScoreFromLastRound > 0) {\r\n\t\t\tfor (let index = 0; index < requiredZerosBeforeScoreFromLastRound; index++) {\r\n\t\t\t\tscoreFromLastRoundAsString = `${0}${scoreFromLastRoundAsString}`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif (requiredZerosBeforeTempAllowedNumber > 0) {\r\n\t\t\tfor (let index = 0; index < requiredZerosBeforeScoreFromLastRound; index++) {\r\n\t\t\t\ttempAllowedNumberAsString = `${0}${tempAllowedNumberAsString}`;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn { scoreFromLastRoundAsString, tempAllowedNumberAsString };\r\n\t},\r\n\r\n\tcheckIfWillBeSubtracting(tempAllowedNumber: number, scoreFromLastRound: number) {\r\n\t\tlet isNegative = false;\r\n\t\tif (tempAllowedNumber * scoreFromLastRound < 0) {\r\n\t\t\tisNegative = true;\r\n\t\t} else {\r\n\t\t\tisNegative = false;\r\n\t\t}\r\n\t\treturn isNegative;\r\n\t},\r\n\r\n\tisDuzyBrat(gameAlgorithm: GameAlgorithm): boolean {\r\n\t\treturn (\r\n\t\t\tgameAlgorithm === GameAlgorithm.DuzyBrat1 ||\r\n\t\t\tgameAlgorithm === GameAlgorithm.DuzyBrat2 ||\r\n\t\t\tgameAlgorithm === GameAlgorithm.DuzyBrat3 ||\r\n\t\t\tgameAlgorithm === GameAlgorithm.DuzyBrat4 ||\r\n\t\t\tgameAlgorithm === GameAlgorithm.DuzyBrat5 ||\r\n\t\t\tgameAlgorithm === GameAlgorithm.DuzyBrat6 ||\r\n\t\t\tgameAlgorithm === GameAlgorithm.DuzyBrat7 ||\r\n\t\t\tgameAlgorithm === GameAlgorithm.DuzyBrat8 ||\r\n\t\t\tgameAlgorithm === GameAlgorithm.DuzyBrat9\r\n\t\t);\r\n\t},\r\n};\r\n","import { Form, Row, Col, Input, Button } from 'antd';\r\nimport React from 'react';\r\nimport { CheckGameResultFormValues } from './utils/checkGameResultFormValues';\r\nimport './CheckGameResultForm.less';\r\n\r\ninterface CheckGameResultFormProps {\r\n\tstillPlaying: boolean;\r\n\tvisible: boolean;\r\n\tonResultCheck: (values: CheckGameResultFormValues) => void;\r\n}\r\n\r\nconst CheckGameResultForm = ({ stillPlaying, visible, onResultCheck }: CheckGameResultFormProps) => {\r\n\tif (visible) {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\tSprawdź\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t);\r\n\t} else {\r\n\t\treturn <>;\r\n\t}\r\n};\r\n\r\nexport default CheckGameResultForm;\r\n","import { Row, Col, Button } from 'antd';\r\nimport React from 'react';\r\nimport { useHistory } from 'react-router';\r\nimport './AfterGameButtonsSection.less';\r\n\r\ninterface AfterGameButtonsSectionProps {\r\n\thomeworkMode: boolean;\r\n\tonRetry: () => void;\r\n}\r\n\r\nconst AfterGameButtonsSection = ({ homeworkMode, onRetry }: AfterGameButtonsSectionProps) => {\r\n\tconst history = useHistory();\r\n\r\n\tconst goToSettings = () => {\r\n\t\thistory.push('game-settings');\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tDALEJ\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t{!homeworkMode && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tPOWRÓT DO USTAWIEŃ\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AfterGameButtonsSection;\r\n","import { Col, Row, Typography } from 'antd';\r\nimport { gameBoardService } from 'App/pages/gamePages/services/gameBoard.service';\r\nimport React, { useEffect, useRef, useState } from 'react';\r\nimport CheckGameResultForm from '../../forms/checkGameResult/CheckGameResultForm';\r\nimport { CheckGameResultFormValues } from '../../forms/checkGameResult/utils/checkGameResultFormValues';\r\nimport AfterGameButtonsSection from '../afterGameButtonsSection/AfterGameButtonsSection';\r\nimport './GameBoard.less';\r\n\r\ninterface GameBoardProps {\r\n\tnumberPlacementOffsetInPercent: { x: number; y: number };\r\n\tnumberToAdd: { number: number; iteration: number };\r\n\tstillPlaying: boolean;\r\n\tcurrentCountDownTimer: string;\r\n\tshowRetryButton: boolean;\r\n\tgeneratorSpeedInSeconds: number;\r\n\thomeworkMode: boolean;\r\n\tonResultCheck: (values: CheckGameResultFormValues) => void;\r\n\tonRetry: () => void;\r\n}\r\n\r\nconst GameBoard = ({\r\n\tnumberPlacementOffsetInPercent,\r\n\tnumberToAdd,\r\n\tstillPlaying,\r\n\tcurrentCountDownTimer,\r\n\tshowRetryButton,\r\n\tgeneratorSpeedInSeconds,\r\n\thomeworkMode,\r\n\tonResultCheck,\r\n\tonRetry,\r\n}: GameBoardProps) => {\r\n\tconst generatedNumberHtmlElementRef = useRef(null);\r\n\tconst [numberToAddClassName, setNumberToAddClassName] = useState('');\r\n\r\n\t// efekt zanikania-migania, żeby było łatwiej rozpoznać, że zmienai się liczba\r\n\tuseEffect(() => {\r\n\t\tsetNumberToAddClassName('game-board__generated-number__number--invisible');\r\n\t\tsetTimeout(() => {\r\n\t\t\tsetNumberToAddClassName('game-board__generated-number__number--visible');\r\n\t\t}, gameBoardService.getBlinkSpeedInMs(generatorSpeedInSeconds));\r\n\t}, [numberToAdd, generatorSpeedInSeconds]);\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{currentCountDownTimer !== '' && (\r\n\t\t\t\t\r\n\t\t\t\t\t{currentCountDownTimer}\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t\t{showRetryButton && }\r\n\t\t\t{!showRetryButton && numberToAdd.number !== 0 && (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{numberToAdd.number > 0 ? `+${numberToAdd.number}` : `${numberToAdd.number}`}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default GameBoard;\r\n","import { browserName } from 'react-device-detect';\r\n\r\nexport const textToSpeechService = {\r\n\tsynth: window.speechSynthesis,\r\n\r\n\tsayOperation(number: number, ommitAddSign: boolean, generatorSpeedInSeconds: number) {\r\n\t\tlet textToSpeak = textToSpeechService.getTextToSpeak(number, ommitAddSign);\r\n\t\tconst msg = new SpeechSynthesisUtterance(textToSpeak);\r\n\r\n\t\tmsg.voice = textToSpeechService.getPolishVoice();\r\n\t\tmsg.rate = textToSpeechService.getSpeakSpeed(generatorSpeedInSeconds, number);\r\n\t\tmsg.pitch = 1;\r\n\r\n\t\t// bugfix dla firefoxa, gdzie pierwsza liczba była czytana po angielsku a kolejne po polsku ze względu na brak wczytanego lektora\r\n\t\t// number === 0 && ommitAddSign oznacza, że jest to początek rozgrywki (nieme zero), które czytane jest z volume = 0 w celu\r\n\t\t// zainicjalizowania głosów z przeglądarki.\r\n\t\t// TLDR: Wypowiedzenie pierwszego zera z volume=0 naprawia buga w firefoxie\r\n\t\tif (number === 0 && ommitAddSign) {\r\n\t\t\tmsg.volume = 0;\r\n\t\t}\r\n\r\n\t\ttextToSpeechService.synth.speak(msg);\r\n\t},\r\n\r\n\tshouldBeSpeaking(\r\n\t\tnumber: number,\r\n\t\tgeneratorSpeedInSeconds: number,\r\n\t\tcurrentIteration: number,\r\n\t\tcurrentCountDownTimer: string\r\n\t) {\r\n\t\t// jeśli jeszcze odliczamy, to nie mówimy\r\n\t\tif (currentCountDownTimer !== '') {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// jeśli generowanie częściej, niż sekunda\r\n\t\tif (generatorSpeedInSeconds < 1) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// niedozwolone kombinacje genSpeed i numberToAdd/number\r\n\t\t// liczby 4 cyfrowe poniżej genSpeed 1.7\r\n\t\t// liczby 5 cyfrowe poniżej genSpeed 1.9\r\n\t\tconst numberOfDigits = textToSpeechService.getNumberOfDigitsWithoutSign(number);\r\n\t\tif (numberOfDigits === 4 && generatorSpeedInSeconds < 1.7) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tif (numberOfDigits === 5 && generatorSpeedInSeconds < 1.9) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t},\r\n\r\n\tgetNumberOfDigitsWithoutSign(number: number) {\r\n\t\treturn number.toString().replace('-', '').length;\r\n\t},\r\n\r\n\tgetTextToSpeak(number: number, ommitAddSign: boolean) {\r\n\t\t// jeśli liczba dodatnia i nie chcemy pominąć znaku +\r\n\t\tif (number > 0 && !ommitAddSign) {\r\n\t\t\treturn `+${number}`;\r\n\t\t}\r\n\t\treturn `${number}`;\r\n\t},\r\n\r\n\t// strojenie dla innych przeglądarek\r\n\r\n\tgetBrowserBasedSpeedMultiplier() {\r\n\t\tlet browserBasedMultiplier = 1; // domyślnie 1 dla Edge (dla niego były strojone wskaźniki generatorSpeedBasedMultiplier)\r\n\t\tswitch (browserName) {\r\n\t\t\tcase 'Chrome':\r\n\t\t\t\tbrowserBasedMultiplier = 2;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'Edge':\r\n\t\t\t\tbrowserBasedMultiplier = 1;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 'Opera':\r\n\t\t\t\tbrowserBasedMultiplier = 2;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tbrowserBasedMultiplier = 1;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\treturn browserBasedMultiplier;\r\n\t},\r\n\r\n\t// strojenie dla różnej prędkości generatora\r\n\tgetGeneratorBasedSpeedMultiplier(generatorSpeedInSeconds: number) {\r\n\t\tlet generatorSpeedBasedMultiplier = 1;\r\n\t\t// wartości strojone na Microsoft Edge\r\n\t\tif (generatorSpeedInSeconds >= 2) {\r\n\t\t\tgeneratorSpeedBasedMultiplier = 1.6;\r\n\t\t} else if (generatorSpeedInSeconds >= 1.9) {\r\n\t\t\tgeneratorSpeedBasedMultiplier = 1.6;\r\n\t\t} else if (generatorSpeedInSeconds >= 1.8) {\r\n\t\t\tgeneratorSpeedBasedMultiplier = 1.6;\r\n\t\t} else if (generatorSpeedInSeconds >= 1.7) {\r\n\t\t\tgeneratorSpeedBasedMultiplier = 1.6;\r\n\t\t} else if (generatorSpeedInSeconds >= 1.6) {\r\n\t\t\tgeneratorSpeedBasedMultiplier = 1.6;\r\n\t\t} else if (generatorSpeedInSeconds >= 1.5) {\r\n\t\t\tgeneratorSpeedBasedMultiplier = 1.6;\r\n\t\t} else if (generatorSpeedInSeconds >= 1.4) {\r\n\t\t\tgeneratorSpeedBasedMultiplier = 1.6;\r\n\t\t} else if (generatorSpeedInSeconds >= 1.3) {\r\n\t\t\tgeneratorSpeedBasedMultiplier = 1.6;\r\n\t\t} else if (generatorSpeedInSeconds >= 1.2) {\r\n\t\t\tgeneratorSpeedBasedMultiplier = 1.7;\r\n\t\t} else if (generatorSpeedInSeconds >= 1.1) {\r\n\t\t\tgeneratorSpeedBasedMultiplier = 1.9;\r\n\t\t} else {\r\n\t\t\tgeneratorSpeedBasedMultiplier = 2;\r\n\t\t}\r\n\t\treturn generatorSpeedBasedMultiplier;\r\n\t},\r\n\r\n\t// strojenie dla róznej liczby cyfr\r\n\tgetNumberOfDigitBasedSpeedMultiplier(numberToAdd: number) {\r\n\t\tlet numberOfDigitsBasedMultiplier = 1;\r\n\t\tconst numberOfDigits = textToSpeechService.getNumberOfDigitsWithoutSign(numberToAdd);\r\n\t\tswitch (numberOfDigits) {\r\n\t\t\tcase 1:\r\n\t\t\t\tnumberOfDigitsBasedMultiplier = 1;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 2:\r\n\t\t\t\tnumberOfDigitsBasedMultiplier = 1.3;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 3:\r\n\t\t\t\tnumberOfDigitsBasedMultiplier = 1.455;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 4:\r\n\t\t\t\tnumberOfDigitsBasedMultiplier = 1.45;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tcase 5:\r\n\t\t\t\tnumberOfDigitsBasedMultiplier = 1.45;\r\n\t\t\t\tbreak;\r\n\r\n\t\t\tdefault:\r\n\t\t\t\tnumberOfDigitsBasedMultiplier = 1;\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\t\treturn numberOfDigitsBasedMultiplier;\r\n\t},\r\n\r\n\tgetSpeakSpeed(generatorSpeedInSeconds: number, number: number) {\r\n\t\tlet speakSpeed = 1;\r\n\r\n\t\tspeakSpeed *= textToSpeechService.getNumberOfDigitBasedSpeedMultiplier(number);\r\n\r\n\t\tspeakSpeed *= textToSpeechService.getGeneratorBasedSpeedMultiplier(generatorSpeedInSeconds);\r\n\r\n\t\tspeakSpeed *= textToSpeechService.getBrowserBasedSpeedMultiplier();\r\n\t\treturn speakSpeed;\r\n\t},\r\n\r\n\tgetPolishVoice() {\r\n\t\tconst voices = textToSpeechService.synth.getVoices().filter((v) => v.lang === 'pl-PL');\r\n\r\n\t\tconst maleVoice = voices.find((v) => v.voiceURI === 'Microsoft Paulina - Polish (Poland)');\r\n\t\tif (maleVoice) {\r\n\t\t\treturn maleVoice;\r\n\t\t}\r\n\r\n\t\tconst defaultVoice = voices.find((v) => v.default);\r\n\t\tif (defaultVoice) {\r\n\t\t\treturn defaultVoice;\r\n\t\t}\r\n\r\n\t\treturn voices[0];\r\n\t},\r\n};\r\n","import { SmileOutlined } from '@ant-design/icons';\r\nimport { Col, Row, Typography } from 'antd';\r\nimport React from 'react';\r\nimport './AfterGameSuccessModal.less';\r\n\r\ninterface AfterGameSuccessModalProps {\r\n\tcorrectSum: number;\r\n}\r\n\r\nconst rootClass = 'after-game-success-modal';\r\n\r\nconst AfterGameSuccessModal = ({ correctSum }: AfterGameSuccessModalProps) => {\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\tPoprawny wynik to {correctSum}.\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default AfterGameSuccessModal;\r\n","import React, { useEffect, useState } from 'react';\r\nimport GameBoard from './components/gameBoard/GameBoard';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { Button, Modal, Result } from 'antd';\r\nimport { Link } from 'react-router-dom';\r\nimport { FrownOutlined } from '@ant-design/icons';\r\nimport { gameBoardService } from '../../services/gameBoard.service';\r\nimport { CheckGameResultFormValues } from './forms/checkGameResult/utils/checkGameResultFormValues';\r\nimport { textToSpeechService } from '../../services/textToSpeech.service';\r\nimport { resetGameSettings, setSolveExerciseHandler } from '../../state/game.slice';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport AfterGameSuccessModal from './components/afterGameModals/AfterGameSuccessModal';\r\n\r\nconst GameBoardContainer = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst gameSettings = useSelector((state: RootState) => state.pages.game.gameSettings);\r\n\tconst solveExerciseHandler = useSelector((state: RootState) => state.pages.game.solveExerciseHandler);\r\n\tconst isMobile = useMediaQuery({ maxWidth: breakpoints.sm.max });\r\n\r\n\tconst homeworkMode = solveExerciseHandler !== null;\r\n\r\n\tconst initialContainerState = {\r\n\t\tstillPlaying: true,\r\n\t\tcurrentIteration: 0,\r\n\t\tnumberPlacementOffsetInPercent: { x: 50, y: 50 },\r\n\t\tshowRetryButton: false,\r\n\t\tuniqueBoardId: 0,\r\n\t\tcorrectSum: 0,\r\n\t\tnumberToAdd: 0,\r\n\t\toperationsHistory: [],\r\n\t};\r\n\r\n\tconst [stillPlaying, setStillPlaying] = useState(initialContainerState.stillPlaying);\r\n\tconst [isCountingDown, setIsCountingDown] = useState(true);\r\n\tconst [currentCountDownTimer, setCurrentCountDownTimer] = useState('START');\r\n\tconst [currentIteration, setCurrentIteration] = useState(initialContainerState.currentIteration);\r\n\tconst [numberPlacementOffsetInPercent, setNumberPlacementOffsetInPercent] = useState(\r\n\t\tinitialContainerState.numberPlacementOffsetInPercent\r\n\t);\r\n\tconst [showRetryButton, setShowRetryButton] = useState(initialContainerState.showRetryButton);\r\n\tconst [uniqueBoardId, setUniqueBoardId] = useState(initialContainerState.uniqueBoardId);\r\n\r\n\t// obecna poprawna suma\r\n\tconst [correctSum, setCorrectSum] = useState(initialContainerState.correctSum);\r\n\r\n\t// obecna liczba do dodania\r\n\tconst [numberToAdd, setNumberToAdd] = useState({\r\n\t\tnumber: initialContainerState.numberToAdd,\r\n\t\titeration: initialContainerState.currentIteration,\r\n\t});\r\n\r\n\t// historia operacji (liczb wylosowanych w trakcie gry), którą użytkownik zobaczy w przypadku nieprawidłowego podania wyniku\r\n\tconst [operationsHistory, setOperationsHistory] = useState(initialContainerState.operationsHistory);\r\n\r\n\t// resetowanie stanu kontenera\r\n\tuseEffect(() => {\r\n\t\tsetIsCountingDown(true);\r\n\t\tsetStillPlaying(initialContainerState.stillPlaying);\r\n\t\tsetNumberPlacementOffsetInPercent(initialContainerState.numberPlacementOffsetInPercent);\r\n\t\tsetCorrectSum(initialContainerState.correctSum);\r\n\t\tsetShowRetryButton(initialContainerState.showRetryButton);\r\n\t\tsetNumberToAdd({\r\n\t\t\tnumber: initialContainerState.numberToAdd,\r\n\t\t\titeration: initialContainerState.currentIteration,\r\n\t\t});\r\n\t\tsetOperationsHistory(initialContainerState.operationsHistory);\r\n\t\tsetCurrentCountDownTimer('START');\r\n\t\tlet countDownTimer = setInterval(function () {\r\n\t\t\tsetCurrentIteration(initialContainerState.currentIteration);\r\n\t\t\tsetIsCountingDown(false);\r\n\t\t\tsetCurrentCountDownTimer('');\r\n\t\t\tclearInterval(countDownTimer);\r\n\t\t}, 750);\r\n\r\n\t\treturn () => {\r\n\t\t\tif (countDownTimer) {\r\n\t\t\t\tclearInterval(countDownTimer);\r\n\t\t\t}\r\n\t\t};\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, [uniqueBoardId]);\r\n\r\n\t// lektor\r\n\tuseEffect(() => {\r\n\t\tconst generatorSpeedInSeconds = gameSettings.generatorSpeedInSeconds;\r\n\t\tif (\r\n\t\t\ttextToSpeechService.shouldBeSpeaking(\r\n\t\t\t\tnumberToAdd.number,\r\n\t\t\t\tgeneratorSpeedInSeconds,\r\n\t\t\t\tcurrentIteration,\r\n\t\t\t\tcurrentCountDownTimer\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\ttextToSpeechService.sayOperation(numberToAdd.number, currentIteration === 0, generatorSpeedInSeconds);\r\n\t\t}\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, [numberToAdd]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!isCountingDown) {\r\n\t\t\tlet timer = undefined;\r\n\t\t\tif (gameSettings) {\r\n\t\t\t\tconst maxSteps = gameSettings.maxSteps;\r\n\t\t\t\tconst level = gameSettings.level;\r\n\t\t\t\tconst complexity = gameSettings.complexity;\r\n\t\t\t\tconst combinations = gameSettings.combinations;\r\n\t\t\t\tconst turbo = gameSettings.turbo;\r\n\t\t\t\tconst generatorSpeedInSeconds = gameSettings.generatorSpeedInSeconds;\r\n\t\t\t\tconst gameAlgorithm = gameSettings.gameAlgorithm;\r\n\r\n\t\t\t\t// dopóki nie osiągnęliśmy limitu kroków gry\r\n\t\t\t\tif (currentIteration < maxSteps) {\r\n\t\t\t\t\tconst isLastRound = maxSteps - currentIteration === 1;\r\n\r\n\t\t\t\t\t// co {generatorSpeedInSeconds} wykonuj:\r\n\t\t\t\t\ttimer = setTimeout(() => {\r\n\t\t\t\t\t\tconst allowedNumbers = gameBoardService.getAllowedNumbers(\r\n\t\t\t\t\t\t\tlevel,\r\n\t\t\t\t\t\t\tcomplexity,\r\n\t\t\t\t\t\t\tcombinations,\r\n\t\t\t\t\t\t\tcorrectSum,\r\n\t\t\t\t\t\t\tisLastRound,\r\n\t\t\t\t\t\t\tgameAlgorithm\r\n\t\t\t\t\t\t);\r\n\r\n\t\t\t\t\t\tconst randomizedNumber = allowedNumbers[Math.floor(Math.random() * allowedNumbers.length)];\r\n\r\n\t\t\t\t\t\t// ustaw liczbę, która ma się wyświetlić na ekranie\r\n\t\t\t\t\t\tsetNumberToAdd({ number: randomizedNumber, iteration: currentIteration });\r\n\r\n\t\t\t\t\t\t// dodaj ją do historii operacji (działań), która będzie wyświetlona na końcu użytkownikowi\r\n\t\t\t\t\t\tsetOperationsHistory([...operationsHistory, randomizedNumber]);\r\n\r\n\t\t\t\t\t\t// zaktualizuj poprawną sumę\r\n\t\t\t\t\t\tsetCorrectSum(correctSum + randomizedNumber);\r\n\r\n\t\t\t\t\t\t// jeśli włączono migawkę\r\n\t\t\t\t\t\tif (turbo) {\r\n\t\t\t\t\t\t\t// wylosuj umieszczenie liczby na ekranie\r\n\t\t\t\t\t\t\tconst generatedOffsetX = gameBoardService.randomizeNumber(0, 77, true);\r\n\t\t\t\t\t\t\tconst generatedOffsetY = gameBoardService.randomizeNumber(15, 90, true);\r\n\t\t\t\t\t\t\tsetNumberPlacementOffsetInPercent({ x: generatedOffsetX, y: generatedOffsetY });\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tsetCurrentIteration(currentIteration + 1);\r\n\r\n\t\t\t\t\t\tif (isLastRound) {\r\n\t\t\t\t\t\t\tsetStillPlaying(false);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, generatorSpeedInSeconds * 1000);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn () => {\r\n\t\t\t\tif (timer) {\r\n\t\t\t\t\tclearTimeout(timer);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, [currentIteration, isCountingDown]);\r\n\r\n\tuseEffect(() => {\r\n\t\treturn () => {\r\n\t\t\t// po wyjściu z komponentu zawsze ustaw solveExerciseHandler na null i przywróc domyślne ustawienia gry, jeśli jest to tryb zadania domowego\r\n\t\t\tif (homeworkMode) {\r\n\t\t\t\tdispatch(setSolveExerciseHandler(null));\r\n\t\t\t\tdispatch(resetGameSettings());\r\n\t\t\t}\r\n\t\t};\r\n\t}, [dispatch, homeworkMode]);\r\n\r\n\tconst onCorrectResultCheck = () => {\r\n\t\tif (homeworkMode) {\r\n\t\t\tModal.success({\r\n\t\t\t\tclassName: 'game-modal',\r\n\t\t\t\tcontent: ,\r\n\t\t\t\tokButtonProps: {\r\n\t\t\t\t\tsize: 'large',\r\n\t\t\t\t},\r\n\t\t\t\ticon: null,\r\n\t\t\t\tokText: 'Super!',\r\n\t\t\t\twidth: isMobile ? '100%' : 800,\r\n\t\t\t});\r\n\t\t\tsolveExerciseHandler();\r\n\t\t} else {\r\n\t\t\tModal.success({\r\n\t\t\t\tclassName: 'game-modal',\r\n\t\t\t\tcontent: ,\r\n\t\t\t\tokButtonProps: {\r\n\t\t\t\t\tsize: 'large',\r\n\t\t\t\t},\r\n\t\t\t\ticon: null,\r\n\t\t\t\tokText: 'Super!',\r\n\t\t\t\twidth: isMobile ? '100%' : 800,\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tsetShowRetryButton(true);\r\n\t};\r\n\r\n\tconst onIncorrectResultCheck = () => {\r\n\t\tModal.error({\r\n\t\t\tclassName: 'game-modal',\r\n\t\t\ticon: ,\r\n\t\t\ttitle: 'Wynik niepoprawny',\r\n\t\t\tcontent: (\r\n\t\t\t\t
\r\n\t\t\t\t\tWłaściwy wynik to {correctSum}\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tDziałania w obecnej rozgrywce:
\r\n\t\t\t\t\t\t{gameBoardService.getOperationsHistoryAsString(operationsHistory, correctSum)}\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t),\r\n\t\t\tokButtonProps: {\r\n\t\t\t\tsize: 'large',\r\n\t\t\t},\r\n\t\t\tokText: 'Dalej',\r\n\t\t});\r\n\t\tsetShowRetryButton(true);\r\n\t};\r\n\r\n\tconst onResultCheck = (values: CheckGameResultFormValues) => {\r\n\t\tif (values?.result?.trim() === correctSum.toString()) {\r\n\t\t\tonCorrectResultCheck();\r\n\t\t} else {\r\n\t\t\tonIncorrectResultCheck();\r\n\t\t}\r\n\t};\r\n\r\n\t// funkcja resetująca komponent\r\n\tconst onRetry = () => {\r\n\t\t// aby wymusić rerender całego komponentu i zresetowanie całego state komponentu można zmienić jego klucz (unikalny),\r\n\t\t// to spowoduje wyrzucenie go z reacta całkowicie i zrobienie nowego\r\n\t\tsetUniqueBoardId(uniqueBoardId + 1);\r\n\r\n\t\t// natomiast nie ma łatwego sposobu na wymuszenie rerenderu całego komponentu który nie jest renderowany u góry w drzewie\r\n\t\t// (tutaj jest to jako route), dlatego oprócz zresetowania game boarda restowany jest również w useeffeccie\r\n\t\t// ręcznie stan TEGO komponentu (kontenera)\r\n\t};\r\n\r\n\tconst generatorSpeedInSeconds = gameSettings.generatorSpeedInSeconds;\r\n\tif (gameSettings) {\r\n\t\treturn (\r\n\t\t\t<>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t} else {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport default GameBoardContainer;\r\n","import { Select } from 'antd';\r\nimport { GameAlgorithm, GameAlgorithmOptions } from 'App/pages/gamePages/types/gameAlgorithm';\r\nimport { AllowedGameAlgorithmsFormValues } from 'App/pages/teacherPages/views/myStudents/forms/models/allowedGameAlgorithmsFormValues';\r\nimport React, { useEffect, useState } from 'react';\r\ninterface GameAlgorithmPickerProps {\r\n\tstudentMode?: boolean;\r\n\tallowedAlgorithms?: AllowedGameAlgorithmsFormValues;\r\n\texerciseMode?: boolean;\r\n\tinitialValue: GameAlgorithm;\r\n\tonAlgorithmPick: (newAlgorithm: GameAlgorithm) => void;\r\n}\r\n\r\nconst GameAlgorithmPicker = ({\r\n\tallowedAlgorithms,\r\n\tstudentMode,\r\n\texerciseMode,\r\n\tinitialValue,\r\n\tonAlgorithmPick,\r\n}: GameAlgorithmPickerProps) => {\r\n\tconst [gameAlgorithms, setGameAlgorithms] = useState([]);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (!studentMode || exerciseMode) {\r\n\t\t\tsetGameAlgorithms(GameAlgorithmOptions);\r\n\t\t} else {\r\n\t\t\tconst tempAllowedAlgorithms = [];\r\n\t\t\tGameAlgorithmOptions.forEach((alg) => {\r\n\t\t\t\tif (alg.value === GameAlgorithm.Default) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t\tif (alg.value === GameAlgorithm.DuzyBrat1 && allowedAlgorithms?.duzyBrat1 === true) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t\tif (alg.value === GameAlgorithm.DuzyBrat2 && allowedAlgorithms?.duzyBrat2 === true) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t\tif (alg.value === GameAlgorithm.DuzyBrat3 && allowedAlgorithms?.duzyBrat3 === true) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t\tif (alg.value === GameAlgorithm.DuzyBrat4 && allowedAlgorithms?.duzyBrat4 === true) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t\tif (alg.value === GameAlgorithm.DuzyBrat5 && allowedAlgorithms?.duzyBrat5 === true) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t\tif (alg.value === GameAlgorithm.DuzyBrat6 && allowedAlgorithms?.duzyBrat6 === true) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t\tif (alg.value === GameAlgorithm.DuzyBrat7 && allowedAlgorithms?.duzyBrat7 === true) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t\tif (alg.value === GameAlgorithm.DuzyBrat8 && allowedAlgorithms?.duzyBrat8 === true) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t\tif (alg.value === GameAlgorithm.DuzyBrat9 && allowedAlgorithms?.duzyBrat9 === true) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t\tif (alg.value === GameAlgorithm.MalyBrat1 && allowedAlgorithms?.malyBrat1 === true) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t\tif (alg.value === GameAlgorithm.MalyBrat2 && allowedAlgorithms?.malyBrat2 === true) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t\tif (alg.value === GameAlgorithm.MalyBrat3 && allowedAlgorithms?.malyBrat3 === true) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t\tif (alg.value === GameAlgorithm.MalyBrat4 && allowedAlgorithms?.malyBrat4 === true) {\r\n\t\t\t\t\ttempAllowedAlgorithms.push(alg);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tsetGameAlgorithms(tempAllowedAlgorithms);\r\n\t\t}\r\n\t}, [allowedAlgorithms, exerciseMode, studentMode]);\r\n\r\n\treturn (\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GameAlgorithmPicker;\r\n","import { PlayCircleOutlined } from '@ant-design/icons';\r\nimport { Form, Row, Col, InputNumber, Checkbox, Select, Button } from 'antd';\r\nimport { useForm } from 'antd/lib/form/Form';\r\nimport { formRules } from 'App/common/formRules/formRules';\r\nimport { GameAlgorithm } from 'App/pages/gamePages/types/gameAlgorithm';\r\nimport { IGameSettings } from 'App/pages/gamePages/types/gameSettings';\r\nimport { ExerciseForGameSettings } from 'App/pages/studentPages/types/exerciseForGameSettings';\r\nimport { AllowedGameAlgorithmsFormValues } from 'App/pages/teacherPages/views/myStudents/forms/models/allowedGameAlgorithmsFormValues';\r\nimport React from 'react';\r\nimport GameAlgorithmPicker from './components/GameAlgorithmPicker';\r\n\r\ninterface GameSettingsFormProps {\r\n\tinitialValues: IGameSettings;\r\n\tstudentMode?: boolean;\r\n\tallowedAlgorithms?: AllowedGameAlgorithmsFormValues;\r\n\texerciseSettings?: ExerciseForGameSettings;\r\n\tonGameStart: (gameSettings: IGameSettings) => void;\r\n}\r\n\r\nconst GameSettingsForm = ({\r\n\tinitialValues,\r\n\tallowedAlgorithms,\r\n\tstudentMode,\r\n\texerciseSettings,\r\n\tonGameStart,\r\n}: GameSettingsFormProps) => {\r\n\tconst { combinations, complexity, generatorSpeedInSeconds, level, maxSteps, turbo, gameAlgorithm } =\r\n\t\tformRules.others.gameSettings;\r\n\r\n\tconst exerciseMode = exerciseSettings !== null && exerciseSettings !== undefined;\r\n\tconst formInitialValues = exerciseMode ? exerciseSettings.selectedExercise.gameSettings : initialValues;\r\n\r\n\tconst [form] = useForm();\r\n\r\n\tconst getMaxSteps = () => {\r\n\t\tif (exerciseMode) {\r\n\t\t\treturn exerciseSettings.selectedExercise.gameSettings.maxSteps;\r\n\t\t}\r\n\r\n\t\treturn 2;\r\n\t};\r\n\r\n\tconst isTurboDisabled = () => {\r\n\t\tif (exerciseMode && exerciseSettings.selectedExercise.gameSettings.turbo) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t};\r\n\r\n\tconst isCombinationsDisabled = () => {\r\n\t\tif (exerciseMode && exerciseSettings.selectedExercise.gameSettings.combinations) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t};\r\n\r\n\tconst getGeneratorSpeedInSeconds = () => {\r\n\t\tif (exerciseMode) {\r\n\t\t\treturn exerciseSettings.selectedExercise.gameSettings.generatorSpeedInSeconds;\r\n\t\t}\r\n\r\n\t\treturn 100;\r\n\t};\r\n\r\n\tconst isLevelDisabled = (level: number) => {\r\n\t\tif (exerciseMode && level < exerciseSettings.selectedExercise.gameSettings.level) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t};\r\n\r\n\tconst isComplexityDisabled = (complexity: number) => {\r\n\t\tif (exerciseMode && complexity < exerciseSettings.selectedExercise.gameSettings.complexity) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t\treturn false;\r\n\t};\r\n\r\n\tconst handleAlgorithmPick = (newAlgorithm: GameAlgorithm) => {\r\n\t\tform.setFieldsValue({ gameAlgorithm: newAlgorithm });\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tMigawka\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\tPrzeplatanka\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\tsize='large'\r\n\t\t\t\t\t\t\tshape='round'\r\n\t\t\t\t\t\t\ttype='primary'\r\n\t\t\t\t\t\t\tblock\r\n\t\t\t\t\t\t\thtmlType='submit'\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\tGraj\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default GameSettingsForm;\r\n","import { Button, Col, PageHeader, Result, Row } from 'antd';\r\nimport LoadingScreen from 'App/components/common/loadingScreen/LoadingScreen';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { cleanUpMyAllowedAlgorithms } from 'App/pages/studentPages/state/student.slice';\r\nimport { getMyAllowedAlgorithms } from 'App/pages/studentPages/state/student.thunk';\r\nimport { ExerciseForGameSettings } from 'App/pages/studentPages/types/exerciseForGameSettings';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport Role from 'App/types/role';\r\nimport React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { setGameSettings, setSolveExerciseHandler } from '../../state/game.slice';\r\nimport { IGameSettings } from '../../types/gameSettings';\r\nimport GameSettingsForm from './forms/GameSettingsForm';\r\n\r\ninterface GameSettingsProps {\r\n\texerciseSettings?: ExerciseForGameSettings;\r\n}\r\n\r\nconst { Success, Failed } = StatusType;\r\n\r\nconst GameSettings = ({ exerciseSettings }: GameSettingsProps) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst history = useHistory();\r\n\r\n\tconst accountDetails = useSelector((state: RootState) => state.global.account.accountDetails);\r\n\tconst settings = useSelector((state: RootState) => state.pages.game.gameSettings);\r\n\tconst myAllowedAlgorithms = useSelector((state: RootState) => state.pages.student.myAllowedAlgorithms);\r\n\tconst getMyAllowedAlgorithmsStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.student.status.getMyAllowedAlgorithms\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (accountDetails.roles.some((r) => r === Role.Student)) {\r\n\t\t\tdispatch(getMyAllowedAlgorithms());\r\n\t\t}\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpMyAllowedAlgorithms());\r\n\t\t};\r\n\t}, [dispatch, accountDetails]);\r\n\r\n\tconst onGameStart = (gameSettings: IGameSettings) => {\r\n\t\tdispatch(setGameSettings(gameSettings));\r\n\t\tif (exerciseSettings && exerciseSettings.handleSolveExercise) {\r\n\t\t\tdispatch(setSolveExerciseHandler(exerciseSettings.handleSolveExercise));\r\n\t\t}\r\n\t\thistory.push('/game');\r\n\t};\r\n\r\n\tconst handleRetry = () => {\r\n\t\tdispatch(getMyAllowedAlgorithms());\r\n\t};\r\n\r\n\tif (accountDetails.roles.some((r) => r === Role.Student)) {\r\n\t\tif (getMyAllowedAlgorithmsStatus === Failed) {\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\t\tSpróbuj ponownie\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t/>\r\n\t\t\t);\r\n\t\t} else if (getMyAllowedAlgorithmsStatus === Success) {\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t} else {\r\n\t\t\treturn ;\r\n\t\t}\r\n\t} else {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport default GameSettings;\r\n","import ProtectedRoute from 'App/components/routing/protectedRoute/ProtectedRoute';\r\nimport React from 'react';\r\nimport GameBoardContainer from './views/gameBoard/GameBoardContainer';\r\nimport GameSettingsContainer from './views/gameSettings/GameSettingsContainer';\r\n\r\nconst GamePages = [\r\n\t,\r\n\t,\r\n];\r\n\r\nexport default GamePages;\r\n","import { TagOutlined } from '@ant-design/icons';\r\nimport { Avatar, List } from 'antd';\r\nimport { CourseForGetCoursesCatalogForStudentResponse } from 'App/api/endpoints/courses/responses';\r\nimport React from 'react';\r\n\r\ninterface StudentCourseListItemProps {\r\n\tcourse: CourseForGetCoursesCatalogForStudentResponse;\r\n}\r\n\r\nconst StudentCourseListItem = ({ course }: StudentCourseListItemProps) => {\r\n\treturn (\r\n\t\t\r\n\t\t\t} />} title={course.name} />\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default StudentCourseListItem;\r\n","import { List, Row, Col, Result, Button, PageHeader } from 'antd';\r\nimport LoadingScreen from 'App/components/common/loadingScreen/LoadingScreen';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { cleanUpCourseCatalogStatus } from '../../state/student.slice';\r\nimport { getCoursesCatalog } from '../../state/student.thunk';\r\nimport StudentCourseListItem from './components/StudentCourseListItem';\r\n\r\nconst CoursesForStudentContainer = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst courses = useSelector((state: RootState) => state.pages.student.coursesCatalog);\r\n\tconst coursesLoading = useSelector((state: RootState) => state.pages.student.status.getCoursesCatalog);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(getCoursesCatalog());\r\n\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpCourseCatalogStatus());\r\n\t\t};\r\n\t}, [dispatch]);\r\n\r\n\tif (coursesLoading === StatusType.Failed) {\r\n\t\treturn (\r\n\t\t\t dispatch(getCoursesCatalog())}>\r\n\t\t\t\t\t\tSpróbuj ponownie\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n\r\n\tif (coursesLoading === StatusType.Loading) {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t }\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default CoursesForStudentContainer;\r\n","import { Button, Col, message, Result, Row } from 'antd';\r\nimport { SolveExerciseResponse } from 'App/api/endpoints/homeworks/responses';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { GameAlgorithmStringToEnum } from 'App/pages/gamePages/types/gameAlgorithm';\r\nimport GameSettings from 'App/pages/gamePages/views/gameSettings/GameSettingsContainer';\r\nimport React from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { RouteComponentProps } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport { solveExercise } from '../../state/student.thunk';\r\nimport { Exercise } from '../../types/exercise';\r\n\r\ninterface RouteParams {\r\n\texerciseId: string;\r\n}\r\n\r\ninterface ExerciseContainerProps extends RouteComponentProps {}\r\n\r\nconst ExerciseContainer = ({ match }: ExerciseContainerProps) => {\r\n\tconst dispatch = useDispatch();\r\n\tconst selectedExercise = useSelector((state: RootState) => state.pages.student.selectedExercise);\r\n\r\n\tconst onSolveExercise = () => {\r\n\t\tconst onSuccess = (response: SolveExerciseResponse) => {\r\n\t\t\tconst {\r\n\t\t\t\tcompletedRepetitions,\r\n\t\t\t\tgameRequiredRepetitions,\r\n\t\t\t\tisCounted,\r\n\t\t\t\tsingleStudentExerciseFinished,\r\n\t\t\t\twholeStudentExerciseFinished,\r\n\t\t\t} = response;\r\n\r\n\t\t\tconst alreadyFinishedAllStudentExerciseInThisExercise =\r\n\t\t\t\tsingleStudentExerciseFinished && wholeStudentExerciseFinished && !isCounted;\r\n\r\n\t\t\tconst limitExceeded = !singleStudentExerciseFinished && !wholeStudentExerciseFinished && !isCounted;\r\n\r\n\t\t\tconst nowFinishedWholeExercise = singleStudentExerciseFinished && wholeStudentExerciseFinished && isCounted;\r\n\r\n\t\t\tconst doneEnoughGameRepetitionsButDidNotCompleteExercise =\r\n\t\t\t\tsingleStudentExerciseFinished && !wholeStudentExerciseFinished && isCounted;\r\n\r\n\t\t\tconst onlyIncrementedGameRepetition =\r\n\t\t\t\t!singleStudentExerciseFinished && !wholeStudentExerciseFinished && isCounted;\r\n\r\n\t\t\t// jeśli już wszystkie skończył (zadanie uznajemy za zakończone)\r\n\t\t\tif (alreadyFinishedAllStudentExerciseInThisExercise) {\r\n\t\t\t\tmessage.success('Zadanie zostało już zakończone');\r\n\t\t\t}\r\n\r\n\t\t\t// ta próba nie jest liczona bo juz osiagnęliśmy limit dziennego wykonania zadania\r\n\t\t\tif (limitExceeded) {\r\n\t\t\t\tmessage.info(\r\n\t\t\t\t\t'Zadanie wykonane poprawnie, ale nie zostało wliczone do puli zadania (osiągnięto dzienny limit wykonania)'\r\n\t\t\t\t);\r\n\t\t\t}\r\n\r\n\t\t\t// jeśli po tej zmianie, zakończyliśmy cały exercise\r\n\t\t\tif (nowFinishedWholeExercise) {\r\n\t\t\t\tmessage.success('Zadanie zakończone');\r\n\t\t\t}\r\n\r\n\t\t\t// zaliczyliśmy podejście (wykonaliśmy wystarczająco dużo gier) ale nie cały exercise\r\n\t\t\tif (doneEnoughGameRepetitionsButDidNotCompleteExercise) {\r\n\t\t\t\tmessage.success('Podejście zaliczone');\r\n\t\t\t}\r\n\r\n\t\t\t// zaliczyliśmy pojedyncza grę, ale jeszcze nie zrobiliśmy wystarczająco dużo gier żeby zaliczyć student exercise\r\n\t\t\tif (onlyIncrementedGameRepetition) {\r\n\t\t\t\tmessage.success(\r\n\t\t\t\t\t`Gra zaliczona. Rozegraj jeszcze ${\r\n\t\t\t\t\t\tgameRequiredRepetitions - completedRepetitions\r\n\t\t\t\t\t} aby zaliczyć podejście`\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t};\r\n\t\tdispatch(solveExercise(Number.parseInt(match.params.exerciseId), onSuccess));\r\n\t};\r\n\r\n\tconst getSelectedExercise = () => {\r\n\t\tconst stringifiedExercise = JSON.stringify(selectedExercise);\r\n\r\n\t\tlet exercise: Exercise = JSON.parse(stringifiedExercise);\r\n\t\texercise.gameSettings.gameAlgorithm = GameAlgorithmStringToEnum[exercise.gameSettings.gameAlgorithm];\r\n\t\treturn exercise;\r\n\t};\r\n\r\n\tif (selectedExercise) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t);\r\n\t} else {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n};\r\n\r\nexport default ExerciseContainer;\r\n","import React from 'react';\r\nimport Role from 'App/types/role';\r\nimport CoursesForStudentContainer from './views/coursesForStudent/CoursesForStudentContainer';\r\nimport ProtectedRoute from 'App/components/routing/protectedRoute/ProtectedRoute';\r\nimport ExerciseContainer from './views/exercise/ExerciseContainer';\r\n\r\nconst StudentPages = [\r\n\t,\r\n\t,\r\n];\r\n\r\nexport default StudentPages;\r\n","import agent from 'App/api/agent/agent';\r\nimport { AppThunk } from 'App/globalState/store';\r\nimport {\r\n\tgetTeacherLessonsFromMonthStart,\r\n\tgetTeacherLessonsFromMonthSuccess,\r\n\tgetTeacherLessonsFromMonthFailure,\r\n} from './teacher.calendar.slice';\r\n\r\nexport const getTeacherLessonsFromMonth =\r\n\t(month: number, year: number): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getTeacherLessonsFromMonthStart());\r\n\t\tagent.Lessons.getTeacherLessonsFromMonth(month, year)\r\n\t\t\t.then((response) => dispatch(getTeacherLessonsFromMonthSuccess(response)))\r\n\t\t\t.catch(() => dispatch(getTeacherLessonsFromMonthFailure()));\r\n\t};\r\n","import { Col, Row } from 'antd';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport moment from 'moment';\r\nimport React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { setCalendarMonthAndYear } from '../../state/calendar/teacher.calendar.slice';\r\nimport { getTeacherLessonsFromMonth } from '../../state/calendar/teacher.calendar.thunk';\r\nimport TeacherCalendar from './components/teacherCalendar/TeacherCalendar';\r\n\r\nconst TeacherCalendarContainer = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst history = useHistory();\r\n\tconst lessonsFromMonth = useSelector((state: RootState) => state.pages.teacher.calendar.teacherLessonsFromMonth);\r\n\tconst selectedMonthAndYearFromCalendar = useSelector(\r\n\t\t(state: RootState) => state.pages.teacher.calendar.selectedMonthAndYearFromCalendar\r\n\t);\r\n\tconst lessonFromMonthStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.teacher.calendar.status.getTeacherLessonsFromMonth\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\t//jak weszlismy np do detali lekcji i chcemy wrocic do kalendarz\r\n\t\tif (selectedMonthAndYearFromCalendar.month !== 0 && selectedMonthAndYearFromCalendar.year !== 0)\r\n\t\t\tdispatch(\r\n\t\t\t\tgetTeacherLessonsFromMonth(\r\n\t\t\t\t\tselectedMonthAndYearFromCalendar.month,\r\n\t\t\t\t\tselectedMonthAndYearFromCalendar.year\r\n\t\t\t\t)\r\n\t\t\t);\r\n\t\telse {\r\n\t\t\t//jak pierwszy raz wchodzimy do kalendarza\r\n\t\t\tconst [, month, year] = dateTimeUtils.getCurrentDayMonthAndYear();\r\n\t\t\tdispatch(setCalendarMonthAndYear({ month, year }));\r\n\t\t\tdispatch(getTeacherLessonsFromMonth(month, year));\r\n\t\t}\r\n\t}, [dispatch, selectedMonthAndYearFromCalendar.month, selectedMonthAndYearFromCalendar.year]);\r\n\r\n\tconst handleCalendarChange = (date: moment.Moment) => {\r\n\t\tconst [, month, year] = dateTimeUtils.getDayMonthAndYear(date);\r\n\r\n\t\tif (selectedMonthAndYearFromCalendar.month === month && selectedMonthAndYearFromCalendar.year === year) return;\r\n\r\n\t\tdispatch(setCalendarMonthAndYear({ month, year }));\r\n\t\tdispatch(getTeacherLessonsFromMonth(month, year));\r\n\t};\r\n\r\n\tconst handleLessonClick = (lessonId: string) => {\r\n\t\thistory.push(`/teacher/lessons/${lessonId}`);\r\n\t};\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default TeacherCalendarContainer;\r\n","import agent from 'App/api/agent/agent';\r\nimport { UpdateGroupRequest } from 'App/api/endpoints/groups/requests';\r\nimport {\r\n\tCreateLessonRequest,\r\n\tUpdateLessonRequest,\r\n\tChangeLessonStatusRequest,\r\n} from 'App/api/endpoints/lessons/requests';\r\nimport { AppThunk } from 'App/globalState/store';\r\nimport {\r\n\tupdateGroupStart,\r\n\tupdateGroupSuccess,\r\n\tupdateGroupFailure,\r\n} from 'App/pages/adminPages/groupsPages/state/groups.slice';\r\nimport { PresenceStatus } from 'App/types/studentLesson/pressenceStatus';\r\nimport {\r\n\tgetTeacherLessonFailure,\r\n\tgetTeacherLessonStart,\r\n\tgetTeacherLessonSuccess,\r\n\tchangePresenceStatusFailure,\r\n\tchangePresenceStatusStart,\r\n\tchangePresenceStatusSuccess,\r\n\tchangeStudentLessonPointsFailure,\r\n\tchangeStudentLessonPointsStart,\r\n\tchangeStudentLessonPointsSuccess,\r\n\tchangeLessonStatusStart,\r\n\tchangeLessonStatusSuccess,\r\n\tchangeLessonStatusFailure,\r\n\tcreateLessonFailure,\r\n\tcreateLessonStart,\r\n\tcreateLessonSuccess,\r\n\tdeleteLessonFailure,\r\n\tdeleteLessonStart,\r\n\tdeleteLessonSuccess,\r\n\tgetAllLessonTopicsFailure,\r\n\tgetAllLessonTopicsStart,\r\n\tgetAllLessonTopicsSuccess,\r\n\tupdateLessonFailure,\r\n\tupdateLessonStart,\r\n\tupdateLessonSuccess,\r\n\tchangeLessonTopicStart,\r\n\tchangeLessonTopicSuccess,\r\n\tchangeLessonTopicFailure,\r\n} from './teacher.lessons.slice';\r\n\r\nexport const getTeacherLesson =\r\n\t(lessonId: string): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getTeacherLessonStart());\r\n\t\tagent.Lessons.getTeacherLesson(lessonId)\r\n\t\t\t.then((response) => dispatch(getTeacherLessonSuccess(response)))\r\n\t\t\t.catch(() => dispatch(getTeacherLessonFailure()));\r\n\t};\r\n\r\nexport const changePresenceStatus =\r\n\t(studentLessonId: number, presenceStatus: PresenceStatus): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(changePresenceStatusStart());\r\n\t\tagent.Lessons.changePresenceStatus({ studentLessonId, presenceStatus })\r\n\t\t\t.then(() => dispatch(changePresenceStatusSuccess({ studentLessonId, presenceStatus })))\r\n\t\t\t.catch(() => dispatch(changePresenceStatusFailure()));\r\n\t};\r\n\r\nexport const changeStudentLessonPoints =\r\n\t(studentLessonId: number, points: number): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(changeStudentLessonPointsStart());\r\n\t\tagent.Lessons.changeStudentLessonPoints({ studentLessonId, points })\r\n\t\t\t.then(() => dispatch(changeStudentLessonPointsSuccess({ studentLessonId, points })))\r\n\t\t\t.catch(() => dispatch(changeStudentLessonPointsFailure()));\r\n\t};\r\n\r\nexport const getAllLessonTopics = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getAllLessonTopicsStart());\r\n\tagent.LessonTopics.getAllLessonTopics()\r\n\t\t.then((response) => dispatch(getAllLessonTopicsSuccess(response)))\r\n\t\t.catch(() => dispatch(getAllLessonTopicsFailure()));\r\n};\r\n\r\nexport const createLesson =\r\n\t(request: CreateLessonRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(createLessonStart());\r\n\t\tagent.Lessons.createLesson(request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t\tdispatch(createLessonSuccess());\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(createLessonFailure()));\r\n\t};\r\n\r\nexport const updateLesson =\r\n\t(lessonId: string, request: UpdateLessonRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(updateLessonStart());\r\n\t\tagent.Lessons.updateLesson(lessonId, request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t\tdispatch(updateLessonSuccess());\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(updateLessonFailure()));\r\n\t};\r\n\r\nexport const deleteLesson =\r\n\t(lessonId: string, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(deleteLessonStart());\r\n\t\tagent.Lessons.deleteLesson(lessonId)\r\n\t\t\t.then(() => {\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t\tdispatch(deleteLessonSuccess());\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(deleteLessonFailure()));\r\n\t};\r\n\r\nexport const changeLessonStatus =\r\n\t(lessonId: string, request: ChangeLessonStatusRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(changeLessonStatusStart());\r\n\t\tagent.Lessons.changeLessonStatus(lessonId, request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tif (onSuccess) onSuccess();\r\n\t\t\t\tdispatch(changeLessonStatusSuccess({ lessonId, lessonStatus: request.lessonStatus }));\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(changeLessonStatusFailure()));\r\n\t};\r\n\r\nexport const updateTeacherGroup =\r\n\t(groupId: string, body: UpdateGroupRequest, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(updateGroupStart());\r\n\t\tagent.Groups.updateGroup(groupId, body)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(updateGroupSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(updateGroupFailure()));\r\n\t};\r\n\r\nexport const changeLessonTopic =\r\n\t(lessonId: string, request: ChangeLessonTopicRequest, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(changeLessonTopicStart());\r\n\t\tagent.Lessons.changeLessonTopic(lessonId, request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(changeLessonTopicSuccess());\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(changeLessonTopicFailure()));\r\n\t};\r\n","import { Row, Col, PageHeader, notification } from 'antd';\r\nimport { GetTeacherLessonResponse } from 'App/api/endpoints/lessons/responses';\r\nimport { dateTimeUtils } from 'App/common/utils/dateTime.utils';\r\nimport LoadingScreen from 'App/components/common/loadingScreen/LoadingScreen';\r\nimport { ChangeLessonStatusFormValues } from 'App/components/lessons/changeLessonStatus/forms/changeLessonStatusForm/models/changeLessonStatusFormValues';\r\nimport ChangeLessonStatusModal from 'App/components/lessons/changeLessonStatus/modals/ChangeLessonStatusModal';\r\nimport ChangeLessonTopicModal from 'App/components/lessons/changeLessonTopic/modals/ChangeLessonTopicModal';\r\nimport LessonDescription from 'App/components/lessons/lessonDescription/LessonDescription';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport { PresenceStatus } from 'App/types/studentLesson/pressenceStatus';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport { Link } from 'react-router-dom';\r\nimport { cleanUpTeacherLessonDetails } from '../../state/lessons/teacher.lessons.slice';\r\nimport {\r\n\tchangeLessonStatus,\r\n\tchangeLessonTopic,\r\n\tchangePresenceStatus,\r\n\tchangeStudentLessonPoints,\r\n\tgetAllLessonTopics,\r\n\tgetTeacherLesson,\r\n} from '../../state/lessons/teacher.lessons.thunk';\r\nimport LessonStudents from './components/lessonStudents/LessonStudents';\r\n\r\nconst { Loading } = StatusType;\r\n\r\ninterface TeacherLessonDetailsContainerParams {\r\n\tlessonId: string;\r\n}\r\n\r\nconst TeacherLessonDetailsContainer = () => {\r\n\tconst params = useParams();\r\n\tconst lessonId = params.lessonId;\r\n\tconst dispatch = useDispatch();\r\n\tconst history = useHistory();\r\n\r\n\tconst lesson = useSelector((state: RootState) => state.pages.teacher.lessons.teacherLesson);\r\n\tconst teacherLessonStatus = useSelector((state: RootState) => state.pages.teacher.lessons.status.getTeacherLesson);\r\n\tconst changeLessonStatusStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.teacher.lessons.status.changeLessonStatus\r\n\t);\r\n\r\n\tconst isConfirmed = useSelector(\r\n\t\t(state: RootState) => state.global.account.accountDetails.additionalDataForTeacher.isConfirmed\r\n\t);\r\n\r\n\tconst allLessonTopics = useSelector((state: RootState) => state.pages.teacher.lessons.allLessonTopics);\r\n\tconst getAllLessonTopicsStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.teacher.lessons.status.getAllLessonTopics\r\n\t);\r\n\tconst changeLessonTopicStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.teacher.lessons.status.changeLessonTopic\r\n\t);\r\n\r\n\tconst [changeLessonStatusModalVisiblity, setChangeLessonStatusModalVisiblity] = useState(false);\r\n\tconst [changeLessonTopicModalVisibility, setChangeLessonTopicModalVisibility] = useState(false);\r\n\tconst [selectedLesson, setSelectedLesson] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(getTeacherLesson(lessonId));\r\n\t\tdispatch(getAllLessonTopics());\r\n\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpTeacherLessonDetails());\r\n\t\t};\r\n\t}, [dispatch, lessonId]);\r\n\r\n\tconst getLessonTime = (lesson: GetTeacherLessonResponse): string => {\r\n\t\treturn `${dateTimeUtils\r\n\t\t\t.getLocalDateTime(lesson.startUtc)\r\n\t\t\t.format(dateTimeUtils.formats.HourMinute)}-${dateTimeUtils\r\n\t\t\t.getLocalDateTime(lesson.endUtc)\r\n\t\t\t.format(dateTimeUtils.formats.HourMinute)}`;\r\n\t};\r\n\r\n\tconst getLessonDate = (lesson: GetTeacherLessonResponse): string => {\r\n\t\treturn `${dateTimeUtils.getLocalDateTime(lesson.startUtc).format(dateTimeUtils.formats.YearMonthDay)}`;\r\n\t};\r\n\r\n\tconst handlePresenceStatusChange = (studentLessonId: number, presenceStatus: PresenceStatus) => {\r\n\t\tdispatch(changePresenceStatus(studentLessonId, presenceStatus));\r\n\t};\r\n\r\n\tconst handlePointsChange = (studentLessonId: number, points: number) => {\r\n\t\tdispatch(changeStudentLessonPoints(studentLessonId, points));\r\n\t};\r\n\r\n\tconst handleChangeLessonStatusClick = (lesson: GetTeacherLessonResponse) => {\r\n\t\tsetSelectedLesson(lesson);\r\n\t\tsetChangeLessonStatusModalVisiblity(true);\r\n\t};\r\n\r\n\tconst handleChangeLessonStatus = (values: ChangeLessonStatusFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Zmieniono status lekcji',\r\n\t\t\t});\r\n\r\n\t\t\tsetSelectedLesson(null);\r\n\t\t\tsetChangeLessonStatusModalVisiblity(false);\r\n\t\t};\r\n\r\n\t\tdispatch(changeLessonStatus(selectedLesson.id, values, onSuccess));\r\n\t};\r\n\r\n\tconst onChangeLessonTopic = (values: ChangeLessonTopicFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Zmieniono temat lekcji',\r\n\t\t\t});\r\n\t\t\tsetChangeLessonTopicModalVisibility(false);\r\n\t\t\tdispatch(getTeacherLesson(lessonId));\r\n\t\t};\r\n\r\n\t\tdispatch(changeLessonTopic(lessonId, values, onSuccess));\r\n\t};\r\n\r\n\tconst onChangeLessonTopicClick = () => {\r\n\t\tsetChangeLessonTopicModalVisibility(true);\r\n\t};\r\n\r\n\tconst getCurrentLessonTopic = () => {\r\n\t\tconst foundLessonTopics = allLessonTopics.filter((l) => l.name === lesson?.lessonTopic?.name);\r\n\r\n\t\tif (foundLessonTopics && foundLessonTopics.length > 0) {\r\n\t\t\treturn foundLessonTopics[0].id;\r\n\t\t}\r\n\r\n\t\treturn null;\r\n\t};\r\n\r\n\tif (teacherLessonStatus === Loading || !lesson) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t setChangeLessonTopicModalVisibility(false)}\r\n\t\t\t\tcurrentLessonTopicId={getCurrentLessonTopic()}\r\n\t\t\t/>\r\n\t\t\t {\r\n\t\t\t\t\tsetChangeLessonStatusModalVisiblity(false);\r\n\t\t\t\t\tsetSelectedLesson(null);\r\n\t\t\t\t}}\r\n\t\t\t\tonCreate={handleChangeLessonStatus}\r\n\t\t\t\tvisible={changeLessonStatusModalVisiblity}\r\n\t\t\t/>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t{lesson.group.name}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default TeacherLessonDetailsContainer;\r\n","import { Card, List, Row, Collapse } from 'antd';\r\nimport { GetTeacherGroupResponse } from 'App/api/endpoints/groups/responses';\r\nimport StudentDescription from 'App/components/students/studentDescription/StudentDescription';\r\nimport React from 'react';\r\n\r\ninterface GroupStudentsProps {\r\n\tgroup: GetTeacherGroupResponse;\r\n}\r\n\r\nconst GroupStudents = ({ group }: GroupStudentsProps) => {\r\n\tconst sortedStudents = group?.students ? [...group.students] : [];\r\n\tsortedStudents.sort((a, b) => a.user.lastName.localeCompare(b.user.lastName));\r\n\treturn (\r\n\t\t\r\n\t\t\t {\r\n\t\t\t\t\treturn (\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t);\r\n\t\t\t\t}}\r\n\t\t\t/>\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GroupStudents;\r\n","import agent from 'App/api/agent/agent';\r\nimport { CreateGroupRequest, GetGroupsRequest, UpdateGroupRequest } from 'App/api/endpoints/groups/requests';\r\nimport { CreateHomeworkInGroupRequest } from 'App/api/endpoints/homeworks/requests';\r\nimport { AppThunk } from 'App/globalState/store';\r\nimport {\r\n\tupdateGroupStart,\r\n\tupdateGroupSuccess,\r\n\tupdateGroupFailure,\r\n} from 'App/pages/adminPages/groupsPages/state/groups.slice';\r\nimport {\r\n\tgetTeacherGroupFailure,\r\n\tgetTeacherGroupStart,\r\n\tgetTeacherGroupSuccess,\r\n\tgetTeacherGroupsFailure,\r\n\tgetTeacherGroupsStart,\r\n\tgetTeacherGroupsSuccess,\r\n\tcreateTeacherGroupFailure,\r\n\tcreateTeacherGroupStart,\r\n\tcreateTeacherGroupSuccess,\r\n\tactivateTeacherGroupFailure,\r\n\tactivateTeacherGroupStart,\r\n\tactivateTeacherGroupSuccess,\r\n\tdeleteTeacherGroupFailure,\r\n\tdeleteTeacherGroupStart,\r\n\tdeleteTeacherGroupSuccess,\r\n\tgetAllCoursesStart,\r\n\tgetAllCoursesSuccess,\r\n\tgetAllCoursesFailure,\r\n\tcreateHomeworkInGroupStart,\r\n\tcreateHomeworkInGroupSuccess,\r\n\tcreateHomeworkInGroupFailure,\r\n\tdeleteHomeworkFailure,\r\n\tdeleteHomeworkSuccess,\r\n\tdeleteHomeworkStart,\r\n\tgetAllGamesStart,\r\n\tgetAllGamesSuccess,\r\n\tgetAllGamesFailure,\r\n} from './teacher.groups.slice';\r\n\r\nexport const getTeacherGroup =\r\n\t(groupId: string): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getTeacherGroupStart());\r\n\t\tagent.Groups.getTeacherGroup(groupId)\r\n\t\t\t.then((response) => dispatch(getTeacherGroupSuccess(response)))\r\n\t\t\t.catch(() => dispatch(getTeacherGroupFailure()));\r\n\t};\r\n\r\nexport const getTeacherGroups =\r\n\t(body: GetGroupsRequest): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(getTeacherGroupsStart());\r\n\t\tagent.Groups.getGroups(body)\r\n\t\t\t.then((response) => dispatch(getTeacherGroupsSuccess(response)))\r\n\t\t\t.catch(() => dispatch(getTeacherGroupsFailure()));\r\n\t};\r\n\r\nexport const createTeacherGroup =\r\n\t(body: CreateGroupRequest, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(createTeacherGroupStart());\r\n\t\tagent.Groups.createGroup(body)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(createTeacherGroupSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(createTeacherGroupFailure()));\r\n\t};\r\n\r\nexport const updateTeacherGroup =\r\n\t(groupId: string, body: UpdateGroupRequest, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(updateGroupStart());\r\n\t\tagent.Groups.updateGroup(groupId, body)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(updateGroupSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(updateGroupFailure()));\r\n\t};\r\n\r\nexport const deleteTeacherGroup =\r\n\t(groupId: string, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(deleteTeacherGroupStart());\r\n\t\tagent.Groups.deleteGroup(groupId)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(deleteTeacherGroupSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(deleteTeacherGroupFailure()));\r\n\t};\r\n\r\nexport const activateTeacherGroup =\r\n\t(groupId: string, onSuccess: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(activateTeacherGroupStart());\r\n\t\tagent.Groups.activateGroup(groupId)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(activateTeacherGroupSuccess());\r\n\t\t\t\tonSuccess();\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(activateTeacherGroupFailure()));\r\n\t};\r\n\r\nexport const getAllCourses = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getAllCoursesStart());\r\n\tagent.Courses.getAllCourses()\r\n\t\t.then((response) => dispatch(getAllCoursesSuccess(response)))\r\n\t\t.catch(() => dispatch(getAllCoursesFailure()));\r\n};\r\n\r\nexport const deleteHomework =\r\n\t(homeworkId: number, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(deleteHomeworkStart());\r\n\t\tagent.Homeworks.deleteHomework(homeworkId)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(deleteHomeworkSuccess());\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(deleteHomeworkFailure()));\r\n\t};\r\n\r\nexport const createHomeworkInGroup =\r\n\t(groupId: string, request: CreateHomeworkInGroupRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(createHomeworkInGroupStart());\r\n\t\tagent.Homeworks.createHomeworkInGroup(groupId, request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(createHomeworkInGroupSuccess());\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(createHomeworkInGroupFailure()));\r\n\t};\r\n\r\nexport const getAllGames = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getAllGamesStart());\r\n\tagent.Games.getGames()\r\n\t\t.then((response) => dispatch(getAllGamesSuccess(response)))\r\n\t\t.catch(() => dispatch(getAllGamesFailure()));\r\n};\r\n","import agent from 'App/api/agent/agent';\r\nimport { CreateGameRequest } from 'App/api/endpoints/games/requests';\r\nimport { AppThunk } from 'App/globalState/store';\r\nimport {\r\n\tgetGamesStart,\r\n\tgetGamesSuccess,\r\n\tgetGamesFailure,\r\n\tcreateGameFailure,\r\n\tcreateGameStart,\r\n\tcreateGameSuccess,\r\n\tdeleteGameSuccess,\r\n\tdeleteGameFailure,\r\n\tdeleteGameStart,\r\n} from './teacher.games.slice';\r\n\r\nexport const getGames = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getGamesStart());\r\n\tagent.Games.getGames()\r\n\t\t.then((response) => dispatch(getGamesSuccess(response)))\r\n\t\t.catch(() => dispatch(getGamesFailure()));\r\n};\r\n\r\nexport const createGame =\r\n\t(request: CreateGameRequest, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(createGameStart());\r\n\t\tagent.Games.createGame(request)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(createGameSuccess());\r\n\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(createGameFailure()));\r\n\t};\r\n\r\nexport const deleteGame =\r\n\t(gameId: number, onSuccess?: () => void): AppThunk =>\r\n\tasync (dispatch) => {\r\n\t\tdispatch(deleteGameStart());\r\n\t\tagent.Games.deleteGame(gameId)\r\n\t\t\t.then(() => {\r\n\t\t\t\tdispatch(deleteGameSuccess());\r\n\t\t\t\tif (onSuccess) {\r\n\t\t\t\t\tonSuccess();\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t\t.catch(() => dispatch(deleteGameFailure()));\r\n\t};\r\n","import { Row, Col, PageHeader, Card, notification } from 'antd';\r\nimport GroupDescription from 'App/components/groups/groupDescription/GroupDescription';\r\nimport GroupLessons from 'App/components/groups/groupLessons/GroupLessons';\r\nimport LoadingScreen from 'App/components/common/loadingScreen/LoadingScreen';\r\nimport { groupsGlobalService } from 'App/globalServices/groupsService/groups.global.service';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory, useParams } from 'react-router';\r\nimport CreateLessonModal from 'App/components/lessons/createLesson/modals/CreateLessonModal';\r\nimport UpdateLessonModal from 'App/components/lessons/updateLesson/modals/UpdateLessonModal';\r\nimport { LessonForGetGroupResponse } from 'App/api/endpoints/groups/responses';\r\nimport { LessonFormValues } from 'App/components/lessons/lessonForm/models/lessonFormValues';\r\nimport GroupStudents from './components/GroupStudents';\r\nimport {\r\n\tactivateTeacherGroup,\r\n\tcreateHomeworkInGroup,\r\n\tdeleteHomework,\r\n\tgetAllGames,\r\n\tgetTeacherGroup,\r\n} from '../../state/groups/teacher.groups.thunk';\r\nimport { cleanUpTeacherGroupDetails } from '../../state/groups/teacher.groups.slice';\r\nimport { cleanUpTeacherLessonCrud } from '../../state/lessons/teacher.lessons.slice';\r\nimport {\r\n\tcreateLesson,\r\n\tdeleteLesson,\r\n\tgetAllLessonTopics,\r\n\tupdateLesson,\r\n} from '../../state/lessons/teacher.lessons.thunk';\r\nimport GroupHomeworks from 'App/components/groups/groupHomeworks/GroupHomeworks';\r\nimport CreateHomeworkModal from 'App/components/homeworks/createHomework/modals/CreateHomeworkModal';\r\nimport { CreateHomeworkInGroupRequest } from 'App/api/endpoints/homeworks/requests';\r\nimport { HomeworkFormValues } from 'App/components/homeworks/homeworkForm/models/homeworkFormValues';\r\nimport moment from 'moment';\r\nimport { CreateGameRequest } from 'App/api/endpoints/games/requests';\r\nimport { createGame } from '../../state/games/teacher.games.thunk';\r\nimport MoveLessonModal, { MoveLessonFormValues } from 'App/components/groups/groupLessons/moveLesson/MoveLessonModal';\r\n\r\nconst { Loading } = StatusType;\r\n\r\ninterface TeacherGroupDetailsContainerParams {\r\n\tgroupId: string;\r\n}\r\n\r\nconst TeacherGroupDetailsContainer = () => {\r\n\tconst params = useParams();\r\n\tconst dispatch = useDispatch();\r\n\tconst history = useHistory();\r\n\r\n\tconst [selectedLesson, setSelectedLesson] = useState(null);\r\n\tconst [createLessonModalVisibility, setCreateLessonModalVisibility] = useState(false);\r\n\tconst [updateLessonModalVisibility, setUpdateLessonModalVisibility] = useState(false);\r\n\tconst [moveLessonModalVisibility, setMoveLessonModalVisibility] = useState(false);\r\n\tconst [createHomeworkModalVisibility, setCreateHomeworkModalVisibility] = useState(false);\r\n\t// const [replacementLessonModalVisibility, setReplacementLessonModalVisibility] = useState(false)\r\n\r\n\tconst [editMode, setEditMode] = useState<'simple' | 'extended' | 'disabled'>('disabled');\r\n\r\n\tconst group = useSelector((state: RootState) => state.pages.teacher.groups.teacherGroup);\r\n\tconst teacherGroupStatus = useSelector((state: RootState) => state.pages.teacher.groups.status.getTeacherGroup);\r\n\tconst createLessonStatus = useSelector((state: RootState) => state.pages.teacher.lessons.status.createLesson);\r\n\tconst updateLessonStatus = useSelector((state: RootState) => state.pages.teacher.lessons.status.updateLesson);\r\n\tconst deleteLessonStatus = useSelector((state: RootState) => state.pages.teacher.lessons.status.deleteLesson);\r\n\tconst createHomeworkStatus = useSelector((state: RootState) => state.pages.teacher.groups.status.createHomework);\r\n\tconst deleteHomeworkStatus = useSelector((state: RootState) => state.pages.teacher.groups.status.deleteHomework);\r\n\r\n\tconst isConfirmed = useSelector(\r\n\t\t(state: RootState) => state.global.account.accountDetails.additionalDataForTeacher.isConfirmed\r\n\t);\r\n\r\n\tconst getAllLessonTopicsStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.teacher.lessons.status.getAllLessonTopics\r\n\t);\r\n\r\n\tconst allLessonTopics = useSelector((state: RootState) => state.pages.teacher.lessons.allLessonTopics);\r\n\r\n\tconst getAllGamesStatus = useSelector((state: RootState) => state.pages.teacher.groups.status.getAllGames);\r\n\tconst allGames = useSelector((state: RootState) => state.pages.teacher.groups.allGames);\r\n\r\n\tconst groupId = params.groupId;\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(getTeacherGroup(groupId));\r\n\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpTeacherGroupDetails());\r\n\t\t\tdispatch(cleanUpTeacherLessonCrud());\r\n\t\t};\r\n\t}, [dispatch, groupId]);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(getAllLessonTopics());\r\n\t\tdispatch(getAllGames());\r\n\t}, [dispatch]);\r\n\r\n\tconst handleUpdateLessonClick = (\r\n\t\tlesson: LessonForGetGroupResponse,\r\n\t\teditMode: 'simple' | 'extended' | 'disabled'\r\n\t) => {\r\n\t\tsetSelectedLesson(lesson);\r\n\t\tsetUpdateLessonModalVisibility(true);\r\n\t\tsetEditMode(editMode);\r\n\t};\r\n\r\n\tconst handleMoveLessonClick = (lesson: LessonForGetGroupResponse) => {\r\n\t\tsetSelectedLesson(lesson);\r\n\t\tsetMoveLessonModalVisibility(true);\r\n\t};\r\n\r\n\tconst onCreateHomework = (values: HomeworkFormValues) => {\r\n\t\tif (values.games.length <= 0) {\r\n\t\t\tnotification.error({\r\n\t\t\t\tmessage: 'Błąd',\r\n\t\t\t\tdescription: 'Aby zadać pracę domową należy dodać co najmniej jedno zadanie',\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Zadanie domowe zostało dodane',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getTeacherGroup(groupId));\r\n\t\t\tsetCreateHomeworkModalVisibility(false);\r\n\t\t};\r\n\r\n\t\tconst request: CreateHomeworkInGroupRequest = {\r\n\t\t\t...values,\r\n\t\t\tavailableUntilUtc: moment.utc(values.availableUntilUtc).format(),\r\n\t\t};\r\n\r\n\t\tdispatch(createHomeworkInGroup(groupId, request, onSuccess));\r\n\t};\r\n\r\n\tconst onDeleteHomework = (homeworkId: number) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Zadanie domowe zostało usunięte',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getTeacherGroup(groupId));\r\n\t\t};\r\n\r\n\t\tdispatch(deleteHomework(homeworkId, onSuccess));\r\n\t};\r\n\r\n\tconst handleUpdateLesson = (values: LessonFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Edytowano lekcje',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getTeacherGroup(groupId));\r\n\t\t\tsetSelectedLesson(null);\r\n\t\t\tsetUpdateLessonModalVisibility(false);\r\n\t\t};\r\n\r\n\t\tconst request = groupsGlobalService.convertToCreateOrUpdateLessonRequest(values, groupId);\r\n\r\n\t\t// upewniamy się, że nie poleci request z zmienionym kosztem\r\n\t\tif (editMode === 'simple') {\r\n\t\t\trequest.costGrossInPln = selectedLesson.costGrossInPln;\r\n\t\t}\r\n\r\n\t\tdispatch(updateLesson(selectedLesson.id, request, onSuccess));\r\n\t};\r\n\r\n\tconst handleMoveLesson = (values: MoveLessonFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Lekcja została przniesiona',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getTeacherGroup(groupId));\r\n\t\t\tsetSelectedLesson(null);\r\n\t\t\tsetMoveLessonModalVisibility(false);\r\n\t\t};\r\n\r\n\t\tconst request = groupsGlobalService.convertToCreateOrUpdateLessonRequest({\r\n\t\t\taddress: selectedLesson.address,\r\n\t\t\tclassroom: selectedLesson.classroom,\r\n\t\t\tcostGrossInPln: selectedLesson.costGrossInPln,\r\n\t\t\tdescription: selectedLesson.description,\r\n\t\t\tlessonDate: values.newLessonDate,\r\n\t\t\tlessonTime: values.newLessonTime,\r\n\t\t\tlessonStatus: selectedLesson.lessonStatus,\r\n\t\t\tlessonTopicId: selectedLesson.lessonTopic?.id\r\n\t\t}, groupId);\r\n\r\n\t\tdispatch(updateLesson(selectedLesson.id, request, onSuccess));\r\n\t};\r\n\r\n\r\n\tconst handleDeleteLessonClick = (lessonId: string) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Usunięto lekcje',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getTeacherGroup(groupId));\r\n\t\t};\r\n\r\n\t\tdispatch(deleteLesson(lessonId, onSuccess));\r\n\t};\r\n\r\n\tconst handleCreateLessonClick = () => {\r\n\t\tsetCreateLessonModalVisibility(true);\r\n\t};\r\n\r\n\tconst handleCreateLesson = (values: LessonFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Dodano nową lekcje',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getTeacherGroup(groupId));\r\n\t\t\tsetCreateLessonModalVisibility(false);\r\n\t\t};\r\n\r\n\t\tconst request = groupsGlobalService.convertToCreateOrUpdateLessonRequest(values, groupId);\r\n\r\n\t\tdispatch(createLesson(request, onSuccess));\r\n\t};\r\n\r\n\tconst handleCreateGame = (values: CreateGameRequest) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Dodano nową grę',\r\n\t\t\t});\r\n\t\t\tdispatch(getAllGames());\r\n\t\t};\r\n\t\tdispatch(createGame(values, onSuccess));\r\n\t};\r\n\r\n\tconst handleReplacementLessonClick = (lessonId: string) => {\r\n\t\t// setReplacementLessonModalVisibility(true);\r\n\t};\r\n\r\n\tconst onActivateGroup = (groupId: string) => {\r\n\t\tconst onSucces = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Grupa została aktywowana',\r\n\t\t\t});\r\n\t\t\tdispatch(getTeacherGroup(groupId));\r\n\t\t};\r\n\t\tdispatch(activateTeacherGroup(groupId, onSucces));\r\n\t};\r\n\r\n\tif (teacherGroupStatus === Loading || !group) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t {\r\n\t\t\t\t\tsetMoveLessonModalVisibility(false);\r\n\t\t\t\t\tsetSelectedLesson(null);\r\n\t\t\t\t}}\r\n\t\t\t\tselectedGroup={group}\r\n\t\t\t\tselectedLesson={selectedLesson}\r\n\t\t\t/>\r\n\t\t\t setCreateHomeworkModalVisibility(false)}\r\n\t\t\t\tonCreateHomework={onCreateHomework}\r\n\t\t\t\tselectedGroup={group}\r\n\t\t\t/>\r\n\t\t\t setCreateLessonModalVisibility(false)}\r\n\t\t\t\tonCreate={handleCreateLesson}\r\n\t\t\t\tvisible={createLessonModalVisibility}\r\n\t\t\t/>\r\n\t\t\t {\r\n\t\t\t\t\tsetUpdateLessonModalVisibility(false);\r\n\t\t\t\t\tsetSelectedLesson(null);\r\n\t\t\t\t}}\r\n\t\t\t\tonCreate={handleUpdateLesson}\r\n\t\t\t\tvisible={updateLessonModalVisibility}\r\n\t\t\t\teditMode={editMode}\r\n\t\t\t/>\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t setCreateHomeworkModalVisibility(true)}\r\n\t\t\t\t\thomeworks={group.homeworks}\r\n\t\t\t\t/>\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default TeacherGroupDetailsContainer;\r\n","import { ExclamationCircleOutlined } from '@ant-design/icons';\r\nimport { Col, Modal, notification, Row } from 'antd';\r\nimport { UpdateGroupRequest } from 'App/api/endpoints/groups/requests';\r\nimport { GroupForGetGroupsResponse } from 'App/api/endpoints/groups/responses';\r\nimport { paginationUtils } from 'App/common/utils/pagination.utils';\r\nimport CreateGroupModal from 'App/components/groups/createGroup/modals/CreateGroupModal';\r\nimport { GroupFormValues } from 'App/components/groups/groupForm/models/groupFormValues';\r\nimport GroupsTable from 'App/components/groups/groupsTable/components/GroupsTable';\r\nimport UpdateGroupModal from 'App/components/groups/updateGroup/modals/UpdateGroupModal';\r\nimport { groupsGlobalService } from 'App/globalServices/groupsService/groups.global.service';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport { cleanUpGroupForm } from 'App/pages/adminPages/groupsPages/state/groups.slice';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { cleanUpTeacherGroups } from '../../state/groups/teacher.groups.slice';\r\nimport {\r\n\tgetTeacherGroups,\r\n\tcreateTeacherGroup,\r\n\tdeleteTeacherGroup,\r\n\tactivateTeacherGroup,\r\n\tgetAllCourses,\r\n} from '../../state/groups/teacher.groups.thunk';\r\nimport { updateTeacherGroup } from '../../state/lessons/teacher.lessons.thunk';\r\n\r\nconst { Loading } = StatusType;\r\nconst { defaultPaginationValues } = paginationUtils;\r\n\r\nconst GroupsTableContainer = () => {\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst groups = useSelector((state: RootState) => state.pages.teacher.groups.teacherGroups);\r\n\tconst getGroupsParams = useSelector((state: RootState) => state.pages.teacher.groups.getTeacherGroupsParams);\r\n\tconst getGroupsStatus = useSelector((state: RootState) => state.pages.teacher.groups.status.getTeacherGroups);\r\n\tconst createGroupStatus = useSelector((state: RootState) => state.pages.teacher.groups.status.createTeacherGroup);\r\n\tconst deleteGroupStatus = useSelector((state: RootState) => state.pages.teacher.groups.status.deleteTeacherGroup);\r\n\tconst updateGroupStatus = useSelector((state: RootState) => state.pages.teacher.groups.status.updateTeacherGroup);\r\n\r\n\tconst isConfirmed = useSelector(\r\n\t\t(state: RootState) => state.global.account.accountDetails.additionalDataForTeacher.isConfirmed\r\n\t);\r\n\r\n\tconst allCourses = useSelector((state: RootState) => state.pages.teacher.groups.allCourses);\r\n\tconst getAllCoursesStatus = useSelector((state: RootState) => state.pages.teacher.groups.status.getAllCourses);\r\n\r\n\tconst [groupFormModalVisible, setGroupFormModalVisible] = useState(false);\r\n\tconst [selectedGroup, setSelectedGroup] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\t// pierwsze uruchomienie z domyślnie ustawionymi filtrami i orderby\r\n\t\tdispatch(\r\n\t\t\tgetTeacherGroups({\r\n\t\t\t\t...defaultPaginationValues,\r\n\t\t\t\tfilters: [{ field: 'isDeleted', values: ['false'] }],\r\n\t\t\t\torderBy: [\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tfield: 'name',\r\n\t\t\t\t\t\tdirection: 'Ascending',\r\n\t\t\t\t\t},\r\n\t\t\t\t],\r\n\t\t\t})\r\n\t\t);\r\n\r\n\t\tdispatch(getAllCourses());\r\n\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpTeacherGroups());\r\n\t\t\tdispatch(cleanUpGroupForm());\r\n\t\t};\r\n\t}, [dispatch]);\r\n\r\n\tconst showGroupFormModal = (group?: GroupForGetGroupsResponse) => {\r\n\t\tsetSelectedGroup(group);\r\n\t\tsetGroupFormModalVisible(true);\r\n\t};\r\n\r\n\tconst hideGroupFormModal = () => {\r\n\t\tsetGroupFormModalVisible(false);\r\n\t\tsetSelectedGroup(null);\r\n\t};\r\n\r\n\tconst onCreateGroup = (values: GroupFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Dodano nową grupę',\r\n\t\t\t});\r\n\r\n\t\t\tdispatch(getTeacherGroups({ ...getGroupsParams }));\r\n\t\t\thideGroupFormModal();\r\n\t\t};\r\n\r\n\t\tconst request = groupsGlobalService.convertToCreateGroupRequest(values);\r\n\t\tdispatch(createTeacherGroup(request, onSuccess));\r\n\t};\r\n\r\n\tconst onDeleteGroup = (groupToDelete: GroupForGetGroupsResponse) => {\r\n\t\tModal.confirm({\r\n\t\t\ttitle: `Czy na pewno chcesz usunąć grupę \"${groupToDelete.name}\"?`,\r\n\t\t\ticon: ,\r\n\t\t\tcontent: 'Wykonanie tej akcji będzie nieodwracalne',\r\n\t\t\tokText: 'Tak',\r\n\t\t\tcancelText: 'Nie',\r\n\t\t\tokType: 'primary',\r\n\t\t\tonOk() {\r\n\t\t\t\tconst onSucces = () => {\r\n\t\t\t\t\tnotification.success({\r\n\t\t\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\t\t\tdescription: 'Grupa została usunięta',\r\n\t\t\t\t\t});\r\n\t\t\t\t\tdispatch(getTeacherGroups({ ...getGroupsParams }));\r\n\t\t\t\t};\r\n\t\t\t\tdispatch(deleteTeacherGroup(groupToDelete.id, onSucces));\r\n\t\t\t},\r\n\t\t});\r\n\t};\r\n\r\n\tconst onUpdateGroup = (values: UpdateGroupRequest) => {\r\n\t\tconst onSucces = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Grupa została zaktualizowana',\r\n\t\t\t});\r\n\t\t\tdispatch(\r\n\t\t\t\tgetTeacherGroups({\r\n\t\t\t\t\t...getGroupsParams,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t\thideGroupFormModal();\r\n\t\t};\r\n\t\tdispatch(updateTeacherGroup(selectedGroup.id, values, onSucces));\r\n\t};\r\n\r\n\tconst onActivateGroup = (group: GroupForGetGroupsResponse) => {\r\n\t\tconst onSucces = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Grupa została aktywowana',\r\n\t\t\t});\r\n\t\t\tdispatch(\r\n\t\t\t\tgetTeacherGroups({\r\n\t\t\t\t\t...getGroupsParams,\r\n\t\t\t\t})\r\n\t\t\t);\r\n\t\t};\r\n\t\tdispatch(activateTeacherGroup(group.id, onSucces));\r\n\t};\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default GroupsTableContainer;\r\n","import { Button, Col, Form, Row } from 'antd';\r\nimport { CreateGameRequest } from 'App/api/endpoints/games/requests';\r\nimport { GameForGetGamesResponse } from 'App/api/endpoints/games/responses';\r\nimport { breakpoints } from 'App/components/common/responsive/utils/breakpoints';\r\nimport { GameComplexityStringToEnum } from 'App/pages/gamePages/types/gameComplexity';\r\nimport { GameLevelStringToEnum } from 'App/pages/gamePages/types/gameLevel';\r\nimport React from 'react';\r\nimport { useMediaQuery } from 'react-responsive';\r\nimport TeacherGamesFormItems from './TeacherGamesFormItems';\r\n\r\ninterface TeacherGamesFormProps {\r\n\tloading: boolean;\r\n\tmodalMode?: boolean;\r\n\tselectedGameForEdit?: GameForGetGamesResponse | null;\r\n\tonCreateGame: (values: CreateGameRequest) => void;\r\n}\r\n\r\nconst TeacherGamesForm = ({ loading, modalMode, selectedGameForEdit, onCreateGame }: TeacherGamesFormProps) => {\r\n\tconst layoutVertical = useMediaQuery({ maxWidth: breakpoints.lg.max });\r\n\r\n\tconst initialValues: CreateGameRequest = {\r\n\t\trequiredTurbo: selectedGameForEdit?.requiredTurbo || false,\r\n\t\trequiredDoublePower: selectedGameForEdit?.requiredDoublePower || false,\r\n\t\trequiredCombinations: selectedGameForEdit?.requiredCombinations || false,\r\n\t\trequiredMinimalGeneratorSpeedInSeconds: selectedGameForEdit?.requiredMinimalGeneratorSpeedInSeconds || 1,\r\n\t\trequiredMinimalMaxSteps: selectedGameForEdit?.requiredMinimalMaxSteps || 5,\r\n\t\trequiredRepetitions: selectedGameForEdit?.requiredRepetitions || 4,\r\n\t\tname: selectedGameForEdit?.name || '',\r\n\r\n\t\trequiredMinimalComplexity: selectedGameForEdit\r\n\t\t\t? GameComplexityStringToEnum[selectedGameForEdit.requiredMinimalComplexity]\r\n\t\t\t: 1,\r\n\r\n\t\trequiredMinimalLevel: selectedGameForEdit ? GameLevelStringToEnum[selectedGameForEdit.requiredMinimalLevel] : 9,\r\n\t};\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default TeacherGamesForm;\r\n","import { DeleteOutlined } from '@ant-design/icons';\r\nimport { Button, Popconfirm, Table, Tag } from 'antd';\r\nimport Column from 'antd/lib/table/Column';\r\nimport { GameForGetGamesResponse } from 'App/api/endpoints/games/responses';\r\nimport { GameComplexityStringToEnum } from 'App/pages/gamePages/types/gameComplexity';\r\nimport { GameLevelStringToEnum } from 'App/pages/gamePages/types/gameLevel';\r\nimport React from 'react';\r\n\r\ninterface TeacherGamesTableProps {\r\n\tfetching: boolean;\r\n\tdeleting: boolean;\r\n\tgames: GameForGetGamesResponse[];\r\n\tonDeleteGame: (gameId: number) => void;\r\n}\r\n\r\nconst TeacherGamesTable = ({ games, fetching, deleting, onDeleteGame }: TeacherGamesTableProps) => {\r\n\tconst renderRequiredBoolean = (value: boolean) => {\r\n\t\tif (value) {\r\n\t\t\treturn Wymagane;\r\n\t\t}\r\n\t\treturn Niewymagane;\r\n\t};\r\n\r\n\tconst renderActions = (gameId: number) => {\r\n\t\treturn (\r\n\t\t\t onDeleteGame(gameId)}\r\n\t\t\t>\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t
\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AllowedGameAlgorithmsForm;\r\n","import { Card, Collapse, Typography } from 'antd';\r\nimport { StudentForGetMyStudentsResponse } from 'App/api/endpoints/students/responses';\r\nimport React, { useEffect, useState } from 'react';\r\nimport AllowedGameAlgorithmsForm from '../../forms/AllowedGameAlgorithmsForm';\r\nimport { AllowedGameAlgorithmsFormValues } from '../../forms/models/allowedGameAlgorithmsFormValues';\r\n\r\ninterface MyStudentProps {\r\n\tstudent: StudentForGetMyStudentsResponse;\r\n\tupdatingAllowedAlgorithms: boolean;\r\n\tonUpdateAllowedAlgorithms: (studentId: string, values: AllowedGameAlgorithmsFormValues) => void;\r\n}\r\n\r\nconst MyStudent = ({ student, updatingAllowedAlgorithms, onUpdateAllowedAlgorithms }: MyStudentProps) => {\r\n\tconst [initialValues, setInitialValues] = useState(null);\r\n\r\n\tuseEffect(() => {\r\n\t\tif (student.allowedGameAlgorithmsJson) {\r\n\t\t\tsetInitialValues(JSON.parse(student.allowedGameAlgorithmsJson));\r\n\t\t} else {\r\n\t\t\tsetInitialValues({\r\n\t\t\t\tmalyBrat1: false,\r\n\t\t\t\tmalyBrat2: false,\r\n\t\t\t\tmalyBrat3: false,\r\n\t\t\t\tmalyBrat4: false,\r\n\t\t\t\tduzyBrat1: false,\r\n\t\t\t\tduzyBrat2: false,\r\n\t\t\t\tduzyBrat3: false,\r\n\t\t\t\tduzyBrat4: false,\r\n\t\t\t\tduzyBrat5: false,\r\n\t\t\t\tduzyBrat6: false,\r\n\t\t\t\tduzyBrat7: false,\r\n\t\t\t\tduzyBrat8: false,\r\n\t\t\t\tduzyBrat9: false,\r\n\t\t\t});\r\n\t\t}\r\n\t}, [student]);\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{student.firstName} {student.lastName}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{student.email}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t}\r\n\t\t>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tonUpdateAllowedAlgorithms(student.id, values);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MyStudent;\r\n","import { List } from 'antd';\r\nimport { StudentForGetMyStudentsResponse } from 'App/api/endpoints/students/responses';\r\nimport React from 'react';\r\nimport { AllowedGameAlgorithmsFormValues } from '../../forms/models/allowedGameAlgorithmsFormValues';\r\nimport MyStudent from '../myStudent/MyStudent';\r\n\r\ninterface MyStudentsListProps {\r\n\tfetching: boolean;\r\n\tstudents: StudentForGetMyStudentsResponse[];\r\n\tupdatingAllowedAlgorithms: boolean;\r\n\tonUpdateAllowedAlgorithms: (studentId: string, values: AllowedGameAlgorithmsFormValues) => void;\r\n}\r\n\r\nconst MyStudentsList = ({\r\n\tfetching,\r\n\tstudents,\r\n\tupdatingAllowedAlgorithms,\r\n\tonUpdateAllowedAlgorithms,\r\n}: MyStudentsListProps) => {\r\n\treturn (\r\n\t\t (\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t)}\r\n\t\t/>\r\n\t);\r\n};\r\n\r\nexport default MyStudentsList;\r\n","import { Button, Col, notification, PageHeader, Result, Row } from 'antd';\r\nimport { UpdateAllowedAlgorithmsForStudentRequest } from 'App/api/endpoints/students/requests';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\nimport { useHistory } from 'react-router';\r\nimport { cleanUpMyStudents } from '../../state/students/teacher.students.slice';\r\nimport { getMyStudents, updateAllowedAlgorithmsForStudent } from '../../state/students/teacher.students.thunk';\r\nimport MyStudentsList from './components/myStudentsList/MyStudentsList';\r\nimport { AllowedGameAlgorithmsFormValues } from './forms/models/allowedGameAlgorithmsFormValues';\r\n\r\nconst { Failed, Loading } = StatusType;\r\n\r\nconst MyStudentsContainer = () => {\r\n\tconst dispatch = useDispatch();\r\n\tconst history = useHistory();\r\n\r\n\tconst myStudents = useSelector((state: RootState) => state.pages.teacher.students.myStudents);\r\n\tconst getMyStudentsStatus = useSelector((state: RootState) => state.pages.teacher.students.status.getMyStudents);\r\n\tconst updateAllowedAlgorithmsStatus = useSelector(\r\n\t\t(state: RootState) => state.pages.teacher.students.status.updateAllowedAlgorithms\r\n\t);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(getMyStudents());\r\n\t\treturn () => {\r\n\t\t\tdispatch(cleanUpMyStudents());\r\n\t\t};\r\n\t}, [dispatch]);\r\n\r\n\tconst handleRetry = () => {\r\n\t\tdispatch(getMyStudents());\r\n\t};\r\n\r\n\tconst handleUpdateAllowedAlgorithms = (studentId: string, values: AllowedGameAlgorithmsFormValues) => {\r\n\t\tconst onSuccess = () => {\r\n\t\t\tnotification.success({\r\n\t\t\t\tmessage: 'Sukces',\r\n\t\t\t\tdescription: 'Zapisano zmiany',\r\n\t\t\t});\r\n\t\t\tdispatch(getMyStudents());\r\n\t\t};\r\n\r\n\t\tconst request: UpdateAllowedAlgorithmsForStudentRequest = {\r\n\t\t\tallowedGameAlgorithmsJson: JSON.stringify(values),\r\n\t\t};\r\n\r\n\t\tdispatch(updateAllowedAlgorithmsForStudent(studentId, request, onSuccess));\r\n\t};\r\n\r\n\tif (getMyStudentsStatus === Failed) {\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\t\tSpróbuj ponownie\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t/>\r\n\t\t);\r\n\t}\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t history.goBack()} />\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MyStudentsContainer;\r\n","import React from 'react';\r\nimport Role from 'App/types/role';\r\nimport TeacherCalendarContainer from './views/teacherCalendar/TeacherCalendarContainer';\r\nimport TeacherLessonDetailsContainer from './views/teacherLessonDetails/TeacherLessonDetailsContainer';\r\nimport TeacherGroupDetailsContainer from './views/teacherGroupDetails/TeacherGroupDetailsContainer';\r\nimport TeacherGroupsContainer from './views/teacherGroups/TeacherGroupsContainer';\r\nimport ProtectedRoute from 'App/components/routing/protectedRoute/ProtectedRoute';\r\nimport TeacherGamesContainer from './views/teacherGames/TeacherGamesContainer';\r\nimport MyStudentsContainer from './views/myStudents/MyStudentsContainer';\r\n\r\nconst TeacherPages = [\r\n\t,\r\n\t,\r\n\t,\r\n\t,\r\n\t,\r\n\t,\r\n];\r\n\r\nexport default TeacherPages;\r\n","import React from 'react';\r\n\r\nimport AccountPages from './pages/accountPages/AccountPages';\r\nimport HomePages from './pages/homePages/HomePages';\r\nimport ResultPages from './pages/resultPages/ResultPages';\r\nimport AdminPages from './pages/adminPages/AdminPages';\r\nimport AuthPages from './pages/authPages/AuthPages';\r\nimport { Switch } from 'react-router-dom';\r\nimport GamePages from './pages/gamePages/GamePages';\r\nimport StudentPages from './pages/studentPages/StudentPages';\r\nimport TeacherPages from './pages/teacherPages/TeacherPages';\r\n\r\nconst Routes = () => {\r\n\treturn (\r\n\t\t\r\n\t\t\t{HomePages}\r\n\t\t\t{GamePages}\r\n\t\t\t{AuthPages}\r\n\t\t\t{AdminPages}\r\n\t\t\t{AccountPages}\r\n\t\t\t{StudentPages}\r\n\t\t\t{TeacherPages}\r\n\t\t\t{ResultPages}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default Routes;\r\n","import { SettingOutlined, TranslationOutlined, CheckOutlined, LogoutOutlined } from '@ant-design/icons';\r\nimport { Menu } from 'antd';\r\nimport { GetAccountDetailsResponse } from 'App/api/endpoints/account/responses';\r\nimport { logout } from 'App/globalState/auth/auth.global.thunk';\r\nimport i18n, { languages, fullLanguages } from 'i18n';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { useDispatch } from 'react-redux';\r\nimport { Link, useHistory } from 'react-router-dom';\r\n\r\ninterface AccountSubMenuProps {\r\n\taccountDetails: GetAccountDetailsResponse;\r\n\tisMobile: boolean;\r\n}\r\n\r\nconst AccountSubMenu = (props: AccountSubMenuProps) => {\r\n\tconst history = useHistory();\r\n\tconst { t } = useTranslation('page');\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst onLogoutClick = () => {\r\n\t\tlet handleSuccess: () => void = () => {\r\n\t\t\thistory.push('/');\r\n\t\t};\r\n\t\tdispatch(logout(handleSuccess));\r\n\t};\r\n\r\n\tconst changeLanguage = (values: any) => {\r\n\t\ti18n.changeLanguage(values.key);\r\n\t};\r\n\r\n\tconst { accountDetails, isMobile, ...rest } = props;\r\n\r\n\tconst className = isMobile ? '' : 'float-right';\r\n\treturn (\r\n\t\t\r\n\t\t\t}>\r\n\t\t\t\t{t('Navbar.Settings')}\r\n\t\t\t\r\n\t\t\t}>\r\n\t\t\t\t{languages.map((language) => (\r\n\t\t\t\t\t}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{fullLanguages.find((lang) => lang.key === language).value}\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t}>\r\n\t\t\t\t{t('Navbar.Logout')}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AccountSubMenu;\r\n","import { Menu } from 'antd';\r\nimport React from 'react';\r\n// import { useTranslation } from 'react-i18next';\r\nimport { Link } from 'react-router-dom';\r\n\r\n// import logo from '../../assets/logo.png';\r\nconst HomeMenuItem = (props) => {\r\n\t// const { t } = useTranslation('page');\r\n\r\n\t// uwaga, powiększenie logo może spowodować wyświetlanie go jako collapsed (czyli ...)\r\n\t// const logoHeight = 25;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\tEDUrado\r\n\t\t\t\t{/* {t('Navbar.Home')} */}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default HomeMenuItem;\r\n","import { MenuOutlined } from '@ant-design/icons';\r\nimport { Col, Menu, Row } from 'antd';\r\nimport React from 'react';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport { Mobile } from '../common/responsive/Mobile';\r\nimport { Default } from '../common/responsive/Default';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { GetAccountDetailsResponse } from 'App/api/endpoints/account/responses';\r\nimport AccountSubMenu from './AccountSubMenu';\r\nimport HomeMenuItem from './HomeMenuItem';\r\nimport Role from 'App/types/role';\r\n\r\ninterface AdminNavbarProps {\r\n\taccountDetails: GetAccountDetailsResponse;\r\n}\r\n\r\nconst AdminNavbar = ({ accountDetails }: AdminNavbarProps) => {\r\n\tconst location = useLocation();\r\n\tconst { t } = useTranslation('page');\r\n\r\n\tconst adminUsersMenuItem = (\r\n\t\t\r\n\t\t\t{t('Navbar.Admin')}\r\n\t\t\r\n\t);\r\n\r\n\tconst gameMenuItem = (\r\n\t\t\r\n\t\t\tGra\r\n\t\t\r\n\t);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{adminUsersMenuItem}\r\n\t\t\t\t\t\t\t\t{gameMenuItem}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{adminUsersMenuItem}\r\n\t\t\t\t\t\t\t{gameMenuItem}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default AdminNavbar;\r\n","import { MenuOutlined, WalletOutlined } from '@ant-design/icons';\r\nimport { Col, Menu, Row } from 'antd';\r\nimport { GetAccountDetailsResponse } from 'App/api/endpoints/account/responses';\r\nimport React from 'react';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport { Default } from '../common/responsive/Default';\r\nimport { Mobile } from '../common/responsive/Mobile';\r\nimport AccountSubMenu from './AccountSubMenu';\r\nimport HomeMenuItem from './HomeMenuItem';\r\n\r\ninterface StudentNavbarProps {\r\n\taccountDetails: GetAccountDetailsResponse;\r\n\twalletBalance: number;\r\n\tloading: boolean;\r\n}\r\n\r\nconst StudentNavbar = ({ accountDetails, walletBalance, loading }: StudentNavbarProps) => {\r\n\tconst location = useLocation();\r\n\r\n\tconst walletText = loading || walletBalance > 0 ? 'Portfel' : `Portfel (${walletBalance.toFixed(2)} zł)`;\r\n\r\n\tconst gameMenuItem = (\r\n\t\t\r\n\t\t\tGra\r\n\t\t\r\n\t);\r\n\r\n\tconst courseMenuItem = (\r\n\t\t\r\n\t\t\tKursy\r\n\t\t\r\n\t);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{courseMenuItem}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{gameMenuItem}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{accountDetails.isWalletHidden ? (\r\n\t\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t\t}>\r\n\t\t\t\t\t\t\t\t\t\t{walletText}\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{courseMenuItem}\r\n\t\t\t\t\t\t\t{gameMenuItem}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{accountDetails.isWalletHidden ? (\r\n\t\t\t\t\t\t\t\t<>\r\n\t\t\t\t\t\t\t) : (\r\n\t\t\t\t\t\t\t\t}>\r\n\t\t\t\t\t\t\t\t\t{walletText}\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default StudentNavbar;\r\n","import { UserAddOutlined, LoginOutlined, TranslationOutlined, CheckOutlined, MenuOutlined } from '@ant-design/icons';\r\nimport { Col, Menu, Row } from 'antd';\r\nimport i18n, { languages, fullLanguages } from 'i18n';\r\nimport React from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport { Default } from '../common/responsive/Default';\r\nimport { Mobile } from '../common/responsive/Mobile';\r\nimport HomeMenuItem from './HomeMenuItem';\r\n\r\nconst NotLoggedInNavbar = () => {\r\n\tconst { t } = useTranslation('page');\r\n\tconst location = useLocation();\r\n\tconst changeLanguage = (values: any) => {\r\n\t\ti18n.changeLanguage(values.key);\r\n\t};\r\n\r\n\tconst signUpMenuItem = (isMobile: boolean) => (\r\n\t\t} className={isMobile ? '' : ''}>\r\n\t\t\t{t('Navbar.SignUp')}\r\n\t\t\r\n\t);\r\n\r\n\tconst signInMenuItem = (isMobile: boolean) => (\r\n\t\t} className={isMobile ? '' : ''}>\r\n\t\t\t{t('Navbar.SignIn')}\r\n\t\t\r\n\t);\r\n\r\n\tconst languagesMenuItem = (isMobile: boolean) => (\r\n\t\t}\r\n\t\t\tclassName={isMobile ? '' : ''}\r\n\t\t>\r\n\t\t\t{languages.map((language) => (\r\n\t\t\t\t}\r\n\t\t\t\t>\r\n\t\t\t\t\t{fullLanguages.find((lang) => lang.key === language).value}\r\n\t\t\t\t\r\n\t\t\t))}\r\n\t\t\r\n\t);\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}>\r\n\t\t\t\t\t\t\t\t{signUpMenuItem(true)}\r\n\t\t\t\t\t\t\t\t{signInMenuItem(true)}\r\n\t\t\t\t\t\t\t\t{languagesMenuItem(true)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{signUpMenuItem(false)}\r\n\t\t\t\t\t\t\t{signInMenuItem(false)}\r\n\t\t\t\t\t\t\t{languagesMenuItem(false)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default NotLoggedInNavbar;\r\n","import { MenuOutlined } from '@ant-design/icons';\r\nimport { Col, Menu, Row } from 'antd';\r\nimport { GetAccountDetailsResponse } from 'App/api/endpoints/account/responses';\r\nimport React from 'react';\r\nimport { Link, useLocation } from 'react-router-dom';\r\nimport { Default } from '../common/responsive/Default';\r\nimport { Mobile } from '../common/responsive/Mobile';\r\nimport AccountSubMenu from './AccountSubMenu';\r\nimport HomeMenuItem from './HomeMenuItem';\r\n\r\ninterface TeacherNavbarProps {\r\n\taccountDetails: GetAccountDetailsResponse;\r\n}\r\n\r\nconst TeacherNavbar = ({ accountDetails }: TeacherNavbarProps) => {\r\n\tconst location = useLocation();\r\n\r\n\treturn (\r\n\t\t<>\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tGrupy\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tMoi uczniowie\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tKalendarz\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tUstawienia gier\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tGra\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tGrupy\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tMoi uczniowie\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tKalendarz\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tUstawienia gier\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\tGra\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default TeacherNavbar;\r\n","import React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport Role from 'App/types/role';\r\nimport AdminNavbar from '../components/navbar/AdminNavbar';\r\nimport StudentNavbar from '../components/navbar/StudentNavbar';\r\nimport NotLoggedInNavbar from '../components/navbar/NotLoggedInNavbar';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport StatusType from 'App/types/requestStatus';\r\nimport TeacherNavbar from '../components/navbar/TeacherNavbar';\r\n\r\nconst NavbarContainer = () => {\r\n\tconst accountDetails = useSelector((state: RootState) => state.global.account.accountDetails);\r\n\tconst walletBalance = useSelector((state: RootState) => state.global.wallet.balance);\r\n\tconst walletBalanceStatus = useSelector((state: RootState) => state.global.wallet.status.getWalletBalance);\r\n\r\n\tif (accountDetails) {\r\n\t\tif (accountDetails.roles.includes(Role.Admin)) {\r\n\t\t\treturn ;\r\n\t\t} else if (accountDetails.roles.includes(Role.Student)) {\r\n\t\t\treturn (\r\n\t\t\t\t\r\n\t\t\t);\r\n\t\t} else if (accountDetails.roles.includes(Role.Teacher)) {\r\n\t\t\treturn ;\r\n\t\t} else if (accountDetails.roles.includes(Role.FacilityCaretaker)) {\r\n\t\t\t// return ;\r\n\t\t\treturn <>todo;\r\n\t\t}\r\n\t} else {\r\n\t\treturn ;\r\n\t}\r\n};\r\n\r\nexport default NavbarContainer;\r\n","import { TFunction } from 'i18next';\r\n\r\nexport const validationMessages = (t: TFunction) => {\r\n\treturn {\r\n\t\tdefault: t('form:ValidationMessages.Default'),\r\n\t\trequired: t('form:ValidationMessages.Required'),\r\n\t\tenum: t('form:ValidationMessages.Enum'),\r\n\t\twhitespace: t('form:ValidationMessages.Whitespace'),\r\n\t\tdate: {\r\n\t\t\tformat: t('form:ValidationMessages.Date.Format'),\r\n\t\t\tparse: t('form:ValidationMessages.Date.Parse'),\r\n\t\t\tinvalid: t('form:ValidationMessages.Date.Invalid'),\r\n\t\t},\r\n\t\ttypes: {\r\n\t\t\tstring: t('form:ValidationMessages.Types.String'),\r\n\t\t\tmethod: t('form:ValidationMessages.Types.Method'),\r\n\t\t\tarray: t('form:ValidationMessages.Types.Array'),\r\n\t\t\tobject: t('form:ValidationMessages.Types.Object'),\r\n\t\t\tnumber: t('form:ValidationMessages.Types.Number'),\r\n\t\t\tdate: t('form:ValidationMessages.Types.Date'),\r\n\t\t\tboolean: t('form:ValidationMessages.Types.Boolean'),\r\n\t\t\tinteger: t('form:ValidationMessages.Types.Integer'),\r\n\t\t\tfloat: t('form:ValidationMessages.Types.Float'),\r\n\t\t\tregexp: t('form:ValidationMessages.Types.Regexp'),\r\n\t\t\temail: t('form:ValidationMessages.Types.Email'),\r\n\t\t\turl: t('form:ValidationMessages.Types.Url'),\r\n\t\t\thex: t('form:ValidationMessages.Types.Hex'),\r\n\t\t},\r\n\t\tstring: {\r\n\t\t\tlen: t('form:ValidationMessages.String.Len'),\r\n\t\t\tmin: t('form:ValidationMessages.String.Min'),\r\n\t\t\tmax: t('form:ValidationMessages.String.Max'),\r\n\t\t\trange: t('form:ValidationMessages.String.Range'),\r\n\t\t},\r\n\t\tnumber: {\r\n\t\t\tlen: t('form:ValidationMessages.Number.Len'),\r\n\t\t\tmin: t('form:ValidationMessages.Number.Min'),\r\n\t\t\tmax: t('form:ValidationMessages.Number.Max'),\r\n\t\t\trange: t('form:ValidationMessages.Number.Range'),\r\n\t\t},\r\n\t\tarray: {\r\n\t\t\tlen: t('form:ValidationMessages.Array.Len'),\r\n\t\t\tmin: t('form:ValidationMessages.Array.Min'),\r\n\t\t\tmax: t('form:ValidationMessages.Array.Max'),\r\n\t\t\trange: t('form:ValidationMessages.Array.Range'),\r\n\t\t},\r\n\t\tpattern: {\r\n\t\t\tmismatch: t('form:ValidationMessages.Pattern.Mismatch'),\r\n\t\t},\r\n\t};\r\n};\r\n","import { Alert, Col, Row } from 'antd';\r\nimport { getCurrentMessages } from 'App/globalState/maintenanceMessages/maintenanceMessages.global.thunk';\r\nimport { RootState } from 'App/globalState/root.reducer';\r\nimport React, { useEffect } from 'react';\r\nimport { useDispatch, useSelector } from 'react-redux';\r\n\r\nconst MaintenanceMessages = () => {\r\n\tconst dispatch = useDispatch();\r\n\r\n\tconst currentMessages = useSelector((state: RootState) => state.global.maintenanceMessages.currentMessages);\r\n\r\n\tuseEffect(() => {\r\n\t\tdispatch(getCurrentMessages());\r\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\r\n\t}, []);\r\n\r\n\tif (currentMessages.length === 0) return <>;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{currentMessages.map((message, index) => (\r\n\t\t\t\t\t\r\n\t\t\t\t))}\r\n\t\t\t\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default MaintenanceMessages;\r\n","import agent from 'App/api/agent/agent';\r\nimport { AppThunk } from '../store';\r\nimport {\r\n\tgetCurrentMessagesStart,\r\n\tgetCurrentMessagesSuccess,\r\n\tgetCurrentMessagesFailure,\r\n} from './maintenanceMessages.global.slice';\r\n\r\nexport const getCurrentMessages = (): AppThunk => async (dispatch) => {\r\n\tdispatch(getCurrentMessagesStart());\r\n\tagent.MaintenanceMessages.getCurrentMessages()\r\n\t\t.then((response) => dispatch(getCurrentMessagesSuccess(response)))\r\n\t\t.catch(() => dispatch(getCurrentMessagesFailure()));\r\n};\r\n","// react\r\nimport React, { useEffect } from 'react';\r\nimport { Router } from 'react-router';\r\n\r\n// third-party\r\nimport { ConfigProvider, Layout, notification } from 'antd';\r\nimport { useTranslation } from 'react-i18next';\r\n\r\n// local direct\r\nimport Routes from './routes';\r\nimport './common/styles/bootstrap-utilities.less';\r\nimport NavbarContainer from './containers/NavbarContainer';\r\nimport history from '../app.history';\r\n\r\n// styles\r\nimport './App.less';\r\nimport './common/styles/bootstrap-utilities.less';\r\n\r\n// languages\r\nimport { validationMessages } from './common/utils/i18nDefaultAntDesignFormMessages';\r\nimport { i18nToAntdLocaleMapper } from './common/utils/i18nToAntdLocaleMapper';\r\nimport { useDispatch } from 'react-redux';\r\nimport MaintenanceMessages from './components/common/maintenanceMessages/MaintenanceMessages';\r\nimport { getAccountDetails } from './globalState/account/account.global.thunk';\r\nimport { appStarted } from './globalState/auth/auth.global.slice';\r\nimport AOS from 'aos';\r\nimport moment from 'moment';\r\nimport 'moment/locale/pl';\r\nimport 'aos/dist/aos.css';\r\n\r\nconst { Content, Header } = Layout;\r\n\r\nmoment.locale('pl');\r\n\r\nconst App = () => {\r\n\tconst { t } = useTranslation();\r\n\tconst dispatch = useDispatch();\r\n\r\n\tAOS.init(); // inicjalizacja animacji 3rd party lib\r\n\r\n\tuseEffect(() => {\r\n\t\tconst onFinished = () => dispatch(appStarted());\r\n\t\tdispatch(getAccountDetails(onFinished, onFinished));\r\n\t}, [dispatch]);\r\n\r\n\tnotification.config({\r\n\t\tplacement: 'bottomRight',\r\n\t\tbottom: 0,\r\n\t\tduration: 5,\r\n\t});\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\nexport default App;\r\n","import { Locale } from 'antd/lib/locale-provider';\r\nimport en from 'antd/lib/locale/en_US';\r\nimport pl from 'antd/lib/locale/pl_PL';\r\nimport i18n from 'i18n';\r\n\r\nexport const i18nToAntdLocaleMapper = (): Locale => {\r\n\tif (i18n.language === 'pl') {\r\n\t\treturn pl;\r\n\t} else {\r\n\t\treturn en;\r\n\t}\r\n};\r\n","import store from 'App/globalState/store';\r\nimport React, { Suspense } from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport App from './App/App';\r\nimport './i18n';\r\n\r\nimport './index.less';\r\n\r\nfunction render(): void {\r\n\tReactDOM.render(\r\n\t\t\r\n\t\t\tLoading...}>\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t,\r\n\t\tdocument.getElementById('root')\r\n\t);\r\n}\r\n\r\nrender();\r\n\r\nif (process.env.NODE_ENV === 'development' && module.hot) {\r\n\tmodule.hot.accept('./App/App', render);\r\n}\r\n"],"sourceRoot":""}