{"version":3,"sources":["types/UserRole.ts","utils/httpUtils.ts","services/AccountService.ts","types/enums/CourseStatus.ts","types/User.ts","stores/AccountStore.ts","services/AdminDashboard.service.ts","types/Project.ts","stores/AdminDashboard.store.ts","services/CourseService.ts","types/enums/MessageTemplateAttribute.ts","types/Course.ts","types/dto/PaginationRequest.dto.ts","utils/timeUtils.ts","stores/CourseStore.ts","services/CourseTemplateService.ts","stores/CourseTemplateStore.ts","services/DashboardService.ts","stores/DashboardStore.ts","stores/ErrorStore.ts","services/BaseService.ts","services/MessageService.ts","stores/MessageStore.ts","services/MessageTemplateService.ts","types/enums/MessageTemplateName.ts","types/enums/SchoolStatus.ts","types/constants/AvailableMessageTemplateAttributes.ts","types/constants/MessageTemplateDataDescription.ts","types/MessageTemplate.ts","stores/MessageTemplateStore.ts","services/ProjectService.ts","stores/ProjectStore.ts","types/Address.ts","types/UnavailableDate.ts","services/SchoolService.ts","types/School.ts","types/StudySubject.ts","stores/SchoolStore.ts","stores/StateStore.ts","services/StudentCourseService.ts","stores/StudentCourseStore.ts","services/StudySubjectService.ts","components/admin/CreateEditProjectDrawer/utils.ts","stores/StudySubjectStore.ts","services/UserService.ts","stores/UserStore.ts","services/SurveyService.ts","stores/UserSurveyStore.ts","stores/index.ts","components/ErrorMessage.tsx","components/ControlledInputText/index.tsx","components/CustomDayPickerRange/style.ts","components/CustomDayPickerRange/index.tsx","style/common.ts","components/admin/CreateEditProjectDrawer/CollapsableDateRangePicker/style.ts","components/admin/CreateEditProjectDrawer/CollapsableDateRangePicker/index.tsx","components/admin/CreateEditProjectDrawer/style.ts","assets/OsloskolenLogo-hvit.svg","components/admin/CreateEditProjectDrawer/index.tsx","assets/login-illustration.svg","views/app/layout/components/DrawerMenuVariants/menuItems.tsx","components/admin/LeftDrawerProjectItem/index.tsx","views/app/layout/components/DrawerMenuVariants/ProjectMenu.tsx","views/app/layout/components/DrawerMenu.tsx","views/app/layout/components/RoleButton.tsx","views/app/layout/components/RoleSelector.tsx","views/app/layout/components/userInformationStyle.ts","views/app/layout/components/UserInformationDropdown.tsx","views/app/layout/components/UserInformation.tsx","views/app/layout/layoutStyle.ts","views/app/layout/MainLayout.tsx","views/error/NotFoundError.tsx","router/RouteGuard.tsx","views/app/admin/common/AdminHeader.tsx","views/app/admin/common/AdminSearchBar.tsx","views/app/admin/common/AddOrEditSchoolDrawer/SelectContactPeople/AddExistingContactPerson/style.ts","views/app/admin/common/AddOrEditSchoolDrawer/SelectContactPeople/AddExistingContactPerson/index.tsx","views/app/admin/common/AddOrEditSchoolDrawer/SelectContactPeople/AddNewContactPerson/style.ts","views/app/admin/common/AddOrEditSchoolDrawer/SelectContactPeople/AddNewContactPerson/index.tsx","views/app/admin/common/AddOrEditSchoolDrawer/SelectContactPeople/style.ts","views/app/admin/common/AddOrEditSchoolDrawer/SelectContactPeople/ContactPersonChip/style.ts","views/app/admin/common/AddOrEditSchoolDrawer/SelectContactPeople/ContactPersonChip/index.tsx","views/app/admin/common/AddOrEditSchoolDrawer/SelectContactPeople/index.tsx","utils/arrayUtils.ts","views/app/admin/common/AddOrEditSchoolDrawer/HighSchoolInformation/style.ts","views/app/admin/common/AddOrEditSchoolDrawer/HighSchoolInformation/index.tsx","views/app/admin/common/AddOrEditSchoolDrawer/style.ts","views/app/admin/common/AddOrEditSchoolDrawer/GUInformation/style.ts","views/app/admin/common/AddOrEditSchoolDrawer/GUInformation/index.tsx","views/app/admin/common/AddOrEditSchoolDrawer/index.tsx","utils/schoolUtils.ts","views/app/admin/common/HorizontalChipList.tsx","views/app/admin/common/SchoolCard/style.ts","views/app/admin/common/SchoolCard/index.tsx","views/app/admin/highSchools/style.ts","views/app/admin/common/ShoolStatusFilter/style.ts","views/app/admin/common/ShoolStatusFilter/index.tsx","views/app/admin/highSchools/index.tsx","components/CustomSearch/index.tsx","views/style/dashboard/index.ts","views/app/VGSadmin/dashboard/components/DashboardFilter/index.tsx","components/StepStatus/style.ts","components/StepStatus/index.tsx","components/CustomBarChart/style.ts","components/CustomBarChart/item.tsx","components/CustomBarChart/legend.tsx","components/CustomBarChart/row.tsx","components/CustomBarChart/index.tsx","utils/dashboardUtils.ts","views/app/VGSadmin/dashboard/index.tsx","components/BlockCount/style.ts","components/BlockCount/index.tsx","components/CustomCircleChart/style.ts","components/CustomCircleChart/slice.tsx","components/CustomCircleChart/index.tsx","views/app/GUadmin/dashboard/index.tsx","views/app/admin/AdminDashboard/AdminDashboardStyle.ts","views/app/admin/AdminDashboard/AdminDashboard.tsx","utils/adminDashboard.utils.ts","views/app/student/studentStyle.ts","views/app/student/StudentDashboard/StudentDashboard.tsx","views/app/Dashboard/index.tsx","views/public/CompleteOIDCLogin.tsx","views/app/student/Prioritize/SavedDialog.tsx","views/app/student/Prioritize/style.ts","views/app/student/Prioritize/index.tsx","views/public/login/style.ts","views/public/login/components/ForgotPasswordDialog.tsx","views/public/login/components/EmailLogin.tsx","views/public/login/components/LoginForm.tsx","types/enums/StudentRegistrationStatus.ts","components/Logo.tsx","views/public/login/Login.tsx","views/app/student/StudentInformation/style.ts","views/app/student/StudentInformation/index.tsx","views/app/admin/secondarySchools/ContactsPersonDrawer/style.ts","views/app/admin/secondarySchools/ContactsPersonDrawer/index.tsx","views/app/admin/secondarySchools/ImportStudentsModal/index.tsx","views/app/admin/secondarySchools/style.ts","views/app/admin/secondarySchools/UnavailableDatesDrawer/style.ts","views/app/admin/secondarySchools/UnavailableDatesDrawer/index.tsx","views/app/admin/secondarySchools/index.tsx","views/app/common/StudySubjects/StudySubjectCard/style.ts","views/app/common/StudySubjects/StudySubjectCard/index.tsx","views/app/common/StudySubjects/StudySubjectCategoryChip/style.ts","views/app/common/StudySubjects/StudySubjectCategoryChip/index.tsx","views/app/common/StudySubjects/StudySubjectDrawer/style.ts","views/app/common/StudySubjects/StudySubjectDrawer/index.tsx","views/app/common/StudySubjects/StudySubjectFilter/style.ts","views/app/common/StudySubjects/StudySubjectFilter/index.tsx","views/app/common/StudySubjects/style.ts","views/app/common/StudySubjects/index.tsx","views/app/student/StudentStudySubjects.tsx","views/app/student/CourseInformation/index.tsx","components/NotifyMessage.tsx","types/StudentStudySubject.ts","views/app/GUadmin/Students/VGSCourseInfoDrawer/style.ts","views/style/courses/index.ts","components/Loading/style.ts","components/Loading/index.tsx","views/app/GUadmin/Students/VGSCourseInfoDrawer/CourseInfo/style.ts","views/app/VGSadmin/courses/components/CourseOptions/EditCourse/EditCourseInformation/index.tsx","views/app/VGSadmin/courses/components/CourseOptions/EditCourse/EditCourseTimes/index.tsx","components/CustomEditorReadOnly/index.tsx","views/app/GUadmin/Students/VGSCourseInfoDrawer/CourseInfo/index.tsx","views/app/GUadmin/Students/VGSCourseInfoDrawer/index.tsx","views/app/common/Students/common/StudentTableFilters/style.ts","types/enums/MessageTemplateType.ts","views/app/common/Students/common/StudentTableFilters/index.tsx","views/app/common/Students/common/StudentRowDropdown/style.ts","views/app/common/Students/common/StudentRowDropdown/index.tsx","views/app/common/Students/StudentCourseTable/StudentCourseRow/ContactPersonCell/SchoolHoverCard/style.ts","views/app/common/Students/StudentCourseTable/StudentCourseRow/ContactPersonCell/SchoolHoverCard/index.tsx","views/app/common/Students/StudentCourseTable/StudentCourseRow/ContactPersonCell/style.ts","views/app/common/Students/StudentCourseTable/StudentCourseRow/ContactPersonCell/index.tsx","views/app/common/Students/StudentCourseTable/StudentCourseRow/style.ts","style/fontWeights.ts","views/app/common/Students/StudentCourseTable/StudentCourseRow/TimeCell/index.tsx","views/app/common/Students/StudentCourseTable/StudentCourseRow/index.tsx","views/app/common/Students/StudentCourseTable/style.ts","views/app/common/Students/StudentCourseTable/index.tsx","views/app/common/Students/StudentCourseTable/StudentCourseRow/ManualAssignAllocationForStudentWithoutRegisterDialog/index.tsx","views/app/common/Students/StudentRegistrationTable/StudentRegistrationRow/style.ts","views/app/common/Students/common/StudentRowChangeRegistration/style.ts","views/app/common/Students/common/StudentRowSelect/style.ts","views/app/common/Students/common/StudentRowSelect/index.tsx","views/app/common/Students/common/StudentRowChangeRegistration/index.tsx","views/app/common/Students/StudentRegistrationTable/StudentRegistrationRow/index.tsx","views/app/common/Students/StudentRegistrationTable/style.ts","views/app/common/Students/StudentRegistrationTable/index.tsx","views/app/common/Students/StudentStepper/style.ts","views/app/common/Students/StudentStepper/index.tsx","views/app/common/Students/style.ts","views/app/common/Students/index.tsx","views/app/admin/students/index.tsx","types/Message.ts","views/app/admin/templates/EditMessageTemplateDrawer/AvailableTemplateData/index.tsx","views/app/admin/templates/EditMessageTemplateDrawer/MessageTemplateWYSIWYG/style.ts","views/app/admin/templates/EditMessageTemplateDrawer/MessageTemplateWYSIWYG/ToolBar/style.ts","views/app/admin/templates/EditMessageTemplateDrawer/MessageTemplateWYSIWYG/ToolBar/index.tsx","views/app/admin/templates/EditMessageTemplateDrawer/MessageTemplateWYSIWYG/index.tsx","views/app/admin/templates/EditMessageTemplateDrawer/style.ts","views/app/admin/templates/EditMessageTemplateDrawer/index.tsx","views/app/admin/templates/style.ts","views/app/admin/templates/index.tsx","views/app/admin/messages/MessageDrawer/index.tsx","types/enums/CourseOption.ts","views/app/admin/messages/MessageStatusIcons/index.tsx","views/app/admin/messages/style.ts","views/app/admin/messages/index.tsx","views/app/admin/courses/components/AllocationDialog/index.tsx","views/app/admin/courses/components/PublishDialog/index.tsx","views/app/admin/courses/components/CourseHeader/index.tsx","components/CustomSelect/index.tsx","views/app/admin/courses/components/CourseFilter/index.tsx","components/CustomCheckBox/style.ts","components/CustomCheckBox/index.tsx","components/CustomIconButton/style.ts","components/CustomIconButton/index.tsx","components/CapacityCourse/style.ts","components/CapacityCourse/index.tsx","components/ButtonCourseStatus/style.ts","components/ButtonCourseStatus/index.tsx","views/app/admin/courses/components/CourseTable/priority.tsx","views/app/admin/courses/components/CourseTable/row.tsx","components/CustomSelect/style.ts","types/enums/EventCheckbox.ts","views/app/admin/courses/components/CourseTable/index.tsx","views/app/admin/common/CalendarCourse/index.tsx","views/app/admin/courses/components/CourseOptions/CreateEditCourse/index.tsx","views/app/admin/courses/components/CourseOptions/ListStudent/row.tsx","views/app/admin/courses/components/CourseOptions/ListStudent/index.tsx","components/CustomAutoSearchStudent/style.ts","components/CustomAutoSearchStudent/index.tsx","views/app/admin/courses/components/CourseOptions/InfoStudent/index.tsx","views/app/admin/courses/components/CourseOptions/index.tsx","components/CustomPagination/style.ts","components/CustomPagination/index.tsx","components/CustomEditor/index.tsx","views/app/VGSadmin/courses/components/CourseOptions/EditCourse/style.ts","views/app/VGSadmin/courses/components/CourseOptions/EditCourse/index.tsx","views/app/admin/courses/components/VGSEditCourseDrawer/style.ts","views/app/admin/courses/components/VGSEditCourseDrawer/index.tsx","views/app/admin/courses/components/ManualAssignDialog/index.tsx","types/enums/CourseOrderBy.ts","utils/common.utils.ts","views/app/admin/courses/components/MovingMulDialog/index.tsx","views/app/admin/courses/components/MovingMulDialog/notify-success.tsx","views/app/admin/courses/components/ChangeMultipleStatusDialog/index.tsx","views/app/admin/courses/components/DialogFilterDate/index.tsx","views/app/admin/courses/index.tsx","views/app/VGSadmin/courses/components/CourseFilter/style.ts","views/app/VGSadmin/courses/components/CourseFilter/index.tsx","types/enums/SurveyOption.ts","views/app/VGSadmin/courses/components/CourseTable/NestedStudentTable/NestedStudentTableHeader/index.tsx","views/app/VGSadmin/courses/components/CourseTable/NestedStudentTable/NestedStudentTableRow/index.tsx","views/app/VGSadmin/courses/components/CourseTable/NestedStudentTable/style.ts","views/app/VGSadmin/courses/components/CourseTable/NestedStudentTable/index.tsx","views/app/VGSadmin/courses/components/CourseTable/row.tsx","views/app/VGSadmin/courses/components/CourseTable/index.tsx","views/app/VGSadmin/courses/components/CourseOptions/InfoStudent/style.ts","types/StudentCourse.ts","views/app/VGSadmin/courses/components/CourseOptions/InfoStudent/index.tsx","views/app/VGSadmin/courses/components/CourseOptions/index.tsx","views/app/VGSadmin/courses/index.tsx","views/app/Dashboard/CourseDashboard/index.tsx","hooks/index.ts","components/ConfirmDialog/index.tsx","assets/images/background.png","views/app/admin/projects/NoCurrentProject.tsx","views/app/admin/projects/ProjectList.tsx","views/app/admin/projects/index.tsx","views/app/GUadmin/Students/index.tsx","views/public/login/components/ResetPassword.tsx","views/app/common/UserSetting/style.ts","views/app/common/UserSetting/components/UserItem/index.tsx","views/app/common/UserSetting/components/UserSettingFilter/index.tsx","views/app/common/UserSetting/components/UserSettingHeader/index.tsx","components/CustomDatePicker/index.tsx","views/app/common/UserSetting/components/CreateOrUpdateUserDrawer/index.tsx","views/app/common/UserSetting/index.tsx","utils/validationUtils.ts","views/app/GUadmin/user-settings/index.tsx","views/app/VGSadmin/user-settings/index.tsx","views/app/admin/user-settings/index.tsx","views/app/Dashboard/UserSettingDashboard/index.tsx","views/app/admin/userSurvey/style.ts","views/app/admin/userSurvey/UserSurveyList/index.tsx","types/enums/SurveyQuestionType.ts","components/CustomSurveyEditor/Base64CustomUploadAdapter/index.ts","components/CustomSurveyEditor/index.tsx","types/Survey.ts","types/SurveyQuestion.ts","components/CustomRadio/style.ts","components/CustomRadio/index.tsx","views/app/admin/userSurvey/SurveyQuestion/answer.tsx","views/app/admin/userSurvey/SurveyQuestion/question.tsx","views/app/admin/userSurvey/SurveyQuestion/AddSurveyQuestionDialog/index.tsx","types/SurveyAnswer.ts","views/app/admin/userSurvey/SurveyQuestion/index.tsx","views/app/admin/userSurvey/Create/index.tsx","views/app/admin/userSurvey/Edit/index.tsx","views/app/admin/userSurvey/Detail/answer.tsx","views/app/admin/userSurvey/Detail/DescriptionSurvey/index.tsx","views/app/admin/userSurvey/Detail/question.tsx","views/app/admin/userSurvey/Detail/survey.tsx","views/app/admin/userSurvey/Detail/list-project.tsx","views/app/admin/userSurvey/Detail/index.tsx","views/app/admin/study-subjects/index.tsx","views/app/common/StudySubjects/VGSStudySubjectDrawer/style.ts","views/app/common/StudySubjects/VGSStudySubjectDrawer/index.tsx","types/CourseTemplate.ts","views/app/VGSadmin/courses/components/Templates/style.ts","views/app/VGSadmin/courses/components/Templates/index.tsx","views/app/VGSadmin/study-subjects/CreateOrUpdateCourseTemplateDialog/index.tsx","views/app/VGSadmin/study-subjects/index.tsx","views/app/Dashboard/StudySubjectDashboard/index.tsx","views/public/evaluation/style.ts","views/public/evaluation/index.tsx","views/public/evaluation-thank/style.ts","router/routes.ts","views/public/evaluation-thank/index.tsx","router/Router.tsx","style/colors.ts","style/defaultTheme.ts","App.tsx","reportWebVitals.ts","index.tsx"],"names":["UserRole","newHttpInstance","baseUrl","instance","axios","create","withCredentials","baseURL","process","interceptors","response","use","error","a","Promise","reject","data","status","window","location","pathname","http","post","replace","prepareGetQuery","filter","behind","Object","keys","key","map","Date","toISOString","entityObject","queryString","Array","isArray","value","push","prop","join","prepareGetQueryFromArray","queryName","d","index","get","res","console","username","password","rememberMe","isAxiosError","Error","code","email","newPassword","currentTime","token","urlParams","URLSearchParams","search","result","CourseStatus","singleRoles","isMultipleRoles","role","includes","isRole","userRole","getNorwegianRole","undefined","Student","Adviser","HighSchoolContact","Admin","AllRoles","GURoles","AdminRoles","SuperAdminRoles","User","init","id","userName","fullName","emailAddress","dateOfBirth","Unknown","phoneNumber","externalSchoolId","externalClassId","isMainContactPerson","currentRole","switchRole","studentCourses","studentStudySubjects","hasSpecialNeeds","class","school","isActive","hasMultipleRoles","hasRole","hasSwitchRole","isCurrentlyRole","getAssignedCourse","projectId","find","course","finalAssignedCourse","assign","this","u","newUser","AccountStore","rootStore","action","AccountService","getFeideRedirect","URI","register","user","userStore","setUser","fromUserDto","login","logout","removeUser","resetPassword","sendLinkToResetPassword","isValidLink","oidcCallback","projectPrefix","studySubjectPrefix","coursePrefix","schoolPrefix","studySubjectId","INIT_PROJECT","projectName","coursePeriodStartDate","coursePeriodEndDate","registeringPeriodStartDate","registeringPeriodEndDate","availablePeriodStartDate","availablePeriodEndDate","evaluationPeriodStartDate","evaluationPeriodEndDate","studentIntroductionText","studentRegistrationText","isPublished","assignSurveyId","registrationIsActive","project","start","end","now","coursePeriodIsActive","AdminDashboardStore","totalStudent","registeredStudent","totalAssignedStudent","totalCourse","numberFirstPriorityStudent","numberSecondPriorityStudent","numberThirdPriorityStudent","capacityStore","schoolStore","makeObservable","observable","adminDashboardService","adminGetCurrentProject","setProject","adminGetStudentStatistic","setStudentStatistic","adminGetStudentCourseStatistic","setStudentCourseStatistic","adminGetStudySubjectStatistic","setStudySubjectStatistic","adminGetSubjectSchoolInfo","schoolInfo","setSubjectSchoolInfo","prefix","model","put","params","delete","courseIds","state","responseType","blob","Blob","type","link","document","createElement","href","URL","createObjectURL","download","getTime","click","courseId","models","MessageTemplateAttribute","getStatusDisplay","statusText","DRAFT","ACTIVE","PUBLISHED","COMPLETED","CANCELLED","CreateUpdateCourse","capacity","extraCapacity","courseHolderId","numberOfFirstPriority","numberOfSecondPriority","numberOfThirdPriority","roomNumber","numberCoursePerDay","selectedDays","startDate","endDate","courseInfo","externalId","setUTCMinutes","getUTCMinutes","getTimezoneOffset","PER_PAGE_OPTIONS","ASC","DESC","SELECT_ALL","generateStringFromToDate","from","to","fromString","DateTime","fromJSDate","toISODate","toString","getDateTime","time","format","fromISO","setLocale","toFormat","getDateFromKarDateType","changeDate","oldDate","newDate","setHours","getHours","setMinutes","getMinutes","setSeconds","getSeconds","setMilliseconds","getMilliseconds","utc","getFullYear","getMonth","getDate","toJSDate","resetTimeZeroOfDate","date","local","getEndDate","CourseStore","courses","totalCount","currentCourse","initCourseId","courseStatusHeadCell","undoStack","redoStack","normalStack","newCourse","loadingCourseTable","externalHighSchoolId","setCourses","setTotalCount","setCurrentCourse","setCourseId","resetCourseId","resetCourse","setCourse","setCourseStatusHeadCell","setCourseIds","resetCourseIds","insertState","setNewCourse","setLoadingCourseTable","setExternalHighSchoolId","count","loading","beginStartDate","endStartDate","courseService","getList","getStudentsForDetailCourse","createCourse","updateCourse","getUpdateCourseById","isNewCourse","getCourseById","getListVGS","updateCourseVGS","findIndex","c","getCourseStatusByProjectId","deleteCourse","duplicateCourse","removeAllAllocations","deleteListCourse","undoCourse","redoCourse","getCourseExcelExport","updateCourseToUndoOrRedo","getCoursesMinified","listParticipantOfCourseExport","updateStatusMultipleCourse","getAllByProjectId","CourseTemplateStore","courseTemplatesForCurrentSchool","courseTemplateService","createCourseTemplate","updateCourseTemplate","getCourseTemplate","getCourseTemplates","userPrefix","DashboardStore","statisticCapacityVGS","statisticRegistration","statisticAllocation","setStatisticCapacityVGS","setStatisticRegistration","setStatisticAllocation","dashboardService","getStatisticCapacityVGS","getStatisticRegistrationGU","getStatisticAllocationGU","ErrorStore","open","message","severity","duration","anchorOrigin","vertical","horizontal","makeAutoObservable","event","reason","BaseService","typeName","apiBase","query","total","req","MessageStore","messages","getMessages","MessageService","MessageTemplateName","SchoolStatus","attr","MessageTemplateAttributes","tem","availableMessageTemplateAttributes","StudentAddedPrioritization","USER_NAME","LIST_OF_COURSES","StudentAlteredPrioritization","StudentCourseConfirmed","COURSE_NAME","COURSE_SCHOOL_NAME","COURSE_SCHOOL_ADDRESS","COURSE_ROOM_NUMBER","COURSE_DATE_TIME","StudentEvaluation","EVALUATION_LINK","GUProritizationClosingReminder","END_OF_BOOKING","PORTAL_LINK","GUEvaluationMessage","EventCancelled","messageTemplateDataDescriptions","MessageTemplate","templateName","name","emailSubject","emailBody","sms","sendEmail","sendSMS","recipientType","attribute","description","json","MessageTemplateStore","messageTemplates","currentMessageTemplate","MessageTemplateService","getAll","templates","t","fromJson","template","update","errorStore","showErrorMessage","ProjectStore","projects","tableList","totalAllocated","currentProject","editingProject","currentSurveyId","ProjectService","addV2","updateProject","setTableList","x","isTableFetch","list","setProjects","isArchived","array","p","getCurrent","setCurrentProject","arrangedArray","getActiveProjects","setEdittingProject","stateStore","setDrawerMenuIsOpen","getById","getAssignSurvey","setCurrentSurveyId","getTotalAllocated","publishProject","computed","AddressType","UnavailableDate","comment","otherDate","ud","schoolType","ALL","unavailableDates","SchoolType","Address","street","zipCode","city","country","addressType","StudySubjectCategory","School","studySubjects","contactPeople","schoolName","address","distanceAndPriorities","deactivated","classes","SchoolStore","allSchools","highSchools","secondarySchools","currentSchool","editingSchool","connectedUsers","totalStudentCount","noPrioritiesCount","firstPriorityCount","assignedStudentsCount","highSchoolHeadCell","schoolBySchoolType","schoolFilterByUserRole","listClass","isSetHasSpecialNeeds","externalIdSecondarySchool","getHighSchoolByProjectId","SchoolService","schools","getSchoolBySchoolType","getClassesByExternalSchoolId","getClasses","getByExternalId","getAllSecondarySchoolByProjectId","saveUnavailableDates","getPopulatedSecondarySchools","getPopulatedSchools","HighSchool","SecondarySchool","s","mapFromDto","getPopulatedHighSchools","add","deleteByExternalId","deleteIndex","splice","getConnectedUsers","users","getStudents","assignedCount","getDistanceAndPrioritiesByGUId","StateStore","addProjectFormIsOpen","drawerMenuIsOpen","userInformationDropdownIsOpen","schoolDrawerIsOpen","unavailableDateDrawerIsOpen","studySubjectDrawerIsOpen","importStudentModalIsOpen","contactsPersonDrawerIsOpen","vgsEditCourseDrawerIsOpen","vgsCourseInfoDrawerIsOpen","vgsStudySubjectDrawerIsOpen","val","studentId","studentIds","oldCourseId","newCourseId","StudentCourseStore","studentCourseService","updateStudentCourse","movingAssignMul","manualAssignStudentToCourse","getAllIncludingDeactivated","getByUserId","userId","priorities","orderedStudySubjects","ProjectActionType","getStudySubjectCategoryName","category","emptyStudySubject","studySubjectName","isHide","StudentStudySubject","priority","StudySubjectStore","allStudySubjects","chosenStudySubject","studySubjectsBySchoolExternalId","studySubjectHeadCell","StudySubjectService","length","getAllStudySubjects","sub","getByExternalSchoolId","getStudySubjectByProjectId","addOrUpdate","studySubject","includeDeactivated","getAllStudySubjectForStudent","addOrUpdateStudentPriorities","newStudentStudySubjects","silent","isMoveStudent","studentName","log","headers","toLocaleDateString","file","formData","FormData","append","UserStore","allocationResult","listStudentOfCourse","student","initStudentId","listHighSchoolContactOfCourse","listMinifiedStudentOfCourse","contactPerson","listContactPerson","listUsers","totalCountListUser","createOrUpdate","studentAspiration","thirdPriority","firstPriority","secondPriority","UserService","students","highSchoolContacts","resetStudentId","getAllStudentByCourseId","getStudentById","setStudent","getAllHighSchoolContactByCourseId","setListHighSchoolContactOfCourse","getAllStudentMinifiedByCourseId","setListMinifiedStudentOfCourse","getContactPersonByExternalSchoolId","setContactPerson","importStudents","imported","downloadImportStudentsTemplate","downloadAllStudents","getContactPersonsByExternalSchoolId","setListContactPerson","setLoading","getListUser","setListUsers","setTotalCountListUser","setCreateOrUpdate","getAllStudentAspirationByProjectId","setListStudentOfCourse","getCurrentUser","userDto","allocationAllStudents","setHasSpecialNeeds","updateIndex","getUserStudentCourses","surveyId","uuid","survey","UserSurveyStore","surveys","currentSurvey","editingSurvey","loadingTableList","SurveyService","updateV2","setSurveys","setEdittingSurvey","setCurrentSurvey","createQuestion","getSurveyById","deleteQuestion","deleteAnswer","getListProjectAssign","getSurveyByProjectId","evaluationUpdateSurvey","getProjectSurveyExcelExport","StoresContext","createContext","accountStore","studySubjectStore","courseStore","projectStore","adminDashboardStore","messageTemplateStore","messageStore","studentCourseStore","dashboardStore","userSurveyStore","courseTemplateStore","useStores","useContext","observer","handleClose","Snackbar","autoHideDuration","onClose","Alert","ControlledInputText","props","label","setValue","customClass","helperText","hasError","errorText","inputProps","hasMultiline","variant","minRows","maxRows","disabled","React","useState","isShowingHelperText","computedHelperText","setComputedHelperText","useEffect","TextField","onChange","target","className","FormHelperTextProps","InputProps","multiline","useStyles","makeStyles","optionsDatePicker","width","minHeight","background","palette","grey","borderRadius","margin","padding","boxOutputRange","height","display","backgroundColor","alignItems","calendarNavbarStyles","root","default","color","primary","select","iconControl","alignSelf","marginLeft","marginRight","pointer","cursor","selectPadding","CalendarNavbar","navbarElementProps","changeMonth","month","onPreviousClick","onNextClick","Select","disableUnderline","MONTHS","e","m","indexOf","clsx","MenuItem","onClick","WEEKDAYS_LONG","WEEKDAYS_SHORT","CustomDayPickerRange","selection","setSelection","hideDateDisplay","initMonth","setInitMonth","selectionText","setSelectionText","toLocaleLowerCase","showWeekNumbers","showOutsideDays","disabledDays","daysOfWeek","months","weekdaysLong","weekdaysShort","firstDayOfWeek","numberOfMonths","modifiers","onDayClick","day","range","DateUtils","addDayToRange","captionElement","navbarElement","flex","justifyContent","flexRow","flexDirection","flexCol","wrapper","dateButton","main","dateOptions","year","CollapsableDateRangePicker","title","subtitle","setStartDate","setEndDate","showDatePicker","setShowDatePicker","innerStartDate","innerEndDate","dateRange","ClickAwayListener","onClickAway","Typography","Button","endIcon","CalendarTodayOutlined","Collapse","in","drawer","maxWidth","gap","fontSize","marginTop","dark","inputs","maxHeight","marginBottom","noMarginHelperText","buttonWrapper","_path","_path2","_path3","_path4","_path5","_path6","reducer","SET","payload","RESET","SET_PROJECT_NAME","SET_AVAILABLE_START","SET_AVAILABLE_END","SET_REGISTERING_START","SET_REGISTERING_END","SET_COURSE_START","SET_COURSE_END","SET_STUDENT_REGISTRATION_TEXT","SET_STUDENT_INTRODUCTION_TEXT","CreateEditProjectDrawer","closeDrawer","openLeftMenu","setAssignSurveyId","useReducer","createEditProject","projectDispatch","setHasError","handleCreateEdit","handleCloseDrawer","ErrorMessage","getListSurvey","useCallback","Drawer","anchor","_excluded","_extends","i","arguments","source","prototype","hasOwnProperty","call","apply","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","propertyIsEnumerable","SvgOsloskolenLogoHvit","_ref","svgRef","titleId","xmlns","xmlnsXlink","y","viewBox","style","enableBackground","xmlSpace","ref","_path7","_path8","_path9","_path10","_path11","_path12","_path13","_path14","_path15","_path16","_path17","_path18","_path19","_path20","_path21","_path22","_path23","_path24","_path25","_path26","_path27","_path28","_path29","_path30","_path31","_path32","_path33","_path34","_path35","_path36","_path37","_path38","_path39","_path40","_path41","_path42","_path43","_path44","_path45","_path46","_path47","_path48","_path49","_path50","_path51","_path52","_path53","_path54","_path55","_path56","_path57","_path58","_path59","_path60","_path61","_path62","_path63","_path64","_path65","_path66","_path67","_path68","_path69","_path70","_path71","_path72","_path73","_path74","_path75","_path76","_path77","_path78","_path79","_path80","_path81","_path82","_path83","_path84","_path85","_path86","_path87","_path88","_path89","_path90","_path91","_path92","_path93","_path94","_path95","_path96","_path97","_path98","_path99","_path100","_path101","_path102","_path103","_path104","_path105","_path106","_path107","_path108","_path109","_path110","_path111","_path112","_path113","_path114","_path115","_path116","_path117","_path118","_rect","_rect2","_rect3","_rect4","_rect5","_rect6","_rect7","_path119","_path120","_path121","ForwardRef","settingsMenuItem","path","icon","SettingsOutlined","adminMenuItems","BusinessOutlined","SchoolOutlined","PersonOutlined","StarOutlined","FolderOutlined","SendOutlined","QuestionAnswerOutlined","highSchoolContactMenuItems","adviserMenuItems","studentMenuItems","itemText","LeftDrawerProjectItem","goToCourse","ListItem","ListItemText","inset","goTo","getLeftMenuList","ListItemIcon","BookmarksOutlined","button","openProjectPanel","Add","arrangedProjects","Divider","fill","logo","minWidthDrawerMenu","minWidth","history","useHistory","getSchoolByExternalId","handleMenuClick","mapToListItem","item","elevation","paper","IconButton","ArrowBack","List","HomeOutlined","useStyle","active","fontWeight","size","CheckCircle","fullscreen","heigh","h1","setCurrentRole","setUserInformationDropdownIsOpen","useUserInformationStyles","breakpoints","transition","info","light","lineHeight","personCircle","useUserInformationDropdownStyles","position","right","up","top","header","settingsButton","iconSpan","Paper","square","ExitToAppOutlined","toggleOpen","toggleUserInformationDropdownIsOpen","useTheme","isExtraSmall","useMediaQuery","down","useLayoutStyle","spacing","appBar","flexGrow","toolBar","menuButton","children","setAddProjectFormIsOpen","isStudent","handleStateAddProjectForm","AppBar","Toolbar","edge","Link","closeProjectPanel","NotFoundError","isLoading","setIsLoading","tryGetCurrentUser","CircularProgress","roles","titlePadding","paddingLeft","headerText","AdminHeader","actions","orientation","searchInput","AdminSearchBar","handleSearchValueChange","searchStudent","endAdornment","InputAdornment","Search","contactPeopleIds","cp","filteredConnectedUsers","sort","b","isMain","setIsMain","selectedUserId","setSelectedUserId","onSubmit","preventDefault","tempContactPeople","newContactPerson","setEditingSchool","FormControl","InputLabel","labelId","cu","FormControlLabel","checked","control","Checkbox","form","setId","setUserId","setUserName","setFullName","setEmailAddress","setPhoneNumber","some","resetForm","editIndex","required","currentTarget","subheader","addContactPeopleWrapper","contactPersonChip","ContactPersonChip","handleDelete","Chip","onDelete","addNew","setAddNew","removeDuplicatesBy","keyFn","mySet","Set","isNew","has","addressWrapper","setTab","setSchoolDrawerIsOpen","handleSubmit","updateSchool","createSchool","setChosenPrograms","v","Autocomplete","disableCloseOnSelect","multiple","options","getOptionLabel","o","renderTags","getTagProps","option","_","handleAutoCompleteChange","renderInput","ss","divider","tabAppBar","boxShadow","borderBottom","tabPanels","overflow","buttonContainer","bottom","loadingButton","left","dragAndDropSchools","content","opacity","dragIndicator","setDistanceAndPriorities","getDistanceAndPriotiesByGUId","onDragEnd","provided","destination","items","reorderedItem","dp","droppableId","droppableProps","innerRef","draggableId","highSchool","draggableProps","dragHandleProps","DragIndicator","placeholder","tabValue","setTabValue","resetEditingSchool","isHighSchool","TabContext","TabList","newValue","Tab","TabPanel","getSchoolAddressLink","encodeURIComponent","flexWrap","HorizontalChipList","values","card","border","visibility","editButton","contactContainer","contactName","SchoolCard","isChoice","handleOpenContactsPersonDrawer","redirectToScreenStudent","redirectToScreenCourse","mainContactPerson","_stopPropagation","stopPropagation","Grid","xs","md","xl","Card","setImportStudentModalIsOpen","openImportStudentModal","PersonAddOutlined","setUnavailableDateDrawerIsOpen","editSchoolDates","EventBusy","editSchool","EditOutlined","underline","MailOutlined","PhoneIphoneOutlined","filterContainer","studySubjectFilterContainer","studySubjectFilter","counterText","paddingTop","boxFilter","marginLeftAuto","paddingOnBox","paddingRight","btn","common","white","btnActive","ShoolStatusFilter","handleChangeFilter","Box","ACTIVATE","DEACTIVATE","searchValue","setSearchValue","chosenStudySubjects","setChosenStudySubjects","setFilter","filteredSchools","toLowerCase","schoolStudySubjectIds","newSchool","renderValue","selected","MenuProps","container","searchStyles","CustomSearch","setSearch","handleSearch","SearchOutlined","configStyle","dashboardStyle","displayFlex","dashboardFilterNav","leftContent","heightFull","customSearch","boxSizing","A100","paddingBottom","backgroundColorFFF","alignItemsCenter","contentBlock","currentProjectTitle","currentTitle","currentTitleWidth","marginRight24","arrowForwardIcon","dividerShort","listSchoolTitle","userCard","userCardBlock","DashboardFilter","backgroundColorTransparent","stepLineWidth","stepLabel","font","whiteSpaceNowrap","whiteSpace","fontSize14","stepIconActive","StepStatus","steps","step","Stepper","activeStep","connector","StepConnector","Step","completed","StepLabel","StepIconProps","config","itemBarChart","itemBarChartSize","itemBarChartContent","itemBarChartLabel","itemBarChartContentColumns","itemBarChartContentWidthColumn","capacityColumn","joinColumn","joinOverloadColumn","warning","positionRelative","textColumn","transform","textColorOverload","labelColumn","textAlign","textOverflow","labelTooltip","highSchoolNameBox","text","highSchoolName","legendBarChartSize","circleLegend","legendColorOverload","marginRight40","displayNone","displayBlock","justifyContentCenter","alignItemsFlexEnd","widthFull","positionAbsolute","overflowXAuto","overflowX","ItemBarChart","maxCapacity","onClickLabel","heightCapacity","setHeightCapacity","heightJoin","setHeightJoin","overload","setOverload","setOpen","calculateHeight","Math","ceil","numberJoinedStudent","Tooltip","interactive","tooltip","placement","afterOnClickLabel","LegendBarChart","Row","isLegend","CustomBarChart","setMaxCapacity","setItems","max","_getMaxCapacity","_getItems","isFirst","j","getStepVGS","setStep","PublishOutlined","countStyle","titleStyle","BlockCount","textAlignCenter","chartContent","chartSize","pieID","verticalAlign","pie","pieInner","zIndex","pieInnerContent","slice","clip","animation","pieInnerTextColor","pieInnerTextPercent","pieInnerTextLabel","SlicePieChart","offset","sliceSize","colorHEX","CustomCircleChart","statistic","colors","slices","setSlices","calculateSliceSize","numberStudent","round","getSlicePieChart","maxSliceSize","abs","calculateSlices","first","concat","second","div","getPercent","projectInfo","projectHeader","iconGroup","projectList","stepContainer","stepper","contentTextContainer","contentText","twoLines","donutChart","barCharts","dividerSchool","schoolContent","schoolTitle","schoolAddress","schoolButton","contactPersonIcons","studentChart","setStudentChart","studentCourseChart","setStudentCourseChart","capacityChart","setCapacityChart","studySubjectSelected","setStudySubjectSelected","adminGetStatisticProject","currentProjectStep","currentStep","getProjectProgress","totalStudents","registeredStudents","chart","plotOptions","donut","dataLabels","enabled","formatter","legend","show","labels","series","seriesName","opts","w","globals","seriesIndex","capacityChartByStudySubjectTypes","Studieforberedende","Yrkesfaglig","n","bar","columnWidth","offsetY","markers","fillColors","xaxis","categories","split","rotate","axisBorder","yaxis","grid","events","dataPointSelection","chartContext","toolbar","export","csv","filename","svg","png","autoSelected","adminGetSubjectSchool","dataPointIndex","CardHeader","CardContent","gutterBottom","schoolContact","MailOutline","PhoneAndroid","CardActions","useStudentStyle","readMore","getStudySubjectsByUserId","getStudentDashboard","fetchCurrentProject","assignedCourse","published","startIcon","InfoOutlined","replaceAll","subject","win","focus","Dashboard","placeItems","CompleteOIDCLogin","useLocation","getUser","Transition","forwardRef","Slide","direction","SavedDialog","Dialog","TransitionComponent","DialogTitle","DialogContent","DialogActions","getAllStudySubjectsForStudent","setFirstPriority","setSecondPriority","setThirdPriority","showSavedDialog","setShowSavedDialog","getStudySubjectsByCurrentUser","sortedStudentStudySubjects","studySubjectMenuItems","handlePriorities","orderedPriorities","Number","fullWidth","useLoginStyle","rootGrid","logoContainer","loginGrid","loginHeader","rememberMeContainer","noAccount","banner","logoHeader","bannerHeaderText","bannerSubheaderText","loginIllustration","backButton","ForgotPasswordDialog","setEmail","DialogContentText","autoFocus","EmailLogin","goBack","setPassword","showPassword","setShowPassword","setRememberMe","openForgotPasswordDialog","setOpenForgotPasswordDialog","startAdornment","LockOutlined","VisibilityOffOutlined","VisibilityOutlined","isEmailLogin","setIsEmailLogin","isSmall","redirectToFeide","SvgLoginIllustration","fillRule","clipRule","stroke","strokeWidth","strokeMiterlimit","rx","StudentRegistrationStatus","Logo","Login","theme","useStudentInformationStyle","StudentInformation","phonenumber","setPhonenumber","getSchoolByUser","updatedUser","updateUser","defaultValue","typography","paddingRight24","listContactPersonPadding","itemContactPerson","setContactsPersonDrawerIsOpen","cleanupClose","setFile","updatedCount","TransitionProps","onExited","htmlFor","Input","accept","files","hidden","InsertDriveFileOutlined","component","dateListWrapper","dateListItem","listHeader","setUnavailableDates","newRange","setComment","sortedDates","handleSave","overlapsWith","setExternalIdSecondarySchool","headerWrapper","StudySubjectCard","isAdmin","setStudySubjectDrawerIsOpen","setVgsStudySubjectDrawerIsOpen","setChosenStudySubject","deleteStudySubject","openDeleteConfirmation","setOpenDeleteConfirmation","DeleteOutlined","chip","activeChip","StudySubjectCategoryChip","setCurrentCategory","clickable","rowFlex","updateStudySubject","addStudySubject","setChosenStudySubjectCategory","rows","setChosenStudySubjectHidden","setChosenStudySubjectDeactivated","filterWrapper","filterChips","StudySubjectFilter","chosenCategory","setChosenCategory","deactivatedFilterValue","setDeactivatedFilterValue","isHideFilterValue","setIsHideFilterValue","listWrapper","searchString","setSearchString","filteredStudySubjects","searchFilter","categoryFilter","deactivatedFilter","isHideFilter","AddOutlined","StudentStudySubjects","assignedStudentCourse","RoomOutlined","AccessTimeOutlined","sx","courseStatus","getStatus","courseHolder","ReactHtmlParser","NotifyMessage","Priority","courseStyle","headerContent","headerDivider","headerTitle","tabAdmin","publishButton","fontSize16","fontSize18","fontWeight400","fontWeight500","marginLeft19","marginRight12","marginRight20","marginRight27","marginRight30","marginRight123","marginBottom6","marginBottom16","marginBottom21","marginTop10","marginTop17","marginTop18","marginTop20","marginTop21","marginTop30","courseFilterNav","rightContent","tabIndicator","courseContentContainerBackground","widthCheckbox","widthButtonDetail","checkboxPadding","buttonDetailPadding","space","rowColSpan","paddingDetail","paddingRowDetail","paddingSelectSecondarySchool","rowCourseDetail","displayContent","verticalAlignTop","colorDetail","fontFamily","fontStyle","letterSpacing","heightText","textStyle","tableCellStudySubject","tableCellTime","tableCellHighSchool","textTransformLowercase","textTransform","courseOptionPadding","courseOptionWidth","courseOptionStyle","listStudentPadding","displayGirl","textAlignRight","justifyContentFlexEnd","heightLoading","margin0","padding0","verticalAlignBottom","borderTable","borderTableActive","borderTableDetailActive","tableEmpty","optionsTitleSize","optionButtons","borderTop","titleDark","studentInfoName","marginLeft17","marginLeft14","marginTop22","marginLeft27","marginTop14","color500","marginTop32","paddingLeft0","paddingLeft4","paddingRight0","paddingBottom0","paddingTop0","marginTop28","marginTop26","marginTop24","marginTop47","studySubjectDefault","borderColor","studySubjectCurrent","contentStudentStudyBox","contentStudentStudyBoxPadding","contentStudentStudy","switchBase","switchTrack","width64","width83","width200","capacityText","textCountStudent","secondary","rootChooseSecondarySchool","selectChooseSecondarySchool","iconChooseSecondarySchool","colorIconSearch","boxNoteStudentCourse","borderTopLeftRadius","borderTopRightRadius","buttonChooseStudent","buttonChooseStudentActive","subTableHeader","hoverPointer","heighHeadCell","pointerEvents","informationInputs","courseDateAndCapacityWrapper","courseDateAndCapacity","courseOptionHeader","highlightedText","sizeIcon","sizeIconLoading","nestedStudentTableRow","paddingHeaderDetailCourse","textTransformUppercase","movingMulDialog","textMovingMulDialog","textSchoolUnavailable","textNumberStudentMoving","titleInfoCourseOld","movingMulDialogDivider","movingMulDialogSelect","movingMulDialogPager","movingMulDialogList","movingMulDialogMenu","borderBottomWidth","movingMulDialogButton","notifySuccessWarraper","notifySuccessTitle","sizeIconLoadingExportVGS","Loading","useEditCourseStyles","courseClasses","EventOutlined","PersonOutline","isDisableStartDate","isDisableEndDate","toUTC","TimePicker","AccessTime","ampm","CustomEditorReadOnly","Suspense","fallback","editor","Editor","onReady","setData","language","supportAllValues","setVgsCourseInfoDrawerIsOpen","filters","exportButton","menuItem","maxWidthSelectCourse","MessageTemplateType","classId","setClassId","schoolId","setSchoolId","setPriority","setStatus","all","getAllCourse","exportLoading","setExportLoading","setOpenNotifyMessage","openNotifyMessage","child","input","FilledInput","First","Second","Third","UNREGISTERED","REGISTERED","UNKNOWN","GetAppOutlined","collapseTableRow","borderLeft","collapse","chipList","subjectChip","checkboxLabel","unassignedSubjectChip","btnChangeRegistration","boxBtn","assignedStudentStudySubject","handleOpenChangeRegistration","handleOpenManualAssign","setIsSetHasSpecialNeeds","handleSpecialNeedsChange","TableRow","TableCell","colSpan","unmountOnExit","isCurrentProjectInCoursePeriod","SchoolHoverCard","currentContactPerson","ContactPersonCell","PopperProps","rowWrapper","tableRow","thinChip","boxTooltipComment","spaceIcon","TimeCell","toLocaleTimeString","hour","minute","handleOpenManualAssignDialog","studentCourse","KeyboardArrowUpOutlined","KeyboardArrowDownOutlined","align","AccessibilityNewOutlined","attendance","PersonAddDisabledOutlined","note","CommentOutlined","finalAssignedCourseId","table","page","handlePageChange","rowsPerPage","handleRowsPerPageChange","Table","TableHead","TableBody","TablePagination","rowsPerPageOptions","onPageChange","onRowsPerPageChange","labelRowsPerPage","nextIconButtonText","backIconButtonText","labelDisplayedRows","ManualAssignAllocationForStudentWithoutRegisterDialog","handleCloseDialog","handleChooseStudySubjectId","handleChooseCourseId","manualAssign","loadingNewCourse","transformOrigin","getContentAnchorEl","LinearProgress","getContentMenu","availableCapacity","infoChip","hint","studentStudySubjectList","contentStudentRowSelect","studentStudySubject","handleSetFirst","handleSetSecond","handleSetThird","IconComponent","ArrowDropDownIcon","getStudentStudySubject","sss","setStudentStudySubjects","getStudentStudySubjectByPriority","setFirst","setSecond","third","setThird","beforeAddOrUpdate","openChangeRegistration","setOpenChangeRegistration","StudentStepper","nonLinear","isSmallerThanMedium","studentNameFilter","setStudentNameFilter","setPage","setRowsPerPage","registrationStatus","setRegistrationStatus","filterCourseId","setFilterCourseId","filterPriority","setFilterPriority","timeoutRef","useRef","setTimeout","fetchStudents","filteredStudentsByFullName","current","clearTimeout","newPage","newRowsPerPage","take","skip","getStudySubject","openManualAssign","setOpenManualAssign","handleManualAssign","setStudySubjectId","setLoadingNewCourse","newClassId","newSchoolId","newStatus","newPriority","AdminStudents","MessageStatus","getMessageTemplateTypeDisplay","Both","Teacher","AvailableTemplateData","availableData","getAvailableAttributes","editorWrapper","outline","ToolBar","chain","toggleBold","run","toggleItalic","setParagraph","toggleHeading","level","toggleBulletList","toggleOrderedList","undo","redo","setCurrentMessageTemplate","useEditor","extensions","StarterKit","onUpdate","getHTML","recipientTypeLabel","submitCurrentMessageTemplate","getAllMessageTemplates","k","k1","k2","openDrawer","setOpenDrawer","messageTemplate","CourseOptionAdmin","CourseOptionVGS","drawerContent","MessageDrawer","setMessage","commands","setContent","emailStatus","NotSent","smsStatus","failed","MessageStatusIcons","Failed","EmailOutlined","useMessagesStyle","currentMessage","setCurrentMessage","orderBy","orderDirection","request","setRequest","setRequestAndRefresh","newRequest","createdDate","newPageNumber","AllocationDialog","showResult","setShowResult","showOK","setShowOK","fetchAllocation","allocationAllStudent","PublishDialog","openAllocationDialog","setOpenAllocationDialog","openPublicDialog","setOpenPublicDialog","SelectStatus","tabMode","chooseTabCourseOption","handleOpenMultipleStatusDialog","handleUndo","handleRedo","anchorEl","setAnchorEl","openMenu","Boolean","handleCloseMenu","Undo","Redo","keepMounted","Fade","Tabs","indicatorColor","indicator","CREATE_EDIT","LIST_STUDENT","INFO_STUDENT","CustomCheckBox","isChecked","handleChange","hide","checkedIcon","borderButtonSeek","borderWidth","expandLessIcon","CustomIconButton","handleCloseDetail","blockCapacity","fontSizeIconCapacity","widthCapacityLeft","widthCapacityRigh","overloaded","CapacityCourse","vacant","showVacant","barColorPrimary","buttonStatus","buttonStatusPending","buttonStatusCancelled","ButtonCourseStatus","shapeCircle","positionCenter","badgeContent","colorTransparent","PriorityStudent","row","chooseCourse","chooseStudent","editCourse","checkBoxChooseCourse","vgsCourseId","chooseCourseShowInfoVGS","handleOpenMovingMulDialog","setStudents","setTotal","setSkip","_getStudentsForDetailCourse","newSkip","handleCloseCourseDetail","checkBoxChooseAllDetail","setCheckBoxChooseAllDetail","setStudentIds","checkBoxChooseDetailCourse","newStudentIds","isCheckStudent","getPrevStudent","getNextStudent","beforeHandleDuplicate","beforeHandleDelete","Fragment","isCheck","beforeChooseCourseShowInfoVGS","beforeHandleEdit","timeout","ids","EventCheckbox","CustomSelect","handleSearchStudySubjectId","handleExternalSchoolId","handleCourseStatus","mode","setMode","STUDY_SUBJECT","SCHOOL","COURSE_STATUS","handleExternalHighSchoolId","checkBoxChooseAll","checkBoxChooseAllCourse","handleOpenDialogFilterDate","numberOfCourses","setNumberOfCourses","numberOfAllocation","setNumberOfAllocation","TableContainer","CalendarCourse","fromMonth","toMonth","handleSelectedDays","coursePeriod","setCoursePeriod","coursePeriodCal","isCheckedChooseExtraCapacity","handleChangeChooseExtraCapacity","setNumberCoursePerDay","resetNumberCoursePerDay","setSchool","setStudySubject","setCapacity","setExtraCapacity","handleCreateCourse","cancelCreateCourse","PermIdentity","handleCloseStudent","setExternalSchoolId","FilterList","ExpandMoreIcon","heightSearch","CustomAutoSearchStudent","setStudentId","listStudent","inputValue","onInputChange","newInputValue","freeSolo","disableClearable","searchInfoStudent","setSearchInfoStudent","rootSelect","iconSelect","CustomPagination","currentPage","totalRows","perPage","handleChoosePage","changePageOption","Pagination","CustomEditor","html","getData","shouldNotGroupWhenFull","isFromAdminPanel","handleEditCourse","fromICourse","setVgsEditCourseDrawerIsOpen","cancelEditCourse","handleCloseVgsEditCourseDrawer","CourseOrderBy","ManualAssignDialog","handleCloseManualAssignDialog","scrollTop","body","documentElement","MovingMulDialog","handleCloseMovingMulDialog","handleChooseNewCourseId","setSchools","extracted","handleChooseNewCourse","ret","dDate","forEach","isSchoolAvailableForThisDate","NotifySuccessMovingStudent","oldCourse","ChangeMultipleStatusDialog","statusNew","setStatusNew","DialogFilterDate","rangeStartDate","setRangeStartDate","handleFilterStartDate","useParams","setTake","setCurrentPage","openNotifyMessageWarning","setOpenNotifyMessageWarning","openNotifyMessageFail","setOpenNotifyMessageFail","setCourseStatus","_resetGetList","_resetChooseCheckbox","projectIdNr","UpdateStudentList","getHighSchool","getCourseStatus","_cancelCreateCourse","isUndoOrRedo","setIsUndoOrRedo","_insertState","_resetGetListCallApi","setCheckBoxChooseAll","openDialogFilterDate","setOpenDialogFilterDate","handleCloseDialogFilterDate","setTabMode","handleCloseMultipleStatusDialog","courseDtos","openMultipleStatusDialog","setOpenMultipleStatusDialog","pop","EDIT_COURSE","courseDto","UPDATE_STATUS_MULTIPLE_EVENT","setIsCheckedChooseExtraCapacity","setSelectedDays","_resetCourse","isChange","getAllStudent","setVgsCourseId","setUpdateCourse","openManualAssignDialog","setOpenManualAssignDialog","openMovingMulDialog","setOpenMovingMulDialog","mulStudySubjectId","setMulStudySubjectId","mulCourses","setMulCourse","setNewCourseId","openNotifySuccess","setOpenNotifySuccess","indexOldCourse","handleOpenNotifySuccess","sds","selectedIndex","selectedDay","isSameDay","setCourseHolderId","setRoomNumber","setCourseInfo","useCourseFilterStyles","tabs","activeTab","EDIT","SurveyOption","QuestionRight","NestedStudentTableHeader","selectStudent","toggleAbsence","absence","onPointerEnter","resetContactPerson","useNestedStudentTableStyles","nestedWrapperCell","createOrUpdateStudentCourseDto","currentStudents","_getAllStudentByCourseId","loadingExport","setLoadingExport","beforeListParticipantOfCourseExport","handleSortTable","sortDirection","TableSortLabel","START_DATE","useVGSStudentInfoStyles","studentInformationSection","studentInformationItem","CreateOrUpdateStudentCourseDto","handleUpdateStudentCourse","Switch","updatedStudent","studentCourseIndex","sc","setAttendance","track","setSortDirection","STUDY_SUBJECT_NAME","setOrderBy","resetStudent","useQuery","string","ConfirmDialog","onAgree","RandomBackground","backgroundPosition","backgroundSize","backgroundRepeat","NoCurrentProject","justify","columns","isConfirmShown","setIsConfirmShown","selectedDeleteProject","setSelectedDeletedProject","handleDeleteConfirm","deleteProject","getArchivedProjects","getActiveProjectsForTable","col","openEditProject","EditRounded","DeleteForeverRounded","GUStudents","ResetPassword","confirmPassword","setConfirmPassword","validLink","setValidLink","boolValue","userSettingStyle","filterNav","addNewUserBtn","spaceAddIcon","contentUserItem","boxUserItem","userItemFullName","tooltipBox","tooltipBoxFullName","userItemEmail","userItemPhone","userItemInfo","userItemText","userItemTextSpace","userItemSpace","iconSize","buttonDelete","buttonChoose","buttonChooseActive","switch","empty","contentDrawer","titleDrawer","chooseUser","bodyDrawer","titleFillInfo","textFill","boxWarning","iconErrorOnDrawer","contentErrorOnDrawer","contentErrorTitleOnDrawer","contentListErrorOnDrawer","groupBtnDrawer","contentDialogDeleteUser","paddingDialogAction","updateIsActive","handleOpenDialogDeleteUser","fullNameRef","createRef","emailRef","phoneRef","isOverflowFullName","setIsOverflowFullName","isOverflowEmail","setIsOverflowEmail","isOverflowPhone","setIsOverflowPhone","useLayoutEffect","clientWidth","scrollWidth","disableHoverListener","UserSettingFilter","handleCloseCreateOrUpdateUserDrawer","UserSettingHeader","CustomDatePicker","setError","DatePicker","clearable","onError","displayError","setRoles","createOrUpdateUserDrawerIsOpen","changeUserRole","changeSchool","changeClass","changeDateOfBirth","changeUserName","changeFullName","changeEmailAddress","changePhoneNumber","handleCreateOrUpdate","errors","contentError","setErrors","_getExternalSchoolId","setCreateOrUpdateUserDrawerIsOpen","resetCreateOrUpdate","_validation","createUser","setSeverity","isValid","errorObj","test","String","deleteUser","handleCloseDialogDeleteUser","openDialogDeleteUser","setOpenDialogDeleteUser","setDeleteUser","filterByFullName","UserSetting","userSurveyStyle","containerQuestion","marginTop5","marginTop40","questionTitle","questionContent","surveyInput","questionInput","questionTextArea","surveyQuestionType","surveyQuestionTypePager","surveyQuestionTypeList","surveyQuestionTypeMenu","addSurveyQuestion","wrapperDialog","titleAddSurveyQuestionDialog","fieldRequire","boxQuestion","buttonDeleteQuestion","widthButtonDeleteQuestion","widthContentQuestion","spaceCheck","buttonDeleteAnswerOption","widthAnswerOption","widthButtonDeleteAnswerOption","widthContentAnswerOption","buttonNewSurvey","buttonSurveyHome","textDecoration","containerSurvey","containerListProject","titleSurvey","black","answerOptionInDetail","errorQuestion","questionSubtitle","noBorder","fontSizeTitle","dividerStyle","marginBottom5","marginBottom10","selectedDeleteSurvey","setSelectedDeletedSurvey","deleteSurvey","openEditSurvey","SurveyQuestionType","Base64CustomUploadAdapter","plugins","createUploadAdapter","loader","Adapter","reader","FileReader","resolve","addEventListener","err","then","readAsDataURL","abort","CustomSurveyEditor","extraPlugins","image","mediaEmbed","contentToolbar","INIT_SURVEY","isSent","questions","getSurveyQuestionDisplay","INPUT","TEXT_AREA","RADIO","CHECKBOX","INIT_SURVEY_QUESTION","isRequired","subTitle","answers","CustomRadio","Radio","AnswerItem","questionId","handleAddAnswer","handleChangeAnswer","handleDeleteAnswer","notTitle","answer","ONLY_CREATE_EDIT","ONLY_ANSWER","QuestionItem","question","setQuestionTitle","setQuestionIsRequired","setQuestionSubTitle","setQuestionType","handleDeleteQuestion","isError","containedPrimary","AddSurveyQuestionDialog","setQuestion","handleAddQuestion","INIT_SURVEY_ANSWER","Map","mapOfFakeQuestionId","setMapOfFakeQuestionId","mapOfFakeAnswerId","setMapOfFakeAnswerId","setSurvey","fetchData","surveyFromDB","q","questionHistories","setQuestionHistories","h","oldMap","mapOfTypeToAnswers","oldAnswers","set","_getAnswers","newMap","newHistory","_getAllAnswers","maxAnswerId","_findMax","openSurveyQuestionDialog","setOpenSurveyQuestionDialog","handleCloseSurveyQuestionDialog","maxQuestionId","questionNew","answerId","answerRadioChecked","answerRadio","answerCheckbox","handleUpdateOrCreateSurvey","_resetSurvey","indexOldQuestion","indexOldQuestionHistory","indexOldAnswer","questionHistory","indexOldHistoryAnswer","reduce","goListSurvey","CREATE","CreateSurvey","EditSurvey","Answer","DescriptionSurvey","isReadOnly","Question","Survey","downloadProjectSurvey","numberSent","numberResponse","setList","loadingList","setLoadingList","AdminStudySubjects","commonBottom","errorRegisterFormValue","createUpdateCourseTemplate","handleCreateOrUpdateCourseTemplate","FormHelperText","CreateUpdateCourseTemplate","studySubs","setStudySubs","CreateOrUpdateCourseTemplateDialog","setCreateUpdateCourseTemplate","setErrorRegisterFormValue","errorRegisterFormValueInit","courseTemplate","temp","fromICourseTemplate","getAllContactPerson","_isErrorRegister","handleConfirm","evaluationStyle","Evaluation","studentSurvey","setStudentSurvey","mapOfQuestionIdToError","setMapOfQuestionIdToError","_validationQuestions","isResult","handleEvaluation","isAnswered","evaluationThankStyle","publicRoutes","protectedRoutes","UserSettingDashboard","Projects","CourseDashboard","HighSchools","SecondarySchools","StudySubjectDashboard","Templates","Messages","UserSurveyList","SurveyDetail","Prioritize","StudentCourseInformation","r","exact","mainBlue","lightBlue","darkBlue","paletteTheme","createTheme","success","A200","body1","body2","h2","h3","h4","h5","h6","overrides","MuiButton","MuiTextField","MuiFilledInput","MuiInputLabel","MuiToolbar","gutters","MuiListItem","MuiDivider","MuiChip","outlined","deleteIcon","MuiLink","MuiSvgIcon","MuiSelect","MuiFormControl","App","ThemeProvider","utils","LuxonUtils","locale","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.3a9aac98.chunk.js","sourcesContent":["export enum UserRole {\n Unknown = 0,\n Student = 1,\n Adviser = 1 << 1,\n HighSchoolContact = 1 << 2,\n Admin = 1 << 3,\n}\n\nconst singleRoles = [0, 1, 2, 4, 8];\n\nexport const isMultipleRoles = (role: UserRole) => !singleRoles.includes(role);\nexport const isRole = (userRole: UserRole, role: UserRole) => {\n return (userRole & role) > 0;\n};\n\nexport const getNorwegianRole = (role: UserRole | undefined) => {\n if (role === undefined) return '';\n\n if (isMultipleRoles(role))\n throw Error(\n 'Do not pass multiple roles to getNorwegianRoles. Role passed was ' + role\n );\n\n if (isRole(role, UserRole.Student)) return 'Elev';\n if (isRole(role, UserRole.Adviser)) return 'Rådgiver';\n if (isRole(role, UserRole.HighSchoolContact)) return 'VGS Kontakt';\n if (isRole(role, UserRole.Admin)) return 'Administrator';\n\n return 'Ukjent';\n};\n\nexport const AllRoles =\n UserRole.Student |\n UserRole.Adviser |\n UserRole.HighSchoolContact |\n UserRole.Admin;\nexport const GURoles = UserRole.Adviser;\nexport const AdminRoles =\n UserRole.Adviser | UserRole.HighSchoolContact | UserRole.Admin;\nexport const SuperAdminRoles = UserRole.Admin;\n","import axios, { AxiosError, AxiosResponse } from 'axios';\n\nexport const newHttpInstance = (baseUrl = '') => {\n const instance = axios.create({\n withCredentials: true,\n baseURL: process.env.REACT_APP_SERVER_BASE_URL + baseUrl,\n });\n\n instance.interceptors.response.use(\n (response: AxiosResponse) => response,\n async (error: AxiosError) => {\n if (!error.response) {\n return Promise.reject(500);\n }\n const { data } = error.response;\n if (error.response.status === 401) {\n if (\n !(\n window.location.pathname === '/' ||\n window.location.pathname === '/api/account/logout'\n )\n ) {\n await http.post('/api/account/logout');\n window.location.replace('/');\n }\n }\n return Promise.reject(data);\n }\n );\n\n return instance;\n};\n\nconst http = newHttpInstance();\n\nexport default http;\n\nexport const prepareGetQuery = (filter: Record) => {\n const keys = Object.keys(filter);\n const filterValues = keys\n .filter((key) => !!filter[key] || filter[key] === 0)\n .map((key) => {\n if (filter[key] instanceof Date) {\n return `${key}=${(filter[key] as Date).toISOString()}`;\n }\n\n if (typeof filter[key] === 'object' && filter[key] !== null) {\n const entityObject: any = filter[key];\n const queryString = [];\n if (Array.isArray(entityObject)) {\n for (const value of entityObject) {\n queryString.push(`${key}[]=${value}`);\n }\n } else {\n for (const prop in entityObject) {\n queryString.push(`${key}[${prop}]=${entityObject[prop]}`);\n }\n }\n\n return queryString.join('&');\n }\n return `${key}=${filter[key]}`;\n });\n\n const behind = filterValues.join('&');\n\n if (behind) return `?${behind}`;\n\n return '';\n};\n\nexport const prepareGetQueryFromArray = (\n queryName: string,\n data: unknown[]\n): string => {\n const queryString = data.map((d: unknown, index: number) => {\n return `${queryName}[${index}]=${d}`;\n });\n\n return `?${queryString.join('&')}`;\n};\n","import axios from 'axios';\nimport { IUserDto } from '../types/User';\nimport http from '../utils/httpUtils';\n\nclass AccountService {\n async getFeideRedirect(): Promise {\n try {\n const res = await http.get('/api/account/GenerateFeideRedirect');\n return res.data;\n } catch (error: any) {\n console.error('Error generating Feide redirect URI: ' + error);\n }\n }\n\n async register(\n username: string,\n password: string\n ): Promise {\n try {\n const res = await http.post('/api/account/register', {\n username,\n password,\n });\n return res.data as IUserDto;\n } catch (error: any) {\n console.error('Error registering user: ' + error);\n }\n }\n\n async login(\n username: string,\n password: string,\n rememberMe: boolean\n ): Promise {\n try {\n const res = await http.post('/api/account/login', {\n username,\n password,\n rememberMe,\n });\n return res.data as IUserDto;\n } catch (error: any) {\n if (axios.isAxiosError(error) && error.response?.status === 401) {\n throw Error('Feil brukernavn eller passord.');\n } else {\n throw Error('Server error.');\n }\n }\n }\n\n async logout(): Promise {\n await http.post('/api/account/logout');\n }\n\n async oidcCallback(code: string) {\n try {\n await http.get('/api/account/oidc-callback?code=' + code);\n } catch (error) {\n console.error('Error logging in with OIDC code');\n throw error;\n }\n }\n\n async sendLinkToResetPassword(email: string) {\n try {\n await http.get('/api/account/sendLinkToResetPassword?email=' + email);\n } catch (error) {\n console.error('Server error');\n }\n }\n\n async resetPassword(\n email: string | null,\n newPassword: string,\n currentTime: string | null,\n token: string | null\n ) {\n try {\n await http.post('/api/account/resetPassword', {\n email,\n newPassword,\n currentTime,\n token,\n });\n } catch (error) {\n console.error('Server error');\n }\n }\n\n async isValidLink(): Promise {\n const urlParams = new URLSearchParams(window.location.search);\n const email = urlParams.get('email');\n const currentTime = urlParams.get('time');\n const token = urlParams.get('token');\n const result = await http.post('/api/account/checkCorrectLink', {\n email,\n currentTime,\n token,\n });\n return result.data;\n }\n}\n\nexport default new AccountService();\n","export enum CourseStatus {\n DRAFT = 1,\n ACTIVE = 2,\n COMPLETED = 3,\n CANCELLED = 4,\n PUBLISHED = 5,\n}\n\nexport const getStatusDisplay = (status: CourseStatus): string => {\n let statusText = '';\n switch (status) {\n case CourseStatus.DRAFT:\n statusText = 'Kladd';\n break;\n case CourseStatus.ACTIVE:\n statusText = 'Klar';\n break;\n case CourseStatus.PUBLISHED:\n statusText = 'Publisert';\n break;\n case CourseStatus.COMPLETED:\n statusText = 'Gjennomført';\n break;\n case CourseStatus.CANCELLED:\n statusText = 'Avlyst';\n break;\n }\n\n return statusText;\n};\n","import { IClass } from './Class';\nimport { PaginationRequest } from './dto/PaginationRequest.dto';\nimport { ISchool } from './School';\nimport { IStudentCourse } from './StudentCourse';\nimport { IStudentStudySubject } from './StudySubject';\nimport { isMultipleRoles, isRole, UserRole } from './UserRole';\nexport class User {\n id = 0;\n userName = '';\n fullName = '';\n emailAddress = '';\n dateOfBirth = new Date();\n role: UserRole = UserRole.Unknown;\n phoneNumber = '';\n externalSchoolId = '';\n externalClassId = '';\n isMainContactPerson = false;\n currentRole: UserRole = 0;\n switchRole: UserRole = 0;\n studentCourses: IStudentCourse[] = [];\n studentStudySubjects: IStudentStudySubject[] = [];\n hasSpecialNeeds = false;\n class?: IClass = undefined;\n school?: ISchool = undefined;\n isActive?: boolean;\n\n constructor(init?: Partial) {\n Object.assign(this, init);\n }\n\n static fromUserDto(u: IUserDto) {\n const newUser = new this(u);\n\n if (\n newUser.currentRole === UserRole.Unknown &&\n !newUser.hasMultipleRoles()\n ) {\n newUser.currentRole = newUser.role;\n } else {\n newUser.currentRole = UserRole.Admin;\n newUser.switchRole = newUser.role / newUser.currentRole;\n }\n\n return newUser;\n }\n\n hasMultipleRoles = () => isMultipleRoles(this.role);\n hasRole = (role: UserRole) => isRole(this.role, role);\n hasSwitchRole = (role: UserRole) => isRole(this.switchRole, role);\n isCurrentlyRole = (role: UserRole) => isRole(this.currentRole, role);\n getAssignedCourse = (projectId?: number) =>\n this.studentCourses.find(\n (course) => course.finalAssignedCourse?.projectId === projectId\n );\n}\n\nexport interface IUserDto {\n id?: number;\n userName: string;\n fullName: string;\n emailAddress: string;\n dateOfBirth: Date;\n role: UserRole;\n phoneNumber: string;\n externalSchoolId?: string;\n externalClassId?: string;\n isMainContactPerson?: boolean;\n currentRole?: UserRole;\n studentCourses?: IStudentCourse[];\n studentStudySubjects?: IStudentStudySubject[];\n hasSpecialNeeds: boolean;\n class?: IClass;\n school?: ISchool;\n isActive?: boolean;\n}\nexport interface IAllocationResultDto {\n firstPriority: number;\n secondPriority: number;\n thirdPriority: number;\n}\nexport interface UserPaginationRequest extends PaginationRequest {\n externalSchoolId?: string;\n}\n","import { action } from 'mobx';\nimport { RootStore } from '.';\nimport AccountService from '../services/AccountService';\nimport { User } from '../types/User';\nclass AccountStore {\n rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n @action\n redirectToFeide = async () => {\n const URI = await AccountService.getFeideRedirect();\n if (URI) window.location.replace(URI);\n };\n\n @action\n register = async (username: string, password: string): Promise => {\n const user = await AccountService.register(username, password);\n if (user) this.rootStore.userStore.setUser(User.fromUserDto(user));\n };\n\n @action\n login = async (\n username: string,\n password: string,\n rememberMe = false\n ): Promise => {\n const user = await AccountService.login(username, password, rememberMe);\n if (user) this.rootStore.userStore.setUser(User.fromUserDto(user));\n };\n\n @action\n logout = async (): Promise => {\n await AccountService.logout();\n this.rootStore.userStore.removeUser();\n };\n\n @action\n resetPassword = async (email: string | null, newPassword: string, currentTime: string | null, token: string | null): Promise => {\n await AccountService.resetPassword(email, newPassword, currentTime, token);\n };\n\n @action\n sendLinkToResetPassword = async (email: string): Promise => {\n await AccountService.sendLinkToResetPassword(email);\n };\n\n @action\n isValidLink = async (): Promise => {\n return await AccountService.isValidLink();\n };\n\n @action\n oidcCallback = async (code: string): Promise => {\n await AccountService.oidcCallback(code);\n };\n}\n\nexport default AccountStore;\n","import { AxiosInstance } from 'axios';\nimport { newHttpInstance } from '../utils/httpUtils';\n\nclass AdminDashboardService {\n projectPrefix = '/api/Project';\n studySubjectPrefix = '/api/StudySubject';\n coursePrefix = '/api/Course';\n schoolPrefix = '/api/School';\n http: AxiosInstance;\n\n constructor() {\n this.http = newHttpInstance();\n }\n\n public async adminGetCurrentProject() {\n const result = await this.http.get(`${this.projectPrefix}/current`);\n return result.data;\n }\n\n public async adminGetStudentStatistic(projectId: number) {\n const result = await this.http.get(\n `${this.studySubjectPrefix}/statistic/${projectId}`\n );\n return result.data;\n }\n\n public async adminGetStudentCourseStatistic(projectId: number) {\n const result = await this.http.get(\n `${this.coursePrefix}/student-statistic/${projectId}`\n );\n return result.data;\n }\n\n public async adminGetStudySubjectStatistic(projectId: number) {\n const result = await this.http.get(\n `${this.studySubjectPrefix}/capacity-statistic/${projectId}`\n );\n return result.data;\n }\n\n public async adminGetSubjectSchoolInfo(studySubjectId: number) {\n const result = await this.http.get(\n `${this.schoolPrefix}/studySubject/${studySubjectId}`\n );\n return result.data;\n }\n}\n\nexport default new AdminDashboardService();\n","import { KarDateType } from './commons';\n\nexport interface IProject {\n id?: number;\n projectName: string;\n coursePeriodStartDate?: KarDateType;\n coursePeriodEndDate?: KarDateType;\n registeringPeriodStartDate?: KarDateType;\n registeringPeriodEndDate?: KarDateType;\n availablePeriodStartDate?: KarDateType;\n availablePeriodEndDate?: KarDateType;\n evaluationPeriodStartDate?: KarDateType;\n evaluationPeriodEndDate?: KarDateType;\n studentIntroductionText: string;\n studentRegistrationText: string;\n isPublished: boolean;\n assignSurveyId: number | null;\n}\nexport const INIT_PROJECT: IProject = {\n projectName: '',\n coursePeriodStartDate: null,\n coursePeriodEndDate: null,\n registeringPeriodStartDate: null,\n registeringPeriodEndDate: null,\n availablePeriodStartDate: null,\n availablePeriodEndDate: null,\n evaluationPeriodStartDate: null,\n evaluationPeriodEndDate: null,\n studentIntroductionText: '',\n studentRegistrationText: '',\n isPublished: false,\n assignSurveyId: null,\n};\n\nexport const registrationIsActive = (project: IProject) => {\n if (!project.registeringPeriodEndDate || !project.registeringPeriodStartDate)\n return false;\n\n const start = new Date(project.registeringPeriodStartDate);\n const end = new Date(project.registeringPeriodEndDate);\n const now = new Date();\n\n return start < now && end > now;\n};\n\nexport const coursePeriodIsActive = (project: IProject) => {\n if (!project.coursePeriodStartDate || !project.coursePeriodEndDate)\n return false;\n\n const start = new Date(project.coursePeriodStartDate);\n const end = new Date(project.coursePeriodEndDate);\n const now = new Date();\n\n return start < now && end > now;\n};\n\nexport const isAvailable = (project: IProject) => {\n if (!project.availablePeriodStartDate || !project.availablePeriodEndDate)\n return false;\n\n const start = new Date(project.availablePeriodStartDate);\n const end = new Date(project.availablePeriodEndDate);\n const now = new Date();\n\n return start < now && end > now;\n};\n\nexport const evaluationIsActive = (project: IProject) => {\n if (!project.evaluationPeriodStartDate || !project.evaluationPeriodEndDate)\n return false;\n\n const start = new Date(project.evaluationPeriodStartDate);\n const end = new Date(project.evaluationPeriodEndDate);\n const now = new Date();\n\n return start < now && end > now;\n};\n","import adminDashboardService from '@/services/AdminDashboard.service';\nimport { INIT_PROJECT, IProject } from '@/types/Project';\nimport {\n IAdminStatisticSubjectCapacity,\n ISchoolStudySubjectInfo,\n} from '@/types/StudySubject';\nimport { makeObservable, observable } from 'mobx';\nimport { RootStore } from '.';\n\nclass AdminDashboardStore {\n rootStore: RootStore;\n project: IProject;\n totalStudent: number;\n registeredStudent: number;\n totalAssignedStudent: number;\n totalCourse: number;\n numberFirstPriorityStudent: number;\n numberSecondPriorityStudent: number;\n numberThirdPriorityStudent: number;\n capacityStore: IAdminStatisticSubjectCapacity[];\n schoolStore: ISchoolStudySubjectInfo[];\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n this.project = INIT_PROJECT;\n this.totalStudent = 0;\n this.registeredStudent = 0;\n this.totalAssignedStudent = 0;\n this.totalCourse = 0;\n this.numberFirstPriorityStudent = 0;\n this.numberSecondPriorityStudent = 0;\n this.numberThirdPriorityStudent = 0;\n this.capacityStore = [];\n this.schoolStore = [];\n\n makeObservable(this, {\n project: observable,\n totalStudent: observable,\n registeredStudent: observable,\n totalAssignedStudent: observable,\n totalCourse: observable,\n numberFirstPriorityStudent: observable,\n numberSecondPriorityStudent: observable,\n numberThirdPriorityStudent: observable,\n capacityStore: observable,\n schoolStore: observable,\n });\n }\n\n setProject(data: IProject) {\n this.project = data;\n }\n\n setStudentStatistic(totalStudent: number, registeredStudent: number) {\n this.totalStudent = totalStudent;\n this.registeredStudent = registeredStudent;\n }\n\n setStudentCourseStatistic(\n totalAssignedStudent: number,\n totalCourse: number,\n numberFirstPriorityStudent: number,\n numberSecondPriorityStudent: number,\n numberThirdPriorityStudent: number\n ) {\n this.totalAssignedStudent = totalAssignedStudent;\n this.totalCourse = totalCourse;\n this.numberFirstPriorityStudent = numberFirstPriorityStudent;\n this.numberSecondPriorityStudent = numberSecondPriorityStudent;\n this.numberThirdPriorityStudent = numberThirdPriorityStudent;\n }\n\n setStudySubjectStatistic(capacityStore: IAdminStatisticSubjectCapacity[]) {\n this.capacityStore = capacityStore;\n }\n\n setSubjectSchoolInfo(schoolStore: ISchoolStudySubjectInfo[]) {\n this.schoolStore = schoolStore;\n }\n\n async adminGetCurrentProject() {\n const result = await adminDashboardService.adminGetCurrentProject();\n this.setProject(result);\n }\n\n async adminGetStudentStatistic() {\n if (this.project.id) {\n const { totalStudent, registeredStudent } =\n await adminDashboardService.adminGetStudentStatistic(this.project.id);\n this.setStudentStatistic(totalStudent, registeredStudent);\n }\n }\n\n async adminGetStudentCourseStatistic() {\n if (this.project.id) {\n const {\n totalAssignedStudent,\n totalCourse,\n numberFirstPriorityStudent,\n numberSecondPriorityStudent,\n numberThirdPriorityStudent,\n } = await adminDashboardService.adminGetStudentCourseStatistic(\n this.project.id\n );\n\n this.setStudentCourseStatistic(\n totalAssignedStudent,\n totalCourse,\n numberFirstPriorityStudent,\n numberSecondPriorityStudent,\n numberThirdPriorityStudent\n );\n }\n }\n\n async adminGetStudySubjectStatistic() {\n if (this.project.id) {\n const capacityStore =\n await adminDashboardService.adminGetStudySubjectStatistic(\n this.project.id\n );\n\n this.setStudySubjectStatistic(capacityStore);\n }\n }\n\n async adminGetSubjectSchool(studySubjectId: number) {\n const schoolInfo = await adminDashboardService.adminGetSubjectSchoolInfo(\n studySubjectId\n );\n this.setSubjectSchoolInfo(schoolInfo);\n }\n}\n\nexport default AdminDashboardStore;\n","import ICourse, {\n CreateUpdateCourse,\n IListRequestQuery,\n State,\n} from '@/types/Course';\nimport { PaginationResult } from '@/types/dto/PaginationResult.dto';\nimport { CourseStatus } from '@/types/enums/CourseStatus';\nimport { IUserDto } from '@/types/User';\nimport { AxiosInstance } from 'axios';\nimport { PaginationRequest } from '../types/dto/PaginationRequest.dto';\nimport {\n newHttpInstance,\n prepareGetQuery,\n prepareGetQueryFromArray,\n} from '../utils/httpUtils';\n\nclass CourseService {\n prefix = '/api/Course';\n http: AxiosInstance;\n\n constructor() {\n this.http = newHttpInstance(this.prefix);\n }\n\n public async getList(\n model: IListRequestQuery\n ): Promise> {\n const result = await this.http.get(\n `${prepareGetQuery(model as Record)}`\n );\n return result.data;\n }\n\n public async getStudentsForDetailCourse(\n id: number,\n model: PaginationRequest\n ): Promise> {\n const result = await this.http.get(\n `${id}/detail${prepareGetQuery(model as Record)}`\n );\n return result.data;\n }\n\n public async getUpdateCourseById(id: number): Promise {\n const result = await this.http.get(`/${id}/update`);\n return result.data;\n }\n\n public async createCourse(model: CreateUpdateCourse): Promise {\n const result = await this.http.post(``, model);\n return result.data;\n }\n\n public async updateCourse(\n id: number,\n model: CreateUpdateCourse\n ): Promise {\n const result = await this.http.put(`/${id}`, model);\n return result.data;\n }\n\n public async getCourseById(id: number): Promise {\n const result = await this.http.get(`/${id}`);\n return result.data;\n }\n\n public async getListVGS(\n model: IListRequestQuery\n ): Promise> {\n const result = await this.http.get(\n `vgs${prepareGetQuery(model as Record)}`\n );\n return result.data;\n }\n\n public async updateCourseVGS(\n id: number,\n model: CreateUpdateCourse\n ): Promise {\n const result = await this.http.put(`vgs/${id}`, model);\n return result.data;\n }\n\n public async getCourseStatusByProjectId(\n projectId: number,\n externalSchoolId?: string\n ): Promise {\n const result = await this.http.get(`byProjectId/${projectId}`, {\n params: {\n externalSchoolId,\n },\n });\n\n return result.data;\n }\n public async deleteCourse(id: number): Promise {\n const result = await this.http.delete(`${id}`);\n return result.data;\n }\n\n public async duplicateCourse(id: number): Promise {\n const result = await this.http.post(`duplicate/${id}`);\n return result.data;\n }\n\n public async removeAllAllocations(courseIds: number[]): Promise {\n const result = await this.http.get(\n `remove-all-allocations${prepareGetQueryFromArray(\n 'courseIds',\n courseIds\n )}`\n );\n return result.data;\n }\n\n public async deleteListCourse(\n projectId: number,\n courseIds: number[]\n ): Promise {\n const result = await this.http.get(\n `byProjectId/${projectId}/delete-list-course${prepareGetQueryFromArray(\n 'courseIds',\n courseIds\n )}`\n );\n return result.data;\n }\n\n public async undoCourse(projectId: number, state: State): Promise {\n const result = await this.http.post(\n `byProjectId/${projectId}/undo-course`,\n state\n );\n return result.data;\n }\n\n public async redoCourse(projectId: number, state: State): Promise {\n const result = await this.http.post(\n `byProjectId/${projectId}/redo-course`,\n state\n );\n return result.data;\n }\n\n public async getCourseExcelExport(projectId: number): Promise {\n const response = await this.http.get(\n `byProjectId/${projectId}/excel-export`,\n {\n responseType: 'blob',\n }\n );\n\n const blob = new Blob([response.data], {\n type: 'application/octet-stream',\n });\n\n const now = new Date();\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = `course-export-${now.getTime()}.xlsx`;\n link.click();\n }\n\n public async updateCourseToUndoOrRedo(\n id: number,\n model: CreateUpdateCourse\n ): Promise {\n const result = await this.http.put(`/${id}/undo-or-redo`, model);\n return result.data;\n }\n\n public async getCoursesMinified(\n projectId: number,\n studySubjectId?: number\n ): Promise {\n const result = await this.http.get(`byProjectId/${projectId}/minified`, {\n params: {\n studySubjectId,\n },\n });\n return result.data;\n }\n\n public async listParticipantOfCourseExport(\n projectId: number,\n courseId: number\n ): Promise {\n const response = await this.http.get(\n `vgs/byProjectId/${projectId}/byCourseId/${courseId}/export-participant`,\n {\n responseType: 'blob',\n }\n );\n\n const blob = new Blob([response.data], {\n type: 'application/octet-stream',\n });\n\n const now = new Date();\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = `participant-export--${now.getTime()}.xlsx`;\n link.click();\n }\n\n public async updateStatusMultipleCourse(\n models: CreateUpdateCourse[]\n ): Promise {\n const result = await this.http.put(`update-status-multiple-course`, models);\n return result.data;\n }\n\n public async getAllByProjectId(projectId: number): Promise {\n const result = await this.http.get(`byProjectId/${projectId}/get-all`);\n return result.data;\n }\n}\n\nexport default new CourseService();\n","enum MessageTemplateAttribute {\n USER_NAME = '{user.name}',\n LIST_OF_COURSES = '{courses}',\n COURSE_NAME = '{course.subject.name}',\n COURSE_SCHOOL_ADDRESS = '{course.school.address}',\n COURSE_SCHOOL_NAME = '{course.school.name}',\n COURSE_ROOM_NUMBER = '{course.roomNumber}',\n COURSE_DATE_TIME = '{course.dateTime}',\n END_OF_BOOKING = '{project.registrationPeriodEndDate}',\n EVALUATION_LINK = '{evaluationLink}',\n PORTAL_LINK = '{portalLink}',\n}\n\nexport default MessageTemplateAttribute;\n","import { PaginationRequest } from './dto/PaginationRequest.dto';\nimport { CourseStatus } from './enums/CourseStatus';\nimport { EventCheckbox } from './enums/EventCheckbox';\nimport { IProject } from './Project';\nimport { ISchool } from './School';\nimport IStudySubject from './StudySubject';\nimport { User } from './User';\n\nexport default interface ICourse {\n id: number;\n studySubjectId: number;\n studySubject: IStudySubject;\n school: ISchool;\n startDate: Date;\n endDate: Date;\n roomNumber: string;\n capacity: number;\n extraCapacity: number;\n numberOfFirstPriority: number;\n numberOfSecondPriority: number;\n numberOfThirdPriority: number;\n courseHolderId: number;\n courseHolder: User;\n projectId: number;\n project: IProject;\n status: CourseStatus;\n availableCapacity: number;\n hasSpecialNeeds: boolean;\n courseInfo: string;\n}\n\nexport interface IListRequestQuery extends PaginationRequest {\n projectId?: string;\n externalSchoolId?: string;\n studySubjectId?: string | number;\n status?: string | CourseStatus;\n beginStartDate?: Date | null;\n endStartDate?: Date | null;\n}\nexport class CreateUpdateCourse {\n id?: number;\n status = CourseStatus.DRAFT;\n projectId = 0;\n studySubjectId = 0;\n capacity = 20;\n extraCapacity = 0;\n externalSchoolId = '';\n courseHolderId?: number;\n numberOfFirstPriority = 0;\n numberOfSecondPriority = 0;\n numberOfThirdPriority = 0;\n roomNumber = '';\n numberCoursePerDay = 1;\n selectedDays: Date[] = [];\n startDate?: Date;\n endDate?: Date;\n courseInfo?: string;\n\n static fromICourse(course: ICourse): CreateUpdateCourse {\n const result = new CreateUpdateCourse();\n result.id = course.id;\n result.status = course.status;\n result.projectId = course.projectId;\n result.studySubjectId = course.studySubjectId;\n result.capacity = course.capacity;\n result.extraCapacity = course.extraCapacity;\n result.externalSchoolId = course.school.externalId;\n result.courseHolderId =\n course.courseHolderId > 0 ? course.courseHolderId : undefined;\n result.numberOfFirstPriority = course.numberOfFirstPriority;\n result.numberOfSecondPriority = course.numberOfSecondPriority;\n result.numberOfThirdPriority = course.numberOfThirdPriority;\n result.roomNumber = course.roomNumber;\n // TODO: Look over all times and use timezones correctly\n result.startDate = course.startDate;\n result.selectedDays = [course.startDate];\n result.endDate = course.endDate;\n if (course.startDate instanceof Date) {\n const d = new Date(course.startDate);\n d.setUTCMinutes(\n course.startDate.getUTCMinutes() - course.startDate.getTimezoneOffset()\n );\n result.startDate = d;\n result.selectedDays = [d];\n }\n\n if (course.endDate instanceof Date) {\n const d = new Date(course.endDate);\n d.setUTCMinutes(\n course.endDate.getUTCMinutes() - course.endDate.getTimezoneOffset()\n );\n result.endDate = d;\n }\n result.courseInfo = course.courseInfo;\n return result;\n }\n}\n\nexport interface State {\n mode: EventCheckbox;\n courseIds: number[];\n studentCourseIds: number[];\n courseDto: CreateUpdateCourse;\n courseDtos: CreateUpdateCourse[];\n}\n","export interface PaginationRequest {\n skip?: number;\n\n take?: number;\n\n search?: string;\n\n orderBy?: string;\n\n orderDirection?: 'asc' | 'desc';\n}\n\nexport const PER_PAGE_OPTIONS = ['50', '100'];\n\nexport const ASC = 'asc';\nexport const DESC = 'desc';\n\nexport const TAKE_STUDENT = 50;\n\nexport const SELECT_ALL = 'all';\nexport const UNDEFINED = 0;\n","import { KarDateType } from '../types/commons';\nimport { DateTime } from 'luxon';\n\ninterface OptionalDateFromTo {\n from?: KarDateType;\n to?: KarDateType;\n}\n\nexport const generateStringFromToDate = ({ from, to }: OptionalDateFromTo) => {\n if (!from || !to) return '';\n\n let fromString = '';\n from instanceof Date\n ? (fromString = DateTime.fromJSDate(from).toISODate())\n : (fromString = DateTime.fromJSDate(new Date(from)).toISODate());\n\n let toString = '';\n to instanceof Date\n ? (toString = DateTime.fromJSDate(to).toISODate())\n : (toString = DateTime.fromJSDate(new Date(to)).toISODate());\n\n return `${fromString} - ${toString}`;\n};\n\nexport const getDateTime = (time: KarDateType, format: string): string => {\n if (time) {\n if (typeof time === 'object') {\n time = time.toISOString();\n }\n\n return DateTime.fromISO(time as string)\n .setLocale('nb')\n .toFormat(format);\n }\n\n return '';\n};\n\nexport const getDateFromKarDateType = (value?: KarDateType): Date | null => {\n if (!value) return null;\n return new Date(value);\n};\n\nexport const changeDate = (oldDate: Date | undefined, newDate: Date): Date => {\n if (oldDate) {\n oldDate = new Date(oldDate);\n newDate.setHours(oldDate.getHours());\n newDate.setMinutes(oldDate.getMinutes());\n newDate.setSeconds(oldDate.getSeconds());\n newDate.setMilliseconds(oldDate.getMilliseconds());\n }\n\n const newDateUTC = DateTime.utc(\n newDate.getFullYear(),\n newDate.getMonth() + 1,\n newDate.getDate(),\n newDate.getHours(),\n newDate.getMinutes(),\n newDate.getSeconds(),\n newDate.getMilliseconds()\n ).toJSDate();\n\n return newDateUTC;\n};\n\nexport const resetTimeZeroOfDate = (date: Date): Date => {\n date = new Date(date);\n const newDate = DateTime.local(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n 0,\n 0,\n 0,\n 0\n ).toJSDate();\n\n return newDate;\n};\n\nexport const getTime = (date?: Date): number => {\n if (date) {\n return new Date(date).getTime();\n }\n\n return new Date().getTime();\n};\n\nexport const getBeginDate = (\n date: Date | undefined | null\n): Date | undefined | null => {\n if (date) {\n date = new Date(date);\n const newDateUTC = DateTime.utc(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n 0,\n 0,\n 0\n ).toJSDate();\n\n return newDateUTC;\n }\n\n return date;\n};\n\nexport const getEndDate = (\n date: Date | undefined | null\n): Date | undefined | null => {\n if (date) {\n date = new Date(date);\n const newDateUTC = DateTime.utc(\n date.getFullYear(),\n date.getMonth() + 1,\n date.getDate(),\n 23,\n 59,\n 59\n ).toJSDate();\n\n return newDateUTC;\n }\n\n return date;\n};\n","import courseService from '@/services/CourseService';\nimport ICourse, {\n CreateUpdateCourse,\n IListRequestQuery,\n State,\n} from '@/types/Course';\nimport {\n PaginationRequest,\n SELECT_ALL,\n} from '@/types/dto/PaginationRequest.dto';\nimport { PaginationResult } from '@/types/dto/PaginationResult.dto';\nimport { CourseStatus } from '@/types/enums/CourseStatus';\nimport { IUserDto } from '@/types/User';\nimport { getBeginDate, getEndDate } from '@/utils/timeUtils';\nimport { action, makeObservable, observable } from 'mobx';\nimport { RootStore } from '.';\n\nclass CourseStore {\n rootStore: RootStore;\n courses: ICourse[];\n totalCount: number;\n currentCourse: CreateUpdateCourse;\n courseId: number;\n initCourseId = 0;\n course?: ICourse;\n courseStatusHeadCell: CourseStatus[];\n courseIds: number[];\n undoStack: State[];\n redoStack: State[];\n normalStack: number;\n newCourse?: ICourse;\n loadingCourseTable: boolean;\n externalHighSchoolId: string;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n this.courses = [];\n this.totalCount = 0;\n this.currentCourse = new CreateUpdateCourse();\n this.courseId = this.initCourseId;\n this.courseStatusHeadCell = [];\n this.courseIds = [];\n this.undoStack = [];\n this.redoStack = [];\n this.normalStack = 0;\n this.loadingCourseTable = false;\n this.externalHighSchoolId = SELECT_ALL;\n\n makeObservable(this, {\n courses: observable,\n totalCount: observable,\n currentCourse: observable,\n courseId: observable,\n course: observable,\n courseStatusHeadCell: observable,\n courseIds: observable,\n undoStack: observable,\n redoStack: observable,\n normalStack: observable,\n newCourse: observable,\n loadingCourseTable: observable,\n externalHighSchoolId: observable,\n\n setCourses: action,\n setTotalCount: action,\n setCurrentCourse: action,\n setCourseId: action,\n resetCourseId: action,\n resetCourse: action,\n setCourse: action,\n setCourseStatusHeadCell: action,\n setCourseIds: action,\n resetCourseIds: action,\n insertState: action,\n setNewCourse: action,\n setLoadingCourseTable: action,\n setExternalHighSchoolId: action,\n });\n }\n\n setCourses(data: ICourse[]) {\n this.courses = data;\n }\n\n setTotalCount(count: number) {\n this.totalCount = count;\n }\n\n setCurrentCourse(course: CreateUpdateCourse) {\n this.currentCourse = course;\n }\n\n setCourseId(id: number) {\n this.courseId = id;\n }\n\n resetCourseId() {\n this.courseId = this.initCourseId;\n }\n\n resetCourse() {\n this.course = undefined;\n }\n\n setCourse(course: ICourse | undefined) {\n this.course = course;\n }\n\n setNewCourse(course: ICourse | undefined) {\n this.newCourse = course;\n }\n\n setCourseStatusHeadCell(data: CourseStatus[]) {\n this.courseStatusHeadCell = data;\n }\n\n setCourseIds(courseIds: number[]) {\n this.courseIds = courseIds;\n }\n\n resetCourseIds() {\n this.courseIds = [];\n }\n\n insertState(state: State): void {\n this.normalStack += 1;\n this.redoStack.push(state);\n }\n\n setLoadingCourseTable(loading: boolean): void {\n this.loadingCourseTable = loading;\n }\n\n setExternalHighSchoolId(externalId: string): void {\n this.externalHighSchoolId = externalId;\n }\n\n async getList(model: IListRequestQuery): Promise {\n model = {\n ...model,\n beginStartDate: getBeginDate(model.beginStartDate),\n endStartDate: getEndDate(model.endStartDate),\n };\n this.setLoadingCourseTable(true);\n this.setCourses([]);\n this.setTotalCount(0);\n const { data, count } = await courseService.getList(model);\n this.setCourses(data);\n this.setTotalCount(count);\n this.setLoadingCourseTable(false);\n }\n\n async getStudentsForDetailCourse(\n id: number,\n model: PaginationRequest\n ): Promise> {\n return await courseService.getStudentsForDetailCourse(id, model);\n }\n\n async createCourse(model: CreateUpdateCourse): Promise {\n return await courseService.createCourse(model);\n }\n\n async updateCourse(\n id: number,\n model: CreateUpdateCourse\n ): Promise {\n return await courseService.updateCourse(id, model);\n }\n\n async getUpdateCourseById(id: number): Promise {\n const updateCourse = await courseService.getUpdateCourseById(id);\n this.setCurrentCourse(updateCourse);\n }\n\n async getCourseById(id: number, isNewCourse?: boolean): Promise {\n if (isNewCourse) {\n this.setNewCourse(undefined);\n } else {\n this.setCourse(undefined);\n }\n\n const data = await courseService.getCourseById(id);\n\n if (isNewCourse) {\n this.setNewCourse(data);\n } else {\n this.setCourse(data);\n }\n }\n\n async getListVGS(model: IListRequestQuery): Promise {\n this.setLoadingCourseTable(true);\n this.setCourses([]);\n this.setTotalCount(0);\n const { data, count } = await courseService.getListVGS(model);\n this.setCourses(data);\n this.setTotalCount(count);\n this.setLoadingCourseTable(false);\n }\n\n async updateCourseVGS(id: number, model: CreateUpdateCourse): Promise {\n await courseService.updateCourseVGS(id, model);\n const data = await courseService.getCourseById(id);\n this.setCourse(data);\n const index = this.courses.findIndex((c) => c.id === id);\n if (index > -1) {\n this.courses[index] = data;\n }\n }\n\n async getCourseStatusByProjectId(\n projectId: number,\n externalSchoolId?: string\n ): Promise {\n const data = await courseService.getCourseStatusByProjectId(\n projectId,\n externalSchoolId\n );\n this.setCourseStatusHeadCell(data);\n }\n\n async deleteCourse(id: number): Promise {\n const result = await courseService.deleteCourse(id);\n return result;\n }\n\n async duplicateCourse(id: number): Promise {\n const result = await courseService.duplicateCourse(id);\n return result;\n }\n\n async removeAllAllocations(courseIds: number[]): Promise {\n const result = await courseService.removeAllAllocations(courseIds);\n return result;\n }\n\n async deleteListCourse(\n projectId: number,\n courseIds: number[]\n ): Promise {\n const result = await courseService.deleteListCourse(projectId, courseIds);\n return result;\n }\n\n async undoCourse(projectId: number, state: State): Promise {\n const result = await courseService.undoCourse(projectId, state);\n return result;\n }\n\n async redoCourse(projectId: number, state: State): Promise {\n const result = await courseService.redoCourse(projectId, state);\n return result;\n }\n\n async getCourseExcelExport(projectId: number): Promise {\n await courseService.getCourseExcelExport(projectId);\n }\n\n async updateCourseToUndoOrRedo(\n id: number,\n model: CreateUpdateCourse\n ): Promise {\n const result = await courseService.updateCourseToUndoOrRedo(id, model);\n return result;\n }\n\n async getCoursesMinified(\n projectId: number,\n studySubjectId?: number\n ): Promise {\n const result = await courseService.getCoursesMinified(\n projectId,\n studySubjectId\n );\n return result;\n }\n\n async listParticipantOfCourseExport(\n projectId: number,\n courseId: number\n ): Promise {\n await courseService.listParticipantOfCourseExport(projectId, courseId);\n }\n\n async updateStatusMultipleCourse(\n models: CreateUpdateCourse[]\n ): Promise {\n const result = await courseService.updateStatusMultipleCourse(models);\n return result;\n }\n\n async getAllByProjectId(projectId: number): Promise {\n const result = await courseService.getAllByProjectId(projectId);\n return result;\n }\n}\nexport default CourseStore;\n","import {\n CreateUpdateCourseTemplate,\n ICourseTemplate,\n} from '@/types/CourseTemplate';\nimport { newHttpInstance } from '@/utils/httpUtils';\nimport { AxiosInstance } from 'axios';\n\nclass CourseTemplateService {\n prefix = '/api/CourseTemplate';\n http: AxiosInstance;\n\n constructor() {\n this.http = newHttpInstance(this.prefix);\n }\n\n public async createCourseTemplate(\n model: CreateUpdateCourseTemplate\n ): Promise {\n const result = await this.http.post(``, model);\n return result.data;\n }\n\n public async updateCourseTemplate(\n id: number,\n model: CreateUpdateCourseTemplate\n ): Promise {\n const result = await this.http.put(`${id}`, model);\n return result.data;\n }\n\n public async getCourseTemplate(\n studySubjectId: number,\n externalSchoolId: string\n ): Promise {\n const result = await this.http.get(``, {\n params: {\n studySubjectId,\n externalSchoolId,\n },\n });\n return result.data;\n }\n\n public async getCourseTemplates( externalSchoolId: string) : Promise{\n const result = await this.http.get(`course-templates`, {\n params: {\n externalSchoolId,\n },\n });\n return result.data;\n }\n}\n\nexport default new CourseTemplateService();\n","import courseTemplateService from '@/services/CourseTemplateService';\nimport {\n CreateUpdateCourseTemplate,\n ICourseTemplate,\n} from '@/types/CourseTemplate';\nimport { RootStore } from '.';\nimport {action} from \"mobx\";\n\nclass CourseTemplateStore {\n rootStore: RootStore;\n courseTemplatesForCurrentSchool: ICourseTemplate[] = [];\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n public async createCourseTemplate(\n model: CreateUpdateCourseTemplate\n ): Promise {\n return await courseTemplateService.createCourseTemplate(model);\n }\n\n public async updateCourseTemplate(\n id: number,\n model: CreateUpdateCourseTemplate\n ): Promise {\n return await courseTemplateService.updateCourseTemplate(id, model);\n }\n\n public async getCourseTemplate(\n studySubjectId: number,\n externalSchoolId: string\n ): Promise {\n return await courseTemplateService.getCourseTemplate(\n studySubjectId,\n externalSchoolId\n );\n }\n\n @action\n public async getCourseTemplates(\n externalSchoolId: string\n ): Promise {\n this.courseTemplatesForCurrentSchool = await courseTemplateService.getCourseTemplates(\n externalSchoolId\n );\n }\n}\n\nexport default CourseTemplateStore;\n","import {\n IStatisticAllocation,\n IStatisticRegistration,\n IStatisticSubjectCapacity,\n} from '@/types/StudentStudySubject';\n//import { IUserDto } from '@/types/User';\nimport { newHttpInstance } from '@/utils/httpUtils';\nimport { AxiosInstance } from 'axios';\n\nclass DashboardService {\n studySubjectPrefix = '/api/StudySubject';\n userPrefix = '/api/User';\n http: AxiosInstance;\n\n constructor() {\n this.http = newHttpInstance();\n }\n\n public async getStatisticCapacityVGS(\n projectId: number,\n externalSchoolId: string\n ): Promise {\n const result = await this.http.get(\n `${this.studySubjectPrefix}/byProjectId/${projectId}/vgs/statistic-capacity/byExternalSchoolId/${externalSchoolId}`\n );\n return result.data;\n }\n\n /*public async getAllHighSchoolContactByStudySubjectId(\n studySubjectId: number,\n externalSchoolId?: string\n ): Promise {\n const result = await this.http.get(\n `${this.userPrefix}/all/high-school-contact/byStudySubjectId/${studySubjectId}`,\n {\n params: {\n externalSchoolId,\n },\n }\n );\n return result.data;\n }*/\n\n public async getStatisticRegistrationGU(\n projectId: number,\n externalSchoolId: string\n ): Promise {\n const result = await this.http.get(\n `${this.studySubjectPrefix}/byProjectId/${projectId}/gu/statistic-registration/byExternalSchoolId/${externalSchoolId}`\n );\n return result.data;\n }\n\n public async getStatisticAllocationGU(\n projectId: number,\n externalSchoolId: string\n ): Promise {\n const result = await this.http.get(\n `${this.studySubjectPrefix}/byProjectId/${projectId}/gu/statistic-allocation/byExternalSchoolId/${externalSchoolId}`\n );\n return result.data;\n }\n}\n\nexport default new DashboardService();\n","import dashboardService from '@/services/DashboardService';\nimport {\n IStatisticAllocation,\n IStatisticRegistration,\n IStatisticSubjectCapacity,\n} from '@/types/StudentStudySubject';\n//import { IUserDto } from '@/types/User';\nimport { action, makeObservable, observable } from 'mobx';\nimport { RootStore } from '.';\n\nclass DashboardStore {\n rootStore: RootStore;\n statisticCapacityVGS: IStatisticSubjectCapacity[];\n //highSchoolContacts: IUserDto[];\n statisticRegistration: IStatisticRegistration | null;\n statisticAllocation: IStatisticAllocation | null;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n this.statisticCapacityVGS = [];\n //this.highSchoolContacts = [];\n this.statisticRegistration = null;\n this.statisticAllocation = null;\n\n makeObservable(this, {\n statisticCapacityVGS: observable,\n //highSchoolContacts: observable,\n statisticRegistration: observable,\n statisticAllocation: observable,\n setStatisticCapacityVGS: action,\n //setHighSchoolContacts: action,\n setStatisticRegistration: action,\n setStatisticAllocation: action,\n });\n }\n\n setStatisticCapacityVGS(data: IStatisticSubjectCapacity[]) {\n this.statisticCapacityVGS = data;\n }\n\n // setHighSchoolContacts(data: IUserDto[]) {\n // this.highSchoolContacts = data;\n // }\n\n setStatisticRegistration(data: IStatisticRegistration) {\n this.statisticRegistration = data;\n }\n\n setStatisticAllocation(data: IStatisticAllocation) {\n this.statisticAllocation = data;\n }\n\n async getStatisticCapacityVGS(\n projectId: number,\n externalSchoolId: string\n ): Promise {\n const data = await dashboardService.getStatisticCapacityVGS(\n projectId,\n externalSchoolId\n );\n this.setStatisticCapacityVGS(data);\n }\n\n /*async getAllHighSchoolContactByStudySubjectId(\n studySubjectId: number,\n externalSchoolId?: string\n ): Promise {\n const data = await dashboardService.getAllHighSchoolContactByStudySubjectId(\n studySubjectId,\n externalSchoolId\n );\n this.setHighSchoolContacts(data);\n }*/\n\n async getStatisticRegistrationGU(\n projectId: number,\n externalSchoolId: string\n ): Promise {\n const data = await dashboardService.getStatisticRegistrationGU(\n projectId,\n externalSchoolId\n );\n this.setStatisticRegistration(data);\n }\n\n async getStatisticAllocationGU(\n projectId: number,\n externalSchoolId: string\n ): Promise {\n const data = await dashboardService.getStatisticAllocationGU(\n projectId,\n externalSchoolId\n );\n this.setStatisticAllocation(data);\n }\n}\n\nexport default DashboardStore;\n","import { SnackbarOrigin } from '@material-ui/core';\nimport { Color } from '@material-ui/lab';\nimport { action, makeAutoObservable } from 'mobx';\nimport { RootStore } from '.';\n\nclass ErrorStore {\n public rootStore: RootStore;\n\n public open = false;\n public message = '';\n public severity: Color = 'error';\n public duration = 5000;\n public anchorOrigin: SnackbarOrigin = {\n vertical: 'top',\n horizontal: 'right',\n };\n\n constructor(rootStore: RootStore) {\n makeAutoObservable(this);\n this.rootStore = rootStore;\n }\n\n @action\n showErrorMessage = (\n message: string,\n severity?: Color,\n duration?: number,\n anchorOrigin?: SnackbarOrigin\n ) => {\n this.message = message;\n\n if (severity) this.severity = severity;\n if (duration) this.duration = duration;\n if (anchorOrigin) this.anchorOrigin = anchorOrigin;\n\n this.open = true;\n };\n\n @action\n handleClose = (event?: React.SyntheticEvent, reason?: string) => {\n if (reason === 'clickaway') return;\n\n this.open = false;\n this.message = '';\n this.severity = 'error';\n this.duration = 5000;\n this.anchorOrigin = {\n vertical: 'top',\n horizontal: 'right',\n };\n };\n}\n\nexport default ErrorStore;\n","import { AxiosInstance } from 'axios';\nimport { PaginationResult } from '../types/PaginationResult';\nimport { newHttpInstance, prepareGetQuery } from '../utils/httpUtils';\n\nclass BaseService {\n public http: AxiosInstance;\n public typeName: string;\n\n constructor(typeName: string) {\n const apiBase = '/api/' + typeName;\n this.typeName = typeName;\n this.http = newHttpInstance(apiBase);\n }\n\n async getAll(): Promise {\n try {\n const res = await this.http.get('/all');\n return res.data as Type[];\n } catch (error: any) {\n console.error('Error fetching all ' + this.typeName + 's');\n }\n }\n\n async getAllStudySubjectForStudent(): Promise {\n try {\n const res = await this.http.get('/students/all');\n return res.data as Type[];\n } catch (error: any) {\n console.error('Error fetching all ' + this.typeName + 's');\n }\n }\n\n async list(query: Record): Promise> {\n try {\n const { data } = await this.http.get(`/all${prepareGetQuery(query)}`);\n\n return { data: (data.data as Type[]) ?? [], total: data.total ?? 0 };\n } catch (error: any) {\n console.error('Error fetching all ' + this.typeName + 's');\n return { data: [], total: 0 };\n }\n }\n\n async getById(id: number): Promise {\n try {\n const res = await this.http.get('/' + id);\n return res.data as Type;\n } catch (error: any) {\n console.error('Error fetching ' + this.typeName + ' with id ' + id);\n throw error;\n }\n }\n\n async update(value: Type): Promise {\n try {\n await this.http.put('/update', value);\n } catch (error: any) {\n console.error('Error updating ' + this.typeName + value);\n throw error;\n }\n }\n\n async updateV2(value: Type): Promise {\n await this.http.put('/update', value);\n }\n\n async add(value: Type): Promise {\n try {\n await this.http.post('/add', value);\n } catch (error: any) {\n console.error('Error adding ' + this.typeName);\n throw error;\n }\n }\n\n async addV2(value: Type): Promise {\n await this.http.post('/add', value);\n }\n\n async getCurrent(): Promise {\n try {\n const res = await this.http.get('/current');\n return res.data as Type;\n } catch (error: any) {\n console.error('Error fetching current');\n }\n }\n\n async delete(id: number): Promise {\n try {\n await this.http.delete('/delete/' + id);\n } catch (error: any) {\n console.error('Error deleting ' + this.typeName + ' with id ' + id);\n throw error;\n }\n }\n}\n\nexport default BaseService;\n","import IMessagePaginationRequest from '@/types/dto/Messages/MessagePaginationRequest.dto';\nimport { PaginationResult } from '@/types/dto/PaginationResult.dto';\nimport Message from '@/types/Message';\nimport { prepareGetQuery } from '@/utils/httpUtils';\nimport BaseService from './BaseService';\n\nclass MessageService extends BaseService {\n constructor() {\n super('message');\n }\n\n public async getMessages(\n req: IMessagePaginationRequest\n ): Promise> {\n const res = await this.http.get(\n '/' + prepareGetQuery(req as unknown as Record)\n );\n return res.data;\n }\n}\n\nexport default new MessageService();\n","import MessageService from '@/services/MessageService';\nimport IMessagePaginationRequest from '@/types/dto/Messages/MessagePaginationRequest.dto';\nimport IMessage from '@/types/Message';\nimport { makeAutoObservable } from 'mobx';\nimport { RootStore } from '.';\n\nclass MessageStore {\n public rootStore: RootStore;\n\n public messages: IMessage[] = [];\n public count = 0;\n\n constructor(rootStore: RootStore) {\n makeAutoObservable(this);\n this.rootStore = rootStore;\n }\n\n getMessages = async (req: IMessagePaginationRequest) => {\n const data = await MessageService.getMessages(req);\n if (data) {\n this.messages = data.data;\n this.count = data.count;\n }\n };\n}\n\nexport default MessageStore;\n","import MessageTemplate from '@/types/MessageTemplate';\nimport BaseService from './BaseService';\n\nclass MessageTemplateService extends BaseService {\n constructor() {\n super('messageTemplate');\n }\n}\n\nexport default new MessageTemplateService();\n","enum MessageTemplateName {\n StudentAddedPrioritization = 1,\n StudentAlteredPrioritization = 2,\n StudentCourseConfirmed = 3,\n StudentEvaluation = 4,\n GUProritizationClosingReminder = 5,\n GUEvaluationMessage = 6,\n EventCancelled = 7,\n}\n\nexport default MessageTemplateName;\n","export enum SchoolStatus {\n ALL = 0, // Alle\n ACTIVATE = 1, // Aktive\n DEACTIVATE = 2, // Deaktiverte\n}\n","import MessageTemplateAttributes from '../enums/MessageTemplateAttribute';\nimport MessageTemplateName from '../enums/MessageTemplateName';\n\nconst attr = MessageTemplateAttributes;\nconst tem = MessageTemplateName;\n\nconst availableMessageTemplateAttributes: {\n [key in MessageTemplateName]: MessageTemplateAttributes[];\n} = {\n [tem.StudentAddedPrioritization]: [attr.USER_NAME, attr.LIST_OF_COURSES],\n [tem.StudentAlteredPrioritization]: [attr.USER_NAME, attr.LIST_OF_COURSES],\n [tem.StudentCourseConfirmed]: [\n attr.USER_NAME,\n attr.COURSE_NAME,\n attr.COURSE_SCHOOL_NAME,\n attr.COURSE_SCHOOL_ADDRESS,\n attr.COURSE_ROOM_NUMBER,\n attr.COURSE_DATE_TIME,\n ],\n [tem.StudentEvaluation]: [\n attr.USER_NAME,\n attr.COURSE_NAME,\n attr.COURSE_SCHOOL_NAME,\n attr.COURSE_SCHOOL_ADDRESS,\n attr.COURSE_ROOM_NUMBER,\n attr.COURSE_DATE_TIME,\n attr.EVALUATION_LINK,\n ],\n [tem.GUProritizationClosingReminder]: [\n attr.USER_NAME,\n attr.END_OF_BOOKING,\n attr.PORTAL_LINK,\n ],\n [tem.GUEvaluationMessage]: [attr.USER_NAME, attr.PORTAL_LINK],\n [tem.EventCancelled]: [\n attr.USER_NAME,\n attr.COURSE_NAME,\n attr.COURSE_SCHOOL_NAME,\n attr.COURSE_SCHOOL_ADDRESS,\n attr.COURSE_ROOM_NUMBER,\n attr.COURSE_DATE_TIME,\n ],\n};\n\nexport default availableMessageTemplateAttributes;\n","import MessageTemplateAttributes from '../enums/MessageTemplateAttribute';\n\nconst attr = MessageTemplateAttributes;\nconst messageTemplateDataDescriptions: {\n [key in MessageTemplateAttributes]: string;\n} = {\n [attr.USER_NAME]: 'Fullt navn på brukeren som meldingen sendes til.',\n [attr.LIST_OF_COURSES]:\n 'Ferdig formatert liste over en students tre prioriteringer.',\n [attr.COURSE_NAME]:\n 'Navn på utdanningsprogrammet kurset holdes for. Eks: Idrettsfag',\n [attr.COURSE_SCHOOL_ADDRESS]: 'Adresse til skolen med postnummer og by.',\n [attr.COURSE_SCHOOL_NAME]: 'Navn på skolen kurset holdes på.',\n [attr.COURSE_ROOM_NUMBER]: 'Romnummer lagret for kurset.',\n [attr.COURSE_DATE_TIME]: 'Tid og dato for kurset.',\n [attr.END_OF_BOOKING]:\n 'Tid og dato når registreringsperioden for prosjektet ender.',\n [attr.EVALUATION_LINK]: 'Link til evaluering av gjennomført kurs.',\n [attr.PORTAL_LINK]: 'Link til portalen.',\n};\n\nexport default messageTemplateDataDescriptions;\n","import availableMessageTemplateAttributes from './constants/AvailableMessageTemplateAttributes';\nimport messageTemplateDataDescriptions from './constants/MessageTemplateDataDescription';\nimport MessageTemplateAttribute from './enums/MessageTemplateAttribute';\nimport MessageTemplateName from './enums/MessageTemplateName';\nimport { MessageTemplateType } from './enums/MessageTemplateType';\n\nclass MessageTemplate {\n constructor(\n public id: number,\n public templateName: MessageTemplateName,\n public name: string,\n public emailSubject: string,\n public emailBody: string,\n public sms: string,\n public sendEmail: boolean,\n public sendSMS: boolean,\n public recipientType: MessageTemplateType\n ) {}\n\n public static fromJson(json: any): MessageTemplate {\n return new MessageTemplate(\n json.id,\n json.templateName,\n json.name,\n json.emailSubject,\n json.emailBody,\n json.sms,\n json.sendEmail,\n json.sendSMS,\n json.recipientType\n );\n }\n\n getAvailableAttributes(): {\n key: MessageTemplateAttribute;\n description: string;\n }[] {\n return availableMessageTemplateAttributes[this.templateName].map(\n (attribute) => ({\n key: attribute,\n description: messageTemplateDataDescriptions[attribute],\n })\n );\n }\n}\n\nexport default MessageTemplate;\n","import MessageTemplateService from '@/services/MessageTemplateService';\nimport MessageTemplate from '@/types/MessageTemplate';\nimport { action, makeAutoObservable } from 'mobx';\nimport { RootStore } from '.';\n\nclass MessageTemplateStore {\n public rootStore: RootStore;\n public messageTemplates: MessageTemplate[] = [];\n public currentMessageTemplate?: MessageTemplate;\n\n constructor(rootStore: RootStore) {\n makeAutoObservable(this);\n this.rootStore = rootStore;\n }\n\n @action\n getAllMessageTemplates = async () => {\n const templates = await MessageTemplateService.getAll();\n if (templates) {\n this.messageTemplates = templates.map((t) => MessageTemplate.fromJson(t));\n }\n };\n\n @action\n setCurrentMessageTemplate = (template?: MessageTemplate) => {\n this.currentMessageTemplate = template;\n };\n\n @action\n submitCurrentMessageTemplate = async () => {\n if (this.currentMessageTemplate) {\n try {\n await MessageTemplateService.update(this.currentMessageTemplate);\n } catch (error) {\n this.rootStore.errorStore.showErrorMessage(\n 'Det har oppstått et problem med å oppdatere meldingsmalen'\n );\n }\n }\n };\n}\n\nexport default MessageTemplateStore;\n","import { IProject } from '../types/Project';\nimport BaseService from './BaseService';\n\nclass SchoolService extends BaseService {\n constructor() {\n super('Project');\n }\n\n async getCurrent(): Promise {\n try {\n const res = await this.http.get('/current');\n return res.data as IProject;\n } catch (error) {\n console.error('Could not get current project: ' + error);\n }\n }\n\n async getById(id: number): Promise {\n try {\n const res = await this.http.get(`${id}`);\n return res.data as IProject;\n } catch (error) {\n console.error(`Could not get project by ${id}, cause: ${error}`);\n }\n }\n\n async getTotalAllocated(id: number | undefined): Promise {\n const result = await this.http.get(`/total/${id}`);\n return result.data;\n }\n\n async publishProject(id: number | undefined) {\n await this.http.get(`/publishProject/${id}`);\n }\n\n async updateProject(project: IProject) {\n await this.http.put('/update', {\n ...project,\n });\n }\n\n async getAssignSurvey(id: number) {\n const result = await this.http.get(`${id}/survey`);\n return result.data;\n }\n}\n\nexport default new SchoolService();\n","import { action, computed, makeAutoObservable } from 'mobx';\nimport { RootStore } from '.';\nimport ProjectService from '../services/ProjectService';\nimport { IProject } from '../types/Project';\n\nclass ProjectStore {\n public rootStore: RootStore;\n public projects: IProject[] = [];\n public tableList: IProject[] = [];\n public totalCount = 0;\n public totalAllocated = 0;\n public currentProject: IProject | null = null;\n public editingProject: IProject | null = null;\n public currentSurveyId = 0;\n\n constructor(rootStore: RootStore) {\n makeAutoObservable(this);\n this.rootStore = rootStore;\n }\n\n @action\n async create(project: IProject) {\n await ProjectService.addV2(project);\n return true;\n }\n\n @action\n async update(project: IProject) {\n await ProjectService.updateProject(project);\n this.setTableList([\n ...this.tableList.map((x) => (x.id !== project.id ? x : { ...project })),\n ]);\n return true;\n }\n\n async list(query: Record, isTableFetch = false) {\n const { data, total } = await ProjectService.list(query);\n\n if (!isTableFetch) {\n this.setProjects(data);\n }\n\n if (isTableFetch) {\n this.setTableList(data);\n this.setTotalCount(total);\n }\n }\n\n getActiveProjects() {\n return this.list({});\n }\n\n getActiveProjectsForTable() {\n return this.list({}, true);\n }\n\n getArchivedProjects() {\n return this.list({ isArchived: true }, true);\n }\n\n @action\n setTableList(data: IProject[]) {\n this.tableList = data;\n }\n\n @action\n setProjects(data: IProject[]) {\n this.projects = data;\n }\n\n @action\n setTotalCount(total: number) {\n this.totalCount = total;\n }\n\n @action\n setCurrentProject(project: IProject | null) {\n this.currentProject = project;\n }\n\n @action\n setCurrentSurveyId(id: number) {\n this.currentSurveyId = id;\n }\n\n @computed\n get arrangedProjects(): IProject[] {\n let array: IProject[] = [];\n\n if (this.currentProject) array.push(this.currentProject);\n\n array = [\n ...array,\n ...this.projects.filter((p) => {\n if (!this.currentProject) return true;\n return p.id !== this.currentProject.id;\n }),\n ];\n\n return array;\n }\n\n async getCurrent() {\n const result = await ProjectService.getCurrent();\n\n if (result) {\n this.setCurrentProject(result);\n }\n }\n\n reArrangeProjects() {\n let arrangedArray = [];\n this.currentProject && arrangedArray.push(this.currentProject);\n arrangedArray = [\n ...arrangedArray,\n ...this.projects.filter((p) => {\n if (!this.currentProject) return true;\n return this.currentProject.id !== p.id;\n }),\n ];\n this.projects = arrangedArray;\n }\n\n async getLeftMenuList() {\n this.getActiveProjects();\n this.getCurrent();\n }\n\n async isCurrentProjectInCoursePeriod() {\n\n if(this.currentProject?.coursePeriodStartDate && this.currentProject.coursePeriodEndDate){\n const start = new Date(this.currentProject.coursePeriodStartDate);\n const end = new Date( this.currentProject.coursePeriodEndDate);\n const now = new Date();\n\n return start < now && end > now;}\n return false;\n }\n\n @action setEdittingProject(project: IProject | null) {\n this.editingProject = project;\n }\n\n openProjectPanel(project: IProject) {\n this.setEdittingProject(project);\n this.rootStore.stateStore.setDrawerMenuIsOpen(false);\n }\n\n closeProjectPanel() {\n this.setEdittingProject(null);\n }\n\n async deleteProject(id: number) {\n await ProjectService.delete(id);\n this.setTableList([...this.tableList.filter((x) => x.id !== id)]);\n }\n\n async getById(id: number) {\n const result = await ProjectService.getById(id);\n\n if (result) {\n this.setCurrentProject(result);\n }\n }\n\n async getAssignSurvey(id: number) {\n const result = await ProjectService.getAssignSurvey(id);\n\n if (result) {\n this.setCurrentSurveyId(result);\n }\n }\n\n @action\n async getTotalAllocated(id: number | undefined) {\n this.totalAllocated = await ProjectService.getTotalAllocated(id);\n }\n @action\n async publishProject(id: number | undefined) {\n await ProjectService.publishProject(id);\n }\n}\n\nexport default ProjectStore;\n","export enum AddressType {\n Unknown = 0,\n Private = 1,\n School = 2\n}\n\nexport default interface IAddress {\n id?: number\n street: string\n zipCode: string\n city: string\n country: string\n addressType: AddressType \n}\n\nexport class Address implements IAddress {\n id?: number | undefined;\n street: string;\n zipCode: string;\n city: string;\n country: string;\n addressType: AddressType;\n\n constructor() {\n this.street = '';\n this.zipCode = '';\n this.city = '';\n this.country = '';\n this.addressType = AddressType.Unknown\n }\n}\n\n","class UnavailableDate {\n id?: number;\n externalSchoolId: string;\n start: Date;\n end: Date;\n comment: string;\n\n constructor(\n externalSchoolId: string,\n comment: string,\n start = new Date(),\n end = new Date(),\n id = 0\n ) {\n this.externalSchoolId = externalSchoolId;\n this.start = new Date(start);\n this.end = new Date(end);\n this.comment = comment;\n this.id = id;\n }\n\n overlapsWith(otherDate: UnavailableDate) {\n return this.start <= otherDate.end && this.end >= otherDate.start;\n }\n\n static mapFromDto(ud: UnavailableDate) {\n return new UnavailableDate(\n ud.externalSchoolId,\n ud.comment,\n ud.start,\n ud.end,\n ud.id\n );\n }\n}\n\nexport default UnavailableDate;\n","import { IClass } from '@/types/Class';\nimport IDistanceAndPriority from '@/types/DistanceAndPriority';\nimport IStudentPaginationRequest from '@/types/dto/Schools/StudentPaginationRequest.dto';\nimport { IStudentPaginationResponse } from '@/types/dto/Schools/StudentPaginationResponse.dto';\nimport { SchoolStatus } from '@/types/enums/SchoolStatus';\nimport UnavailableDate from '@/types/UnavailableDate';\nimport { User } from '@/types/User';\nimport { UserRole } from '@/types/UserRole';\nimport School, { SchoolType } from '../types/School';\nimport http, { prepareGetQuery } from '../utils/httpUtils';\nimport BaseService from './BaseService';\n\nclass SchoolService extends BaseService {\n constructor() {\n super('school');\n }\n\n async getPopulatedSchools(\n schoolType: SchoolType,\n filter = SchoolStatus.ALL\n ): Promise {\n try {\n let query = '/api/school/populated/' + schoolType;\n query += `?filter=${filter}`;\n const res = await http.get(query);\n return res.data as School[];\n } catch (error) {\n console.error('Error getting populated schools: ' + error);\n }\n }\n\n async getByExternalId(externalId: string): Promise {\n try {\n const res = await http.get('/api/school/byExternalId/' + externalId);\n return res.data as School;\n } catch (error) {\n console.error('Error getting school by externalId: ' + error);\n }\n }\n\n async deleteByExternalId(externalId: string): Promise {\n try {\n await this.http.delete('/delete/' + externalId);\n } catch (error: any) {\n console.error(\n 'Error deleting ' + this.typeName + ' with id ' + externalId\n );\n }\n }\n\n async getConnectedUsers(\n externalId: string,\n userRole: UserRole\n ): Promise {\n try {\n const res = await this.http.get(\n `/connected-users?externalSchoolId=${externalId}&userRole=${userRole}`\n );\n return res.data;\n } catch (error: any) {\n console.error(\n 'Error getting users connected to school with externalId ' + externalId\n );\n }\n }\n\n async getStudents(\n req: IStudentPaginationRequest\n ): Promise {\n try {\n const res = await this.http.get(\n '/students' + prepareGetQuery(req as unknown as Record)\n );\n return res.data;\n } catch (error) {\n console.error('Error getting students: ' + error);\n }\n }\n\n async getDistanceAndPrioritiesByGUId(\n externalId?: string\n ): Promise {\n try {\n const res = await this.http.get(\n '/distance-priorities-gu?externalId=' + externalId\n );\n return res.data;\n } catch (error: any) {\n console.error(\n 'Error getting distance and priorities for school with externalId ' +\n externalId\n );\n }\n }\n\n async saveUnavailableDates(\n externalId: string,\n unavailableDates: UnavailableDate[]\n ) {\n try {\n await this.http.post('/unavailable-dates', {\n externalId,\n unavailableDates,\n });\n } catch (error: any) {\n console.error(\n 'Could not add unavailable dates to school with externalId: ' +\n externalId\n );\n }\n }\n\n public async getAllSecondarySchoolByProjectId(\n projectId: number\n ): Promise {\n const result = await this.http.get(\n `project/${projectId}/all/secondary-school`\n );\n return result.data;\n }\n\n async getClasses(externalSchoolId: string): Promise {\n const result = await this.http.get(\n `/classes?externalSchoolId=${externalSchoolId}`\n );\n return result.data;\n }\n\n async getHighSchoolByProjectId(\n projectId: number,\n externalSchoolId?: string\n ): Promise {\n const result = await this.http.get(`byProjectId/${projectId}`, {\n params: {\n externalSchoolId,\n },\n });\n return result.data;\n }\n\n async getSchoolBySchoolType(schoolType: SchoolType): Promise {\n const result = await this.http.get(`bySchoolType/${schoolType}`);\n return result.data;\n }\n}\n\nexport default new SchoolService();\n","import IAddress, { Address } from './Address';\nimport { IClass } from './Class';\nimport IContactPerson from './ContactPerson';\nimport IDistanceAndPriority from './DistanceAndPriority';\nimport { ISchoolStudySubject } from './StudySubject';\nimport UnavailableDate from './UnavailableDate';\n\nexport enum SchoolType {\n Unknown = 0,\n HighSchool = 1,\n SecondarySchool = 2,\n}\n\nexport interface ISchool {\n unavailableDates: UnavailableDate[];\n studySubjects: ISchoolStudySubject[];\n contactPeople: IContactPerson[];\n id: number;\n schoolName: string;\n externalId: string;\n address: IAddress;\n schoolType: SchoolType;\n deactivated: boolean;\n classes: IClass[];\n}\n\nexport default class School {\n unavailableDates: UnavailableDate[];\n studySubjects: ISchoolStudySubject[];\n contactPeople: IContactPerson[];\n schoolName: string;\n externalId?: string | undefined;\n address: IAddress;\n schoolType: SchoolType;\n distanceAndPriorities?: IDistanceAndPriority[];\n deactivated: boolean;\n classes: IClass[];\n\n constructor() {\n this.unavailableDates = [];\n this.studySubjects = [];\n this.contactPeople = [];\n this.schoolName = '';\n this.address = new Address();\n this.schoolType = SchoolType.Unknown;\n this.distanceAndPriorities = [];\n this.deactivated = false;\n this.classes = [];\n }\n}\n\nexport interface IUpdateSchoolDto extends School {\n distanceAndPriorities: IDistanceAndPriority[];\n}\n","export default interface IStudySubject {\n id: number;\n studySubjectName: string;\n description: string;\n category: StudySubjectCategory;\n deactivated: boolean;\n isHide: boolean;\n}\n\nexport interface ISchoolStudySubject {\n id?: number;\n studySubjectId: number;\n studySubject: IStudySubject;\n}\n\nexport interface IContactPeopleSubject {\n contactName: string;\n emailAddress: string;\n phoneNumber: string;\n}\n\nexport interface ISchoolContact {\n id: number;\n schoolName: string;\n}\n\nexport interface ISchoolStudySubjectInfo {\n schoolContact: ISchoolContact;\n address: string;\n contactPeople: IContactPeopleSubject;\n}\n\nexport interface IStudentStudySubject {\n id: number;\n studentId: number;\n priority: number;\n studySubjectId: number;\n studySubject: IStudySubject;\n}\n\nexport interface IAdminStatisticSubjectCapacity {\n studySubject: IStudySubject;\n capacity: number;\n numberJoinedStudent: number;\n}\nexport enum StudySubjectCategory {\n Unknown = 0,\n Studieforberedende = 1,\n Yrkesfaglig = 2,\n}\n\nexport const getStudySubjectCategoryName = (category: StudySubjectCategory) =>\n ({ 0: 'Udefinert', 1: 'Studieforberedende', 2: 'Yrkesfaglig' }[category]);\n\nexport const emptyStudySubject: IStudySubject = {\n id: 0,\n studySubjectName: '',\n description: '',\n category: StudySubjectCategory.Unknown,\n deactivated: false,\n isHide: false,\n};\n\nexport class StudentStudySubject {\n id?: number;\n studentId = 0;\n priority = 1;\n studySubjectId = 0;\n projectId = 0;\n}\n","import { IClass } from '@/types/Class';\nimport IDistanceAndPriority from '@/types/DistanceAndPriority';\nimport IStudentPaginationRequest from '@/types/dto/Schools/StudentPaginationRequest.dto';\nimport { SchoolStatus } from '@/types/enums/SchoolStatus';\nimport UnavailableDate from '@/types/UnavailableDate';\nimport { User } from '@/types/User';\nimport { UserRole } from '@/types/UserRole';\nimport { action, makeAutoObservable } from 'mobx';\nimport { RootStore } from '.';\nimport SchoolService from '../services/SchoolService';\nimport School, { IUpdateSchoolDto, SchoolType } from '../types/School';\n\nclass SchoolStore {\n public rootStore: RootStore;\n public allSchools: School[] = [];\n public highSchools: School[] = [];\n public secondarySchools: School[] = [];\n public currentSchool: School | undefined;\n public editingSchool: School = new School();\n public connectedUsers: User[] = [];\n public distanceAndPriorities: IDistanceAndPriority[] = [];\n public totalStudentCount = 0;\n public noPrioritiesCount = 0;\n public firstPriorityCount = 0;\n public assignedStudentsCount = 0;\n public highSchoolHeadCell: School[] = [];\n public schoolBySchoolType: School[] = [];\n public schoolFilterByUserRole: School[] = [];\n public listClass: IClass[] = [];\n public isSetHasSpecialNeeds = false;\n public externalIdSecondarySchool = '';\n public loading = false;\n\n constructor(rootStore: RootStore) {\n makeAutoObservable(this);\n this.rootStore = rootStore;\n }\n\n @action\n setCurrentSchool = (school: School | undefined) =>\n (this.currentSchool = school);\n\n @action\n setEditingSchool = (school: School) => (this.editingSchool = school);\n\n @action\n setUnavailableDates = (unavailableDates: UnavailableDate[]) =>\n (this.editingSchool = { ...this.editingSchool, unavailableDates });\n\n @action\n saveUnavailableDates = async () => {\n if (!this.editingSchool.externalId) {\n console.error('editingSchool.externalId is missing');\n return;\n }\n await SchoolService.saveUnavailableDates(\n this.editingSchool.externalId,\n this.editingSchool.unavailableDates\n );\n\n this.getPopulatedSecondarySchools();\n };\n\n @action\n resetEditingSchool = () => (this.editingSchool = new School());\n\n @action\n getAllSchools = async () => {\n const schools = await SchoolService.getAll();\n if (schools) this.highSchools = schools;\n };\n\n @action\n getPopulatedHighSchools = async (filter = SchoolStatus.ALL) => {\n this.loading = true;\n const schools = await SchoolService.getPopulatedSchools(\n SchoolType.HighSchool,\n filter\n );\n if (schools) {\n this.highSchools = schools;\n }\n this.loading = false;\n };\n\n @action\n getPopulatedSecondarySchools = async (filter = SchoolStatus.ALL) => {\n let schools = await SchoolService.getPopulatedSchools(\n SchoolType.SecondarySchool,\n filter\n );\n if (schools) {\n schools = schools.map((s) => ({\n ...s,\n unavailableDates: s.unavailableDates.map(UnavailableDate.mapFromDto),\n }));\n this.secondarySchools = schools;\n }\n };\n\n @action\n getSchoolById = async (id: number) =>\n (this.currentSchool = await SchoolService.getById(id));\n\n @action\n getSchoolByExternalId = async (externalId: string) => {\n this.currentSchool = await SchoolService.getByExternalId(externalId);\n await this.getClasses();\n };\n\n @action\n async getSchoolByUser() {\n if (this.rootStore.userStore.user?.externalSchoolId) {\n this.currentSchool = await SchoolService.getByExternalId(\n this.rootStore.userStore.user?.externalSchoolId\n );\n }\n }\n\n @action\n updateSchool = async (school: IUpdateSchoolDto) => {\n await SchoolService.update(school);\n\n if (school.schoolType === SchoolType.HighSchool)\n await this.getPopulatedHighSchools(SchoolStatus.ALL);\n\n if (school.schoolType === SchoolType.SecondarySchool)\n await this.getPopulatedSecondarySchools(SchoolStatus.ALL);\n\n this.connectedUsers = [];\n };\n\n @action\n createSchool = async (school: School): Promise => {\n await SchoolService.add(school);\n\n if (school.schoolType === SchoolType.HighSchool)\n await this.getPopulatedHighSchools(SchoolStatus.ALL);\n if (school.schoolType === SchoolType.SecondarySchool)\n await this.getPopulatedSecondarySchools(SchoolStatus.ALL);\n\n this.connectedUsers = [];\n };\n\n @action\n deleteSchool = async (externalId: string): Promise => {\n await SchoolService.deleteByExternalId(externalId);\n\n const deleteIndex = this.allSchools.findIndex(\n (s) => s.externalId === externalId\n );\n if (deleteIndex > -1) this.allSchools.splice(deleteIndex, 1);\n };\n\n @action\n getConnectedUsers = async (\n externalId: string,\n userRole: UserRole\n ): Promise => {\n const users = await SchoolService.getConnectedUsers(externalId, userRole);\n\n if (users) this.connectedUsers = users;\n };\n\n @action\n getStudents = async (req: IStudentPaginationRequest) => {\n const response = await SchoolService.getStudents(req);\n if (response) {\n this.connectedUsers = response.data;\n this.totalStudentCount = response.count;\n this.noPrioritiesCount = response.noPrioritiesCount;\n this.firstPriorityCount = response.firstPriorityCount;\n this.assignedStudentsCount = response.assignedCount;\n }\n };\n\n @action\n getDistanceAndPriotiesByGUId = async (\n externalId?: string,\n addToEditingSchool = false\n ): Promise => {\n const distanceAndPriorities =\n await SchoolService.getDistanceAndPrioritiesByGUId(externalId);\n\n if (distanceAndPriorities) {\n this.distanceAndPriorities = distanceAndPriorities;\n }\n };\n\n @action\n setDistanceAndPriorities = async (value: IDistanceAndPriority[]) => {\n this.distanceAndPriorities = value;\n };\n\n public async getAllSecondarySchoolByProjectId(\n projectId: number\n ): Promise {\n const schools = await SchoolService.getAllSecondarySchoolByProjectId(\n projectId\n );\n this.secondarySchools = schools;\n }\n\n @action\n getClasses = async () => {\n try {\n if (!this.currentSchool || !this.currentSchool.externalId) return;\n const classes = await SchoolService.getClasses(\n this.currentSchool.externalId\n );\n if (classes) this.currentSchool.classes = classes;\n } catch (error) {\n this.rootStore.errorStore.showErrorMessage(\n 'Det har oppstått ett problem med å hente klassene til skolen'\n );\n }\n };\n\n getHighSchoolByProjectId = async (\n projectId: number,\n externalSchoolId?: string\n ): Promise => {\n const schools = await SchoolService.getHighSchoolByProjectId(\n projectId,\n externalSchoolId\n );\n this.highSchoolHeadCell = schools;\n };\n\n getSchoolBySchoolType = async (schoolType: SchoolType): Promise => {\n const schools = await SchoolService.getSchoolBySchoolType(schoolType);\n this.schoolBySchoolType = schools;\n if (this.rootStore.userStore.user?.currentRole === UserRole.Admin) {\n this.schoolFilterByUserRole = this.schoolBySchoolType;\n }\n if (\n this.rootStore.userStore.user?.role === UserRole.HighSchoolContact ||\n this.rootStore.userStore.user?.role === UserRole.Adviser\n ) {\n this.schoolFilterByUserRole = schools.filter(\n (value) =>\n value.externalId === this.rootStore.userStore.user?.externalSchoolId\n );\n }\n };\n\n getClassesByExternalSchoolId = async (\n externalSchoolId: string\n ): Promise => {\n const data = await SchoolService.getClasses(externalSchoolId);\n this.listClass = data;\n };\n\n @action\n setIsSetHasSpecialNeeds = (value: boolean) => {\n this.isSetHasSpecialNeeds = value;\n };\n\n @action\n setExternalIdSecondarySchool = (value: string): void => {\n this.externalIdSecondarySchool = value;\n };\n}\n\nexport default SchoolStore;\n","import { action, makeAutoObservable } from 'mobx';\nimport { RootStore } from '.';\n\nclass StateStore {\n public rootStore: RootStore;\n\n public addProjectFormIsOpen = false;\n public drawerMenuIsOpen = false;\n public userInformationDropdownIsOpen = false;\n public schoolDrawerIsOpen = false;\n public unavailableDateDrawerIsOpen = false;\n public studySubjectDrawerIsOpen = false;\n public importStudentModalIsOpen = false;\n public contactsPersonDrawerIsOpen = false;\n public vgsEditCourseDrawerIsOpen = false;\n public vgsCourseInfoDrawerIsOpen = false;\n public vgsStudySubjectDrawerIsOpen = false;\n\n constructor(rootStore: RootStore) {\n makeAutoObservable(this);\n this.rootStore = rootStore;\n }\n\n @action toggleAddProjectFormIsOpen = () =>\n (this.addProjectFormIsOpen = !this.addProjectFormIsOpen);\n\n @action setAddProjectFormIsOpen = (val: boolean): void => {\n this.addProjectFormIsOpen = val;\n };\n\n @action toggleDrawerMenuIsOpen = () =>\n (this.drawerMenuIsOpen = !this.drawerMenuIsOpen);\n @action setDrawerMenuIsOpen = (val: boolean) => (this.drawerMenuIsOpen = val);\n\n @action toggleUserInformationDropdownIsOpen = () =>\n (this.userInformationDropdownIsOpen = !this.userInformationDropdownIsOpen);\n\n @action setUserInformationDropdownIsOpen = (val: boolean) =>\n (this.userInformationDropdownIsOpen = val);\n\n @action\n setSchoolDrawerIsOpen = (val: boolean) => (this.schoolDrawerIsOpen = val);\n\n @action\n setUnavailableDateDrawerIsOpen = (val: boolean) =>\n (this.unavailableDateDrawerIsOpen = val);\n\n @action\n setStudySubjectDrawerIsOpen = (val: boolean) =>\n (this.studySubjectDrawerIsOpen = val);\n\n @action\n setImportStudentModalIsOpen = (val: boolean) =>\n (this.importStudentModalIsOpen = val);\n\n @action\n setContactsPersonDrawerIsOpen = (val: boolean) => {\n this.contactsPersonDrawerIsOpen = val;\n };\n\n @action\n setVgsEditCourseDrawerIsOpen = (val: boolean) => {\n this.vgsEditCourseDrawerIsOpen = val;\n };\n\n @action\n setVgsCourseInfoDrawerIsOpen = (val: boolean): void => {\n this.vgsCourseInfoDrawerIsOpen = val;\n };\n\n @action\n setVgsStudySubjectDrawerIsOpen = (val: boolean): void => {\n this.vgsStudySubjectDrawerIsOpen = val;\n };\n}\n\nexport default StateStore;\n","import { CreateOrUpdateStudentCourseDto } from '@/types/StudentCourse';\nimport { newHttpInstance } from '@/utils/httpUtils';\nimport { AxiosInstance } from 'axios';\n\nclass StudentCourseService {\n prefix = '/api/StudentCourse';\n http: AxiosInstance;\n\n constructor() {\n this.http = newHttpInstance(this.prefix);\n }\n\n public async updateStudentCourse(\n id: number,\n model: CreateOrUpdateStudentCourseDto\n ): Promise {\n const result = await this.http.put(`/${id}`, model);\n return result.data;\n }\n\n async manualAssignStudentToCourse(\n studentId: number | undefined,\n courseId: number | undefined\n ) {\n await this.http.put('/manualAssignStudentToCourse', {\n studentId,\n courseId,\n });\n }\n\n // public async movingAssign(\n // studentId: number,\n // oldCourseId: number,\n // newCourseId: number\n // ): Promise {\n // await this.http.put('/movingAssign', {\n // studentId,\n // oldCourseId,\n // newCourseId,\n // });\n // }\n\n public async movingAssignMul(\n studentIds: number[],\n oldCourseId: number,\n newCourseId: number\n ): Promise {\n await this.http.put('/movingAssignMul', {\n studentIds,\n oldCourseId,\n newCourseId,\n });\n }\n}\n\nexport default new StudentCourseService();\n","import { CreateOrUpdateStudentCourseDto } from '@/types/StudentCourse';\nimport { RootStore } from '.';\nimport studentCourseService from '@/services/StudentCourseService';\nimport { action } from 'mobx';\n\nclass StudentCourseStore {\n rootStore: RootStore;\n\n constructor(rootStore: RootStore) {\n this.rootStore = rootStore;\n }\n\n @action\n manualAssignStudentToCourse = async (\n studentId: number | undefined,\n courseId: number | undefined\n ): Promise => {\n await studentCourseService.manualAssignStudentToCourse(studentId, courseId);\n };\n\n public async updateStudentCourse(\n id: number,\n model: CreateOrUpdateStudentCourseDto\n ): Promise {\n return await studentCourseService.updateStudentCourse(id, model);\n }\n\n // public async movingAssign(\n // studentId: number,\n // oldCourseId: number,\n // newCourseId: number\n // ): Promise {\n // return await studentCourseService.movingAssign(\n // studentId,\n // oldCourseId,\n // newCourseId\n // );\n // }\n\n public async movingAssignMul(\n studentIds: number[],\n oldCourseId: number,\n newCourseId: number\n ): Promise {\n return await studentCourseService.movingAssignMul(\n studentIds,\n oldCourseId,\n newCourseId\n );\n }\n}\n\nexport default StudentCourseStore;\n","import IStudySubject, {\n IStudentStudySubject,\n StudentStudySubject,\n} from '../types/StudySubject';\nimport BaseService from './BaseService';\n\nclass StudySubjectService extends BaseService {\n constructor() {\n super('studySubject');\n }\n\n getAllIncludingDeactivated = async () => {\n try {\n const res = await this.http.get('/all?includeDeactivated=true');\n return res.data as IStudySubject[];\n } catch (error) {\n console.error('Error getting all study subjects: ' + error);\n }\n };\n\n getByUserId = async (\n userId: number\n ): Promise => {\n try {\n const res = await this.http.get('/byUserId/' + userId);\n return res.data as IStudentStudySubject[];\n } catch (error) {\n console.error('Could not get student study subjects by userId:' + error);\n }\n };\n\n async addOrUpdateStudentPriorities(\n userId: number,\n priorities: number[]\n ): Promise {\n try {\n const res = await this.http.post('/updatePriorities', {\n userId,\n orderedStudySubjects: priorities,\n });\n return res.data as IStudentStudySubject[];\n } catch (error) {\n console.error(\n 'Error updating students study subject priorities: ' + error\n );\n }\n }\n\n async getByExternalSchoolId(\n externalSchoolId: string\n ): Promise {\n try {\n const res = await this.http.get(\n `/byExternalSchoolId/${externalSchoolId}`\n );\n return res.data as IStudySubject[];\n } catch (error: any) {\n console.error('Error get by external school id: ' + externalSchoolId);\n }\n }\n\n async getStudySubjectByProjectId(\n projectId: number,\n externalSchoolId?: string\n ): Promise {\n try {\n const res = await this.http.get(`/byProjectId/${projectId}`, {\n params: {\n externalSchoolId,\n },\n });\n return res.data as IStudySubject[];\n } catch (error: any) {\n console.error('Error get by project id: ' + projectId);\n }\n }\n\n async addOrUpdate(\n models: StudentStudySubject[]\n ): Promise {\n try {\n const res = await this.http.post(`/addOrUpdate`, models);\n return res.data as boolean;\n } catch (error: any) {\n console.error('Error addOrUpdate list StudentStudySubject');\n }\n }\n}\n\nexport default new StudySubjectService();\n","import { KarDateType } from '@/types/commons';\nimport { IProject, INIT_PROJECT } from '@/types/Project';\n\nexport type ProjectAction = {\n type: ProjectActionType;\n payload?: string | KarDateType | IProject;\n};\n\nexport enum ProjectActionType {\n SET = 'SET',\n SET_PROJECT_NAME = 'SET_PROJECT_NAME',\n SET_AVAILABLE_START = 'SET_AVAILABLE_START',\n SET_AVAILABLE_END = 'SET_AVAILABLE_END',\n SET_REGISTERING_START = 'SET_REGISTERING_START',\n SET_REGISTERING_END = 'SET_REGISTERING_END',\n SET_COURSE_START = 'SET_COURSE_START',\n SET_COURSE_END = 'SET_COURSE_END',\n RESET = 'RESET',\n SET_STUDENT_REGISTRATION_TEXT = 'SET_STUDENT_REGISTRATION_TEXT',\n SET_STUDENT_INTRODUCTION_TEXT = 'SET_STUDENT_INTRODUCTION_TEXT',\n}\n\nconst reducer = (state: IProject, action: ProjectAction): IProject => {\n switch (action.type) {\n case ProjectActionType.SET:\n return { ...(action.payload as IProject) };\n\n case ProjectActionType.RESET:\n return { ...INIT_PROJECT };\n\n case ProjectActionType.SET_PROJECT_NAME:\n return { ...state, projectName: action.payload as string };\n\n case ProjectActionType.SET_AVAILABLE_START:\n return { ...state, availablePeriodStartDate: action.payload as Date };\n\n case ProjectActionType.SET_AVAILABLE_END:\n return { ...state, availablePeriodEndDate: action.payload as Date };\n\n case ProjectActionType.SET_REGISTERING_START:\n return { ...state, registeringPeriodStartDate: action.payload as Date };\n\n case ProjectActionType.SET_REGISTERING_END:\n return { ...state, registeringPeriodEndDate: action.payload as Date };\n\n case ProjectActionType.SET_COURSE_START:\n return { ...state, coursePeriodStartDate: action.payload as Date };\n\n case ProjectActionType.SET_COURSE_END:\n return { ...state, coursePeriodEndDate: action.payload as Date };\n\n case ProjectActionType.SET_STUDENT_REGISTRATION_TEXT:\n return { ...state, studentRegistrationText: action.payload as string };\n\n case ProjectActionType.SET_STUDENT_INTRODUCTION_TEXT:\n return { ...state, studentIntroductionText: action.payload as string };\n\n default:\n return { ...INIT_PROJECT };\n }\n};\n\nexport default reducer;\n","import { action, makeAutoObservable } from 'mobx';\nimport { RootStore } from '.';\nimport StudySubjectService from '../services/StudySubjectService';\nimport IStudySubject, {\n emptyStudySubject,\n IStudentStudySubject,\n StudentStudySubject,\n} from '../types/StudySubject';\n\nclass StudySubjectStore {\n public rootStore: RootStore;\n public allStudySubjects: IStudySubject[] = [];\n public chosenStudySubject: IStudySubject = emptyStudySubject;\n public studentStudySubjects: IStudentStudySubject[] = [];\n public studySubjectsBySchoolExternalId: IStudySubject[] = [];\n public studySubjectHeadCell: IStudySubject[] = [];\n\n constructor(rootStore: RootStore) {\n makeAutoObservable(this);\n this.rootStore = rootStore;\n }\n\n @action\n setChosenStudySubject = (studySubject: IStudySubject) => {\n this.chosenStudySubject = studySubject;\n };\n\n @action\n getAllStudySubjects = async (includeDeactivated = false) => {\n let studySubjects: IStudySubject[] | undefined = undefined;\n if (includeDeactivated) {\n studySubjects = await StudySubjectService.getAllIncludingDeactivated();\n } else {\n studySubjects = await StudySubjectService.getAll();\n }\n if (studySubjects) this.allStudySubjects = studySubjects;\n };\n\n @action\n getAllStudySubjectsForStudent = async () => {\n let studySubjects: IStudySubject[] | undefined = undefined;\n studySubjects = await StudySubjectService.getAllStudySubjectForStudent();\n if (studySubjects) this.allStudySubjects = studySubjects;\n };\n\n @action\n getStudySubjectById = async (id: number) => {\n const res = await StudySubjectService.getById(id);\n if (res) this.chosenStudySubject = res;\n };\n\n @action\n updateStudySubject = async (studySubject: IStudySubject) => {\n await StudySubjectService.update(studySubject);\n };\n\n @action\n addStudySubject = async (studySubject: IStudySubject): Promise => {\n await StudySubjectService.add(studySubject);\n\n this.allStudySubjects.push(studySubject);\n };\n\n @action\n deleteStudySubject = async (id: number): Promise => {\n await StudySubjectService.delete(id);\n\n const deleteIndex = this.allStudySubjects.findIndex((s) => s.id === id);\n if (deleteIndex > -1) this.allStudySubjects.splice(deleteIndex, 1);\n };\n\n @action\n getStudySubjectsByUserId = async (userId: number): Promise => {\n const studentStudySubjects = await StudySubjectService.getByUserId(userId);\n if (studentStudySubjects) this.studentStudySubjects = studentStudySubjects;\n };\n\n @action\n async getStudySubjectsByCurrentUser(): Promise {\n const userId = this.rootStore.userStore.user?.id;\n if (userId) {\n const studentStudySubjects = await StudySubjectService.getByUserId(\n userId\n );\n if (studentStudySubjects)\n this.studentStudySubjects = studentStudySubjects;\n }\n }\n\n @action\n addOrUpdateStudentPriorities = async (\n userId: number,\n priorities: number[]\n ) => {\n const newStudentStudySubjects =\n await StudySubjectService.addOrUpdateStudentPriorities(\n userId,\n priorities\n );\n if (newStudentStudySubjects)\n this.studentStudySubjects = newStudentStudySubjects;\n };\n\n @action\n async getStudySubjectName(id: number): Promise {\n if (this.allStudySubjects.length === 0) await this.getAllStudySubjects();\n\n return (\n this.allStudySubjects.find((sub) => sub.id === id)?.studySubjectName ?? ''\n );\n }\n\n async getByExternalSchoolId(externalSchoolId: string): Promise {\n const studySubjects = await StudySubjectService.getByExternalSchoolId(\n externalSchoolId\n );\n\n if (studySubjects) {\n this.studySubjectsBySchoolExternalId = studySubjects;\n }\n }\n\n async getStudySubjectByProjectId(\n projectId: number,\n externalSchoolId?: string\n ): Promise {\n const studySubjects = await StudySubjectService.getStudySubjectByProjectId(\n projectId,\n externalSchoolId\n );\n\n if (studySubjects) {\n this.studySubjectHeadCell = studySubjects;\n }\n }\n\n async addOrUpdate(\n models: StudentStudySubject[]\n ): Promise {\n return await StudySubjectService.addOrUpdate(models);\n }\n}\n\nexport default StudySubjectStore;\n","//import { PaginationRequest } from '@/types/dto/PaginationRequest.dto';\nimport { PaginationResult } from '@/types/dto/PaginationResult.dto';\nimport { IUserDto, User, UserPaginationRequest } from '../types/User';\nimport http, { prepareGetQuery } from '../utils/httpUtils';\nimport BaseService from './BaseService';\n\nclass UserService extends BaseService {\n constructor() {\n super('user');\n }\n\n async getCurrentUser(silent: boolean): Promise {\n try {\n const res = await http.get('/api/user/current');\n return res.data;\n } catch (error: any) {\n if (!silent) console.error('Error fetching current user: ' + error);\n }\n }\n async allocationAllStudents() {\n const res = await http.get('/api/user/allocateAllStudents');\n return res.data;\n }\n\n async setHasSpecialNeeds(userId: number, hasSpecialNeeds: boolean) {\n await this.http.put('/set-has-special-needs', {\n userId,\n hasSpecialNeeds,\n });\n }\n\n /*public async getUserByCourseIdAndExternalClassIdAndExternalSchoolId(\n id: number,\n externalSchoolId: string,\n externalClassId: string,\n model: PaginationRequest\n ): Promise {\n const result = await this.http.get(\n `course/${id}/${externalSchoolId}/${externalClassId}/student${prepareGetQuery(\n model as Record\n )}`\n );\n return result.data;\n }*/\n\n public async getStudentById(\n id: number,\n courseId?: number,\n isMoveStudent?: boolean\n ): Promise {\n const result = await this.http.get(`course/student/${id}`, {\n params: {\n courseId,\n isMoveStudent,\n },\n });\n return result.data;\n }\n\n public async getAllStudentByCourseId(courseId: number): Promise {\n const result = await this.http.get(`course/${courseId}/all/student`);\n return result.data;\n }\n\n public async getAllStudentMinifiedByCourseId(\n courseId: number,\n studentName?: string\n ): Promise {\n const result = await this.http.get(\n `course/${courseId}/all/student/minified`,\n {\n params: {\n studentName,\n },\n }\n );\n return result.data;\n }\n\n public async getUserStudentCourses(userId: number) {\n const result = await this.http.get(`${userId}/student-courses`);\n return result.data;\n }\n\n public async downloadAllStudents(\n externalSchoolId?: string,\n projectId?: number\n ) {\n const response = await this.http.get('/student-csv-export', {\n responseType: 'blob',\n params: {\n externalSchoolId,\n projectId,\n },\n });\n const blob = new Blob([response.data], {\n type: 'application/octet-stream',\n });\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n console.log(response.headers);\n link.download = 'alle-elever-' + new Date().toLocaleDateString() + '.csv';\n link.click();\n }\n\n public async getAllHighSchoolContactByCourseId(\n id: number\n ): Promise {\n const result = await this.http.get(`course/${id}/all/high-school-contact`);\n return result.data;\n }\n\n public async getContactPersonByExternalSchoolId(\n externalSchoolId: string\n ): Promise {\n const result = await this.http.get(\n `course/contact-person/byExternalSchoolId/${externalSchoolId}`\n );\n return result.data;\n }\n\n public async importStudents(\n externalSchoolId: string,\n file: File\n ): Promise {\n const formData = new FormData();\n formData.append('file', file);\n const result = await this.http.post(\n `/import-students/${externalSchoolId}`,\n formData,\n {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n }\n );\n return result.data;\n }\n\n public async downloadImportStudentsTemplate() {\n const response = await this.http.get('/import-students/template', {\n responseType: 'blob',\n });\n\n const blob = new Blob([response.data], {\n type: 'application/octet-stream',\n });\n\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = 'elev-import-mal.xlsx';\n link.click();\n }\n\n public async getContactPersonsByExternalSchoolId(\n externalSchoolId: string\n ): Promise {\n const result = await this.http.get(\n `course/contact-persons/byExternalSchoolId/${externalSchoolId}`\n );\n return result.data;\n }\n\n public async getListUser(\n model: UserPaginationRequest\n ): Promise> {\n const result = await this.http.get(\n `${prepareGetQuery(model as Record)}`\n );\n return result.data;\n }\n\n public async getAllStudentAspirationByProjectId(\n projectId: number,\n externalSchoolId?: string,\n studentName?: string\n ): Promise {\n const result = await this.http.get(\n `project/${projectId}/all/student/aspiration`,\n {\n params: {\n externalSchoolId,\n studentName,\n },\n }\n );\n return result.data;\n }\n}\n\nexport default new UserService();\n","//import { PaginationRequest } from '@/types/dto/PaginationRequest.dto';\nimport { action, makeAutoObservable } from 'mobx';\nimport { RootStore } from '.';\nimport UserService from '../services/UserService';\nimport {\n IAllocationResultDto,\n IUserDto,\n User,\n UserPaginationRequest,\n} from '../types/User';\nimport { UserRole } from '../types/UserRole';\n\nclass UserStore {\n public rootStore: RootStore;\n public user?: User;\n public allocationResult: IAllocationResultDto;\n public listStudentOfCourse: IUserDto[];\n public student?: IUserDto;\n public studentId: number;\n public initStudentId = 0;\n public listHighSchoolContactOfCourse: IUserDto[];\n public loading: boolean;\n public listMinifiedStudentOfCourse: IUserDto[];\n public contactPerson?: User;\n public listContactPerson: User[];\n public listUsers: User[];\n public totalCountListUser: number;\n public createOrUpdate: User;\n public studentAspiration?: IUserDto;\n\n constructor(rootStore: RootStore) {\n makeAutoObservable(this);\n this.rootStore = rootStore;\n this.allocationResult = {\n thirdPriority: 0,\n firstPriority: 0,\n secondPriority: 0,\n };\n this.listStudentOfCourse = [];\n this.listHighSchoolContactOfCourse = [];\n this.loading = false;\n this.listMinifiedStudentOfCourse = [];\n this.studentId = 0;\n this.listContactPerson = [];\n this.listUsers = [];\n this.totalCountListUser = 0;\n this.createOrUpdate = new User();\n }\n\n @action\n setUser = (user: User) => (this.user = user);\n\n @action\n removeUser = () => (this.user = undefined);\n\n @action\n setCurrentRole = (role: UserRole) => {\n if (this.user) {\n this.user.currentRole = role;\n this.user.switchRole = this.user.role / role;\n }\n };\n\n @action\n getCurrentUser = async (silent = false) => {\n const userDto = await UserService.getCurrentUser(silent);\n if (userDto) this.user = User.fromUserDto(userDto);\n };\n\n @action\n allocationAllStudent = async () => {\n const allocationResult = await UserService.allocationAllStudents();\n if (allocationResult) this.allocationResult = allocationResult;\n };\n\n @action\n async updateUser(user: User) {\n await UserService.update(user);\n\n if (user.id === this.user?.id) this.user = user;\n }\n @action\n setHasSpecialNeeds = async (userId: number, hasSpecialNeeds: boolean) => {\n await UserService.setHasSpecialNeeds(userId, hasSpecialNeeds);\n\n const updateIndex = this.rootStore.schoolStore.connectedUsers.findIndex(\n (u) => u.id === userId\n );\n if (updateIndex >= 0) {\n this.rootStore.schoolStore.connectedUsers[updateIndex] = {\n ...this.rootStore.schoolStore.connectedUsers[updateIndex],\n hasSpecialNeeds,\n };\n }\n };\n\n @action\n setListStudentOfCourse(students: IUserDto[]) {\n this.listStudentOfCourse = students;\n }\n\n @action\n setListHighSchoolContactOfCourse(highSchoolContacts: IUserDto[]) {\n this.listHighSchoolContactOfCourse = highSchoolContacts;\n }\n\n @action\n setListMinifiedStudentOfCourse(students: IUserDto[]) {\n this.listMinifiedStudentOfCourse = students;\n }\n\n @action\n setLoading(loading: boolean) {\n this.loading = loading;\n }\n\n @action\n setStudent(student: IUserDto) {\n this.student = student;\n }\n\n @action\n setStudentId(id: number) {\n this.studentId = id;\n }\n\n @action\n resetStudentId() {\n this.studentId = this.initStudentId;\n }\n\n @action\n resetStudent() {\n this.resetStudentId();\n this.student = undefined;\n }\n\n @action\n setContactPerson(user: User) {\n this.contactPerson = user;\n }\n\n @action\n resetContactPerson() {\n this.contactPerson = undefined;\n }\n\n @action\n setListContactPerson(users: User[]) {\n this.listContactPerson = users;\n }\n\n @action\n setListUsers(data: User[]) {\n this.listUsers = data;\n }\n\n @action\n setTotalCountListUser(total: number) {\n this.totalCountListUser = total;\n }\n\n @action\n setCreateOrUpdate(data: User) {\n this.createOrUpdate = data;\n }\n\n @action\n resetCreateOrUpdate() {\n this.createOrUpdate = new User();\n }\n\n /*public async getUserByCourseIdAndExternalClassIdAndExternalSchoolId(\n id: number,\n externalSchoolId: string,\n externalClassId: string,\n model: PaginationRequest\n ): Promise {\n return await UserService.getUserByCourseIdAndExternalClassIdAndExternalSchoolId(\n id,\n externalSchoolId,\n externalClassId,\n model\n );\n }*/\n\n public async getAllStudentByCourseId(courseId: number): Promise {\n const students = await UserService.getAllStudentByCourseId(courseId);\n return students;\n }\n @action\n public async getStudentById(\n id: number,\n courseId?: number,\n isMoveStudent?: boolean\n ): Promise {\n const student = await UserService.getStudentById(\n id,\n courseId,\n isMoveStudent\n );\n this.setStudent(student);\n return student;\n }\n\n public async getAllHighSchoolContactByCourseId(id: number): Promise {\n const highSchoolContacts =\n await UserService.getAllHighSchoolContactByCourseId(id);\n this.setListHighSchoolContactOfCourse(highSchoolContacts);\n }\n\n public async getAllStudentMinifiedByCourseId(\n courseId: number,\n studentName?: string\n ): Promise {\n const students = await UserService.getAllStudentMinifiedByCourseId(\n courseId,\n studentName\n );\n this.setListMinifiedStudentOfCourse(students);\n }\n\n public async getContactPersonByExternalSchoolId(\n externalSchoolId: string\n ): Promise {\n const user = await UserService.getContactPersonByExternalSchoolId(\n externalSchoolId\n );\n this.setContactPerson(user);\n }\n\n @action\n getUserStudentCourses = async () => {\n if (this.user) {\n const studentCourses = await UserService.getUserStudentCourses(\n this.user.id\n );\n this.user.studentCourses = studentCourses;\n }\n };\n\n public async importStudents(\n externalSchoolId: string,\n file: File\n ): Promise {\n const imported = await UserService.importStudents(externalSchoolId, file);\n return imported;\n }\n\n public async downloadImportStudentsTemplate() {\n const template = await UserService.downloadImportStudentsTemplate();\n return template;\n }\n\n public async downloadAllStudents(\n externalSchoolId?: string,\n projectId?: number\n ) {\n await UserService.downloadAllStudents(externalSchoolId, projectId);\n }\n\n public async getContactPersonsByExternalSchoolId(\n externalSchoolId: string\n ): Promise {\n const users = await UserService.getContactPersonsByExternalSchoolId(\n externalSchoolId\n );\n this.setListContactPerson(users);\n }\n\n public async getListUser(model: UserPaginationRequest): Promise {\n this.setLoading(true);\n const { data, count } = await UserService.getListUser(model);\n this.setListUsers(data);\n this.setTotalCountListUser(count);\n this.setLoading(false);\n }\n\n public async getUser(id: number): Promise {\n const data = await UserService.getById(id);\n if (data) {\n this.setCreateOrUpdate(data);\n }\n }\n\n public async createUser(user: User): Promise {\n await UserService.add(user);\n }\n\n public async deleteUser(id: number): Promise {\n await UserService.delete(id);\n }\n\n public async getAllStudentAspirationByProjectId(\n projectId: number,\n externalSchoolId?: string,\n studentName?: string\n ): Promise {\n try {\n this.setLoading(true);\n const students = await UserService.getAllStudentAspirationByProjectId(\n projectId,\n externalSchoolId,\n studentName\n );\n\n this.setListStudentOfCourse(students);\n } finally {\n this.setLoading(false);\n }\n }\n\n public async UpdateStudentList(projectId: number): Promise {\n const students = await UserService.getAllStudentAspirationByProjectId(\n projectId\n );\n\n this.setListStudentOfCourse(students);\n }\n}\n\nexport default UserStore;\n","import { PaginationRequest } from '@/types/dto/PaginationRequest.dto';\nimport { PaginationResult } from '@/types/dto/PaginationResult.dto';\nimport {\n ProjectAssignDto,\n ProjectAssignPaginationRequest,\n} from '@/types/ProjectSurvey';\nimport { IStudentSurvey, ISurvey } from '@/types/Survey';\nimport { ISurveyQuestion } from '@/types/SurveyQuestion';\nimport { prepareGetQuery } from '@/utils/httpUtils';\nimport BaseService from './BaseService';\n\nclass SurveyService extends BaseService {\n constructor() {\n super('Survey');\n }\n\n async getById(id: number): Promise {\n try {\n const res = await this.http.get(`${id}`);\n return res.data as ISurvey;\n } catch (error) {\n console.error(`Could not get survey by ${id}, cause: ${error}`);\n }\n }\n\n async createQuestion(\n surveyId: number,\n model: ISurveyQuestion\n ): Promise {\n const result = await this.http.post(`${surveyId}/question`, model);\n return result.data;\n }\n\n async getSurveyById(id: number): Promise {\n const result = await this.http.get(`byId/${id}`);\n return result.data;\n }\n\n async deleteQuestion(id: number): Promise {\n const result = await this.http.delete(`${id}/question`);\n return result.data;\n }\n\n async deleteAnswer(id: number): Promise {\n const result = await this.http.delete(`${id}/answer`);\n return result.data;\n }\n\n public async getList(\n model: PaginationRequest\n ): Promise> {\n const result = await this.http.get(\n `${prepareGetQuery(model as Record)}`\n );\n return result.data;\n }\n\n public async getAll(): Promise {\n const result = await this.http.get(`all`);\n return result.data;\n }\n\n public async getListProjectAssign(\n model: ProjectAssignPaginationRequest\n ): Promise> {\n const result = await this.http.get(\n `project-assign${prepareGetQuery(model as Record)}`\n );\n return result.data;\n }\n\n async getSurveyByProjectId(\n projectId: number,\n uuid?: string\n ): Promise {\n const result = await this.http.get(`byProjectId/${projectId}`, {\n params: {\n uuid,\n },\n });\n return result.data;\n }\n\n async evaluationUpdateSurvey(uuid: string, survey: ISurvey): Promise {\n await this.http.put(`evaluation/${uuid}/update`, survey);\n }\n\n async getProjectSurveyExcelExport(\n projectId: number,\n surveyId: number\n ): Promise {\n const response = await this.http.get(\n `byProjectId/${projectId}/excel-export`,\n {\n responseType: 'blob',\n params: {\n surveyId,\n },\n }\n );\n\n const blob = new Blob([response.data], {\n type: 'application/octet-stream',\n });\n\n const now = new Date();\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = `project-survey-export-${now.getTime()}.xlsx`;\n link.click();\n }\n}\n\nexport default new SurveyService();\n","import SurveyService from '@/services/SurveyService';\nimport { PaginationRequest } from '@/types/dto/PaginationRequest.dto';\nimport { PaginationResult } from '@/types/dto/PaginationResult.dto';\nimport {\n ProjectAssignDto,\n ProjectAssignPaginationRequest,\n} from '@/types/ProjectSurvey';\nimport { IStudentSurvey, ISurvey } from '@/types/Survey';\n//import { ISurveyAnswer } from '@/types/SurveyAnswer';\nimport { ISurveyQuestion } from '@/types/SurveyQuestion';\nimport { action, computed, makeAutoObservable } from 'mobx';\nimport { RootStore } from '.';\n\nclass UserSurveyStore {\n public rootStore: RootStore;\n public surveys: ISurvey[] = [];\n public tableList: ISurvey[] = [];\n public totalCount = 0;\n public currentSurvey: ISurvey | null = null;\n public editingSurvey: ISurvey | null = null;\n public loadingTableList = false;\n\n constructor(rootStore: RootStore) {\n makeAutoObservable(this);\n this.rootStore = rootStore;\n }\n\n @action\n async create(survey: ISurvey): Promise {\n await SurveyService.addV2(survey);\n return true;\n }\n\n @action\n async update(survey: ISurvey): Promise {\n await SurveyService.updateV2(survey);\n return true;\n }\n\n async getAll() {\n const data = await SurveyService.getAll();\n if (data) {\n this.setSurveys(data);\n }\n }\n\n @action\n setTableList(data: ISurvey[]) {\n this.tableList = data;\n }\n\n @action\n setSurveys(data: ISurvey[]) {\n this.surveys = data;\n }\n\n @action\n setTotalCount(total: number) {\n this.totalCount = total;\n }\n\n @action\n setCurrentSurvey(survey: ISurvey | null) {\n this.currentSurvey = survey;\n }\n\n @computed\n get arrangedSurveys(): ISurvey[] {\n let array: ISurvey[] = [];\n\n if (this.currentSurvey) array.push(this.currentSurvey);\n\n array = [\n ...array,\n ...this.surveys.filter((s) => {\n if (!this.currentSurvey) return true;\n return s.id !== this.currentSurvey.id;\n }),\n ];\n\n return array;\n }\n\n reArrangeSurveys() {\n let arrangedArray = [];\n this.currentSurvey && arrangedArray.push(this.currentSurvey);\n arrangedArray = [\n ...arrangedArray,\n ...this.surveys.filter((s) => {\n if (!this.currentSurvey) return true;\n return this.currentSurvey.id !== s.id;\n }),\n ];\n this.surveys = arrangedArray;\n }\n\n getActiveSurveysForTable() {\n return this.getAll();\n }\n\n @action setEdittingSurvey(survey: ISurvey | null) {\n this.editingSurvey = survey;\n }\n\n openSurveyPanel(survey: ISurvey) {\n this.setEdittingSurvey(survey);\n this.rootStore.stateStore.setDrawerMenuIsOpen(false);\n }\n\n closeProjectPanel() {\n this.setEdittingSurvey(null);\n }\n\n async deleteSurvey(id: number) {\n const result = await SurveyService.delete(id);\n return result;\n }\n\n async getById(id: number) {\n const result = await SurveyService.getById(id);\n\n if (result) {\n this.setCurrentSurvey(result);\n }\n }\n\n async createQuestion(\n surveyId: number,\n model: ISurveyQuestion\n ): Promise {\n const result = await SurveyService.createQuestion(surveyId, model);\n return result;\n }\n\n async getSurveyById(id: number): Promise {\n const result = await SurveyService.getSurveyById(id);\n return result;\n }\n\n async deleteQuestion(id: number): Promise {\n const result = await SurveyService.deleteQuestion(id);\n return result;\n }\n\n async deleteAnswer(id: number): Promise {\n const result = await SurveyService.deleteAnswer(id);\n return result;\n }\n\n public async getList(model: PaginationRequest): Promise {\n this.loadingTableList = true;\n const result = await SurveyService.getList(model);\n this.setTableList(result.data);\n this.setTotalCount(result.count);\n this.loadingTableList = false;\n }\n\n public async getListProjectAssign(\n model: ProjectAssignPaginationRequest\n ): Promise> {\n const result = await SurveyService.getListProjectAssign(model);\n return result;\n }\n\n async getSurveyByProjectId(\n projectId: number,\n uuid?: string\n ): Promise {\n const result = await SurveyService.getSurveyByProjectId(projectId, uuid);\n return result;\n }\n\n async evaluationUpdateSurvey(\n uuid: string,\n survey: ISurvey\n ): Promise {\n await SurveyService.evaluationUpdateSurvey(uuid, survey);\n return true;\n }\n\n async getProjectSurveyExcelExport(\n projectId: number,\n surveyId: number\n ): Promise {\n await SurveyService.getProjectSurveyExcelExport(projectId, surveyId);\n }\n}\n\nexport default UserSurveyStore;\n","import { createContext, useContext } from 'react';\nimport AccountStore from './AccountStore';\nimport AdminDashboardStore from './AdminDashboard.store';\nimport CourseStore from './CourseStore';\nimport CourseTemplateStore from './CourseTemplateStore';\nimport DashboardStore from './DashboardStore';\nimport ErrorStore from './ErrorStore';\nimport MessageStore from './MessageStore';\nimport MessageTemplateStore from './MessageTemplateStore';\nimport ProjectStore from './ProjectStore';\nimport SchoolStore from './SchoolStore';\nimport StateStore from './StateStore';\nimport StudentCourseStore from './StudentCourseStore';\nimport StudySubjectStore from './StudySubjectStore';\nimport UserStore from './UserStore';\nimport UserSurveyStore from './UserSurveyStore';\n\nexport class RootStore {\n public userStore: UserStore;\n public accountStore: AccountStore;\n public stateStore: StateStore;\n public schoolStore: SchoolStore;\n public studySubjectStore: StudySubjectStore;\n public courseStore: CourseStore;\n public projectStore: ProjectStore;\n public errorStore: ErrorStore;\n public adminDashboardStore: AdminDashboardStore;\n public messageTemplateStore: MessageTemplateStore;\n public messageStore: MessageStore;\n public studentCourseStore: StudentCourseStore;\n public dashboardStore: DashboardStore;\n public userSurveyStore: UserSurveyStore;\n public courseTemplateStore: CourseTemplateStore;\n\n constructor() {\n this.userStore = new UserStore(this);\n this.accountStore = new AccountStore(this);\n this.stateStore = new StateStore(this);\n this.schoolStore = new SchoolStore(this);\n this.studySubjectStore = new StudySubjectStore(this);\n this.courseStore = new CourseStore(this);\n this.projectStore = new ProjectStore(this);\n this.errorStore = new ErrorStore(this);\n this.adminDashboardStore = new AdminDashboardStore(this);\n this.messageTemplateStore = new MessageTemplateStore(this);\n this.messageStore = new MessageStore(this);\n this.studentCourseStore = new StudentCourseStore(this);\n this.dashboardStore = new DashboardStore(this);\n this.userSurveyStore = new UserSurveyStore(this);\n this.courseTemplateStore = new CourseTemplateStore(this);\n }\n}\n\nconst StoresContext = createContext(new RootStore());\n\nexport const useStores = () => useContext(StoresContext);\n","import { useStores } from '@/stores';\nimport { Snackbar } from '@material-ui/core';\nimport { Alert } from '@material-ui/lab';\nimport { observer } from 'mobx-react';\nimport React from 'react';\n\nconst ErrorMessage = () => {\n const { errorStore } = useStores();\n const { open, message, severity, duration, anchorOrigin, handleClose } =\n errorStore;\n\n return message ? (\n \n {message}\n \n ) : (\n <>\n );\n};\n\nexport default observer(ErrorMessage);\n","import { FilledInputProps, TextField } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport React from 'react';\n\ninterface IComponentProps {\n label?: string;\n value: string;\n setValue?: (string: string) => void;\n customClass?: string;\n\n helperText?: string;\n\n hasError?: boolean;\n errorText?: string;\n\n inputProps?: Partial;\n\n hasMultiline?: boolean;\n variant?: 'filled' | 'outlined' | 'standard';\n minRows?: number;\n maxRows?: number;\n disabled?: boolean;\n}\n\nconst Component = (props: IComponentProps) => {\n const {\n label,\n value,\n setValue,\n customClass,\n helperText,\n hasError,\n errorText,\n inputProps,\n hasMultiline,\n variant,\n minRows,\n maxRows,\n disabled,\n } = props;\n\n const handleChange = (event: any): void => {\n if (setValue) {\n setValue(event.target.value);\n }\n };\n\n const [isShowingHelperText] = React.useState(\n !!(helperText || errorText)\n );\n\n const [computedHelperText, setComputedHelperText] = React.useState(\n helperText || ''\n );\n\n React.useEffect(() => {\n setComputedHelperText(hasError ? errorText || '' : helperText || '');\n }, [hasError, errorText, helperText]);\n\n return (\n <>\n {computedHelperText}\n ) : (\n <>\n )\n }\n FormHelperTextProps={{ variant: 'filled' }}\n error={hasError}\n InputProps={inputProps}\n multiline={hasMultiline}\n minRows={minRows}\n maxRows={maxRows}\n disabled={disabled}\n />\n \n );\n};\n\nexport const ControlledInputText = observer(Component);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n optionsDatePicker: {\n width: '100%',\n minHeight: '287px',\n background: palette.grey[100],\n borderRadius: '4px',\n margin: '0 auto',\n padding: '16px',\n },\n boxOutputRange: {\n width: '100%',\n height: '52px',\n borderRadius: '4px',\n display: 'flex',\n padding: '12px 13px',\n backgroundColor: '#f5f5f5',\n alignItems: 'center',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport DayPicker, {\n DateUtils,\n NavbarElementProps,\n RangeModifier,\n} from 'react-day-picker';\nimport './index.css';\nimport useStyles from './style';\nimport clsx from 'clsx';\nimport { makeStyles, MenuItem, Select } from '@material-ui/core';\nimport ChevronLeftOutlinedIcon from '@material-ui/icons/ChevronLeftOutlined';\nimport ChevronRightOutlinedIcon from '@material-ui/icons/ChevronRightOutlined';\nimport { getDateTime } from '@/utils/timeUtils';\n\ninterface ICalendarNavbar {\n navbarElementProps: NavbarElementProps;\n changeMonth: (month: Date) => void;\n}\n\nconst calendarNavbarStyles = makeStyles(({ palette }) => ({\n root: {\n '& .MuiSelect-select:focus': {\n backgroundColor: palette.background.default,\n },\n color: palette.primary[900],\n '& .MuiSelect-icon': {\n color: palette.primary[500],\n },\n },\n select: {},\n iconControl: {\n alignSelf: 'center',\n marginLeft: 'auto',\n },\n marginRight: {\n marginRight: '10px',\n },\n pointer: { cursor: 'pointer' },\n selectPadding: {\n padding: '15px 10px 12px 10px',\n },\n}));\n\nconst CalendarNavbar = (props: ICalendarNavbar) => {\n const { navbarElementProps, changeMonth } = props;\n const { month, onPreviousClick, onNextClick, className } = navbarElementProps;\n\n const classes = calendarNavbarStyles();\n\n const handleChange = (m: string) => {\n changeMonth(new Date(month.getFullYear(), MONTHS.indexOf(m)));\n };\n\n return (\n
\n ) =>\n handleChange(e.target.value as string)\n }\n className={clsx(classes.root, classes.select)}\n inputProps={{\n className: classes.selectPadding,\n }}\n >\n {MONTHS.map((m: string) => (\n {`${m} ${month.getFullYear()}`}\n ))}\n \n\n
\n onPreviousClick()}\n />\n onNextClick()}\n />\n
\n
\n );\n};\n\ninterface IComponentProps {\n selection: RangeModifier;\n setSelection: (range: RangeModifier) => void;\n hideDateDisplay?: boolean;\n}\n\nconst MONTHS = [\n 'Jan', // January\n 'Feb', // February\n 'Mar', // March\n 'Apr', // April\n 'Mai', // May\n 'Jun', // June\n 'Jul', // July\n 'Aug', // August\n 'Sep', // September\n 'Okt', // October\n 'Nov', // November\n 'Des', // December\n];\n\nconst WEEKDAYS_LONG = [\n 'Søndag', //0, Sunday\n 'Mandag', //1, Monday\n 'Tirsdag', //2, Tuesday\n 'Onsdag', //3, Wednesday\n 'Torsdag', //4, Thursday\n 'Fredag', //5, Friday\n 'Lørdag', //6, Saturday\n];\nconst WEEKDAYS_SHORT = ['S', 'M', 'T', 'O', 'T', 'F', 'L'];\n\nconst CustomDayPickerRange = (props: IComponentProps) => {\n const { selection, setSelection, hideDateDisplay } = props;\n const classes = useStyles();\n\n const handleDayClick = (day: Date) => {\n const range = DateUtils.addDayToRange(day, selection);\n setSelection(range);\n };\n\n const [initMonth, setInitMonth] = React.useState(new Date());\n const changeMonth = (month: Date): void => {\n setInitMonth(month);\n };\n\n const [selectionText, setSelectionText] = React.useState('');\n React.useEffect(() => {\n if (selection.from && selection.to) {\n const selectionText = `${getDateTime(\n selection.from,\n 'dd. LLL.'\n )}${getDateTime(selection.from, 'yyyy')} - ${getDateTime(\n selection.to,\n 'dd. LLL.'\n )}${getDateTime(selection.to, 'yyyy')}`;\n\n setSelectionText(selectionText.toLocaleLowerCase());\n }\n }, [selection]);\n\n return (\n <>\n
\n {!hideDateDisplay && !!selectionText && (\n
\n
{selectionText}
\n
\n )}\n
\n <>}\n navbarElement={(navbarElementProps: NavbarElementProps) => (\n \n )}\n />\n
\n
\n \n );\n};\n\nexport default CustomDayPickerRange;\n","import { CSSProperties } from '@material-ui/core/styles/withStyles';\n\nexport const flex: CSSProperties = {\n display: 'flex',\n justifyContent: 'center',\n};\n\nexport const flexRow: CSSProperties = {\n ...flex,\n flexDirection: 'row',\n};\nexport const flexCol: CSSProperties = {\n ...flex,\n flexDirection: 'column',\n};\n","import { flexCol } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n wrapper: {\n ...flexCol,\n },\n dateButton: {\n backgroundColor: palette.grey[50],\n height: '52px',\n borderRadius: '4px',\n '&:hover': {\n backgroundColor: palette.grey[200],\n },\n '& .MuiButton-label': {\n color: palette.primary.main,\n display: 'inline-flex',\n justifyContent: 'space-between',\n },\n },\n}));\n\nexport default useStyles;\n","import CustomDayPickerRange from '@/components/CustomDayPickerRange';\nimport { KarDateType } from '@/types/commons';\nimport { getDateFromKarDateType } from '@/utils/timeUtils';\nimport {\n Typography,\n Button,\n Collapse,\n ClickAwayListener,\n} from '@material-ui/core';\nimport { CalendarTodayOutlined } from '@material-ui/icons';\nimport { DateTimeFormatOptions } from 'luxon';\nimport { useState } from 'react';\nimport { RangeModifier } from 'react-day-picker';\nimport useStyles from './style';\n\ninterface ICollapsableDateRangePickerProps {\n title: string;\n subtitle?: string;\n startDate: KarDateType;\n setStartDate: (date: Date) => void;\n endDate: KarDateType;\n setEndDate: (date: Date) => void;\n}\n\nconst dateOptions: DateTimeFormatOptions = {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n};\n\nconst CollapsableDateRangePicker = ({\n title,\n subtitle,\n startDate,\n setStartDate,\n endDate,\n setEndDate,\n}: ICollapsableDateRangePickerProps) => {\n const [showDatePicker, setShowDatePicker] = useState(false);\n\n const classes = useStyles();\n\n const innerStartDate = getDateFromKarDateType(startDate);\n const innerEndDate = getDateFromKarDateType(endDate);\n\n const dateRange: RangeModifier = {\n from: innerStartDate ?? new Date(),\n to: innerEndDate ?? new Date(),\n };\n\n const handleSelectionChange = (range: RangeModifier) => {\n if (range.from) setStartDate(range.from);\n if (range.to) setEndDate(range.to);\n };\n\n return (\n setShowDatePicker(false)}>\n
\n {title}\n {!!subtitle && {subtitle}}\n setShowDatePicker(!showDatePicker)}\n endIcon={}\n className={classes.dateButton}\n >\n {innerStartDate?.toLocaleDateString('no', dateOptions)} -{' '}\n {innerEndDate?.toLocaleDateString('no', dateOptions)}\n \n \n \n \n
\n
\n );\n};\n\nexport default CollapsableDateRangePicker;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n drawer: {\n '& .MuiPaper-root': {\n maxWidth: '380px',\n padding: '0 24px',\n width: '380px',\n gap: '24px',\n },\n },\n title: {\n fontSize: '22px',\n marginTop: '24px',\n color: palette.primary.dark,\n },\n inputs: {\n maxHeight: '50px',\n '& .MuiFormHelperText-contained': {\n marginLeft: 0,\n },\n marginBottom: '50px',\n },\n noMarginHelperText: {\n '& .MuiFormHelperText-contained': {\n marginLeft: 0,\n marginRight: 0,\n },\n },\n buttonWrapper: {\n marginTop: '40px',\n '& button': {\n height: '48px',\n width: '155px',\n },\n },\n}));\n\nexport default useStyles;\n","var _path, _path2, _path3, _path4, _path5, _path6;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgOsloskolenLogoHvit(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Layer_1\",\n xmlns: \"http://www.w3.org/2000/svg\",\n xmlnsXlink: \"http://www.w3.org/1999/xlink\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 26.3 32\",\n style: {\n enableBackground: \"new 0 0 26.3 32\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M20.7,7.3L20.3,7c-0.6-0.4-1.3-0.7-2-1.1l-0.1,0l0,0c-0.3-0.1-0.6-0.2-0.9-0.4c-0.6-0.2-1.4-0.4-2.2-0.6l-0.1,0 c-0.3-0.1-0.7-0.1-1-0.1c-0.4,0-0.8,0-1.2,0s-0.8,0-1.2,0.1l0.1,0c-0.3,0-0.7,0.1-1,0.1C9.9,5.2,9.1,5.4,8.4,5.6l0.1,0 C8.2,5.7,7.9,5.8,7.6,5.9l0,0C6.8,6.3,6.1,6.7,5.4,7.1l0.1,0L5.1,7.3L3,3.3l0.4-0.2C4,2.7,4.7,2.3,5.4,2l0.1,0l0.4-0.2l0.8,1.4 C6.9,3.1,7.1,3,7.3,2.9L6.9,1.4l0.4-0.1C8,1,8.8,0.8,9.6,0.7l0.1,0l0.4-0.1l0.4,1.6l0.1,0c0.2,0,0.4,0,0.6-0.1V0.4l0.4,0 c0.4,0,0.8,0,1.2,0s0.8,0,1.2,0l0.4,0v1.6c0.2,0,0.5,0.1,0.7,0.1l0.4-1.6l0.4,0.1C17,0.8,17.8,1,18.6,1.3l-0.1,0l0.4,0.1l-0.4,1.6 c0.2,0.1,0.4,0.2,0.6,0.2l0.8-1.4l0.4,0.2c0.9,0.4,1.6,0.8,2.3,1.2l-0.1,0l0.4,0.2L20.7,7.3z M4.2,3.6L5.4,6 c0.5-0.3,1.1-0.6,1.7-0.9l0.1,0l0,0c0.3-0.1,0.6-0.3,1-0.4c0.7-0.2,1.5-0.4,2.3-0.6l0.1,0C11,4.1,11.3,4,11.7,4 c0.4,0,0.8-0.1,1.2-0.1s0.9,0,1.3,0.1l-0.1,0c0.4,0,0.7,0.1,1.1,0.1c0.9,0.1,1.7,0.4,2.5,0.6l-0.1,0c0.3,0.1,0.7,0.2,1,0.4l0,0 c0.7,0.3,1.3,0.6,1.8,0.9l-0.1,0l1.2-2.3c-0.4-0.2-0.9-0.5-1.3-0.7l-0.7,1.4l-0.4-0.2L19,4.1c-0.4-0.2-0.8-0.3-1.2-0.5l-0.4-0.1 L17.8,2c-0.5-0.1-1-0.3-1.4-0.4l-0.4,1.6l-0.4-0.1C15,3,14.6,3,14.1,2.9l-0.4,0V1.3c-0.5,0-1,0-1.5,0v1.6l-0.4,0 C11.4,3,11.1,3,10.8,3c-0.2,0-0.3,0-0.5,0.1L9.9,3.2L9.5,1.6C9,1.7,8.5,1.9,8,2l0.4,1.6L8,3.7C7.6,3.8,7.2,4,6.8,4.1L6.3,4.4L5.5,3 C5.1,3.2,4.6,3.4,4.2,3.6L4.2,3.6z\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M12.9,31.6C5.8,31.6,0,25.8,0,18.7S5.8,5.8,12.9,5.8s12.9,5.8,12.9,12.9c0,3.6-1.4,6.8-3.8,9.1l0,0 C19.7,30.2,16.5,31.6,12.9,31.6C12.9,31.6,12.9,31.6,12.9,31.6L12.9,31.6L12.9,31.6z M12.9,6.7C12.9,6.7,12.9,6.7,12.9,6.7 c-6.6,0-12,5.4-12,12s5.4,12,12,12s12-5.4,12-12c0-3.3-1.3-6.3-3.5-8.5l0,0C19.2,8.1,16.2,6.7,12.9,6.7C12.9,6.7,12.9,6.7,12.9,6.7 L12.9,6.7L12.9,6.7z\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M10.4,15c-0.4-0.5-0.6-1.2-0.6-1.8c0-1.7,1.4-3.1,3.1-3.1s3.1,1.4,3.1,3.1c0,0.7-0.2,1.3-0.6,1.9l0,0l0.7,0.5 c0.5-0.6,0.8-1.5,0.8-2.4c0-2.2-1.8-3.9-3.9-3.9S9,11,9,13.2c0,0.9,0.3,1.7,0.8,2.4l0,0L10.4,15z\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M12.9,16c0.9,0,1.5-0.7,1.5-1.5v-0.2h0.5v-1c0-1.1-0.9-2-2-2s-2,0.9-2,2l0,0v1h0.5v0.2C11.4,15.3,12,16,12.9,16 L12.9,16L12.9,16z M11.7,13.3c0-0.7,0.5-1.2,1.2-1.2s1.2,0.5,1.2,1.2v1h-0.4v0.2c0,0,0,0,0,0c0,0.5-0.4,0.8-0.8,0.8 s-0.8-0.4-0.8-0.8c0,0,0,0,0,0v0v-0.2h-0.4L11.7,13.3z\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M4.1,19.3h1.2v1.2H4.1V19.3z\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M22.4,18.4V19h0.6l-1.7,1.7v-2.9l0.4,0.4l0.5-0.5l-1.2-1.2l-1.2,1.2l0.5,0.5l0.4-0.4v2.9L19.1,19h0.6v-0.6H18 v1.7h0.6v-0.6l1.3,1.3h-2.6l-0.3-0.2l-0.2-2.1c0-0.1-0.1-1.2-1-1.7l0,0l-0.9-0.3l-0.1-0.1l-0.1,0c0,0-0.6,0.2-1.7,0.2 s-1.7-0.2-1.7-0.2l-0.1,0L10,16.7l0,0c-0.9,0.5-1,1.6-1,1.7l-0.2,2.2l-0.2,0.2H7.6c0.1-0.3,0.1-0.6,0.1-0.9c0-1.7-1.4-3.1-3.1-3.1 s-3.1,1.4-3.1,3.1c0,1.5,1.1,2.8,2.6,3l0,0l0,0c0.1,0,0.2,0,0.2,0l4,0.4c-0.3,2.3-0.8,3.9-0.8,4l0.8,0.3c0-0.1,0.6-1.8,0.8-4.2 l0.9-0.8L10,28.1l0.4,0.1c0.8,0.1,1.6,0.2,2.5,0.2c0.9,0,1.8-0.1,2.6-0.2l-0.1,0l0.4-0.1l-0.1-5.5l0.9,0.8c0.3,2.4,0.8,4.1,0.8,4.2 l0.8-0.3c0,0-0.5-1.6-0.8-4l4-0.4v-1.4l2.1-2.1v0.6h0.6v-1.7L22.4,18.4z M12.9,17.4c0.9,0,1.5-0.1,1.8-0.2l0.7,0.3 c0.5,0.3,0.6,1,0.6,1l0.2,1.7h-1c0,0,0,0,0,0c-0.4,0-0.8-0.1-1.2-0.3l0,0c-0.3-0.2-0.6-0.6-0.7-0.7l-1.4-1.8 C12.2,17.4,12.5,17.4,12.9,17.4C12.9,17.4,12.9,17.4,12.9,17.4L12.9,17.4L12.9,17.4z M4.7,22.1c0,0-0.1,0-0.1,0l-0.2,0 c-1.1-0.2-1.9-1.1-1.9-2.2c0-1.2,1-2.2,2.2-2.2s2.2,1,2.2,2.2S5.9,22.1,4.7,22.1C4.7,22.1,4.7,22.1,4.7,22.1L4.7,22.1L4.7,22.1z M10.2,21.5l-1.2,1l-2.4-0.2c0.2-0.2,0.5-0.4,0.6-0.7l0,0h1.6l1.4-1.2L10.2,21.5z M10.3,19.3L10.3,19.3L10.3,19.3l-0.6,0.5l0.1-1.3 v0c0,0,0.1-0.7,0.6-1l0.4-0.2l0.7,0.9L10.3,19.3z M12.9,27.6c-0.7,0-1.4-0.1-2.1-0.1l0.1,0l0-1.8l0.1-6l0.9-0.8l0.6,0.7 c0.1,0.1,0.5,0.6,0.9,0.9c0.4,0.2,0.8,0.4,1.2,0.4l0,0l0.2,6.5C14.3,27.5,13.6,27.6,12.9,27.6L12.9,27.6L12.9,27.6z M20.5,22.2 l-3.7,0.3L15,21c0,0,0.1,0,0.1,0h1.2l0.7,0.6h3.5L20.5,22.2z\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgOsloskolenLogoHvit);\nexport default __webpack_public_path__ + \"static/media/OsloskolenLogo-hvit.44ffaec8.svg\";\nexport { ForwardRef as ReactComponent };","import { ISurvey } from '@/types/Survey';\nimport {\n Button,\n Drawer,\n MenuItem,\n Select,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport React, { useReducer } from 'react';\nimport { useStores } from '../../../stores';\nimport { INIT_PROJECT, IProject } from '../../../types/Project';\nimport { ControlledInputText } from '../../ControlledInputText';\nimport CollapsableDateRangePicker from './CollapsableDateRangePicker';\nimport useStyles from './style';\nimport reducer, { ProjectActionType } from './utils';\n\ninterface IComponentProps {\n closeDrawer: () => void;\n openLeftMenu: () => void;\n}\n\nconst Component = (props: IComponentProps) => {\n const { closeDrawer, openLeftMenu } = props;\n const { stateStore, projectStore, errorStore, userSurveyStore } = useStores();\n const { showErrorMessage } = errorStore;\n const { addProjectFormIsOpen } = stateStore;\n const [assignSurveyId, setAssignSurveyId] = React.useState(\n null\n );\n const classes = useStyles();\n\n const [createEditProject, projectDispatch] = useReducer(reducer, {\n ...INIT_PROJECT,\n });\n\n const [hasError, setHasError] = React.useState(false);\n\n const handleCreateEdit = async (): Promise => {\n if (!createEditProject.projectName) {\n return setHasError(true);\n }\n setHasError(false);\n const data: IProject = {\n ...createEditProject,\n assignSurveyId,\n };\n\n try {\n const result = !data.id\n ? await projectStore.create(data)\n : await projectStore.update(data);\n\n if (!data.id && result) {\n handleCloseDrawer();\n openLeftMenu();\n }\n\n if (data.id && result) {\n handleCloseDrawer();\n }\n } catch (error: any) {\n if (error.ErrorMessage) {\n showErrorMessage(error.ErrorMessage, undefined, 2000);\n }\n }\n };\n\n const handleCloseDrawer = () => {\n closeDrawer();\n };\n\n const handleProjectNameInput = (value: string): void => {\n projectDispatch({\n type: ProjectActionType.SET_PROJECT_NAME,\n payload: value,\n });\n setHasError(false);\n };\n\n React.useEffect(() => {\n projectDispatch({\n type: ProjectActionType.SET,\n payload: { ...(projectStore.editingProject ?? INIT_PROJECT) },\n });\n }, [projectStore.editingProject]);\n\n const getListSurvey = React.useCallback(() => {\n userSurveyStore.getAll();\n\n if (createEditProject.id) {\n projectStore.getAssignSurvey(createEditProject.id ?? 0);\n }\n }, [createEditProject.id, projectStore, userSurveyStore]);\n\n React.useEffect(() => {\n getListSurvey();\n setAssignSurveyId(projectStore.currentSurveyId);\n }, [getListSurvey, projectStore.currentSurveyId]);\n\n const assignSurvey = (surveyId: number) => {\n setAssignSurveyId(surveyId !== 0 ? surveyId : null);\n };\n\n return (\n \n

Opplysninger om prosjekt

\n \n \n projectDispatch({\n type: ProjectActionType.SET_AVAILABLE_START,\n payload: d,\n })\n }\n endDate={createEditProject.availablePeriodEndDate}\n setEndDate={(d) =>\n projectDispatch({\n type: ProjectActionType.SET_AVAILABLE_END,\n payload: d,\n })\n }\n />\n \n projectDispatch({\n type: ProjectActionType.SET_REGISTERING_START,\n payload: d,\n })\n }\n endDate={createEditProject.registeringPeriodEndDate}\n setEndDate={(d) =>\n projectDispatch({\n type: ProjectActionType.SET_REGISTERING_END,\n payload: d,\n })\n }\n />\n \n projectDispatch({\n type: ProjectActionType.SET_COURSE_START,\n payload: d,\n })\n }\n endDate={createEditProject.coursePeriodEndDate}\n setEndDate={(d) =>\n projectDispatch({\n type: ProjectActionType.SET_COURSE_END,\n payload: d,\n })\n }\n />\n \n projectDispatch({\n type: ProjectActionType.SET_STUDENT_INTRODUCTION_TEXT,\n payload: e.target.value,\n })\n }\n helperText=\"Du kan bruke {endOfRegistrationDate} for å vise sluttdato for registreringsperioden.\"\n className={classes.noMarginHelperText}\n />\n\n \n projectDispatch({\n type: ProjectActionType.SET_STUDENT_REGISTRATION_TEXT,\n payload: e.target.value,\n })\n }\n />\n Brukerundersøkelse\n assignSurvey(e.target.value)}\n >\n \n {'None'}\n \n {userSurveyStore.surveys.length > 0 &&\n userSurveyStore.surveys.map((s: ISurvey) => (\n \n {s.title}\n \n ))}\n \n\n
\n \n \n
\n \n );\n};\n\nexport const CreateEditProjectDrawer = observer(Component);\n","var _path, _path2, _path3, _path4, _path5, _path6, _path7, _path8, _path9, _path10, _path11, _path12, _path13, _path14, _path15, _path16, _path17, _path18, _path19, _path20, _path21, _path22, _path23, _path24, _path25, _path26, _path27, _path28, _path29, _path30, _path31, _path32, _path33, _path34, _path35, _path36, _path37, _path38, _path39, _path40, _path41, _path42, _path43, _path44, _path45, _path46, _path47, _path48, _path49, _path50, _path51, _path52, _path53, _path54, _path55, _path56, _path57, _path58, _path59, _path60, _path61, _path62, _path63, _path64, _path65, _path66, _path67, _path68, _path69, _path70, _path71, _path72, _path73, _path74, _path75, _path76, _path77, _path78, _path79, _path80, _path81, _path82, _path83, _path84, _path85, _path86, _path87, _path88, _path89, _path90, _path91, _path92, _path93, _path94, _path95, _path96, _path97, _path98, _path99, _path100, _path101, _path102, _path103, _path104, _path105, _path106, _path107, _path108, _path109, _path110, _path111, _path112, _path113, _path114, _path115, _path116, _path117, _path118, _rect, _rect2, _rect3, _rect4, _rect5, _rect6, _rect7, _path119, _path120, _path121;\n\nvar _excluded = [\"title\", \"titleId\"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport * as React from \"react\";\n\nfunction SvgLoginIllustration(_ref, svgRef) {\n var title = _ref.title,\n titleId = _ref.titleId,\n props = _objectWithoutProperties(_ref, _excluded);\n\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n width: 826,\n height: 614,\n viewBox: \"0 0 826 614\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n ref: svgRef,\n \"aria-labelledby\": titleId\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", {\n id: titleId\n }, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M408.034 43.8485L395.212 28.0315C394.758 25.4862 392.757 19.8503 391.575 19.6685C390.393 19.5776 393.575 26.3043 392.302 26.0316C388.029 22.0319 381.936 17.4868 381.209 18.1231C380.663 18.5776 386.574 22.9409 386.21 23.3045C385.573 23.9409 378.117 17.7595 377.753 18.9412C377.39 20.0321 384.664 24.9408 384.028 25.2135C384.3 26.0316 377.935 20.4866 377.208 21.3047C376.753 21.7592 380.663 25.0317 382.936 27.577C385.119 30.1222 377.026 24.6681 376.753 25.3044C375.935 27.0315 385.119 32.213 389.12 34.4855L398.759 48.03L408.034 43.8485Z\",\n fill: \"#FBDCAA\"\n })), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M690.195 216.654L681.375 214.017L599.718 185.111L541.522 124.933L504.785 155.022L538.612 229.198L604.537 307.374L613.358 318.646L614.449 323.918L621.724 312.919L620.996 307.465L617.45 303.102L565.437 216.017L544.613 174.202L592.898 213.018C599.172 221.653 668.826 223.653 689.65 230.289L693.924 233.743L694.287 220.108L690.195 216.654Z\",\n fill: \"#FBDCAA\"\n })), _path3 || (_path3 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M593.989 264.377C593.989 264.286 593.989 264.105 594.08 264.014L565.346 216.017L544.522 174.202L592.807 213.018C594.899 215.926 604.174 218.108 616.268 219.926C612.812 209.927 611.266 199.473 609.902 188.928C609.902 188.928 609.902 188.928 609.902 188.838L599.536 185.201L541.522 124.933L504.785 155.022L538.612 229.198L591.807 292.284C591.898 282.921 592.716 273.74 593.989 264.377Z\",\n fill: \"#F9C66B\"\n })), _path4 || (_path4 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M437.223 75.937L402.396 36.849C399.85 37.2126 394.757 39.8488 394.303 41.6668C398.94 52.0297 416.49 92.3903 432.949 99.208C449.953 106.298 480.415 110.389 486.508 104.753C490.509 101.117 491.145 91.9358 490.327 87.4816C488.69 79.3004 445.952 85.7544 437.223 75.937Z\",\n fill: \"#FBDCAA\"\n })), _path5 || (_path5 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M455.136 91.6631C442.406 89.5723 430.403 84.5727 419.218 78.3004C415.944 76.4824 412.671 74.5734 409.488 72.4827C416.399 84.3909 424.765 95.7537 432.767 99.117C449.771 106.207 480.233 110.298 486.326 104.662C488.781 102.39 489.963 98.0262 490.327 94.0265C478.596 94.0265 466.866 93.572 455.136 91.6631Z\",\n fill: \"#F9C66B\"\n })), _path6 || (_path6 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M690.195 216.654C693.469 221.381 693.287 225.926 689.649 230.198L696.106 252.742C696.833 255.469 700.561 255.106 700.652 253.015L702.289 214.018C693.469 213.29 694.196 216.836 690.195 216.654Z\",\n fill: \"#4C5392\"\n })), _path7 || (_path7 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M504.751 154.984C502.023 172.71 511.661 192.073 532.576 222.07C536.486 227.706 545.943 237.433 550.308 243.069C565.675 238.251 604.503 200.254 613.414 168.983C586.407 155.712 576.86 141.349 542.669 128.35C529.757 127.896 504.751 154.984 504.751 154.984Z\",\n fill: \"#4C5392\"\n })), _path8 || (_path8 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M550.16 163.021C549.433 153.113 549.887 142.478 551.888 132.206C549.069 130.933 545.977 129.66 542.704 128.388C529.701 127.842 504.785 154.931 504.785 154.931C502.057 172.657 511.696 192.019 532.61 222.017C536.52 227.653 545.977 237.379 550.342 243.015C554.525 241.652 560.526 237.834 567.255 232.38C557.435 210.381 551.888 187.383 550.16 163.021Z\",\n fill: \"#2A2859\"\n })), _path9 || (_path9 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M496.238 57.6657C503.421 62.3017 508.968 50.848 519.152 52.8479C526.7 54.3932 525.79 48.3936 538.703 50.2117C551.524 51.9388 548.342 70.392 534.702 67.9376C521.062 65.5742 520.698 59.5746 512.332 61.4836C503.876 63.4834 495.874 60.12 496.238 57.6657Z\",\n fill: \"#F39E00\"\n })), _path10 || (_path10 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M496.237 57.6656C497.601 57.8474 498.511 59.0291 498.329 60.3926C498.147 61.7562 496.965 62.6652 495.601 62.4834C494.237 62.3016 493.328 61.1198 493.509 59.7563C493.6 58.3928 494.873 57.4838 496.237 57.6656Z\",\n fill: \"#EE7F00\"\n })), _path11 || (_path11 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M548.341 130.751C556.889 144.023 502.966 173.657 499.693 155.386C498.42 148.113 497.147 130.115 495.328 124.024C490.781 108.389 480.597 101.753 484.78 89.4814C485.598 87.1179 486.871 83.2091 488.417 81.8456C489.327 81.1184 495.692 79.1185 497.056 78.7549C498.147 78.664 500.875 77.3914 502.421 77.9368C518.97 84.0272 528.064 99.8442 535.611 114.843C540.067 123.842 545.25 126.024 548.341 130.751Z\",\n fill: \"#4C5392\"\n })), _path12 || (_path12 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M540.885 122.661C526.881 123.57 512.787 121.024 499.602 114.752C495.328 112.752 491.418 110.298 487.781 107.48C490.236 112.116 493.328 117.207 495.328 124.024C497.056 130.115 498.329 148.113 499.693 155.385C502.966 173.566 556.889 143.932 548.341 130.751C546.432 127.842 543.704 125.842 540.885 122.661Z\",\n fill: \"#4C5392\"\n })), _path13 || (_path13 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M489.054 81.573C489.508 81.0276 491.964 79.6641 486.235 73.21C485.326 72.2101 483.416 73.1191 483.143 72.301C482.234 70.0284 484.234 66.2105 482.87 63.6653C481.961 61.8472 485.144 60.211 487.599 59.3019C491.6 57.8475 499.056 59.5747 497.601 69.2103C497.238 71.4829 494.601 74.2099 495.419 80.5731C495.874 84.9364 487.235 84.8455 489.054 81.573Z\",\n fill: \"#FBDCAA\"\n })), _path14 || (_path14 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M482.779 63.756C484.507 64.7559 489.326 58.3019 491.963 65.5741C492.145 66.1195 492.509 68.0284 494.873 66.6649C497.237 65.2104 497.419 69.3011 495.146 69.0284C492.873 68.7556 494.873 73.5735 495.783 73.0281C496.692 72.4826 506.512 66.1195 495.328 59.2109C486.598 47.6663 474.232 59.9381 482.779 63.756Z\",\n fill: \"#F39E00\"\n })), _path15 || (_path15 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M617.268 164.203C617.632 163.658 613.267 161.021 610.721 158.749C608.175 156.567 616.995 160.749 617.177 160.203C617.723 158.385 607.902 154.476 603.719 152.84L597.991 146.841C590.898 135.932 573.894 116.752 562.436 103.389C543.522 81.2092 494.055 68.8465 503.33 84.2999C510.696 96.5717 535.066 104.662 546.978 115.025L590.898 153.022L598.445 160.112C599.264 162.567 601.992 167.839 603.174 167.93C604.356 167.839 600.355 161.658 601.537 161.749C606.265 165.112 612.903 168.748 613.631 168.021C614.085 167.475 607.72 164.021 607.993 163.567C608.539 162.839 616.813 167.93 616.995 166.748C617.177 165.657 609.357 161.749 609.903 161.385C609.539 160.567 616.541 165.203 617.268 164.203Z\",\n fill: \"#FBDCAA\"\n })), _path16 || (_path16 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M570.529 129.388C569.074 127.024 567.619 124.752 566.073 122.479C565.346 121.388 564.437 120.297 563.709 119.116C565.982 122.388 563.436 118.843 562.982 118.297C561.254 116.207 559.344 114.298 557.344 112.48C556.798 111.934 555.889 111.298 555.616 111.025C554.707 110.389 553.797 109.753 552.888 109.116C547.341 105.48 541.613 102.117 535.611 99.0262C532.792 97.5717 529.973 96.2991 527.154 94.9356C526.973 94.8447 526.882 94.8446 526.7 94.7537C526.245 94.5719 525.881 94.3901 525.427 94.2083C523.972 93.572 522.517 93.0266 521.062 92.3903C514.879 89.845 508.877 87.2088 503.148 83.8455C503.239 83.9364 503.239 84.0273 503.33 84.1182C510.696 96.39 535.066 104.48 546.978 114.843L578.349 142.023C575.803 137.932 573.166 133.66 570.529 129.388Z\",\n fill: \"#F9C66B\"\n })), _path17 || (_path17 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M620.996 307.465C621.269 313.192 618.723 317.01 613.358 318.646L606.902 341.19C606.174 343.917 609.357 345.553 610.539 343.826L632.544 311.556C625.543 306.283 624.27 309.647 620.996 307.465Z\",\n fill: \"#4C5392\"\n })), _path18 || (_path18 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M442.406 79.0277C442.406 79.0277 437.222 76.8461 430.948 77.846\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path19 || (_path19 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M607.174 166.385C607.174 166.385 577.53 222.926 544.795 236.561\",\n stroke: \"white\",\n strokeMiterlimit: 10\n })), _path20 || (_path20 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M486.689 84.5726C486.689 84.5726 480.961 92.2084 486.417 104.753\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path21 || (_path21 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M489.054 81.573C489.054 81.573 487.872 84.2092 491.873 83.9365C495.874 83.7547 495.692 80.4822 495.237 79.3914\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path22 || (_path22 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M503.694 78.4823C503.694 78.4823 498.693 81.3912 505.694 87.5725C512.696 93.7539 520.334 99.5717 529.791 103.935\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path23 || (_path23 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M550.342 243.106C550.342 243.106 562.708 237.561 572.529 227.835\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path24 || (_path24 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M605.537 187.201C605.537 187.201 595.626 203.018 589.352 210.109\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path25 || (_path25 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M613.358 318.646C613.358 318.646 621.633 316.737 620.996 307.465\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path26 || (_path26 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M690.195 216.654C690.195 216.654 695.742 224.108 689.649 230.198\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path27 || (_path27 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M71.4908 420.785L67.6716 425.058L71.9454 435.239L75.6736 433.693L100.407 419.331L91.223 408.786L71.4908 420.785Z\",\n fill: \"#FBDCAA\"\n })), _path28 || (_path28 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M295.82 177.531L303.822 158.805C303.549 156.259 303.913 150.26 305.004 149.714C306.186 149.351 304.913 156.623 306.004 156.078C309.005 151.078 313.643 145.078 314.552 145.442C315.188 145.715 310.733 151.533 311.187 151.805C311.915 152.26 317.462 144.26 318.189 145.26C318.826 146.169 313.188 152.987 313.824 152.987C313.824 153.896 318.371 146.806 319.371 147.442C319.917 147.806 317.007 151.987 315.552 155.078C314.097 158.168 320.462 150.714 320.917 151.169C322.099 152.532 314.734 160.077 311.551 163.35L306.004 178.985L295.82 177.531Z\",\n fill: \"#FBDCAA\"\n })), _path29 || (_path29 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M178.7 484.689L173.244 497.961L173.698 503.324L163.696 494.779L162.877 489.234L166.697 480.235L178.7 484.689Z\",\n fill: \"#FBDCAA\"\n })), _path30 || (_path30 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M162.878 489.235C164.241 494.78 167.697 497.779 173.244 497.961L185.61 517.869C187.065 520.232 184.428 522.778 182.792 521.414L152.875 496.325C158.149 489.416 160.331 492.325 162.878 489.235Z\",\n fill: \"#2A2859\"\n })), _path31 || (_path31 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M188.611 299.521L149.965 365.789L78.3108 415.331L88.2224 432.511C109.864 424.603 168.242 397.423 171.88 387.333L199.432 347.245L196.249 389.787L166.697 480.235C172.243 484.598 177.427 487.598 184.701 488.053C199.978 455.782 231.895 399.696 230.531 388.697L236.259 308.43L188.611 299.521Z\",\n fill: \"#A2A8C8\"\n })), _path32 || (_path32 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M164.969 370.971C173.153 367.971 181.337 364.88 189.521 361.789L199.432 347.336L198.614 358.335C203.433 356.426 208.253 354.608 213.072 352.699C219.983 349.972 226.803 347.245 233.623 344.427L236.169 308.521L188.52 299.612L149.874 365.88L117.412 388.333C133.416 382.606 149.238 376.788 164.969 370.971Z\",\n fill: \"#C6CADE\"\n })), _path33 || (_path33 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M276.542 216.437L298.548 169.44C301.094 169.077 309.187 171.258 310.187 172.895C308.55 184.166 301.003 226.618 286.999 237.708C272.541 249.162 240.26 269.433 232.804 265.706C227.985 263.342 227.166 242.344 228.348 237.89C229.712 232.981 270.905 228.345 276.542 216.437Z\",\n fill: \"#2A2859\"\n })), _path34 || (_path34 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M280.18 226.254C270.905 234.89 259.811 240.889 248.99 247.344C242.716 251.071 236.078 254.979 229.258 257.979C230.076 261.706 231.258 264.706 232.895 265.524C240.351 269.251 272.632 248.98 287.09 237.526C297.639 229.163 304.549 202.983 308.005 185.712C301.73 201.165 292.092 215.255 280.18 226.254Z\",\n fill: \"#2A2859\"\n })), _path35 || (_path35 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M71.4909 420.785C69.6723 426.239 71.1272 430.603 75.7647 433.602V457.055C75.7647 459.873 72.2184 460.6 71.4909 458.51L59.2151 421.512C67.399 418.422 67.6718 422.058 71.4909 420.785Z\",\n fill: \"#2A2859\"\n })), _path36 || (_path36 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M183.974 306.339C179.336 321.429 239.078 336.61 237.26 318.247C236.532 310.884 236.805 284.523 236.896 278.159C236.987 261.888 241.715 253.161 234.35 242.526C232.895 240.435 230.622 237.072 228.712 236.163C227.712 235.708 220.983 235.526 219.619 235.526C218.528 235.708 215.527 235.254 214.254 236.163C199.978 246.525 195.522 264.251 192.43 280.705C190.612 290.613 185.61 300.976 183.974 306.339Z\",\n fill: \"#2A2859\"\n })), _path37 || (_path37 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M236.896 309.248C227.803 306.703 219.528 301.976 213.254 294.522C200.796 279.705 200.25 260.07 206.979 242.98C198.341 253.343 194.976 267.433 192.43 280.705C190.521 290.613 185.61 300.976 183.974 306.248C179.336 321.338 239.078 336.519 237.26 318.156C237.078 316.248 236.987 313.066 236.896 309.248Z\",\n fill: \"#2A2859\"\n })), _path38 || (_path38 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M228.167 235.981C227.621 235.617 224.802 234.981 228.621 227.163C229.167 225.982 231.349 226.345 231.349 225.436C231.531 222.982 228.712 219.891 229.258 216.982C229.621 214.982 226.075 214.255 223.529 214.073C219.255 213.801 212.526 217.528 216.618 226.345C217.618 228.436 220.892 230.345 221.801 236.708C222.529 241.071 230.804 238.617 228.167 235.981Z\",\n fill: \"#FBDCAA\"\n })), _path39 || (_path39 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M229.348 217.164C227.894 218.618 221.619 213.71 220.983 221.345C220.983 221.891 221.165 223.891 218.437 223.163C215.709 222.436 216.709 226.436 218.8 225.527C220.892 224.618 220.346 229.799 219.346 229.527C218.346 229.254 208.798 225.891 213.163 217.618C213.072 211.346 222.074 212.801 224.256 208.983C226.62 204.801 231.076 208.255 231.985 210.892C232.713 213.073 231.804 215.073 229.348 217.164Z\",\n fill: \"#EE7F00\"\n })), _path40 || (_path40 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M154.784 323.974L144.236 341.427C144.145 343.973 142.963 349.881 141.781 350.245C140.599 350.427 142.781 343.427 141.69 343.791C138.053 348.336 132.597 353.699 131.779 353.154C131.142 352.79 136.416 347.609 135.962 347.336C135.234 346.791 128.687 353.881 128.141 352.79C127.687 351.79 134.143 345.882 133.506 345.7C133.597 344.791 128.141 351.154 127.232 350.427C126.686 350.063 130.142 346.245 132.051 343.427C133.87 340.609 126.596 347.063 126.232 346.518C125.232 344.973 133.597 338.519 137.235 335.792L144.873 321.065L154.784 323.974Z\",\n fill: \"#FBDCAA\"\n })), _path41 || (_path41 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M181.519 283.977L153.602 333.882C149.783 334.428 142.236 329.974 138.962 326.792C143.873 314.52 156.33 289.704 163.696 273.705C175.881 247.253 219.437 224.163 218.982 243.344C218.71 257.615 189.248 270.16 181.519 283.977Z\",\n fill: \"#2A2859\"\n })), _path42 || (_path42 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M214.254 236.163C214.254 236.163 221.801 238.253 218.437 246.525C215.072 254.798 205.888 263.161 202.342 264.342\",\n stroke: \"#4C5392\",\n strokeMiterlimit: 10\n })), _path43 || (_path43 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M229.53 236.617C229.53 236.617 237.259 243.98 238.442 253.525\",\n stroke: \"#4C5392\",\n strokeMiterlimit: 10\n })), _path44 || (_path44 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M271.632 221.891C271.632 221.891 276.269 217.709 279.816 217.709\",\n stroke: \"#4C5392\",\n strokeMiterlimit: 10\n })), _path45 || (_path45 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M299.366 169.349C299.366 169.349 304.004 169.258 308.55 171.622\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path46 || (_path46 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M221.619 235.526C221.619 235.526 221.437 239.162 224.984 239.071C228.53 238.981 229.439 237.162 228.166 235.981\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path47 || (_path47 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M140.508 328.156C140.508 328.156 143.6 331.155 149.147 333.155\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path48 || (_path48 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M141.054 321.792C141.054 321.792 147.783 329.337 156.33 328.883\",\n stroke: \"white\",\n strokeMiterlimit: 10\n })), _path49 || (_path49 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M296.547 173.622C296.547 173.622 304.367 172.349 309.369 177.894\",\n stroke: \"white\",\n strokeMiterlimit: 10\n })), _path50 || (_path50 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M192.248 318.156L169.424 362.971C169.424 362.971 165.969 372.97 154.784 378.606C143.691 384.242 82.1299 422.058 82.1299 422.058\",\n stroke: \"white\",\n strokeMiterlimit: 10\n })), _path51 || (_path51 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M225.166 326.61C225.166 326.61 222.074 383.788 218.982 391.333C215.891 398.878 173.698 484.962 173.698 484.962\",\n stroke: \"white\",\n strokeMiterlimit: 10\n })), _path52 || (_path52 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M199.432 347.245L212.072 325.338\",\n stroke: \"white\",\n strokeMiterlimit: 10\n })), _path53 || (_path53 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M206.343 335.155C206.343 335.155 214.527 337.973 218.982 330.61\",\n stroke: \"white\",\n strokeMiterlimit: 10\n })), _path54 || (_path54 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M78.8564 416.331L85.5854 427.966\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path55 || (_path55 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M71.4909 420.785C71.4909 420.785 68.0355 429.057 75.7647 433.602\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path56 || (_path56 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M166.697 480.235C166.697 480.235 172.516 485.507 177.79 486.689\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path57 || (_path57 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M162.877 489.235C162.877 489.235 163.423 497.961 173.244 497.961\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path58 || (_path58 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M620.086 395.385L614.176 410.566L623.087 422.928L633.271 389.022L628.543 384.204L620.177 389.658L620.086 395.385Z\",\n fill: \"#FBDCAA\"\n })), _path59 || (_path59 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M561.981 380.023L560.071 391.567L570.528 404.748L575.166 382.931L571.256 373.75L561.981 380.023Z\",\n fill: \"#FBDCAA\"\n })), _path60 || (_path60 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M486.416 482.469L545.522 503.286C552.524 504.65 597.171 436.018 612.721 401.021C617.267 400.385 624.542 403.475 627.361 406.202C620.723 455.29 571.438 543.101 557.616 544.919C528.791 547.01 508.967 535.556 483.325 523.83L486.416 482.469Z\",\n fill: \"#A2A8C8\"\n })), _path61 || (_path61 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M486.416 482.469L545.522 503.286C552.524 504.649 597.171 436.018 612.721 401.021C617.267 400.384 625.087 404.112 627.906 406.839C621.268 455.926 571.347 543.101 557.616 544.919C528.791 547.01 508.967 535.556 483.325 523.83L486.416 482.469Z\",\n fill: \"#A2A8C8\"\n })), _path62 || (_path62 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M564.982 487.56C563.072 488.56 561.163 489.196 559.253 489.56C552.615 498.286 547.432 503.74 545.431 503.286L486.326 482.469L483.234 523.739C508.786 535.465 528.7 546.919 557.525 544.828C568.255 543.465 600.718 489.56 617.54 442.654C602.809 460.562 585.623 476.652 564.982 487.56Z\",\n fill: \"#C6CADE\"\n })), _path63 || (_path63 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M330.741 455.108L311.282 449.108C309.463 447.29 304.644 443.654 303.643 444.109C302.643 444.745 308.917 448.472 307.826 449.017C302.097 448.108 294.55 447.654 294.186 448.654C294.005 449.29 301.279 449.654 301.188 450.199C301.006 451.017 291.368 450.108 291.731 451.29C292.004 452.381 300.824 452.472 300.461 453.017C301.188 453.562 292.822 452.472 292.641 453.562C292.55 454.199 297.642 454.744 300.915 455.562C304.189 456.471 294.368 456.471 294.459 457.108C294.732 458.926 305.28 458.198 309.827 457.835L325.376 463.743L330.741 455.108Z\",\n fill: \"#EE7F00\"\n })), _path64 || (_path64 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M619.904 395.476C622.178 390.203 627.815 388.204 633.271 389.022L648.912 371.569C650.821 369.478 648.639 366.569 646.729 367.569L612.812 386.931C616.903 394.749 617.995 392.022 619.904 395.476Z\",\n fill: \"#A2A8C8\"\n })), _path65 || (_path65 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M486.416 471.197L528.427 485.924C535.52 486.015 550.887 428.655 560.071 391.476C565.345 389.658 577.985 391.658 581.258 393.931C576.712 444.018 561.344 518.467 542.249 529.284C512.241 531.102 486.871 528.193 458.137 515.012L486.416 471.197Z\",\n fill: \"#A2A8C8\"\n })), _path66 || (_path66 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M486.416 471.197L528.427 485.924C535.52 486.015 550.887 428.655 560.071 391.476C565.345 389.658 577.985 391.658 581.258 393.931C576.712 444.018 561.344 518.467 542.249 529.284C512.241 531.102 486.871 528.193 458.137 515.012L486.416 471.197Z\",\n fill: \"#A2A8C8\"\n })), _path67 || (_path67 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M488.781 523.83C488.872 523.648 488.962 523.376 489.144 523.103C489.144 523.103 489.144 523.194 489.053 523.194C489.872 521.83 490.326 519.921 490.872 518.376C491.872 515.558 492.691 512.74 493.327 509.831C493.691 508.195 494.055 506.559 494.328 504.832C494.418 504.468 494.6 503.832 494.691 503.286C495.146 500.832 495.055 497.923 495.055 495.559C495.146 492.469 494.873 489.378 494.6 486.287C494.6 486.197 494.6 486.106 494.509 486.015C494.237 484.469 493.964 482.833 493.6 481.288C492.964 478.47 492.236 475.743 491.327 473.016L486.325 471.289L457.955 515.194C468.23 519.921 478.051 523.285 487.871 525.648C488.235 524.921 488.508 524.376 488.781 523.83Z\",\n fill: \"#C6CADE\"\n })), _path68 || (_path68 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M372.843 465.562L322.194 452.381C320.284 454.108 316.556 462.744 317.192 464.562C326.831 470.652 369.296 490.742 386.755 487.287C404.851 483.742 427.856 470.289 429.857 462.198C431.13 457.017 426.583 449.017 423.401 445.745C417.581 439.836 385.664 468.925 372.843 465.562Z\",\n fill: \"#F39E00\"\n })), _path69 || (_path69 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M561.981 380.023C567.255 377.659 571.711 378.659 575.166 382.931L598.445 380.477C601.263 380.204 601.536 376.568 599.445 376.114L561.253 367.751C559.253 376.296 561.162 377.75 561.981 380.023Z\",\n fill: \"#A2A8C8\"\n })), _path70 || (_path70 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M486.546 470.565C499.458 479.655 460.358 527.197 450.537 511.562C446.627 505.29 438.716 489.018 434.897 484.019C424.803 471.202 416.165 469.02 414.983 457.566C414.346 451.203 415.892 445.658 418.529 442.84C435.351 433.932 456.63 449.567 468.905 460.566C476.362 467.293 481.999 467.384 486.546 470.565Z\",\n fill: \"#F39E00\"\n })), _path71 || (_path71 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M434.767 484.742C435.586 485.833 436.586 487.378 437.677 489.196C440.314 488.651 442.86 488.015 445.497 487.105C446.588 486.742 447.68 486.378 448.771 485.924C449.044 485.833 449.498 485.56 449.953 485.378C451.681 484.469 450.953 484.924 449.953 485.378C449.68 485.56 449.225 485.742 448.771 486.015C450.862 484.924 452.954 484.106 455.045 483.015C456.864 482.015 458.682 480.924 460.501 479.833C461.319 479.288 462.138 478.742 462.865 478.197C462.865 478.015 463.047 477.833 463.229 477.652C464.32 476.47 467.321 474.379 467.957 473.834C469.412 472.379 470.867 470.925 472.231 469.289C472.595 468.834 475.414 465.834 473.322 468.016C471.322 470.198 473.504 467.652 473.868 467.107C474.232 466.562 474.504 466.107 474.868 465.562C472.959 464.471 470.958 463.107 468.685 461.107C462.41 455.562 453.863 448.836 444.77 444.654C444.406 445.472 444.042 446.199 443.497 446.927C437.313 456.108 431.494 465.471 425.492 474.834C428.402 477.47 431.494 480.561 434.767 484.742Z\",\n fill: \"#F39E00\"\n })), _path72 || (_path72 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M416.853 444.927C417.308 444.381 419.854 443.109 414.216 436.473C413.307 435.473 411.398 436.382 411.125 435.473C410.306 433.2 412.307 429.473 411.125 426.837C410.306 425.019 413.489 423.474 416.035 422.656C420.127 421.292 427.492 423.292 425.765 432.837C425.31 435.109 422.673 437.745 423.219 444.109C423.673 448.472 415.035 448.199 416.853 444.927Z\",\n fill: \"#FBDCAA\"\n })), _path73 || (_path73 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M305.462 483.924L278.637 444.836C288.003 438.018 293.914 427.655 294.187 415.656L321.012 454.744C321.83 467.652 314.464 477.561 305.462 483.924Z\",\n fill: \"white\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path74 || (_path74 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M283.166 451.287L279.942 453.498L306.794 492.626L310.018 490.415L283.166 451.287Z\",\n fill: \"#848DB8\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path75 || (_path75 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M278.612 444.779L275.388 446.99L279.863 453.511L283.087 451.3L278.612 444.779Z\",\n fill: \"#A2A8C8\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path76 || (_path76 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M307.372 486.651L280.547 447.563C289.913 440.745 296.369 431.2 296.733 419.201L323.012 457.562C323.74 470.379 316.283 480.197 307.372 486.651Z\",\n fill: \"white\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path77 || (_path77 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M308.735 488.56L281.911 449.472C291.277 442.654 298.46 434.746 299.006 422.565L324.285 459.471C325.012 472.288 317.647 482.197 308.735 488.56Z\",\n fill: \"white\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path78 || (_path78 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M309.645 489.923L283.184 451.29C292.55 444.472 300.188 437.291 300.824 425.11L326.285 462.289C327.013 475.197 318.556 483.469 309.645 489.923Z\",\n fill: \"white\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path79 || (_path79 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M283.093 451.29L309.918 490.378C319.647 484.015 331.468 482.288 342.744 486.378L315.919 447.29C304.189 441.927 292.368 445.29 283.093 451.29Z\",\n fill: \"#848DB8\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path80 || (_path80 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M349.746 482.197L329.468 479.924C327.376 478.47 321.92 475.834 321.011 476.47C320.102 477.288 327.013 479.833 326.012 480.47C320.193 480.651 312.645 481.651 312.554 482.651C312.464 483.378 319.738 482.379 319.738 482.833C319.738 483.742 310.099 484.56 310.645 485.651C311.1 486.651 319.829 485.106 319.556 485.651C320.375 486.106 311.918 486.56 312.009 487.742C312.009 488.378 317.101 487.924 320.466 488.196C323.83 488.469 314.191 490.287 314.464 490.923C315.101 492.651 325.285 489.923 329.65 488.742L346.017 491.651L349.746 482.197Z\",\n fill: \"#FBDCAA\"\n })), _path81 || (_path81 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M393.213 484.402L340.927 481.038C339.381 483.129 337.199 491.037 338.108 492.674C348.657 496.855 391.94 513.672 408.399 507.036C425.494 500.128 450.591 469.766 451.864 461.585C453.774 449.677 435.678 440.041 429.222 445.404C423.039 450.859 406.307 485.311 393.213 484.402Z\",\n fill: \"#F39E00\"\n })), _path82 || (_path82 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M227.081 151.116L277.275 125.481L287.823 146.116C273.729 159.751 256.997 168.387 237.629 171.75L227.081 151.116Z\",\n fill: \"#A2A8C8\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path83 || (_path83 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M240.447 115.209L296.28 110.937L259.998 153.57L204.075 157.933L240.447 115.209Z\",\n fill: \"white\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path84 || (_path84 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M251.086 133.299C267.636 125.936 267.545 112.119 267.363 99.2104C267.272 85.666 267.09 73.2124 285.186 69.5763L285.459 70.758C268.273 74.1214 268.454 86.2114 268.545 99.2104C268.636 112.482 268.818 126.754 251.541 134.39L251.086 133.299Z\",\n fill: \"#A2A8C8\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path85 || (_path85 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M483.183 320.137L527.012 340.135L518.828 358.134C502.188 355.952 487.548 349.407 474.999 338.135L483.183 320.137Z\",\n fill: \"#A2A8C8\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path86 || (_path86 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M514.281 309.956L546.835 345.044L499.005 343.499L466.36 308.41L514.281 309.956Z\",\n fill: \"white\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path87 || (_path87 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M507.825 326.682C521.556 333.863 530.74 326.409 539.288 319.501C548.29 312.228 556.565 305.502 568.659 315.683L568.022 316.501C556.656 306.865 548.654 313.319 540.015 320.319C531.195 327.5 521.738 335.136 507.461 327.591L507.825 326.682Z\",\n fill: \"#A2A8C8\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path88 || (_path88 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M738.984 385.509L704.975 352.421C712.886 343.876 716.614 332.604 714.523 320.787L748.532 353.875C751.805 366.329 746.44 377.419 738.984 385.509Z\",\n fill: \"white\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path89 || (_path89 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M710.544 357.944L707.82 360.749L741.872 393.808L744.596 391.004L710.544 357.944Z\",\n fill: \"#A2A8C8\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path90 || (_path90 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M704.941 352.459L702.217 355.263L707.893 360.773L710.617 357.969L704.941 352.459Z\",\n fill: \"#A2A8C8\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path91 || (_path91 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M741.348 387.782L707.339 354.693C715.25 346.149 719.615 335.513 717.524 323.696L750.896 356.057C754.169 368.602 748.804 379.692 741.348 387.782Z\",\n fill: \"white\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path92 || (_path92 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M742.985 389.418L708.976 356.421C716.887 347.876 722.252 338.695 720.433 326.605L752.532 357.784C755.806 370.238 750.532 381.328 742.985 389.418Z\",\n fill: \"white\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path93 || (_path93 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M744.167 390.6L710.613 357.966C718.524 349.421 724.525 340.876 722.707 328.786L755.078 360.148C758.352 372.692 751.714 382.51 744.167 390.6Z\",\n fill: \"white\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path94 || (_path94 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M710.613 357.966L744.621 391.054C752.896 382.964 764.081 378.874 775.993 380.601L741.984 347.512C729.436 344.603 718.433 350.239 710.613 357.966Z\",\n fill: \"#A2A8C8\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path95 || (_path95 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M401.777 240.981L407.506 244.435L440.787 264.434L415.963 305.612L382.682 285.614L382.045 286.614C381.772 287.068 381.136 287.25 380.681 286.978L376.589 284.523C376.135 284.25 375.953 283.614 376.226 283.16L376.862 282.16L343.581 262.161L368.405 220.982L401.777 240.981Z\",\n fill: \"#A2A8C8\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path96 || (_path96 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M371.25 222.544L348.484 260.305L415.308 300.566L438.073 262.805L371.25 222.544Z\",\n fill: \"white\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path97 || (_path97 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M405.961 240.436C418.418 236.981 431.694 241.163 444.334 252.344L420.237 292.341C408.689 281.887 396.322 278.069 381.864 280.433L405.961 240.436Z\",\n fill: \"white\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path98 || (_path98 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M405.961 240.435C403.233 227.8 393.321 218.074 377.499 212.074L353.402 252.071C368.042 257.434 377.226 266.524 381.864 280.432L405.961 240.435Z\",\n fill: \"white\",\n stroke: \"#A2A8C8\",\n strokeMiterlimit: 10\n })), _path99 || (_path99 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M411.125 427.019C412.852 428.019 417.854 421.838 420.218 429.11C420.4 429.655 420.672 431.564 423.128 430.201C425.583 428.837 425.583 432.928 423.309 432.564C421.036 432.2 424.128 435.564 423.764 436.564C419.308 449.926 436.313 463.744 448.861 465.198C463.228 466.834 479.232 457.289 477.687 448.654C475.05 434.2 456.409 440.2 444.315 440.2C435.403 440.2 428.22 433.019 428.493 431.291C428.856 428.837 428.583 425.928 423.673 422.747C415.398 410.929 402.759 422.928 411.125 427.019Z\",\n fill: \"#2A2859\"\n })), _path100 || (_path100 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M425.674 449.835L416.217 463.834L407.033 475.924C407.033 475.924 400.577 485.105 391.756 484.469L340.834 481.197\",\n stroke: \"#F39E00\",\n strokeMiterlimit: 10\n })), _path101 || (_path101 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M435.403 485.651C435.403 485.651 446.952 472.198 450.498 465.289\",\n stroke: \"#F39E00\",\n strokeMiterlimit: 10\n })), _path102 || (_path102 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M393.12 484.56C393.12 484.56 400.486 483.833 405.669 486.56\",\n stroke: \"#F39E00\",\n strokeMiterlimit: 10\n })), _path103 || (_path103 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M373.57 465.743C374.388 465.834 378.844 466.107 383.299 469.107\",\n stroke: \"#F39E00\",\n strokeMiterlimit: 10\n })), _path104 || (_path104 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M416.671 446.018C416.671 446.018 412.398 452.835 415.944 464.289\",\n stroke: \"#F39E00\",\n strokeMiterlimit: 10\n })), _path105 || (_path105 = /*#__PURE__*/React.createElement(\"path\", {\n fillRule: \"evenodd\",\n clipRule: \"evenodd\",\n d: \"M414.489 453.653C414.489 453.653 414.398 460.107 415.581 463.107L415.944 464.743L408.215 474.561C408.215 474.561 401.759 484.742 391.756 484.469C381.754 484.196 355.475 482.106 355.475 482.106C355.475 482.106 384.027 483.833 394.848 476.379C405.76 468.834 414.489 453.653 414.489 453.653Z\",\n fill: \"#F39E00\"\n })), _path106 || (_path106 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M416.854 444.927C416.854 444.927 415.58 447.199 419.218 447.381C422.855 447.563 423.583 445.472 423.128 442.927\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path107 || (_path107 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M326.467 453.562L324.921 460.38\",\n stroke: \"white\",\n strokeMiterlimit: 10\n })), _path108 || (_path108 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M346.472 481.56L344.745 495.468\",\n stroke: \"white\",\n strokeMiterlimit: 10\n })), _path109 || (_path109 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M337.925 490.287C337.925 490.287 338.925 484.287 340.653 481.56\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path110 || (_path110 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M480.233 496.832L525.79 510.831C525.79 510.831 537.611 514.558 543.158 505.65C548.614 496.741 570.801 391.113 570.801 391.113\",\n stroke: \"white\",\n strokeMiterlimit: 10\n })), _path111 || (_path111 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M542.158 529.375C542.158 529.375 555.525 535.556 570.71 513.104C585.896 490.56 623.36 403.657 623.36 403.657\",\n stroke: \"white\",\n strokeMiterlimit: 10\n })), _path112 || (_path112 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M528.427 486.014C531.882 488.105 535.883 489.469 537.884 494.014\",\n stroke: \"#C6CADE\",\n strokeMiterlimit: 10\n })), _path113 || (_path113 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M560.071 391.567C560.071 391.567 566.164 389.476 573.347 391.567\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path114 || (_path114 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M561.981 380.022C561.981 380.022 569.437 375.75 575.166 382.931\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path115 || (_path115 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M617.722 401.385C617.722 401.385 623.723 402.203 627.906 407.021\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path116 || (_path116 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M619.904 395.476C619.904 395.476 621.905 387.84 633.271 389.022\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path117 || (_path117 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M415.944 437.109C415.944 437.109 417.49 439.2 420.036 436.2\",\n stroke: \"#F9C66B\",\n strokeWidth: 0.75,\n strokeMiterlimit: 10\n })), _path118 || (_path118 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M68.2478 211.907H110.066V253.719H68.2478V211.907Z\",\n fill: \"#F9C66B\"\n })), _rect || (_rect = /*#__PURE__*/React.createElement(\"rect\", {\n x: 647.351,\n y: 100.35,\n width: 41.8185,\n height: 41.8127,\n fill: \"#F9C66B\"\n })), _rect2 || (_rect2 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 430.229,\n y: 136.811,\n width: 14.3856,\n height: 14.3836,\n fill: \"#F9C66B\"\n })), _rect3 || (_rect3 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 753.403,\n y: 81.6184,\n width: 41.8186,\n height: 41.8127,\n rx: 20.9063,\n fill: \"#F9C66B\"\n })), _rect4 || (_rect4 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 28.4365,\n y: 333.498,\n width: 41.8186,\n height: 41.8126,\n rx: 20.9063,\n fill: \"#F9C66B\"\n })), _rect5 || (_rect5 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 620.253,\n y: 554.604,\n width: 27.0984,\n height: 27.0947,\n fill: \"#F9C66B\"\n })), _rect6 || (_rect6 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 131.812,\n y: 151.195,\n width: 27.0984,\n height: 27.0946,\n rx: 13.5473,\n fill: \"#F9C66B\"\n })), _rect7 || (_rect7 = /*#__PURE__*/React.createElement(\"rect\", {\n x: 330.868,\n y: 351.896,\n width: 27.0984,\n height: 27.0946,\n fill: \"#F9C66B\"\n })), _path119 || (_path119 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M370.178 143.167L384.519 168.003H355.836L370.178 143.167Z\",\n fill: \"#F9C66B\"\n })), _path120 || (_path120 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M706.232 457.598L731.438 501.251H681.025L706.232 457.598Z\",\n fill: \"#F9C66B\"\n })), _path121 || (_path121 = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M323.174 13.7146L348.38 57.3671H297.967L323.174 13.7146Z\",\n fill: \"#F9C66B\"\n })));\n}\n\nvar ForwardRef = /*#__PURE__*/React.forwardRef(SvgLoginIllustration);\nexport default __webpack_public_path__ + \"static/media/login-illustration.c45f9078.svg\";\nexport { ForwardRef as ReactComponent };","import {\n BusinessOutlined,\n FolderOutlined,\n PersonOutlined,\n SchoolOutlined,\n SendOutlined,\n SettingsOutlined,\n StarOutlined,\n QuestionAnswerOutlined,\n} from '@material-ui/icons';\n\nexport interface MenuItem {\n path: string;\n name: string | JSX.Element;\n icon?: JSX.Element;\n children?: MenuItem[];\n}\n\nconst settingsMenuItem = {\n path: '/settings',\n name: 'Brukere',\n icon: ,\n};\n\nexport const adminMenuItems: MenuItem[] = [\n {\n path: '/vgs',\n name: 'Videregående skoler',\n icon: ,\n },\n {\n path: '/gu',\n name: 'Ungdomsskoler',\n icon: ,\n },\n {\n path: '/all-students',\n name: 'Elever',\n icon: ,\n },\n {\n path: '/study-subjects',\n name: 'Kurs',\n icon: ,\n },\n settingsMenuItem,\n {\n path: '/templates',\n name: 'Meldingsmaler',\n icon: ,\n },\n {\n path: '/messages',\n name: 'Utgående meldinger',\n icon: ,\n },\n {\n path: '/user-surveys',\n name: 'Brukerundersøkelse',\n icon: ,\n },\n];\n\nexport const highSchoolContactMenuItems: MenuItem[] = [\n {\n path: '/study-subjects',\n name: 'Kurs',\n icon: ,\n },\n settingsMenuItem,\n];\n\nexport const adviserMenuItems: MenuItem[] = [\n {\n path: '/students',\n name: 'Elever',\n icon: ,\n },\n settingsMenuItem,\n];\n\nexport const studentMenuItems: MenuItem[] = [settingsMenuItem];\n","import { ListItem, ListItemText, makeStyles } from '@material-ui/core';\nimport React from 'react';\nimport { IProject } from '../../../types/Project';\n\nconst useStyles = makeStyles(() => ({\n itemText: {\n '&:hover': {\n cursor: 'pointer',\n },\n },\n}));\n\ninterface IComponentProps {\n project: IProject;\n\n goToCourse: (id?: number) => void;\n}\nconst Component = ({ project, goToCourse }: IComponentProps) => {\n const classes = useStyles();\n return (\n <>\n goToCourse(project.id)}>\n \n {project.projectName}\n \n \n \n );\n};\n\nexport const LeftDrawerProjectItem = Component;\n","import { INIT_PROJECT } from '@/types/Project';\nimport {\n Divider,\n ListItem,\n ListItemIcon,\n ListItemText,\n} from '@material-ui/core';\nimport { Add, BookmarksOutlined } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport { LeftDrawerProjectItem } from '../../../../../components/admin/LeftDrawerProjectItem';\nimport { useStores } from '../../../../../stores';\nimport { UserRole } from '../../../../../types/UserRole';\n\ninterface IProjectMenuProps {\n goTo: (path: string) => void;\n}\n\nconst ProjectMenu = ({ goTo }: IProjectMenuProps) => {\n const { userStore, projectStore } = useStores();\n const { user } = userStore;\n\n const handleAddProjectClick = () => {\n projectStore.openProjectPanel(INIT_PROJECT);\n };\n\n const goToCourse = (id = 0) => {\n goTo(`/projects/${id}/courses`);\n };\n\n React.useEffect(() => {\n projectStore.getLeftMenuList();\n }, [projectStore]);\n\n return (\n <>\n goTo('/projects')}>\n \n \n \n \n \n {user?.currentRole === UserRole.Admin && (\n <>\n \n \n Legg til\n \n \n \n )}\n {projectStore.arrangedProjects.map((project) => (\n \n ))}\n goTo('/projects?isArchived=1')}>\n Arkivert\n \n \n \n );\n};\n\nexport default observer(ProjectMenu);\n","import {\n Divider,\n Drawer,\n IconButton,\n List,\n ListItem,\n ListItemIcon,\n ListItemText,\n makeStyles,\n} from '@material-ui/core';\nimport { ArrowBack, HomeOutlined } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport { useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useStores } from '../../../../stores';\nimport { UserRole } from '../../../../types/UserRole';\nimport { ReactComponent as Logo } from './../../../../assets/OsloskolenLogo-hvit.svg';\nimport {\n adminMenuItems,\n adviserMenuItems,\n highSchoolContactMenuItems,\n MenuItem,\n studentMenuItems,\n} from './DrawerMenuVariants/menuItems';\nimport ProjectMenu from './DrawerMenuVariants/ProjectMenu';\n\nconst useStyles = makeStyles(({ palette }) => ({\n drawer: {\n '& .MuiSvgIcon-root': {\n fill: palette.primary.main,\n },\n },\n logo: {\n height: '36px',\n margin: '0 15px',\n fill: palette.primary.main,\n },\n list: {\n padding: 0,\n },\n minWidthDrawerMenu: {\n minWidth: '250px',\n },\n}));\n\nconst DrawerMenu = () => {\n const classes = useStyles();\n const history = useHistory();\n const { userStore, stateStore, schoolStore } = useStores();\n const { drawerMenuIsOpen, setDrawerMenuIsOpen } = stateStore;\n const { user } = userStore;\n const { currentSchool } = schoolStore;\n\n useEffect(() => {\n if (!currentSchool && user?.externalSchoolId)\n schoolStore.getSchoolByExternalId(user?.externalSchoolId);\n }, [currentSchool, schoolStore, user?.externalSchoolId]);\n\n const handleMenuClick = (path: string) => {\n history.push(path);\n setDrawerMenuIsOpen(false);\n };\n\n const mapToListItem = (item: MenuItem, i: number): JSX.Element => (\n
\n handleMenuClick(item.path)}>\n {item.icon}\n {item.name}\n \n \n
\n );\n\n const getMenuItems = () => {\n if (user?.currentRole === UserRole.Admin)\n return adminMenuItems.map(mapToListItem);\n\n if (user?.currentRole === UserRole.Adviser)\n return adviserMenuItems.map(mapToListItem);\n\n if (user?.currentRole === UserRole.HighSchoolContact)\n return highSchoolContactMenuItems.map(mapToListItem);\n\n if (user?.currentRole === UserRole.Student)\n return studentMenuItems.map(mapToListItem);\n };\n\n return (\n setDrawerMenuIsOpen(false)}\n elevation={10}\n className={classes.drawer}\n classes={{ paper: classes.minWidthDrawerMenu }}\n >\n
\n setDrawerMenuIsOpen(false)}>\n \n \n \n
\n \n
\n \n handleMenuClick('/home')}>\n \n \n \n \n \n \n {(user?.currentRole === UserRole.Admin ||\n user?.currentRole === UserRole.HighSchoolContact) && (\n \n )}\n {getMenuItems()}\n \n
\n \n );\n};\n\nexport default observer(DrawerMenu);\n","import { Button, makeStyles } from \"@material-ui/core\";\nimport { CheckCircle } from \"@material-ui/icons\";\nimport { observer } from \"mobx-react\";\nimport { useStores } from \"../../../../stores\";\nimport { getNorwegianRole, UserRole } from \"../../../../types/UserRole\";\n\ninterface IRoleButtonProps {\n role: UserRole,\n onClick: (role: UserRole) => void\n}\n\nconst useStyle = makeStyles(({ palette }) => ({\n active: {\n color: palette.primary.dark,\n fontWeight: 600\n },\n icon: {\n height: '20px'\n }\n}))\n\nconst RoleButton = ({ role, onClick }: IRoleButtonProps) => {\n const { userStore } = useStores();\n const { user } = userStore;\n\n const classes = useStyle()\n\n return(\n \n )\n}\n\nexport default observer(RoleButton);","import { makeStyles, Typography } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { useHistory } from 'react-router-dom';\nimport { useStores } from '../../../../stores';\nimport { UserRole } from '../../../../types/UserRole';\nimport RoleButton from './RoleButton';\n\nconst useStyles = makeStyles(() => ({\n flex: {\n display: 'flex',\n flexDirection: 'column',\n minWidth: '30%',\n '& .MuiButton-label': {\n justifyContent: 'left',\n },\n },\n fullscreen: {\n width: '100vw',\n heigh: '100vh',\n '& .MuiButton-label': {\n justifyContent: 'center',\n },\n },\n h1: {\n margin: 'auto',\n },\n}));\n\nconst RoleSelector = ({ fullscreen = false }) => {\n const { stateStore, userStore } = useStores();\n const { user } = userStore;\n const history = useHistory();\n\n const classes = useStyles();\n\n const onClick = (role: UserRole) => {\n userStore.setCurrentRole(role);\n history.push('/temp');\n history.push('/home');\n stateStore.setUserInformationDropdownIsOpen(false);\n };\n\n return (\n \n {fullscreen && (\n \n Velg en rolle for å gå videre\n \n )}\n {user?.hasSwitchRole(UserRole.Student) && (\n \n )}\n {user?.hasSwitchRole(UserRole.Adviser) && (\n \n )}\n {user?.hasSwitchRole(UserRole.HighSchoolContact) && (\n \n )}\n {user?.hasSwitchRole(UserRole.Admin) && (\n \n )}\n \n );\n};\n\nexport default observer(RoleSelector);\n","import { makeStyles } from \"@material-ui/core\";\n\ninterface IUseStylesProps {\n open: boolean\n}\n\nexport const useUserInformationStyles = makeStyles(({ palette, breakpoints }) => ({\n root: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n padding: '0 1.5em',\n alignSelf: 'stretch',\n transition: 'all 0.25s ease',\n backgroundColor: (props: IUseStylesProps) => props.open ? palette.info.light : palette.primary.main,\n color: (props: IUseStylesProps) => props.open ? palette.primary.dark : '#fff',\n '&:hover': {\n backgroundColor: palette.info.light,\n cursor: 'pointer',\n color: palette.primary.dark\n },\n gap: '15px'\n },\n name: {\n fontSize: '16px',\n lineHeight: '22px'\n },\n role: {\n fontSize: '14px',\n lineHeight: '20px'\n },\n personCircle: {\n backgroundColor: palette.primary.light,\n borderRadius: '50%',\n width: '36px',\n height: '36px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n\n}));\n\nexport const useUserInformationDropdownStyles = makeStyles(({ breakpoints }) => ({\n root: {\n position: 'fixed',\n right: 0,\n [`${breakpoints.up('xs')}`]: { \n top: 48, \n }, \n padding: '10px'\n },\n header: {\n display: 'flex',\n justifyContent: 'space-between',\n minWidth: '350px',\n alignItems: 'center'\n },\n main: {\n margin: '25px 0'\n },\n settingsButton: {\n\n },\n iconSpan: {\n marginLeft: '5px'\n },\n}))\n\n\n","import { Button, Paper, Typography } from '@material-ui/core';\nimport { ExitToAppOutlined, SettingsOutlined } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport React, { useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useStores } from '../../../../stores';\nimport { getNorwegianRole } from '../../../../types/UserRole';\nimport RoleSelector from './RoleSelector';\nimport { useUserInformationDropdownStyles } from './userInformationStyle';\n\nconst UserInformationDropdown = () => {\n const classes = useUserInformationDropdownStyles();\n const { userStore, accountStore, schoolStore } = useStores();\n const { user } = userStore;\n const { currentSchool } = schoolStore;\n const history = useHistory();\n\n useEffect(() => {\n if (!currentSchool?.externalId && user?.externalSchoolId)\n schoolStore.getSchoolByExternalId(user?.externalSchoolId);\n }, [currentSchool?.externalId, schoolStore, user?.externalSchoolId]);\n\n const logout = async () => {\n await accountStore.logout();\n history.push('/');\n };\n\n return (\n \n
\n \n {currentSchool?.schoolName ?? 'Karriereenheten'}\n \n \n
\n
\n {user?.fullName}\n \n <>\n {user ? getNorwegianRole(user.currentRole) : ''}\n {user?.switchRole !== 0 && }\n \n \n
\n
\n \n
\n
\n );\n};\n\nexport default observer(UserInformationDropdown);\n","import { Typography, useMediaQuery, useTheme } from \"@material-ui/core\"\nimport { PersonOutlined } from \"@material-ui/icons\";\nimport { observer } from \"mobx-react\";\nimport React from \"react\";\nimport { useStores } from \"../../../../stores\";\nimport { getNorwegianRole } from \"../../../../types/UserRole\";\nimport UserInformationDropdown from \"./UserInformationDropdown\";\nimport { useUserInformationStyles } from \"./userInformationStyle\";\n\nconst UserInformation = () => {\n const { userStore, stateStore } = useStores();\n const { user } = userStore;\n const { userInformationDropdownIsOpen: open, toggleUserInformationDropdownIsOpen: toggleOpen } = stateStore;\n const classes = useUserInformationStyles({ open });\n\n const { breakpoints } = useTheme();\n const isExtraSmall = useMediaQuery(breakpoints.down('xs'))\n\n return(\n <>\n
\n {!isExtraSmall &&
\n {user?.fullName}\n {getNorwegianRole(user?.currentRole)}\n
}\n
\n \n
\n
\n {open && }\n \n )\n}\n\nexport default observer(UserInformation);","import { makeStyles } from '@material-ui/core';\n\nconst useLayoutStyle = makeStyles(({ breakpoints, palette, spacing }) => ({\n main: {\n [`${breakpoints.up('xs')}`]: {\n marginTop: 48,\n minHeight: 'calc(100vh - 48px)',\n },\n backgroundColor: palette.grey[50],\n },\n appBar: {\n flexGrow: 1,\n fill: '#fff',\n },\n toolBar: {\n gap: '16px',\n },\n menuButton: {\n marginRight: spacing(2),\n '& .MuiSvgIcon-root': {\n color: '#fff',\n },\n },\n title: {\n flexGrow: 1,\n },\n logo: {\n height: '36px',\n },\n}));\n\nexport default useLayoutStyle;\n","import {\n AppBar,\n IconButton,\n Link,\n Toolbar,\n Typography,\n useMediaQuery,\n useTheme,\n} from '@material-ui/core';\nimport MenuIcon from '@material-ui/icons/Menu';\nimport { observer } from 'mobx-react';\nimport React, { FC } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { CreateEditProjectDrawer } from '../../../components/admin/CreateEditProjectDrawer';\nimport { useStores } from '../../../stores';\nimport { UserRole } from '../../../types/UserRole';\nimport { ReactComponent as Logo } from './../../../assets/OsloskolenLogo-hvit.svg';\n//import AppBarIcons from './components/AppBarIcons';\nimport DrawerMenu from './components/DrawerMenu';\nimport RoleSelector from './components/RoleSelector';\nimport UserInformation from './components/UserInformation';\nimport useLayoutStyle from './layoutStyle';\n\nconst MainLayout: FC = ({ children }) => {\n const classes = useLayoutStyle();\n const { userStore, stateStore, projectStore } = useStores();\n const { setDrawerMenuIsOpen, setAddProjectFormIsOpen } = stateStore;\n const { user } = userStore;\n\n const isStudent = user?.currentRole === UserRole.Student;\n const { breakpoints } = useTheme();\n const isExtraSmall = useMediaQuery(breakpoints.down('xs'));\n\n const history = useHistory();\n\n const handleStateAddProjectForm = React.useCallback(() => {\n setAddProjectFormIsOpen(!!projectStore.editingProject);\n }, [projectStore.editingProject, setAddProjectFormIsOpen]);\n\n React.useEffect(() => {\n handleStateAddProjectForm();\n }, [handleStateAddProjectForm]);\n\n return (\n <>\n {user?.hasMultipleRoles() && user.currentRole < 1 ? (\n <>\n \n \n ) : (\n <>\n \n \n {!isStudent && (\n setDrawerMenuIsOpen(true)}\n >\n \n \n )}\n history.push('/home')}>\n \n \n {!isStudent && isExtraSmall ? null : (\n \n Kurs i utdanningsprogram Oslo\n \n )}\n {/* {!isStudent && } */}\n \n \n \n \n
{children}
\n projectStore.closeProjectPanel()}\n openLeftMenu={() => {\n stateStore.setDrawerMenuIsOpen(true);\n }}\n >\n \n )}\n \n );\n};\nexport default observer(MainLayout);\n","import { useStores } from '@/stores';\nimport { flexCol } from '@/style/common';\nimport { Button, CircularProgress } from '@material-ui/core';\nimport { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nconst NotFoundError = () => {\n const history = useHistory();\n const { userStore } = useStores();\n const { user, getCurrentUser } = userStore;\n\n const [isLoading, setIsLoading] = useState(false);\n\n useEffect(() => {\n async function tryGetCurrentUser() {\n if (!user) {\n setIsLoading(true);\n await getCurrentUser();\n }\n setIsLoading(false);\n }\n\n tryGetCurrentUser();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
\n

Denne siden ble ikke funnet.

\n {isLoading ? (\n <>\n \n

Vi prøver å logge deg inn

\n \n ) : (\n

Trykk på knappen for å gå til innloggingssiden

\n )}\n \n
\n );\n};\n\nexport default NotFoundError;\n","import { observer } from 'mobx-react';\nimport React, { ReactNode, useEffect } from 'react';\nimport { Redirect } from 'react-router';\nimport { useStores } from '../stores';\nimport { UserRole } from '../types/UserRole';\n\ninterface IRouteGuardProps {\n roles: UserRole;\n children: ReactNode;\n}\n\nconst RouteGuard = ({ roles, children }: IRouteGuardProps) => {\n const { userStore } = useStores();\n const { user } = userStore;\n\n useEffect(() => {\n if (!user || !user.isCurrentlyRole(roles)) userStore.removeUser();\n });\n\n return (\n <>\n {user && user.isCurrentlyRole(roles) ? (\n children\n ) : (\n \n )}\n \n );\n};\n\nexport default observer(RouteGuard);\n","import { flexRow } from '@/style/common';\nimport { Divider, makeStyles, Typography } from '@material-ui/core';\nimport { HomeOutlined } from '@material-ui/icons';\nimport { ReactNode } from 'react';\n\nconst useStyle = makeStyles(({ palette, breakpoints }) => ({\n root: {\n width: '100%',\n backgroundColor: palette.primary.light,\n ...flexRow,\n justifyContent: 'space-between',\n alignItems: 'center',\n minHeight: '96px',\n padding: '20px 115px',\n [breakpoints.down('md')]: {\n padding: '10px 5px',\n },\n },\n header: ({ titlePadding }: { titlePadding?: number }) => ({\n ...flexRow,\n alignItems: 'center',\n gap: '16px',\n '& .MuiDivider-root': {\n backgroundColor: palette.primary.main,\n height: '50%',\n minHeight: '30px',\n },\n paddingLeft: titlePadding ? titlePadding : 10,\n color: palette.primary.dark,\n }),\n headerText: {\n fontWeight: 400,\n },\n}));\n\ninterface IAdminHeaderProps {\n title?: ReactNode;\n actions?: ReactNode;\n titlePadding?: number;\n}\n\nconst AdminHeader = ({ title, actions, titlePadding }: IAdminHeaderProps) => {\n const classes = useStyle({ titlePadding });\n\n return (\n
\n
\n \n \n \n {title}\n \n
\n
{actions}
\n
\n );\n};\n\nexport default AdminHeader;\n","import { InputAdornment, makeStyles, TextField } from '@material-ui/core';\nimport { Search } from '@material-ui/icons';\nimport { ReactNode } from 'react';\nimport clsx from 'clsx';\n\nconst useStyle = makeStyles(({ palette, breakpoints }) => ({\n root: {\n width: '100%',\n backgroundColor: palette.primary['50'],\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n minHeight: '56px',\n padding: '2px 115px',\n [breakpoints.down('md')]: {\n padding: '2px 5px',\n },\n },\n searchInput: {\n width: '50%',\n [breakpoints.down('md')]: {\n width: '100%',\n },\n },\n actions: {\n display: 'flex',\n alignItems: 'center',\n },\n pointer: { cursor: 'pointer' },\n}));\n\ninterface IAdminSearchBarProps {\n handleSearchValueChange: (val: string) => void;\n label: string;\n children?: ReactNode;\n searchStudent?: () => void;\n}\n\nconst AdminSearchBar = ({\n handleSearchValueChange,\n label,\n children,\n searchStudent,\n}: IAdminSearchBarProps) => {\n const classes = useStyle();\n\n return (\n
\n handleSearchValueChange(e.target.value)}\n InputProps={{\n disableUnderline: true,\n endAdornment: (\n \n {\n if (searchStudent) {\n searchStudent();\n }\n }}\n classes={{ root: clsx({ [classes.pointer]: !!searchStudent }) }}\n />\n \n ),\n }}\n label={label}\n />\n
{children}
\n
\n );\n};\n\nexport default AdminSearchBar;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(() => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n },\n}));\n\nexport default useStyle;\n","import { useStores } from '@/stores';\nimport IContactPerson from '@/types/ContactPerson';\nimport { SchoolType } from '@/types/School';\nimport { UserRole } from '@/types/UserRole';\nimport {\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n Button,\n Checkbox,\n FormControlLabel,\n} from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { ChangeEvent, FormEvent, useEffect, useState } from 'react';\nimport useStyle from './style';\n\nconst AddExistingContactPerson = () => {\n const { schoolStore } = useStores();\n const { connectedUsers, editingSchool } = schoolStore;\n\n const contactPeopleIds = editingSchool.contactPeople.map((cp) => cp.userId);\n const filteredConnectedUsers = connectedUsers.filter(\n (u) => !contactPeopleIds.includes(u.id)\n ).sort((a, b) =>\n (a.fullName ?? '') > (b.fullName ?? '') ? 1 : -1\n );\n\n const [isMain, setIsMain] = useState(false);\n const [selectedUserId, setSelectedUserId] = useState(0);\n\n const classes = useStyle();\n\n useEffect(() => {\n if (editingSchool.externalId)\n schoolStore.getConnectedUsers(\n editingSchool.externalId,\n editingSchool.schoolType === SchoolType.HighSchool\n ? UserRole.HighSchoolContact\n : UserRole.Adviser\n );\n }, [editingSchool.externalId, editingSchool.schoolType, schoolStore]);\n\n const handleChange = (e: ChangeEvent<{ value: unknown }>) => {\n setSelectedUserId(e.target.value as number);\n };\n\n const handleSubmit = (e: FormEvent) => {\n e.preventDefault();\n\n if (!connectedUsers.map((u) => u.id).includes(selectedUserId)) return;\n\n let tempContactPeople = [...editingSchool.contactPeople];\n\n if (isMain) {\n tempContactPeople = tempContactPeople.map((cp) => ({\n ...cp,\n isMain: false,\n }));\n }\n\n const newContactPerson: IContactPerson = {\n externalSchoolId: editingSchool.externalId,\n userId: selectedUserId,\n isMain: isMain,\n user: connectedUsers.find((u) => u.id === selectedUserId),\n };\n\n tempContactPeople.push(newContactPerson);\n\n schoolStore.setEditingSchool({\n ...editingSchool,\n contactPeople: tempContactPeople,\n });\n\n setIsMain(false);\n setSelectedUserId(0);\n };\n\n return (\n
\n \n \n Velg en eksiterende bruker\n \n \n {filteredConnectedUsers.length === 0 && (\n \n Alle tilkoblede brukere er valgt som kontaktpersoner\n \n )}\n {filteredConnectedUsers.map((cu) => (\n {cu.fullName}\n ))}\n \n {\n setIsMain((e.target as HTMLInputElement).checked);\n }}\n checked={isMain}\n control={}\n />\n \n \n
\n );\n};\n\nexport default observer(AddExistingContactPerson);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(() => ({\n form: {\n display: 'flex',\n flexDirection: 'column',\n '& .MuiTextField-root': {\n margin: '10px 0',\n },\n },\n}));\n\nexport default useStyle;\n","import { useStores } from '@/stores';\nimport IContactPerson from '@/types/ContactPerson';\nimport { User } from '@/types/User';\nimport { UserRole } from '@/types/UserRole';\nimport {\n Button,\n Checkbox,\n FormControlLabel,\n TextField,\n} from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { FormEvent, useState } from 'react';\nimport useStyle from './style';\n\nconst AddNewContactPerson = () => {\n const classes = useStyle();\n\n const { schoolStore } = useStores();\n const { editingSchool } = schoolStore;\n const { contactPeople } = editingSchool;\n\n const [id, setId] = useState();\n const [userId, setUserId] = useState();\n const [userName, setUserName] = useState('');\n const [fullName, setFullName] = useState('');\n const [emailAddress, setEmailAddress] = useState('');\n const [phoneNumber, setPhoneNumber] = useState('');\n const [isMain, setIsMain] = useState(!contactPeople.some((cp) => cp.isMain));\n\n const newContactPerson: IContactPerson = {\n id,\n externalSchoolId: editingSchool.externalId,\n userId,\n isMain,\n };\n\n const handleSubmit = (e: FormEvent) => {\n e.preventDefault();\n\n if (!userId) {\n const newUser = new User();\n newContactPerson.user = {\n ...newUser,\n userName,\n fullName,\n emailAddress,\n phoneNumber,\n role: UserRole.HighSchoolContact,\n externalSchoolId: editingSchool.externalId ?? '',\n };\n }\n\n let tempContactPeople = [...contactPeople];\n\n if (isMain) {\n tempContactPeople = tempContactPeople.map((cp) => ({\n ...cp,\n isMain: false,\n }));\n }\n\n if (id) {\n const editIndex = tempContactPeople.findIndex((cp) => cp.id === id);\n\n tempContactPeople[editIndex] = newContactPerson;\n } else {\n tempContactPeople.push(newContactPerson);\n }\n\n resetForm();\n schoolStore.setEditingSchool({\n ...editingSchool,\n contactPeople: tempContactPeople,\n });\n };\n\n const resetForm = () => {\n setId(undefined);\n setUserId(undefined);\n setUserName('');\n setFullName('');\n setEmailAddress('');\n setPhoneNumber('');\n setIsMain(false);\n };\n\n return (\n
\n {\n setUserName(e.currentTarget.value);\n }}\n value={userName}\n />\n {\n setFullName(e.currentTarget.value);\n }}\n value={fullName}\n />\n {\n setEmailAddress(e.currentTarget.value);\n }}\n value={emailAddress}\n />\n {\n setPhoneNumber(e.currentTarget.value);\n }}\n value={phoneNumber}\n />\n {\n setIsMain((e.target as HTMLInputElement).checked);\n }}\n checked={isMain}\n control={}\n />\n
\n \n \n
\n \n );\n};\nexport default observer(AddNewContactPerson);\n","import { flexCol } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(({ palette }) => ({\n subheader: {\n color: palette.primary.dark,\n marginBottom: '6px',\n },\n addContactPeopleWrapper: {\n ...flexCol,\n width: '300px',\n },\n}));\n\nexport default useStyle;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(() => ({\n contactPersonChip: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n minHeight: '36px',\n },\n}));\n\nexport default useStyle;\n","import IContactPerson from '@/types/ContactPerson';\nimport { Chip } from '@material-ui/core';\nimport useStyle from './style';\n\ninterface IContactPersonChipProps {\n contactPerson: IContactPerson;\n handleDelete: (cp: IContactPerson) => void;\n}\n\nconst ContactPersonChip = ({\n contactPerson,\n handleDelete,\n}: IContactPersonChipProps) => {\n const classes = useStyle();\n\n return (\n
\n handleDelete(contactPerson)}\n />\n
\n );\n};\nexport default ContactPersonChip;\n","import IContactPerson from '@/types/ContactPerson';\nimport { Button, Typography } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { useStores } from '../../../../../../stores';\nimport AddExistingContactPerson from './AddExistingContactPerson';\nimport AddNewContactPerson from './AddNewContactPerson';\nimport useStyle from './style';\nimport { useState } from 'react';\nimport ContactPersonChip from './ContactPersonChip';\n\nconst SelectContactPeople = () => {\n const classes = useStyle();\n const { schoolStore } = useStores();\n const { editingSchool } = schoolStore;\n const { contactPeople } = editingSchool;\n\n const [addNew, setAddNew] = useState(!editingSchool.externalId);\n const handleDelete = (cp: IContactPerson) => {\n let deleteIndex = -1;\n if (cp.id) {\n deleteIndex = contactPeople.findIndex((p) => p.id === cp.id);\n } else {\n deleteIndex = contactPeople.findIndex(\n (p) => p.user?.emailAddress === cp.user?.emailAddress\n );\n }\n\n if (deleteIndex > -1) {\n const tempContactPeople = [...contactPeople];\n\n tempContactPeople.splice(deleteIndex, 1);\n\n schoolStore.setEditingSchool({\n ...editingSchool,\n contactPeople: tempContactPeople,\n });\n }\n };\n\n return (\n
\n {contactPeople.filter((cp) => cp.isMain).length > 0 && (\n \n Hovedkontaktperson\n \n )}\n {contactPeople\n .filter((cp) => cp.isMain)\n .map((cp, i) => (\n \n ))}\n \n Kontaktpersoner\n \n {contactPeople\n .filter((cp) => !cp.isMain)\n .sort((a, b) =>\n (a.user?.fullName ?? '') > (b.user?.fullName ?? '') ? 1 : -1\n )\n .map((cp, i) => {\n return (\n \n );\n })}\n {!addNew ? (\n <>\n \n \n \n ) : (\n <>\n \n {!!editingSchool.externalId && (\n \n )}\n \n )}\n
\n );\n};\n\nexport default observer(SelectContactPeople);\n","export const hasDuplicates = (array: any[]): boolean => {\n return array.length !== new Set(array).size;\n};\n\nexport const removeDuplicatesBy = (keyFn: (val: T) => any, array: T[]) => {\n const mySet = new Set();\n return array.filter(function (x) {\n const key = keyFn(x),\n isNew = !mySet.has(key);\n if (isNew) mySet.add(key);\n return isNew;\n });\n};\n","import { flexRow } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(() => ({\n form: {\n display: 'flex',\n flexDirection: 'column',\n '& .MuiTextField-root': {\n margin: '10px 0',\n },\n width: '302px',\n marginBottom: '84px',\n },\n addressWrapper: {\n ...flexRow,\n gap: '6px',\n },\n}));\n\nexport default useStyle;\n","import { useStores } from '@/stores';\nimport { IUpdateSchoolDto } from '@/types/School';\nimport IStudySubject, { ISchoolStudySubject } from '@/types/StudySubject';\nimport { removeDuplicatesBy } from '@/utils/arrayUtils';\nimport { Checkbox, Chip, FormControlLabel, TextField } from '@material-ui/core';\nimport { Autocomplete } from '@material-ui/lab';\nimport { observer } from 'mobx-react';\nimport { FormEvent, useEffect } from 'react';\nimport useStyle from './style';\n\ninterface IHighSchoolInformation {\n setLoading: (loading: boolean) => void;\n setTab: (tab: string) => void;\n}\n\nconst HighSchoolInformation = ({\n setLoading,\n setTab,\n}: IHighSchoolInformation) => {\n const classes = useStyle();\n const { studySubjectStore, schoolStore, stateStore, errorStore } =\n useStores();\n const { showErrorMessage } = errorStore;\n const { allStudySubjects } = studySubjectStore;\n const { editingSchool, setEditingSchool } = schoolStore;\n const { setSchoolDrawerIsOpen } = stateStore;\n\n useEffect(() => {\n studySubjectStore.getAllStudySubjects();\n }, [allStudySubjects.length, studySubjectStore]);\n\n const handleAutoCompleteChange = (value: (string | IStudySubject)[]) =>\n setChosenPrograms(value);\n\n const handleSubmit = async (e: FormEvent) => {\n e.preventDefault();\n\n if (\n !editingSchool.studySubjects ||\n editingSchool.studySubjects?.length < 1\n ) {\n showErrorMessage('Vennligst velg minst ett kurs.');\n setTab('info');\n return;\n }\n\n setLoading(true);\n\n try {\n if (editingSchool.externalId) {\n await schoolStore.updateSchool(editingSchool as IUpdateSchoolDto);\n } else {\n await schoolStore.createSchool(editingSchool);\n }\n setSchoolDrawerIsOpen(false);\n setLoading(false);\n } catch {\n setLoading(false);\n }\n };\n\n const setSchoolName = (name: string) =>\n setEditingSchool({ ...editingSchool, schoolName: name });\n const setZipCode = (zipCode: string) =>\n setEditingSchool({\n ...editingSchool,\n address: { ...editingSchool.address, zipCode },\n });\n const setStreet = (street: string) =>\n setEditingSchool({\n ...editingSchool,\n address: { ...editingSchool.address, street },\n });\n const setCity = (city: string) =>\n setEditingSchool({\n ...editingSchool,\n address: { ...editingSchool.address, city },\n });\n const setChosenPrograms = (value: (string | IStudySubject)[]) =>\n setEditingSchool({\n ...editingSchool,\n studySubjects: removeDuplicatesBy(\n (v) => v.studySubjectId,\n value.map((v) => ({\n studySubjectId: (v as IStudySubject).id,\n studySubject: v as IStudySubject,\n }))\n ),\n });\n\n const setDeactivated = (deactivated: boolean) =>\n setEditingSchool({\n ...editingSchool,\n deactivated,\n });\n\n return (\n <>\n \n setSchoolName(e.currentTarget.value)}\n value={editingSchool.schoolName}\n />\n setStreet(e.currentTarget.value)}\n value={editingSchool.address.street}\n />\n
\n setZipCode(e.currentTarget.value)}\n value={editingSchool.address.zipCode}\n />\n setCity(e.currentTarget.value)}\n value={editingSchool.address.city}\n />\n
\n !value.isHide)}\n getOptionLabel={(o) => o?.studySubjectName ?? ''}\n renderTags={(value: IStudySubject[], getTagProps) =>\n value.map((option: IStudySubject, index: number) => (\n \n ))\n }\n onChange={(_, value) => handleAutoCompleteChange(value)}\n renderInput={(params) => }\n value={editingSchool.studySubjects.map((ss) => ss.studySubject)}\n />\n {\n setDeactivated((e.target as HTMLInputElement).checked);\n }}\n checked={editingSchool.deactivated}\n control={}\n />\n \n \n );\n};\n\nexport default observer(HighSchoolInformation);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(({ palette }) => ({\n root: {\n width: '350px',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'space-between',\n },\n header: {\n color: palette.primary.dark,\n padding: '24px',\n },\n divider: {\n margin: '6px 0 16px 0',\n },\n tabAppBar: {\n backgroundColor: 'transparent',\n color: palette.primary.main,\n fontWeight: 400,\n boxShadow: 'none',\n '& .MuiButtonBase-root': {\n borderBottom: '2px solid ' + palette.primary.light,\n },\n '& .MuiTabs-indicator': {\n backgroundColor: palette.primary.main,\n },\n },\n tabPanels: {\n overflow: 'auto',\n },\n buttonContainer: {\n boxShadow: '0px -1px 3px rgba(51, 51, 51, 0.2)',\n '& .MuiButton-root': {\n margin: '0 15px 0 0',\n },\n padding: '24px',\n position: 'absolute',\n bottom: 0,\n width: '100%',\n backgroundColor: '#fff',\n },\n loadingButton: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n marginTop: -12,\n marginLeft: -12,\n },\n}));\n\nexport default useStyle;\n","import { flexRow } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(({ palette }) => ({\n form: {\n display: 'flex',\n flexDirection: 'column',\n '& .MuiTextField-root': {\n margin: '10px 0',\n },\n width: '302px',\n marginBottom: '84px',\n },\n addressWrapper: {\n ...flexRow,\n gap: '6px',\n },\n dragAndDropSchools: {\n position: 'relative',\n height: '41px',\n backgroundColor: palette.grey[50],\n lineHeight: '41px',\n '&:before': {\n content: '\"\"',\n height: '1px',\n backgroundColor: palette.primary[100],\n position: 'absolute',\n left: '5%',\n bottom: 0,\n width: '90%',\n },\n '&:hover': {\n backgroundColor: '#C6CADE',\n borderBottom: '1px solid ' + palette.primary[600],\n '& $dragIndicator': {\n opacity: 1,\n },\n },\n },\n dragIndicator: {\n opacity: 0,\n },\n}));\n\nexport default useStyle;\n","import { useStores } from '@/stores';\nimport {\n Checkbox,\n FormControlLabel,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport {\n DragDropContext,\n Draggable,\n Droppable,\n DropResult,\n ResponderProvided,\n} from 'react-beautiful-dnd';\nimport { FormEvent, useEffect } from 'react';\nimport useStyle from './style';\nimport { DragIndicator } from '@material-ui/icons';\nimport { IUpdateSchoolDto } from '@/types/School';\n\ninterface IGUInformationProps {\n setLoading: (loading: boolean) => void;\n}\n\nconst GUInformation = ({ setLoading }: IGUInformationProps) => {\n const classes = useStyle();\n const { schoolStore, stateStore } = useStores();\n const {\n editingSchool,\n setEditingSchool,\n highSchools,\n getPopulatedHighSchools,\n distanceAndPriorities,\n setDistanceAndPriorities,\n getDistanceAndPriotiesByGUId,\n } = schoolStore;\n const { setSchoolDrawerIsOpen } = stateStore;\n\n useEffect(() => {\n if (highSchools.length === 0) getPopulatedHighSchools();\n\n getDistanceAndPriotiesByGUId(editingSchool.externalId);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [editingSchool.externalId, highSchools.length]);\n\n const handleSubmit = async (e: FormEvent) => {\n e.preventDefault();\n\n setLoading(true);\n\n try {\n const updateSchool: IUpdateSchoolDto = {\n ...editingSchool,\n distanceAndPriorities,\n };\n if (updateSchool.externalId) {\n await schoolStore.updateSchool(updateSchool);\n } else {\n await schoolStore.createSchool(updateSchool);\n }\n setSchoolDrawerIsOpen(false);\n setLoading(false);\n } catch {\n setLoading(false);\n }\n };\n\n const setSchoolName = (name: string) =>\n setEditingSchool({ ...editingSchool, schoolName: name });\n const setZipCode = (zipCode: string) =>\n setEditingSchool({\n ...editingSchool,\n address: { ...editingSchool.address, zipCode },\n });\n const setStreet = (street: string) =>\n setEditingSchool({\n ...editingSchool,\n address: { ...editingSchool.address, street },\n });\n const setCity = (city: string) =>\n setEditingSchool({\n ...editingSchool,\n address: { ...editingSchool.address, city },\n });\n const setDeactivated = (deactivated: boolean) =>\n setEditingSchool({\n ...editingSchool,\n deactivated,\n });\n\n const handleDragChange = (\n result: DropResult,\n provided: ResponderProvided\n ) => {\n if (result.destination) {\n let items = Array.from(distanceAndPriorities);\n const [reorderedItem] = items.splice(result.source.index, 1);\n items.splice(result.destination?.index, 0, reorderedItem);\n\n items = items.map((dp, i) => ({ ...dp, priority: i + 1 }));\n\n setDistanceAndPriorities(items);\n }\n };\n\n return (\n <>\n
\n setSchoolName(e.currentTarget.value)}\n value={editingSchool.schoolName}\n />\n setStreet(e.currentTarget.value)}\n value={editingSchool.address?.street}\n />\n
\n setZipCode(e.currentTarget.value)}\n value={editingSchool.address?.zipCode}\n />\n setCity(e.currentTarget.value)}\n value={editingSchool.address?.city}\n />\n
\n {\n setDeactivated((e.target as HTMLInputElement).checked);\n }}\n checked={editingSchool.deactivated}\n control={}\n />\n Sett prioriteringsrekkefølge\n \n \n {(provided) => (\n
\n {distanceAndPriorities.map((dp, index) => (\n \n {(provided) => (\n \n \n {dp.highSchool.schoolName}\n
\n )}\n \n ))}\n {provided.placeholder}\n \n )}\n
\n
\n \n \n );\n};\n\nexport default observer(GUInformation);\n","import { useStores } from '@/stores';\nimport {\n AppBar,\n Button,\n CircularProgress,\n Drawer,\n Tab,\n Typography,\n} from '@material-ui/core';\nimport { TabContext, TabList, TabPanel } from '@material-ui/lab';\nimport { observer } from 'mobx-react';\nimport { useState } from 'react';\nimport SelectContactPeople from './SelectContactPeople';\nimport HighSchoolInformation from './HighSchoolInformation';\nimport useStyle from './style';\nimport { SchoolType } from '@/types/School';\nimport GUInformation from './GUInformation';\n\nconst AddOrEditSchoolDrawer = () => {\n const { schoolStore, stateStore } = useStores();\n const { editingSchool } = schoolStore;\n const { schoolDrawerIsOpen, setSchoolDrawerIsOpen } = stateStore;\n\n const [tabValue, setTabValue] = useState('info');\n const [loading, setLoading] = useState(false);\n\n const classes = useStyle();\n\n const handleTabChange = (\n event: React.ChangeEvent>,\n newValue: string\n ) => {\n setTabValue(newValue);\n };\n\n const onClose = () => {\n schoolStore.resetEditingSchool();\n setSchoolDrawerIsOpen(false);\n };\n\n const isHighSchool = editingSchool.schoolType === SchoolType.HighSchool;\n\n return (\n \n \n {editingSchool?.externalId\n ? `Rediger ${isHighSchool ? 'VGS' : 'ungdomsskole'}`\n : `Legg til ${isHighSchool ? 'VGS' : 'ungdomsskole'}`}\n \n \n \n \n \n \n \n \n \n {editingSchool.schoolType === SchoolType.HighSchool ? (\n \n ) : (\n \n )}\n \n \n \n \n \n
\n setTabValue('info')}\n >\n {editingSchool?.externalId ? 'Lagre' : 'Opprett'}\n {loading ? (\n \n ) : null}\n \n \n
\n
\n );\n};\n\nexport default observer(AddOrEditSchoolDrawer);\n","import School from '@/types/School';\n\nexport const getSchoolAddressLink = (school: School) => {\n const encoded = encodeURIComponent(\n `${school.address?.street}, ${school.address?.zipCode} ${school.address?.city}`\n );\n return 'https://www.google.com/maps/search/?api=1&query=' + encoded;\n};\n","import { flexRow } from '@/style/common';\nimport { Chip, makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(() => ({\n root: {\n ...flexRow,\n flexWrap: 'wrap',\n justifyContent: 'flex-start',\n gap: '2px',\n },\n}));\n\ninterface IHorizontalChipListProps {\n values: string[];\n}\n\nconst HorizontalChipList = ({ values }: IHorizontalChipListProps) => {\n const classes = useStyle();\n\n return (\n
\n {values.map((s) => (\n \n ))}\n
\n );\n};\n\nexport default HorizontalChipList;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(({ palette }) => ({\n card: {\n padding: '16px',\n border: `1px solid ${palette.background.default}`,\n transition: 'all 0.2s ease',\n '&:hover': {\n backgroundColor: palette.primary[50],\n border: '1px solid ' + palette.primary[600],\n '& $editButton': {\n visibility: 'visible',\n },\n },\n },\n schoolName: {\n color: palette.primary.dark,\n fontWeight: 500,\n },\n deactivated: {\n color: palette.error.main,\n },\n header: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n editButton: {\n visibility: 'hidden',\n },\n contactContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n },\n contactName: {\n lineHeight: '48px',\n },\n}));\n\nexport default useStyle;\n","import { useStores } from '@/stores';\nimport { getSchoolAddressLink } from '@/utils/schoolUtils';\nimport { Card, Grid, IconButton, Link, Typography } from '@material-ui/core';\nimport {\n EditOutlined,\n EventBusy,\n MailOutlined,\n PersonAddOutlined,\n PhoneIphoneOutlined,\n SchoolOutlined,\n} from '@material-ui/icons';\nimport ISchool, { SchoolType } from '../../../../../types/School';\nimport HorizontalChipList from '../HorizontalChipList';\nimport useStyle from './style';\nimport PeopleAltOutlinedIcon from '@material-ui/icons/PeopleAltOutlined';\n\ninterface ISchoolCardProps {\n school: ISchool;\n isChoice?: boolean;\n handleOpenContactsPersonDrawer?: (externalSchoolId: string) => void;\n redirectToScreenStudent?: (externalId: string) => void;\n redirectToScreenCourse?: (externalId: string) => void;\n}\n\nconst SchoolCard = ({\n school,\n isChoice,\n handleOpenContactsPersonDrawer,\n redirectToScreenStudent,\n redirectToScreenCourse,\n}: ISchoolCardProps) => {\n const classes = useStyle();\n const { schoolStore, stateStore } = useStores();\n\n const mainContactPerson = school.contactPeople?.filter((cp) => cp.isMain)[0];\n\n const openImportStudentModal = (event: React.MouseEvent) => {\n _stopPropagation(event);\n schoolStore.setEditingSchool(school);\n\n stateStore.setImportStudentModalIsOpen(true);\n };\n\n const editSchool = (event: React.MouseEvent) => {\n _stopPropagation(event);\n schoolStore.setEditingSchool(school);\n\n stateStore.setSchoolDrawerIsOpen(true);\n };\n\n const editSchoolDates = (event: React.MouseEvent) => {\n _stopPropagation(event);\n schoolStore.setEditingSchool(school);\n\n stateStore.setUnavailableDateDrawerIsOpen(true);\n };\n\n const _stopPropagation = (event: React.MouseEvent) => {\n event.stopPropagation();\n };\n\n return (\n \n {\n if (isChoice && handleOpenContactsPersonDrawer && school.externalId) {\n handleOpenContactsPersonDrawer(school.externalId);\n }\n }}\n >\n
\n \n {school.schoolName}\n \n {school.deactivated && (\n \n Deaktivert\n \n )}\n
\n {school.schoolType === SchoolType.SecondarySchool && (\n <>\n ) => {\n if (school.externalId && redirectToScreenStudent) {\n redirectToScreenStudent(school.externalId);\n }\n }}\n >\n \n \n\n ) =>\n openImportStudentModal(event)\n }\n >\n \n \n\n ) =>\n editSchoolDates(event)\n }\n >\n \n \n \n )}\n {school.schoolType === SchoolType.HighSchool && (\n <>\n ) => {\n if (school.externalId && redirectToScreenCourse) {\n redirectToScreenCourse(school.externalId);\n }\n }}\n >\n \n \n \n )}\n ) =>\n editSchool(event)\n }\n >\n \n \n
\n
\n \n ) =>\n _stopPropagation(event)\n }\n href={getSchoolAddressLink(school)}\n target=\"_blank\"\n underline=\"always\"\n >\n {school.address?.street}, {school.address?.zipCode}{' '}\n {school.address?.city}\n \n \n {!!mainContactPerson && (\n
\n \n {mainContactPerson.user?.fullName}\n \n
\n ) =>\n _stopPropagation(event)\n }\n href={'mailto:' + mainContactPerson.user?.emailAddress}\n >\n \n \n ) =>\n _stopPropagation(event)\n }\n href={'tel:' + mainContactPerson.user?.phoneNumber}\n >\n \n \n
\n
\n )}\n {school.schoolType === SchoolType.HighSchool && (\n ss.studySubject?.studySubjectName\n )}\n />\n )}\n \n
\n );\n};\n\nexport default SchoolCard;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(({ breakpoints, palette }) => ({\n main: {\n margin: '20px 115px',\n display: 'flex',\n flexDirection: 'column',\n [breakpoints.down('md')]: {\n margin: '10px 5px',\n },\n },\n filterContainer: {\n display: 'flex',\n flexDirection: 'row',\n marginBottom: '30px',\n width: '50%',\n [breakpoints.down('md')]: {\n width: '100%',\n },\n },\n studySubjectFilterContainer: {\n flexGrow: 1,\n },\n studySubjectFilter: {\n width: '100%',\n '& .MuiFormLabel-root': {\n lineHeight: 0,\n },\n },\n counterText: {\n display: 'flex',\n alignSelf: 'center',\n marginLeft: '30px',\n paddingTop: '20px',\n },\n}));\n\nexport default useStyle;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(({ palette, breakpoints }) => ({\n boxFilter: {\n display: 'flex',\n alignItems: 'center',\n padding: '10px 115px',\n [breakpoints.down('md')]: {\n padding: '10px 5px',\n },\n },\n marginLeftAuto: {\n marginLeft: 'auto',\n },\n paddingOnBox: {\n paddingRight: '10px',\n },\n btn: {\n border: `2px solid ${palette.primary[500]}`,\n borderRadius: '20px',\n color: palette.primary[500],\n backgroundColor: palette.common.white,\n padding: '4px 8px',\n marginRight: '10px',\n '&:last-child': {\n marginRight: '0px',\n },\n '&:hover': {\n backgroundColor: palette.background.default,\n },\n },\n btnActive: {\n backgroundColor: palette.primary[500],\n color: palette.common.white,\n '&:hover': {\n backgroundColor: palette.primary[500],\n },\n },\n}));\n\nexport default useStyle;\n","import { SchoolStatus } from '@/types/enums/SchoolStatus';\nimport { Box, Button } from '@material-ui/core';\nimport React from 'react';\nimport useStyle from './style';\nimport clsx from 'clsx';\n\ninterface IComponentProps {\n filter: SchoolStatus;\n handleChangeFilter: (value: SchoolStatus) => void;\n}\n\nconst ShoolStatusFilter = (props: IComponentProps) => {\n const { filter, handleChangeFilter } = props;\n const classes = useStyle();\n\n return (\n \n
\n {\n if (filter !== SchoolStatus.ALL) {\n await handleChangeFilter(SchoolStatus.ALL);\n }\n }}\n >\n Alle\n \n {\n if (filter !== SchoolStatus.ACTIVATE) {\n await handleChangeFilter(SchoolStatus.ACTIVATE);\n }\n }}\n >\n Aktive\n \n {\n if (filter !== SchoolStatus.DEACTIVATE) {\n await handleChangeFilter(SchoolStatus.DEACTIVATE);\n }\n }}\n >\n Deaktiverte\n \n
\n
\n );\n};\n\nexport default ShoolStatusFilter;\n","import {\n Chip,\n FormControl,\n Grid,\n IconButton,\n MenuItem,\n Select,\n Typography,\n} from '@material-ui/core';\nimport { Add } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport { useEffect, useState } from 'react';\nimport { useStores } from '../../../../stores';\nimport School, { SchoolType } from '../../../../types/School';\nimport AdminHeader from '../common/AdminHeader';\nimport AdminSearchBar from '../common/AdminSearchBar';\nimport AddHighSchoolDrawer from '../common/AddOrEditSchoolDrawer';\nimport SchoolCard from '../common/SchoolCard';\nimport useStyle from './style';\nimport { SchoolStatus } from '@/types/enums/SchoolStatus';\nimport ShoolStatusFilter from '../common/ShoolStatusFilter';\nimport { useHistory } from 'react-router-dom';\n\nconst HighSchools = () => {\n const [searchValue, setSearchValue] = useState('');\n const [chosenStudySubjects, setChosenStudySubjects] = useState([]);\n\n const {\n studySubjectStore,\n schoolStore,\n stateStore,\n courseStore,\n projectStore,\n } = useStores();\n const { allStudySubjects } = studySubjectStore;\n const { setSchoolDrawerIsOpen } = stateStore;\n const { highSchools, setEditingSchool } = schoolStore;\n\n const classes = useStyle();\n\n const [filter, setFilter] = useState(SchoolStatus.ACTIVATE);\n const handleChangeFilter = (value: SchoolStatus): void => {\n setFilter(value);\n };\n\n useEffect(() => {\n studySubjectStore.getAllStudySubjects();\n schoolStore.getPopulatedHighSchools(filter);\n }, [\n highSchools.length,\n allStudySubjects.length,\n schoolStore,\n studySubjectStore,\n filter,\n ]);\n\n const handleChange = (event: React.ChangeEvent<{ value: unknown }>) => {\n setChosenStudySubjects(event.target.value as number[]);\n };\n\n const handleOpenAddHighSchoolDrawer = () => {\n const newSchool = new School();\n newSchool.schoolType = SchoolType.HighSchool;\n\n setEditingSchool(newSchool);\n setSchoolDrawerIsOpen(true);\n };\n\n const searchFilter = (s: School) =>\n s.schoolName.toLowerCase().includes(searchValue.toLowerCase());\n const studySubjectFilter = (s: School) => {\n if (chosenStudySubjects.length === 0) return true;\n\n const schoolStudySubjectIds = s.studySubjects.map(\n (ss) => ss.studySubject.id\n );\n\n return chosenStudySubjects.some((ss) => schoolStudySubjectIds.includes(ss));\n };\n\n const filteredSchools = highSchools\n .filter(searchFilter)\n .filter(studySubjectFilter)\n .sort();\n\n useEffect(() => {\n if (!projectStore.currentProject) {\n projectStore.getCurrent();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const history = useHistory();\n const redirectToScreenCourse = (externalId: string): void => {\n courseStore.setExternalHighSchoolId(externalId);\n history.push(`/projects/${projectStore.currentProject?.id}/courses`);\n };\n\n return (\n <>\n
\n \n \n \n \n \n \n
\n
\n
\n
\n
\n \n Filtrer på kurs\n \n \n \n allStudySubjects\n .filter((ss) => (selected as number[]).includes(ss.id))\n .map((ss) => (\n \n ))\n }\n MenuProps={{\n variant: 'menu',\n }}\n >\n {allStudySubjects.map((ss) => (\n \n {ss.studySubjectName}\n \n ))}\n \n \n
\n \n Viser {filteredSchools.length} av {highSchools.length}{' '}\n videregående skoler\n \n
\n \n
\n \n {filteredSchools.map((school) => (\n \n ))}\n \n
\n \n \n );\n};\n\nexport default observer(HighSchools);\n","import { ControlledInputText } from '@/components/ControlledInputText';\nimport { InputAdornment, makeStyles } from '@material-ui/core';\nimport { SearchOutlined } from '@material-ui/icons';\n\ninterface IComponentProps {\n search: string;\n setSearch: (value: string) => void;\n handleSearch: () => void;\n label?: string;\n}\n\nconst searchStyles = makeStyles(() => ({\n root: {\n width: '100%',\n backgroundColor: 'rgba(255, 255, 255, 0.5)',\n '& .MuiFormHelperText-root': {\n marginTop: 0,\n },\n },\n pointer: { cursor: 'pointer' },\n height: { height: '52px' },\n}));\n\nconst CustomSearch = (props: IComponentProps) => {\n const { search, setSearch, handleSearch, label } = props;\n const classes = searchStyles();\n\n return (\n <>\n {\n setSearch(value);\n }}\n customClass={classes.root}\n inputProps={{\n endAdornment: (\n \n \n \n ),\n className: classes.height,\n }}\n />\n \n );\n};\n\nexport default CustomSearch;\n","import { makeStyles } from '@material-ui/core';\n\nexport const configStyle = {\n paddingHeader: 142,\n};\n\nconst dashboardStyle = makeStyles(({ breakpoints, palette }) => ({\n displayFlex: {\n display: 'flex',\n },\n dashboardFilterNav: {\n height: '56px',\n background:\n 'linear-gradient(0deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)), #EBEAF1',\n alignItems: 'flex-end',\n },\n leftContent: {\n padding: `0 ${configStyle.paddingHeader}px`,\n },\n heightFull: {\n height: '100%',\n },\n customSearch: {\n position: 'relative',\n width: '611px',\n height: '52px',\n padding: `4px 0`,\n boxSizing: 'content-box',\n [breakpoints.down('md')]: {\n width: '500px',\n },\n },\n currentProject: {\n fontSize: '18px',\n lineHeight: '25px',\n color: palette.grey.A100,\n paddingTop: '13px',\n paddingBottom: '8px',\n },\n pointer: { cursor: 'pointer' },\n backgroundColorFFF: {\n backgroundColor: palette.primary.A100,\n },\n alignItemsCenter: {\n alignItems: 'center',\n },\n contentBlock: {\n padding: '15px 24px',\n },\n currentProjectTitle: {\n fontSize: '24px',\n lineHeight: '34px',\n color: palette.grey.A100,\n marginRight: '12px',\n },\n currentTitle: {\n fontSize: '16px',\n color: palette.primary[900],\n },\n currentTitleWidth: {\n width: '94px',\n },\n marginRight24: {\n marginRight: '24px',\n },\n arrowForwardIcon: {\n color: palette.grey['900'],\n },\n divider: {\n opacity: 1,\n height: '2px !important',\n background:\n 'linear-gradient(0deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)), #EBEAF1',\n },\n dividerShort: {\n height: '2px !important',\n backgroundColor: palette.primary[900],\n width: '100px',\n marginTop: '16px',\n marginBottom: '12px',\n opacity: 1,\n },\n listSchoolTitle: {\n color: palette.primary[900],\n fontSize: '22px',\n lineHeight: '31px',\n },\n userCard: {\n padding: '24px 0',\n marginLeft: '-12px',\n marginRight: '-12px',\n display: 'flex',\n flexWrap: 'wrap',\n },\n userCardBlock: {\n margin: '8px 12px',\n },\n marginLeftAuto: {\n marginLeft: 'auto',\n },\n}));\n\nexport default dashboardStyle;\n","import React from 'react';\nimport clsx from 'clsx';\nimport CustomSearch from '@/components/CustomSearch';\nimport dashboardStyle from '@/views/style/dashboard';\n\ninterface IComponentProps {\n search: string;\n setSearch: (value: string) => void;\n handleSearch: () => void;\n}\n\nconst DashboardFilter = (props: IComponentProps) => {\n const { search, setSearch, handleSearch } = props;\n const classes = dashboardStyle();\n\n return (\n <>\n
\n
\n
\n \n
\n
\n
\n \n );\n};\n\nexport default DashboardFilter;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n backgroundColorTransparent: {\n backgroundColor: palette.background.default,\n },\n stepLineWidth: {\n minWidth: '20px',\n },\n stepLabel: {\n font: `normal normal 400 14px Oslo Sans, Roboto, Arial, sans-serif !important`,\n color: `${palette.primary[900]} !important`,\n },\n whiteSpaceNowrap: {\n whiteSpace: 'nowrap',\n },\n fontSize14: {\n fontSize: '14px',\n },\n stepIconActive: {\n color: `${palette.primary[600]} !important`,\n },\n}));\n\nexport default useStyles;\n","import { StepType } from '@/types/StepType';\nimport { Step, StepConnector, StepLabel, Stepper } from '@material-ui/core';\nimport clsx from 'clsx';\nimport React from 'react';\nimport useStyles from './style';\ninterface IComponentProps {\n steps: StepType[];\n step: number;\n}\n\nconst StepStatus = (props: IComponentProps) => {\n const { steps, step } = props;\n const classes = useStyles();\n\n return (\n <>\n \n }\n >\n {steps.map((item, index) => (\n \n \n {item.title}\n \n \n ))}\n \n \n );\n};\n\nexport default StepStatus;\n","import { makeStyles } from '@material-ui/core';\n\nconst config = {\n height: 184,\n width: 94,\n heightLabel: 74,\n widthColumn: 20,\n paddingTop: 10,\n};\n\nconst useStyles = makeStyles(({ palette }) => ({\n /**Item */\n itemBarChart: {\n position: 'relative',\n },\n itemBarChartSize: {\n height: `${config.height}px`,\n width: `${config.width}px`,\n },\n itemBarChartContent: {\n height: `${config.height - config.heightLabel}px`,\n },\n itemBarChartLabel: {\n height: `${config.heightLabel}px`,\n },\n itemBarChartContentColumns: {\n width: `${config.widthColumn * 2}px`,\n paddingTop: `${config.paddingTop}px`,\n marginLeft: 'auto',\n marginRight: 'auto',\n },\n itemBarChartContentWidthColumn: {\n width: `${config.widthColumn}px`,\n },\n capacityColumn: {\n backgroundColor: palette.primary.light,\n },\n joinColumn: {\n background:\n 'linear-gradient(0deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), #C6CADE',\n },\n joinOverloadColumn: {\n backgroundColor: palette.warning.dark,\n },\n positionRelative: {\n position: 'relative',\n },\n textColumn: {\n transform: 'rotate(-90deg)',\n height: '20px',\n lineHeight: '20px',\n fontSize: '12px',\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n paddingLeft: '5px',\n color: palette.primary[900],\n },\n textColorOverload: {\n color: palette.primary.A100,\n },\n labelColumn: {\n textAlign: 'center',\n fontSize: '12px',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n paddingTop: '8px',\n paddingLeft: '5px',\n paddingRight: '5px',\n },\n labelTooltip: {\n color: palette.primary.A100,\n backgroundColor: palette.primary[200],\n width: `${config.width}px`,\n margin: 0,\n padding: '5px 4px',\n textAlign: 'center',\n },\n highSchoolNameBox: {\n backgroundColor: palette.text.primary,\n },\n highSchoolName: {\n width: '64px',\n fontSize: '14px',\n color: palette.primary.A100,\n textAlign: 'center',\n },\n /**End Item */\n /**Legend */\n legendBarChartSize: {\n height: `${config.height - config.heightLabel}px`,\n width: `${config.width * 2}px`,\n },\n circleLegend: {\n width: '10px',\n height: '10px',\n borderRadius: '50%',\n marginRight: '10px',\n },\n legendColorOverload: {\n color: palette.warning.dark,\n },\n marginLeftAuto: {\n marginLeft: 'auto',\n },\n marginRight40: {\n marginRight: '40px',\n },\n /**End Legend */\n displayFlex: {\n display: 'flex',\n },\n displayNone: {\n display: 'none',\n },\n displayBlock: {\n display: 'block',\n },\n pointer: { cursor: 'pointer' },\n alignItemsCenter: {\n alignItems: 'center',\n },\n justifyContentCenter: {\n justifyContent: 'center',\n },\n alignItemsFlexEnd: {\n alignItems: 'flex-end',\n },\n widthFull: {\n width: '100%',\n },\n heightFull: {\n height: '100%',\n },\n positionAbsolute: {\n position: 'absolute',\n top: 0,\n },\n overflowXAuto: {\n overflowX: 'auto',\n },\n}));\n\nexport { config, useStyles };\n","import React from 'react';\nimport clsx from 'clsx';\nimport { IStatisticSubjectCapacity } from '@/types/StudentStudySubject';\nimport { config, useStyles } from './style';\nimport { Tooltip } from '@material-ui/core';\n\ninterface IComponentProps {\n maxCapacity: number;\n data: IStatisticSubjectCapacity;\n onClickLabel?: (studySubjectId: number) => void;\n}\n\nconst ItemBarChart = (props: IComponentProps) => {\n const { maxCapacity, data, onClickLabel } = props;\n const classes = useStyles();\n\n const [heightCapacity, setHeightCapacity] = React.useState(0);\n const [heightJoin, setHeightJoin] = React.useState(0);\n const [overload, setOverload] = React.useState(false);\n const [open, setOpen] = React.useState(false);\n\n React.useEffect(() => {\n const calculateHeight = (value: number) => {\n const maxHeight = config.height - config.heightLabel - config.paddingTop;\n if (value >= maxCapacity) {\n return maxHeight;\n }\n\n return Math.ceil((value / maxCapacity) * maxHeight);\n };\n\n if (data.numberJoinedStudent > data.capacity) {\n setOverload(true);\n }\n\n setHeightCapacity(calculateHeight(data.capacity));\n setHeightJoin(calculateHeight(data.numberJoinedStudent));\n }, [maxCapacity, data.capacity, data.numberJoinedStudent]);\n\n const afterOnClickLabel = (\n event: React.MouseEvent,\n studySubjectId: number\n ) => {\n event?.stopPropagation();\n\n if (onClickLabel) {\n onClickLabel(studySubjectId);\n }\n };\n\n return (\n <>\n
setOpen(!open)}>\n
\n
\n \n \n \n \n {data.numberJoinedStudent}\n
\n
\n
\n \n \n
{data.capacity}
\n \n \n \n \n
\n
\n \n ) =>\n afterOnClickLabel(event, data.studySubject.id)\n }\n >\n {data.studySubject.studySubjectName}\n \n \n
\n
\n \n \n \n
{data.highSchoolName}
\n \n \n \n \n );\n};\n\nexport default ItemBarChart;\n","import React from 'react';\nimport { useStyles } from './style';\nimport clsx from 'clsx';\n\nconst LegendBarChart = () => {\n const classes = useStyles();\n\n return (\n <>\n \n
\n
\n
\n
Tildelt
\n
\n
\n
\n
Kapasitet
\n \n {/*
\n
\n
Liten kapasitet
\n */}\n \n \n \n );\n};\n\nexport default LegendBarChart;\n","import { IStatisticSubjectCapacity } from '@/types/StudentStudySubject';\nimport React from 'react';\nimport ItemBarChart from './item';\nimport LegendBarChart from './legend';\nimport { useStyles } from './style';\n\ninterface IComponentProps {\n data: IStatisticSubjectCapacity[];\n maxCapacity: number;\n isLegend?: boolean;\n onClickLabel?: (studySubjectId: number) => void;\n}\n\nconst Row = (props: IComponentProps) => {\n const { data, maxCapacity, isLegend, onClickLabel } = props;\n const classes = useStyles();\n\n return (\n <>\n
\n
\n
\n {data.map((item) => (\n \n ))}\n
\n
\n {!!isLegend && }\n
\n \n );\n};\n\nexport default Row;\n","import { IStatisticSubjectCapacity } from '@/types/StudentStudySubject';\nimport React from 'react';\nimport Row from './row';\n\ninterface IComponentProps {\n data: IStatisticSubjectCapacity[];\n onClickLabel?: (studySubjectId: number) => void;\n}\n\nconst CustomBarChart = (props: IComponentProps) => {\n const { data, onClickLabel } = props;\n const [maxCapacity, setMaxCapacity] = React.useState(0);\n const [items, setItems] = React.useState([[]]);\n\n React.useEffect(() => {\n const max = _getMaxCapacity(data);\n const items = _getItems(data);\n setMaxCapacity(max);\n setItems(items);\n }, [data]);\n\n const _getItems = (\n data: IStatisticSubjectCapacity[]\n ): IStatisticSubjectCapacity[][] => {\n const items = [];\n let item = [];\n let isFirst = true;\n for (let j = 0; j < data.length; j++) {\n if (isFirst) {\n if (item.length < 9) {\n item.push(data[j]);\n } else {\n items.push(item);\n item = [];\n isFirst = false;\n j--;\n }\n } else {\n if (item.length < 11) {\n item.push(data[j]);\n } else {\n items.push(item);\n item = [];\n item.push(data[j]);\n }\n }\n }\n\n if (item.length > 0) {\n items.push(item);\n }\n return items;\n };\n\n const _getMaxCapacity = (data: IStatisticSubjectCapacity[]): number => {\n let max = 0;\n\n if (data.length > 0) {\n max = data[0].capacity;\n for (let i = 1; i < data.length; i++) {\n if (data[i].capacity > max) {\n max = data[i].capacity;\n }\n }\n }\n\n return max;\n };\n\n return (\n <>\n {items.map((item, index) => {\n if (index === 0) {\n return (\n \n );\n } else {\n return (\n \n );\n }\n })}\n \n );\n};\n\nexport default CustomBarChart;\n","import { IProject } from '@/types/Project';\n\nexport const getStepVGS = (project: IProject | null): number => {\n let result = -1;\n if (project) {\n const now = new Date();\n // Planlegging\n if (\n project.coursePeriodStartDate &&\n now < new Date(project.coursePeriodStartDate)\n ) {\n result = 0;\n }\n\n // Kursperiode\n if (\n project.coursePeriodStartDate &&\n project.coursePeriodEndDate &&\n new Date(project.coursePeriodStartDate) <= now &&\n now <= new Date(project.coursePeriodEndDate)\n ) {\n result = 1;\n }\n }\n\n return result;\n};\n","import { observer } from 'mobx-react';\nimport DashboardFilter from './components/DashboardFilter';\nimport React from 'react';\nimport { useStores } from '@/stores';\nimport dashboardStyle from '@/views/style/dashboard';\nimport clsx from 'clsx';\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport { Divider } from '@material-ui/core';\nimport StepStatus from '@/components/StepStatus';\nimport CustomBarChart from '@/components/CustomBarChart';\n//import UserCard from '@/components/UserCard';\nimport { getStepVGS } from '@/utils/dashboardUtils';\nimport { StepType } from '@/types/StepType';\nimport { PublishOutlined } from '@material-ui/icons';\n\nconst VGSDashboard = () => {\n const { projectStore, userStore, dashboardStore } = useStores();\n const classes = dashboardStyle();\n\n const [search, setSearch] = React.useState('');\n const [step, setStep] = React.useState(0);\n const [steps] = React.useState([\n {\n title: 'Planlegging',\n },\n {\n title: 'Kursperiode',\n },\n ]);\n\n const handleSearch = (): void => {\n console.log('handle search');\n };\n\n React.useEffect(() => {\n if (!projectStore.currentProject) {\n projectStore.getCurrent();\n }\n }, [projectStore]);\n\n React.useEffect(() => {\n if (\n userStore.user &&\n userStore.user.externalSchoolId &&\n projectStore.currentProject &&\n projectStore.currentProject.id\n ) {\n dashboardStore.getStatisticCapacityVGS(\n projectStore.currentProject.id,\n userStore.user.externalSchoolId\n );\n }\n }, [projectStore.currentProject, dashboardStore, userStore]);\n\n React.useEffect(() => {\n const step = getStepVGS(projectStore.currentProject);\n setStep(step);\n }, [projectStore, projectStore.currentProject]);\n\n /*const handleGetAllHighSchoolContactByStudySubjectId = (\n studySubjectId: number\n ): void => {\n if (userStore.user && userStore.user.externalSchoolId) {\n dashboardStore.getAllHighSchoolContactByStudySubjectId(\n studySubjectId,\n userStore.user.externalSchoolId\n );\n }\n };*/\n\n return (\n <>\n \n\n
\n
Aktuelt prosjekt
\n
\n \n
\n {projectStore.currentProject?.projectName}\n
\n \n\n \n
\n\n \n\n \n \n Status\n
\n \n \n\n \n\n \n
\n Studieforberedende: kapasitet vs. tildelt\n
\n \n\n
\n \n
\n \n\n {/* \n\n
Idrettsfag ansvarlig
\n
\n {dashboardStore.highSchoolContacts.map((user) => (\n
\n \n
\n ))}\n
*/}\n \n \n );\n};\n\nexport default observer(VGSDashboard);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n whiteSpaceNowrap: {\n whiteSpace: 'nowrap',\n },\n content: {\n padding: '24px',\n width: '212px',\n height: '98px',\n },\n countStyle: {\n color: palette.grey.A100,\n fontSize: '24px',\n lineHeight: '34px',\n },\n titleStyle: {\n color: palette.primary[900],\n fontSize: '12px',\n lineHeight: '16px',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport useStyles from './style';\nimport clsx from 'clsx';\n\ninterface IComponentProps {\n count: number;\n title: string;\n}\n\nconst BlockCount = (props: IComponentProps) => {\n const { count, title } = props;\n const classes = useStyles();\n\n return (\n <>\n
\n
{count}
\n
\n {title}\n
\n
\n \n );\n};\n\nexport default BlockCount;\n","import { makeStyles } from '@material-ui/core';\nconst config = {\n size: 100,\n donutSize: 20,\n};\n\nconst useStyles = makeStyles(({ palette }) => ({\n displayFlex: {\n display: 'flex',\n },\n alignItemsCenter: {\n alignItems: 'center',\n },\n justifyContentCenter: {\n justifyContent: 'center',\n },\n whiteSpaceNowrap: {\n whiteSpace: 'nowrap',\n },\n textAlignCenter: {\n textAlign: 'center',\n },\n chartContent: {\n minWidth: '260px',\n width: '260px',\n },\n chartSize: {\n width: `${config.size}px`,\n height: `${config.size}px`,\n },\n pieID: {\n display: 'inline-block',\n verticalAlign: 'top',\n },\n pie: {\n width: `${config.size}px`,\n height: `${config.size}px`,\n position: 'relative',\n backgroundColor: 'pink',\n borderRadius: '50%',\n },\n pieInner: {\n position: 'absolute',\n zIndex: 1,\n width: `${config.size}px`,\n height: `${config.size}px`,\n borderRadius: '50%',\n top: 0,\n left: 0,\n backgroundColor: palette.background.default,\n },\n pieInnerContent: {\n borderRadius: '50%',\n width: `${config.size - config.donutSize}px`,\n height: `${config.size - config.donutSize}px`,\n backgroundColor: palette.primary.A100,\n },\n slice: {\n position: 'absolute',\n width: `${config.size}px`,\n height: `${config.size}px`,\n clip: `rect(0px, ${config.size}px, ${config.size}px, ${config.size / 2}px)`,\n animation: 'bake-pie 1s',\n\n '& span': {\n display: 'block',\n position: 'absolute',\n top: 0,\n left: 0,\n backgroundColor: 'black',\n width: `${config.size}px`,\n height: `${config.size}px`,\n borderRadius: '50%',\n clip: `rect(0px, ${config.size}px, ${config.size}px, ${\n config.size / 2\n }px)`,\n },\n },\n pieInnerTextColor: {\n color: palette.warning.dark,\n },\n pieInnerTextPercent: {\n fontSize: '17px',\n lineHeight: '18px',\n },\n pieInnerTextLabel: {\n fontSize: '12px',\n lineHeight: '14px',\n },\n widthFull: {\n width: '100%',\n },\n heightFull: {\n height: '100%',\n },\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport useStyles from './style';\nimport clsx from 'clsx';\n\ninterface IComponentProps {\n offset: number;\n sliceSize: number;\n colorHEX: string;\n}\n\nconst SlicePieChart = (props: IComponentProps) => {\n const { offset, sliceSize, colorHEX } = props;\n const classes = useStyles();\n\n return (\n \n \n \n );\n};\n\nexport default SlicePieChart;\n","import React from 'react';\nimport useStyles from './style';\nimport { IStatisticRegistration } from '@/types/StudentStudySubject';\nimport clsx from 'clsx';\nimport SlicePieChart from './slice';\n\ninterface ISlicePieChart {\n offset: number;\n sliceSize: number;\n colorHEX: string;\n}\n\ninterface IComponentProps {\n statistic: IStatisticRegistration;\n}\n\nconst CustomCircleChart = (props: IComponentProps) => {\n const { statistic } = props;\n const classes = useStyles();\n\n const [colors] = React.useState(['#9C3535', '#CFD8DC']);\n const [slices, setSlices] = React.useState([]);\n\n const calculateSliceSize = React.useCallback(\n (numberStudent: number): number => {\n return Math.round((numberStudent / statistic.totalStudent) * 360);\n },\n [statistic]\n );\n\n const getSlicePieChart = React.useCallback(\n (\n offset: number,\n numberStudent: number,\n colorHEX: string\n ): ISlicePieChart[] => {\n const result: ISlicePieChart[] = [];\n const maxSliceSize = -180;\n const sliceSize = calculateSliceSize(numberStudent);\n\n if (sliceSize > Math.abs(maxSliceSize)) {\n result.push({\n offset,\n sliceSize: 0,\n colorHEX,\n });\n\n result.push({\n offset: offset + Math.abs(maxSliceSize),\n sliceSize: maxSliceSize + (sliceSize - Math.abs(maxSliceSize)),\n colorHEX,\n });\n } else {\n result.push({\n offset,\n sliceSize: maxSliceSize + sliceSize,\n colorHEX,\n });\n }\n\n return result;\n },\n [calculateSliceSize]\n );\n\n const calculateSlices = React.useCallback(() => {\n let result: ISlicePieChart[] = [];\n\n let offset = 0;\n const first = getSlicePieChart(\n offset,\n statistic.totalStudent - statistic.registeredStudent,\n colors[0]\n );\n\n result = result.concat(first);\n offset += calculateSliceSize(\n statistic.totalStudent - statistic.registeredStudent\n );\n\n const second = getSlicePieChart(\n offset,\n statistic.registeredStudent,\n colors[1]\n );\n\n result = result.concat(second);\n setSlices(result);\n }, [statistic, colors, calculateSliceSize, getSlicePieChart]);\n\n React.useEffect(() => {\n calculateSlices();\n }, [calculateSlices]);\n\n const getPercent = (): number => {\n const div =\n ((statistic.totalStudent - statistic.registeredStudent) * 100) /\n statistic.totalStudent;\n return Math.round(div * 100) / 100;\n };\n\n return (\n <>\n
\n \n
\n {slices.map((slice) => (\n \n ))}\n
\n \n \n
\n {`${getPercent()}%`}
\n \n Ikke påmeldt\n
\n
\n
\n \n \n \n \n \n \n );\n};\n\nexport default CustomCircleChart;\n","import { useStores } from '@/stores';\nimport { StepType } from '@/types/StepType';\nimport { getStepVGS } from '@/utils/dashboardUtils';\nimport dashboardStyle from '@/views/style/dashboard';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport clsx from 'clsx';\nimport ArrowForwardIcon from '@material-ui/icons/ArrowForward';\nimport { Divider } from '@material-ui/core';\nimport StepStatus from '@/components/StepStatus';\nimport BlockCount from '@/components/BlockCount';\nimport CustomCircleChart from '@/components/CustomCircleChart';\nimport { PublishOutlined } from '@material-ui/icons';\n\nconst GUDashboard = () => {\n const { projectStore, userStore, dashboardStore } = useStores();\n const classes = dashboardStyle();\n\n const [step, setStep] = React.useState(0);\n const [steps] = React.useState([\n {\n title: 'Planlegging',\n },\n {\n title: 'Kursperiode',\n },\n ]);\n\n React.useEffect(() => {\n if (!projectStore.currentProject) {\n projectStore.getCurrent();\n }\n }, [projectStore]);\n\n React.useEffect(() => {\n if (\n userStore.user &&\n userStore.user.externalSchoolId &&\n projectStore.currentProject &&\n projectStore.currentProject.id\n ) {\n dashboardStore.getStatisticRegistrationGU(\n projectStore.currentProject.id,\n userStore.user.externalSchoolId\n );\n\n dashboardStore.getStatisticAllocationGU(\n projectStore.currentProject.id,\n userStore.user.externalSchoolId\n );\n }\n }, [dashboardStore, userStore, projectStore.currentProject]);\n\n React.useEffect(() => {\n const step = getStepVGS(projectStore.currentProject);\n setStep(step);\n }, [projectStore, projectStore.currentProject]);\n\n return (\n <>\n
\n
Aktuelt prosjekt
\n
\n \n
{projectStore.currentProject?.projectName}
\n \n\n \n
\n\n \n\n \n \n Status\n
\n \n \n\n \n\n \n \n Påmelding\n \n {dashboardStore.statisticRegistration && (\n <>\n \n \n \n \n \n )}\n \n \n \n \n );\n};\n\nexport default observer(GUDashboard);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(({ breakpoints, palette }) => ({\n main: {\n margin: '20px 115px',\n display: 'flex',\n flexDirection: 'column',\n [breakpoints.down('md')]: {\n margin: '10px 5px',\n },\n },\n\n header: {\n fontSize: '16px',\n fontWeight: 500,\n },\n projectInfo: {\n marginTop: '8px',\n },\n\n projectHeader: {\n margin: '0 12px 0 8px',\n fontSize: 20,\n fontWeight: 500,\n },\n iconGroup: {},\n projectList: {\n '& .MuiListItemText-root': {\n marginLeft: '18px',\n display: 'block',\n width: '150px',\n marginRight: '24px',\n flex: 'none',\n },\n '& .MuiListItemText-root:last-child': {\n marginLeft: '18px',\n display: 'block',\n width: '300px',\n marginRight: '24px',\n flex: 'none',\n },\n '& .MuiListItemText-primary': {\n fontSize: '16px',\n fontWeight: 500,\n },\n '& .MuiListItem-root': {\n padding: '16px',\n },\n padding: 0,\n },\n\n stepContainer: {\n // width: '200px',\n },\n stepper: {\n padding: '0 !important',\n backgroundColor: 'transparent',\n minWidth: '800px',\n width: '100%',\n },\n contentTextContainer: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n },\n contentText: {\n display: 'flex',\n justifyContent: 'space-between',\n minWidth: '500px',\n },\n twoLines: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n '& .MuiTypography-root': {\n fontSize: '26px',\n fontWeight: 500,\n lineHeight: '34px',\n },\n fontSize: '12px',\n },\n donutChart: {\n marginLeft: '5%',\n // float: 'right',\n },\n barCharts: {\n margin: '0 24px 24px 32px',\n // float: 'right',\n },\n\n dividerSchool: {\n margin: '24px 0 12px 0',\n width: '100px',\n height: '2px !important',\n backgroundColor: palette.primary.dark,\n },\n\n schoolContent: {\n display: 'flex',\n },\n\n schoolTitle: {\n fontSize: 25,\n fontWeight: 500,\n color: palette.primary.dark,\n },\n\n schoolInfo: {\n margin: '20px 24px 0 0',\n width: '369px',\n },\n\n schoolName: {\n fontSize: 24,\n fontWeight: 500,\n color: palette.primary.dark,\n },\n\n schoolAddress: {\n fontSize: 14,\n fontWeight: 400,\n color: palette.primary.main,\n },\n\n schoolButton: {\n backgroundColor: 'transparent',\n borderRadius: '20px',\n border: `1px solid ${palette.primary.main}`,\n color: palette.primary.main,\n '&:hover': {\n color: '#ffffff',\n },\n },\n\n contactPerson: {\n margin: '36px 0px 24px 0',\n fontSize: 16,\n fontWeight: 400,\n color: palette.primary.dark,\n display: 'flex',\n justifyContent: 'space-between',\n },\n\n contactPersonIcons: {\n display: 'flex',\n justifyContent: 'space-between',\n minWidth: '60px',\n },\n}));\n\nexport default useStyle;\n","import { useStores } from '@/stores';\nimport {\n getStudySubjectCategoryName,\n ISchoolStudySubjectInfo,\n StudySubjectCategory,\n} from '@/types/StudySubject';\nimport {\n getCapacityChart,\n getProjectProgress,\n getStudentChart,\n getStudentCourseChart,\n} from '@/utils/adminDashboard.utils';\nimport {\n Button,\n Card,\n CardActions,\n CardContent,\n CardHeader,\n Divider, Grid,\n List,\n ListItem,\n ListItemText,\n Step,\n StepLabel,\n Stepper,\n Tooltip,\n Typography\n} from '@material-ui/core';\nimport { ArrowForward, MailOutline, PhoneAndroid } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport Chart from 'react-apexcharts';\nimport AdminSearchBar from '../common/AdminSearchBar';\nimport useStyle from './AdminDashboardStyle';\n\nconst AdminDashboard = () => {\n const [, setSearchValue] = React.useState('');\n const classes = useStyle();\n const { adminDashboardStore } = useStores();\n\n const [steps] = React.useState([\n {\n title: 'Planlegging',\n completed: true,\n },\n {\n title: 'Tildeling',\n completed: false,\n },\n {\n title: 'Kursperiode',\n completed: false,\n },\n {\n title: 'Evaluering',\n completed: false,\n },\n ]);\n\n const [step, setStep] = React.useState(0);\n const [studentChart, setStudentChart] = React.useState(null);\n const [studentCourseChart, setStudentCourseChart] = React.useState(null);\n const [capacityChart, setCapacityChart] = React.useState(null);\n const [studySubjectSelected, setStudySubjectSelected] = React.useState<\n string | null\n >(null);\n\n const adminGetCurrentProject = React.useCallback(() => {\n adminDashboardStore.adminGetCurrentProject();\n }, [adminDashboardStore]);\n\n const adminGetStatisticProject = React.useCallback(() => {\n adminDashboardStore.adminGetStudentStatistic();\n adminDashboardStore.adminGetStudentCourseStatistic();\n adminDashboardStore.adminGetStudySubjectStatistic();\n }, [adminDashboardStore]);\n\n React.useEffect(() => {\n adminGetCurrentProject();\n if (adminDashboardStore.project.id) {\n adminGetStatisticProject();\n }\n }, [\n adminGetCurrentProject,\n adminGetStatisticProject,\n adminDashboardStore.project.id,\n ]);\n\n React.useEffect(() => {\n const currentProjectStep = getProjectProgress(adminDashboardStore.project);\n setStep(currentProjectStep);\n\n const chart = getStudentChart(\n adminDashboardStore.totalStudent,\n adminDashboardStore.registeredStudent\n );\n\n const studentCourseChart = getStudentCourseChart(\n adminDashboardStore.totalStudent,\n adminDashboardStore.totalAssignedStudent,\n adminDashboardStore.numberFirstPriorityStudent,\n adminDashboardStore.numberSecondPriorityStudent,\n adminDashboardStore.numberThirdPriorityStudent\n );\n\n const capacityChartByStudySubjectTypes: any[] = [[], [], []];\n // eslint-disable-next-line array-callback-return\n adminDashboardStore.capacityStore.map((x) => {\n if (x.studySubject.category === StudySubjectCategory.Unknown) {\n capacityChartByStudySubjectTypes[0].push(x);\n }\n if (x.studySubject.category === StudySubjectCategory.Studieforberedende) {\n capacityChartByStudySubjectTypes[1].push(x);\n }\n if (x.studySubject.category === StudySubjectCategory.Yrkesfaglig) {\n capacityChartByStudySubjectTypes[2].push(x);\n }\n });\n\n const capacityChart = capacityChartByStudySubjectTypes.map((x) => {\n if (x.length > 0) {\n return getCapacityChart(x);\n }\n return null;\n });\n // eslint-disable-next-line array-callback-return\n capacityChart.map((x, i) => {\n if (x) {\n x.options.chart.events.dataPointSelection = (\n event: any,\n chartContext: any,\n config: any\n ) => {\n adminDashboardStore.adminGetSubjectSchool(\n capacityChartByStudySubjectTypes[i].filter(\n (c: any) => c.capacity > 0\n )[config.dataPointIndex].studySubject.id\n );\n setStudySubjectSelected(\n capacityChartByStudySubjectTypes[i].filter(\n (c: any) => c.capacity > 0\n )[config.dataPointIndex].studySubject.studySubjectName\n );\n };\n }\n });\n\n setStudentChart(chart);\n setStudentCourseChart(studentCourseChart);\n setCapacityChart(capacityChart);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n adminDashboardStore.project,\n adminDashboardStore.registeredStudent,\n adminDashboardStore.totalStudent,\n adminDashboardStore.totalAssignedStudent,\n adminDashboardStore.totalCourse,\n adminDashboardStore.numberFirstPriorityStudent,\n adminDashboardStore.numberSecondPriorityStudent,\n adminDashboardStore.numberThirdPriorityStudent,\n adminDashboardStore.capacityStore,\n adminDashboardStore.schoolStore,\n ]);\n\n return (\n <>\n \n
\n Aktuelt prosjekt\n \n \n // \n // \n // \n // }\n title={\n <>\n \n {adminDashboardStore.project.projectName} \n \n \n }\n />\n \n\n \n \n \n
\n \n {steps.map((item, index) => (\n \n {item.title}\n \n ))}\n \n
\n
\n \n \n \n
\n
\n
\n {adminDashboardStore.totalStudent}\n Totalt antall elever\n
\n
\n \n {adminDashboardStore.registeredStudent}\n \n Antall påmeldte elever\n
\n
\n \n {adminDashboardStore.totalStudent -\n adminDashboardStore.registeredStudent}\n \n Antall elever uten påmelding\n
\n
\n
\n
\n {studentChart && (\n \n )}\n
\n
\n \n \n \n
\n
\n
\n \n {adminDashboardStore.totalAssignedStudent}\n \n Antall tildelte elever\n
\n
\n {adminDashboardStore.totalCourse}\n Antall arrangementer\n
\n
\n \n {adminDashboardStore.numberFirstPriorityStudent}\n \n Tildelt med 1. prioritert\n
\n
\n
\n
\n {studentCourseChart && (\n \n )}\n
\n
\n \n \n \n \n
\n {capacityChart &&\n capacityChart.length > 0 &&\n capacityChart.map((x: any, i: number) => (\n <>\n {x && (\n <>\n \n {getStudySubjectCategoryName(i)}\n \n \n \n )}\n \n ))}\n
\n
\n
\n\n {adminDashboardStore.schoolStore && studySubjectSelected && (\n <>\n
\n
\n {`${studySubjectSelected} vgs skoler`}\n
\n \n\n {adminDashboardStore.schoolStore.map(\n (school: ISchoolStudySubjectInfo) => (\n \n \n \n {school.schoolContact.schoolName}\n \n \n \n Adress\n \n \n \n {school.contactPeople.contactName ?? 'No Contact'}\n
\n \n \n \n \n \n \n
\n
\n
\n \n \n \n
\n )\n )}\n
\n \n )}\n
\n \n );\n};\n\nexport default observer(AdminDashboard);\n","import { IAdminStatisticSubjectCapacity } from '@/types/StudySubject';\n\nexport const getProjectProgress = (project: any): number => {\n const currentTime = new Date();\n let currentStep = 0;\n\n if (project.registeringPeriodStartDate && project.registeringPeriodEndDate) {\n if (\n currentTime > new Date(project.registeringPeriodStartDate) &&\n currentTime < new Date(project.registeringPeriodEndDate)\n ) {\n currentStep = 1;\n }\n }\n if (project.availablePeriodStartDate && project.availablePeriodEndDate) {\n if (\n currentTime > new Date(project.availablePeriodStartDate) &&\n currentTime < new Date(project.availablePeriodEndDate)\n ) {\n currentStep = 2;\n }\n }\n if (project.coursePeriodStartDate && project.coursePeriodEndDate) {\n if (\n currentTime > new Date(project.coursePeriodStartDate) &&\n currentTime < new Date(project.coursePeriodEndDate)\n ) {\n currentStep = 3;\n }\n }\n if (project.evaluationPeriodStartDate && project.evaluationPeriodEndDate) {\n if (\n currentTime > new Date(project.evaluationPeriodStartDate) &&\n currentTime < new Date(project.evaluationPeriodEndDate)\n ) {\n currentStep = 4;\n }\n }\n\n return currentStep;\n};\n\nexport const getStudentChart = (\n totalStudents: number,\n registeredStudents: number\n) => {\n const chart = {\n options: {\n plotOptions: {\n pie: {\n donut: {\n size: '75%',\n background: 'transparent',\n },\n },\n },\n dataLabels: {\n enabled: false,\n formatter: (val: string) => {\n return val + '%';\n },\n },\n colors: ['#9C3535', '#CFD8DC'],\n legend: {\n show: false,\n },\n labels: ['Ikke på meldt elever', 'Påmeldt elever'],\n },\n series: [totalStudents - registeredStudents, registeredStudents],\n };\n\n return chart;\n};\n\nexport const getStudentCourseChart = (\n totalStudent: number,\n totalAssignedStudent: number,\n numberFirstPriorityStudent: number,\n numberSecondPriorityStudent: number,\n numberThirdPriorityStudent: number\n) => {\n const chart = {\n options: {\n dataLabels: {\n enabled: false,\n },\n colors: ['#848DB8', '#A2A8C8', '#C6CADE', '#9C3535'],\n legend: {\n show: true,\n formatter: (seriesName: any, opts: any) => {\n return `${seriesName} : ${opts.w.globals.series[opts.seriesIndex]}`;\n },\n },\n labels: [\n '1. prioritert',\n '2. prioritert',\n '3. prioritert',\n 'Ikke tildelt',\n ],\n },\n series: [\n numberFirstPriorityStudent,\n numberSecondPriorityStudent,\n numberThirdPriorityStudent,\n totalStudent - totalAssignedStudent,\n ],\n };\n\n return chart;\n};\n\nexport const getCapacityChart = (\n capacityStore: IAdminStatisticSubjectCapacity[]\n) => {\n const capacityChart = {\n series: [\n {\n name: 'Kapasitet',\n data: capacityStore\n .filter((c) => c.capacity > 0)\n .map((i) => {\n return i.capacity;\n }),\n },\n {\n name: 'Påmeldt',\n data: capacityStore\n .filter((n, i) => capacityStore[i].capacity > 0)\n .map((i) => {\n return i.numberJoinedStudent;\n }),\n },\n ],\n options: {\n plotOptions: {\n bar: {\n columnWidth: '40px',\n dataLabels: {\n position: 'top',\n },\n },\n },\n dataLabels: {\n enabled: true,\n style: {\n colors: ['#333'],\n },\n offsetY: -16,\n },\n colors: ['#C6CADE', '#A2A8C8'],\n legend: {\n position: 'top',\n show: true,\n markers: {\n fillColors: ['#C6CADE', '#A2A8C8'],\n },\n },\n xaxis: {\n categories: capacityStore\n .filter((c) => c.capacity > 0)\n .map((i) => {\n return i.studySubject.studySubjectName.split(' ');\n }),\n labels: {\n show: true,\n rotate: 0,\n },\n axisBorder: {\n show: false,\n },\n },\n yaxis: {\n labels: {\n show: true,\n },\n },\n grid: {\n show: true,\n padding: {\n bottom: 100,\n },\n },\n tooltip: {\n enabled: true,\n },\n chart: {\n events: {\n dataPointSelection: (event: any, chartContext: any, config: any) => {\n //\n },\n },\n toolbar: {\n show: true,\n export: {\n csv: {\n filename: 'Capacity',\n },\n svg: {\n filename: 'Capacity',\n },\n png: {\n filename: 'Capacity',\n },\n },\n autoSelected: 'zoom',\n },\n },\n },\n };\n\n return capacityChart;\n};\n","import { makeStyles } from '@material-ui/core';\n\nconst useStudentStyle = makeStyles(({ palette }) => ({\n root: {\n backgroundColor: palette.grey['200'],\n minHeight: 'calc(100vh - 48px)',\n },\n wrapper: {\n maxWidth: '600px',\n padding: '16px',\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n margin: 'auto',\n },\n header: {\n fontWeight: 500,\n color: palette.primary.dark,\n },\n main: {\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n },\n card: {\n padding: '16px',\n borderRadius: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: '6px',\n alignItems: 'flex-start',\n },\n editButton: {\n alignSelf: 'flex-end',\n },\n readMore: {\n textAlign: 'center',\n },\n}));\n\nexport default useStudentStyle;\n","import { Button, Card, Chip, Link, Typography } from '@material-ui/core';\nimport { EditOutlined, InfoOutlined } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport { useCallback, useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useStores } from '../../../../stores';\nimport { registrationIsActive } from '../../../../types/Project';\nimport useStudentStyle from '../studentStyle';\n\nconst StudentDashboard = () => {\n const { userStore, schoolStore, studySubjectStore, projectStore } =\n useStores();\n const { getStudySubjectsByUserId, studentStudySubjects } = studySubjectStore;\n const { user, getUserStudentCourses } = userStore;\n const { currentProject } = projectStore;\n const { currentSchool, getSchoolByExternalId } = schoolStore;\n\n const classes = useStudentStyle();\n const history = useHistory();\n\n const getStudentDashboard = useCallback(() => {\n async function fetchCurrentProject() {\n if (!currentProject) {\n await projectStore.getCurrent();\n }\n }\n if (user) {\n if (!currentSchool) getSchoolByExternalId(user?.externalSchoolId);\n getStudySubjectsByUserId(user?.id);\n getUserStudentCourses();\n }\n fetchCurrentProject();\n }, [\n currentProject,\n currentSchool,\n getSchoolByExternalId,\n getStudySubjectsByUserId,\n getUserStudentCourses,\n projectStore,\n user,\n ]);\n\n useEffect(() => {\n getStudentDashboard();\n\n if (user && user.studentCourses.length > 0) {\n // setIsAssigned(true);\n }\n }, [getStudentDashboard, user]);\n\n const assignedCourse = user?.getAssignedCourse(currentProject?.id);\n const published = projectStore.currentProject?.isPublished;\n\n return (\n
\n
\n
\n \n Dine opplysninger\n \n
\n
\n \n \n Informasjon om deg\n \n {user?.fullName}\n {currentSchool?.schoolName}\n {user?.phoneNumber}\n {user?.emailAddress}\n }\n className={classes.editButton}\n onClick={() => history.push('/update-student-information')}\n >\n Rediger\n \n \n {published &&\n assignedCourse !== null &&\n assignedCourse !== undefined && (\n \n \n Du har blitt tildelt følgende kurs:\n \n \n {\n assignedCourse?.finalAssignedCourse?.studySubject\n .studySubjectName\n }{' '}\n - {assignedCourse?.finalAssignedCourse?.school.schoolName}\n \n }\n className={classes.editButton}\n onClick={() => history.push('/course-information')}\n >\n Informasjon\n \n \n )}\n {!published && !!currentProject &&(\n <> {\n currentProject.registeringPeriodEndDate &&\n registrationIsActive(currentProject) && (\n \n
\n \n Dine prioriterte kurs\n \n\n \n {currentProject.studentIntroductionText?.replaceAll(\n '{endOfRegistrationDate}',\n new Date(\n currentProject.registeringPeriodEndDate\n ).toLocaleDateString('no-NO', {\n day: '2-digit',\n month: 'long',\n year: 'numeric',\n })\n )}\n \n\n\n {studentStudySubjects.map((subject) => (\n \n ))}\n
\n\n }\n className={classes.editButton}\n onClick={() => history.push('/prioritize')}\n >\n {studentStudySubjects.length > 0\n ? 'Endre påmelding'\n : 'Opprett påmelding'}\n \n
)}\n\n {!!currentProject && !registrationIsActive(currentProject) && (\n \n \n Påmelding behandles\n \n \n Du vil bli varslet når du har blitt tildelt et kurs.\n \n \n )}\n \n )}\n \n history.push('/student-study-subjects')}\n >\n \n Les mer om kursene her\n \n \n\n {\n const win = window.open('https://vilbli.no', '_blank');\n if (win) {\n win.focus();\n }\n }}\n >\n \n For å lese mer om utdanningsprogrammene gå til vilbli.no\n \n \n \n
\n
\n
\n );\n};\n\nexport default observer(StudentDashboard);\n","// import { useStores } from '../../stores';\n// import { UserRole } from '../../types/UserRole';\n// import AdminDashboard from './admin/AdminDashboard/AdminDashboard';\n// import StudentDashboard from './student/StudentDashboard/StudentDashboard';\nimport VGSDashboard from '../VGSadmin/dashboard';\nimport GUDashboard from '../GUadmin/dashboard';\n\nimport { useStores } from '@/stores';\nimport { UserRole } from '@/types/UserRole';\nimport AdminDashboard from '@/views/app/admin/AdminDashboard/AdminDashboard';\nimport StudentDashboard from '@/views/app/student/StudentDashboard/StudentDashboard';\n\nconst Dashboard = () => {\n const { userStore } = useStores();\n const { user } = userStore;\n\n if (user?.isCurrentlyRole(UserRole.Student)) {\n return ;\n }\n\n if (user?.isCurrentlyRole(UserRole.Adviser)) {\n return ;\n }\n\n if (user?.isCurrentlyRole(UserRole.HighSchoolContact)) {\n return ;\n }\n // if (user?.isCurrentlyRole(UserRole.Admin)) return \n if (user?.isCurrentlyRole(UserRole.Admin)) return ;\n\n return <>;\n};\n\nexport default Dashboard;\n","import { CircularProgress, Typography } from '@material-ui/core';\nimport { CSSProperties, useEffect } from 'react';\nimport { useHistory, useLocation } from 'react-router-dom';\nimport { useStores } from '../../stores';\n\nconst style: CSSProperties = {\n display: 'grid',\n placeItems: 'center',\n marginTop: '40vh',\n};\n\nconst CompleteOIDCLogin = () => {\n const { userStore, accountStore } = useStores();\n const history = useHistory();\n\n const search = useLocation().search;\n\n const getUser = async () => {\n const code = new URLSearchParams(search).get('code');\n\n try {\n if (code) {\n await accountStore.oidcCallback(code);\n }\n\n await userStore.getCurrentUser();\n history.push('/home');\n } catch (err: any) {\n history.push('/');\n }\n };\n\n useEffect(() => {\n getUser();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n
\n \n Du blir logget inn.\n
\n );\n};\n\nexport default CompleteOIDCLogin;\n","import {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Slide,\n Typography,\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport React, { useEffect } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useStores } from '../../../../stores';\nimport IOpenable from '../../../../types/interfaces/IOpenable';\n\nconst Transition = React.forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nconst SavedDialog = ({ open, setOpen }: IOpenable) => {\n const history = useHistory();\n\n const { studySubjectStore, projectStore } = useStores();\n const { studentStudySubjects } = studySubjectStore;\n const { currentProject } = projectStore;\n const finish = () => {\n setOpen(false);\n history.push('/home');\n };\n\n useEffect(() => {\n if (!currentProject) projectStore.getCurrent();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n setOpen(false)}\n TransitionComponent={Transition}\n >\n \n Du valgte:\n \n \n {studentStudySubjects.map((sub) => (\n \n {sub.priority}. prioritet: {sub.studySubject.studySubjectName}\n \n ))}\n {currentProject?.registeringPeriodEndDate && (\n \n Du kan endre disse frem til{' '}\n {new Date(\n currentProject.registeringPeriodEndDate\n ).toLocaleDateString('no-NO', {\n day: '2-digit',\n month: 'long',\n year: 'numeric',\n })}\n \n )}\n \n \n \n \n \n \n );\n};\n\nexport default SavedDialog;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(({ palette }) => ({\n root: {\n padding: '16px',\n color: palette.primary.dark,\n backgroundColor: palette.grey['200'],\n minHeight: 'calc(100vh - 48px)',\n },\n wrapper: {\n maxWidth: '600px',\n padding: '16px',\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n margin: 'auto',\n },\n header: {\n fontWeight: 500,\n marginBottom: '16px',\n },\n card: {\n padding: '16px',\n borderRadius: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: '6px',\n alignItems: 'flex-start',\n },\n form: {\n display: 'flex',\n flexDirection: 'column',\n gap: '12px',\n width: '100%',\n },\n loadingButton: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n marginTop: -12,\n marginLeft: -12,\n },\n}));\n\nexport default useStyle;\n","import {\n Typography,\n Card,\n Link,\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n Button,\n CircularProgress,\n} from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { FormEvent, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useStores } from '../../../../stores';\nimport { hasDuplicates } from '../../../../utils/arrayUtils';\nimport SavedDialog from './SavedDialog';\nimport useStyle from './style';\n\nconst Prioritize = () => {\n const classes = useStyle();\n const { studySubjectStore, userStore, errorStore, projectStore } =\n useStores();\n const { currentProject } = projectStore;\n const { user } = userStore;\n const {\n allStudySubjects,\n getAllStudySubjectsForStudent,\n studentStudySubjects,\n addOrUpdateStudentPriorities,\n } = studySubjectStore;\n const { showErrorMessage } = errorStore;\n\n const [firstPriority, setFirstPriority] = useState('');\n const [secondPriority, setSecondPriority] = useState('');\n const [thirdPriority, setThirdPriority] = useState('');\n const [showSavedDialog, setShowSavedDialog] = useState(false);\n\n const history = useHistory();\n\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n getAllStudySubjectsForStudent();\n studySubjectStore.getStudySubjectsByCurrentUser();\n const sortedStudentStudySubjects = studentStudySubjects.sort(\n (a, b) => a.priority - b.priority\n );\n\n if (!currentProject) projectStore.getCurrent();\n\n if (sortedStudentStudySubjects.length === 3) {\n setFirstPriority(\n sortedStudentStudySubjects[0].studySubject.id.toString()\n );\n setSecondPriority(\n sortedStudentStudySubjects[1].studySubject.id.toString()\n );\n setThirdPriority(\n sortedStudentStudySubjects[2].studySubject.id.toString()\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const studySubjectMenuItems = allStudySubjects.map((studySubject) => (\n {studySubject.studySubjectName}\n ));\n\n const handlePriorities = async (e: FormEvent) => {\n setLoading(true);\n e.preventDefault();\n\n const orderedPriorities = [\n firstPriority,\n secondPriority,\n thirdPriority,\n ].map(Number);\n\n if (hasDuplicates(orderedPriorities)) {\n showErrorMessage(\n 'Du kan ikke velge samme kurs mer enn én gang.'\n );\n setLoading(false);\n return;\n }\n\n if (user) {\n await addOrUpdateStudentPriorities(user.id, orderedPriorities);\n setShowSavedDialog(true);\n setLoading(false);\n }\n };\n\n const reset = () => {\n setFirstPriority('');\n setSecondPriority('');\n setThirdPriority('');\n };\n\n return (\n
\n
\n
\n \n Prioriterte kurs\n \n
\n
\n \n Velg 3 kurs\n \n {currentProject?.studentRegistrationText}\n \n history.push('/student-study-subjects')}\n >\n \n Les mer om kursene her\n \n \n
\n \n 1. Prioritet\n setFirstPriority(e.target.value as string)}\n >\n {studySubjectMenuItems}\n \n \n \n 2. Prioritet\n setSecondPriority(e.target.value as string)}\n >\n {studySubjectMenuItems}\n \n \n \n 3. Prioritet\n setThirdPriority(e.target.value as string)}\n >\n {studySubjectMenuItems}\n \n \n
\n \n Registrer\n {loading ? (\n \n ) : null}\n \n \n
\n
\n
\n
\n \n
\n
\n );\n};\n\nexport default observer(Prioritize);\n","import { makeStyles } from '@material-ui/core';\n\nconst useLoginStyle = makeStyles(({ palette, breakpoints }) => ({\n rootGrid: {\n height: '100vh',\n },\n logoContainer: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n },\n loginGrid: {\n boxShadow: 'rgba(0, 0, 0, 0.35) 0px 15px 15px',\n },\n login: {\n display: 'flex',\n flexDirection: 'column',\n padding: '25% 25% 0',\n gap: '16px',\n textAlign: 'center',\n [breakpoints.down('sm')]: {\n padding: '15px 10px',\n },\n },\n resetPassword: {\n display: 'flex',\n flexDirection: 'column',\n padding: '1% 25% 0',\n gap: '16px',\n textAlign: 'center',\n [breakpoints.down('sm')]: {\n padding: '15px 10px',\n },\n },\n loginHeader: {\n color: palette.primary.dark,\n textAlign: 'center',\n fontWeight: 400,\n },\n form: {\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n marginTop: '5vh',\n [breakpoints.down('sm')]: {\n marginTop: 0,\n },\n },\n rememberMeContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n noAccount: {\n margin: 'auto',\n },\n banner: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n backgroundColor: palette.primary.light, //TODO - Change to primary['50'] once UK-24 is merged\n maxHeight: '100%',\n },\n logoHeader: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n alignSelf: 'flex-start',\n },\n bannerHeaderText: {\n color: palette.primary.dark,\n fontWeight: 500,\n marginTop: 'calc(100vh * 0.1)',\n [breakpoints.down('sm')]: {\n marginTop: 'calc(100vh * 0.03)',\n },\n },\n bannerSubheaderText: {\n color: palette.primary.dark,\n fontWeight: 400,\n },\n loginIllustration: {\n width: '100%',\n height: 'auto',\n },\n backButton: {\n width: '90px',\n },\n}));\n\nexport default useLoginStyle;\n","import {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Slide,\n TextField,\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport { FormEvent, forwardRef, useState } from 'react';\nimport { useStores } from '../../../../stores';\nimport IOpenable from '../../../../types/interfaces/IOpenable';\n\nconst Transition = forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nconst ForgotPasswordDialog = ({ open, setOpen }: IOpenable) => {\n const [email, setEmail] = useState('');\n\n const { accountStore } = useStores();\n\n const handleSubmit = (e: FormEvent) => {\n e.preventDefault();\n accountStore.sendLinkToResetPassword(email);\n setOpen(false);\n };\n\n return (\n setOpen(false)}\n TransitionComponent={Transition}\n fullWidth\n >\n
\n Tilbakestill passord\n \n \n Fyll inn din e-post så sender vi en lenke hvor du kan tilbakestille\n ditt passord. Husk at lenken er kun tilgjengelig 15min.\n \n setEmail(e.currentTarget.value)}\n />\n \n \n \n \n \n
\n \n );\n};\n\nexport default ForgotPasswordDialog;\n","import {\n TextField,\n InputAdornment,\n IconButton,\n FormControlLabel,\n Checkbox,\n Typography,\n Button,\n Link,\n} from '@material-ui/core';\nimport {\n MailOutlined,\n LockOutlined,\n VisibilityOffOutlined,\n VisibilityOutlined,\n ArrowBack,\n} from '@material-ui/icons';\nimport { FormEvent, useState } from 'react';\nimport { useStores } from '../../../../stores';\nimport useLoginStyle from '../style';\nimport ForgotPasswordDialog from './ForgotPasswordDialog';\n\ninterface IEmailLoginProps {\n email: string;\n goBack: () => void;\n}\n\nconst EmailLogin = ({ email, goBack }: IEmailLoginProps) => {\n const { accountStore, errorStore } = useStores();\n const { showErrorMessage } = errorStore;\n\n const [password, setPassword] = useState('');\n const [showPassword, setShowPassword] = useState(false);\n const [rememberMe, setRememberMe] = useState(false);\n\n const [openForgotPasswordDialog, setOpenForgotPasswordDialog] =\n useState(false);\n\n const login = async (e: FormEvent) => {\n e.preventDefault();\n\n try {\n await accountStore.login(email, password, rememberMe);\n } catch (error: any) {\n showErrorMessage(error.message);\n }\n };\n\n const classes = useLoginStyle();\n\n return (\n <>\n
\n }\n onClick={goBack}\n className={classes.backButton}\n >\n Tilbake\n \n \n \n \n ),\n }}\n label=\"E-post\"\n disabled\n required\n value={email}\n />\n \n \n \n ),\n endAdornment: (\n \n setShowPassword(!showPassword)}>\n {showPassword ? (\n \n ) : (\n \n )}\n \n \n ),\n }}\n label=\"Passord\"\n type={showPassword ? 'text' : 'password'}\n onChange={(e) => setPassword(e.currentTarget.value)}\n required\n />\n
\n setRememberMe(e.target.checked)}\n color=\"primary\"\n inputProps={{ 'aria-label': 'remember-me' }}\n />\n }\n label=\"Husk meg\"\n />\n setOpenForgotPasswordDialog(true)}\n >\n Glemt passord?\n \n
\n \n \n \n \n );\n};\n\nexport default EmailLogin;\n","import {\n TextField,\n InputAdornment,\n Button,\n Typography,\n useTheme,\n useMediaQuery,\n} from '@material-ui/core';\nimport { MailOutlined } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport { useState, useEffect, FormEvent } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useStores } from '../../../../stores';\nimport useLoginStyle from '../style';\nimport EmailLogin from './EmailLogin';\n\nconst LoginForm = () => {\n const { accountStore, userStore } = useStores();\n const { user } = userStore;\n const history = useHistory();\n\n const [email, setEmail] = useState('');\n const [isEmailLogin, setIsEmailLogin] = useState(false);\n\n const classes = useLoginStyle();\n\n useEffect(() => {\n if (user) history.push('/home');\n });\n\n useEffect(() => {\n userStore.getCurrentUser(true);\n }, [userStore]);\n\n const { breakpoints } = useTheme();\n const isSmall = useMediaQuery(breakpoints.down('sm'));\n\n const goToEmailLogin = (e: FormEvent) => {\n e.preventDefault();\n\n setIsEmailLogin(true);\n };\n\n const goBack = () => setIsEmailLogin(false);\n\n return (\n
\n {isEmailLogin ? (\n \n ) : (\n <>\n {!isSmall ? (\n \n Logg på kurs i utdanningsprogram Oslo\n \n ) : null}\n \n Logg på med Feide\n \n
\n Har du ikke Feide?\n \n \n \n ),\n }}\n label=\"E-post\"\n onChange={(e) => setEmail(e.currentTarget.value)}\n required\n type=\"email\"\n />\n \n \n \n Har du ikke konto? Kontakt din rådgiver.\n \n \n )}\n
\n );\n};\n\nexport default observer(LoginForm);\n","enum StudentRegistrationStatus {\n UNKNOWN = 0,\n UNREGISTERED = 1,\n REGISTERED = 2,\n}\n\nexport default StudentRegistrationStatus;\n","import { makeStyles } from '@material-ui/core';\nimport { ReactComponent as OsloskolenLogo } from '../assets/OsloskolenLogo-hvit.svg';\n\nconst useStyle = makeStyles(({ palette }) => ({\n logo: {\n height: '36px',\n margin: '5px 15px',\n fill: palette.primary.dark\n }\n}))\n\nconst Logo = () => {\n const { logo } = useStyle();\n\n return(\n \n )\n}\n\nexport default Logo;","import { Grid, Typography, useMediaQuery, useTheme } from '@material-ui/core';\nimport LoginForm from './components/LoginForm';\nimport useLoginStyle from './style';\nimport { ReactComponent as LoginIllustration } from '../../../assets/login-illustration.svg';\nimport Logo from '../../../components/Logo';\n\nconst Login = () => {\n const classes = useLoginStyle();\n const theme = useTheme();\n const isSmall = useMediaQuery(theme.breakpoints.down('sm'));\n\n return (\n <>\n \n \n
\n \n Kurs i utdanningsprogram Oslo\n
\n \n Utdanning og yrker\n \n \n ønsker, drømmer, evner, anlegg og interesser\n \n \n
\n \n \n \n
\n \n );\n};\n\nexport default Login;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStudentInformationStyle = makeStyles(() => ({\n root: {\n padding: '16px',\n maxWidth: '600px',\n margin: 'auto',\n },\n form: {\n display: 'flex',\n flexDirection: 'column',\n gap: '16px',\n },\n loadingButton: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n marginTop: -12,\n marginLeft: -12,\n },\n}));\n\nexport default useStudentInformationStyle;\n","import { useStores } from '@/stores';\nimport { User } from '@/types/User';\nimport {\n Button,\n CircularProgress,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { FormEvent, useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport useStudentInformationStyle from './style';\n\nconst StudentInformation = () => {\n const classes = useStudentInformationStyle();\n const { schoolStore, userStore, errorStore } = useStores();\n const { currentSchool } = schoolStore;\n const { user } = userStore;\n const { showErrorMessage } = errorStore;\n const history = useHistory();\n\n const [phonenumber, setPhonenumber] = useState('');\n const [email, setEmail] = useState('');\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n if (!currentSchool) schoolStore.getSchoolByUser();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleSubmit = async (e: FormEvent) => {\n e.preventDefault();\n\n const updatedUser = { ...user } as User;\n\n if (phonenumber !== '') updatedUser.phoneNumber = phonenumber;\n if (email !== '') updatedUser.emailAddress = email;\n\n setLoading(true);\n\n try {\n await userStore.updateUser(updatedUser);\n history.push('/home');\n setLoading(false);\n } catch (error) {\n showErrorMessage('Problem updating personal information.');\n setLoading(false);\n }\n };\n\n return (\n
\n
\n \n Hei og velkommen til kurs i utdanningsprogram.\n \n \n Vennligst se over at din kontaktinformasjon er korrekt.\n \n
\n
\n
\n Dine opplysninger\n \n \n setPhonenumber(e.target.value)}\n />\n setEmail(e.target.value)}\n />\n \n \n
\n
\n );\n};\n\nexport default StudentInformation;\n","import { flexCol } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(({ palette, typography }) => ({\n content: {\n width: '350px',\n padding: '24px 0 24px 24px',\n ...flexCol,\n gap: '6px',\n overflow: 'auto',\n justifyContent: 'flex-start',\n },\n\n title: {\n color: palette.primary[900],\n },\n\n paddingRight24: {\n paddingRight: '24px',\n },\n\n listContactPerson: {\n marginTop: '15px',\n overflowX: 'auto',\n },\n\n listContactPersonPadding: {\n paddingRight: '15px',\n },\n\n itemContactPerson: {\n marginBottom: '8px',\n '&:last-child': {\n marginBottom: '0px',\n },\n },\n}));\n\nexport default useStyle;\n","import { useStores } from '@/stores';\nimport { Drawer, Typography } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport useStyle from './style';\n\nconst ContactsPersonDrawer = () => {\n const { stateStore, userStore } = useStores();\n const { contactsPersonDrawerIsOpen, setContactsPersonDrawerIsOpen } =\n stateStore;\n\n const classes = useStyle();\n\n return (\n setContactsPersonDrawerIsOpen(false)}\n anchor=\"right\"\n >\n
\n
\n \n Rediger ungdomsskole\n \n
\n\n
\n
\n {userStore.listContactPerson.map((cp) => (\n \n {cp.fullName}\n \n ))}\n
\n
\n
\n \n );\n};\n\nexport default observer(ContactsPersonDrawer);\n","import { useStores } from '@/stores';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n Input,\n InputLabel,\n Typography,\n} from '@material-ui/core';\nimport { InsertDriveFileOutlined } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport { ChangeEvent, useState } from 'react';\n\nconst ImportStudentsModal = () => {\n const { schoolStore, stateStore, userStore, errorStore } = useStores();\n const { editingSchool, resetEditingSchool } = schoolStore;\n const { importStudentModalIsOpen, setImportStudentModalIsOpen } = stateStore;\n\n const cleanupClose = () => {\n resetEditingSchool();\n setFile(undefined);\n };\n\n const [file, setFile] = useState();\n\n const handleFileChange = (\n event: ChangeEvent\n ) => {\n const target = event.target as HTMLInputElement;\n\n if (!!target.files && target.files.length > 0) {\n setFile(target.files[0]);\n }\n };\n\n const handleSubmit = async () => {\n if (editingSchool.externalId && !!file) {\n const updatedCount = await userStore.importStudents(\n editingSchool.externalId,\n file\n );\n errorStore.showErrorMessage(\n updatedCount + ' elever ble lagt til i ' + editingSchool.schoolName,\n 'success'\n );\n setImportStudentModalIsOpen(false);\n cleanupClose();\n }\n };\n\n return (\n setImportStudentModalIsOpen(false)}\n TransitionProps={{\n onExited: cleanupClose,\n }}\n >\n \n \n Importer elever for {editingSchool.schoolName}\n \n \n \n }\n component=\"span\"\n color=\"secondary\"\n >\n {!!file ? file.name : 'Last opp Excel fil'}\n \n \n Last ned mal\n \n \n \n \n setImportStudentModalIsOpen(false)}\n variant=\"text\"\n >\n Avbryt\n \n \n \n \n );\n};\n\nexport default observer(ImportStudentsModal);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(({ breakpoints, palette }) => ({\n main: {\n margin: '20px 115px',\n display: 'flex',\n flexDirection: 'column',\n [breakpoints.down('md')]: {\n margin: '10px 5px',\n },\n },\n header: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: '16px',\n height: '100%',\n '& .MuiDivider-root': {\n backgroundColor: palette.primary.main,\n height: '50%',\n },\n paddingLeft: '10px',\n color: palette.primary.dark,\n },\n headerText: {\n fontWeight: 400,\n },\n}));\n\nexport default useStyle;\n","import { flexCol, flexRow } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(({ palette, typography }) => ({\n content: {\n minWidth: '380px',\n padding: '24px',\n ...flexCol,\n gap: '6px',\n overflow: 'auto',\n justifyContent: 'flex-start',\n },\n form: {\n ...flexCol,\n gap: '6px',\n },\n dateListWrapper: {\n ...flexCol,\n gap: '6px',\n marginBottom: '90px',\n '& MuiChip-root': {\n justifyContent: 'space-between',\n },\n },\n dateListItem: {\n ...flexRow,\n justifyContent: 'space-between',\n alignItems: 'center',\n },\n listHeader: {\n color: palette.primary.dark,\n },\n buttonContainer: {\n boxShadow: '0px -1px 3px rgba(51, 51, 51, 0.2)',\n '& .MuiButton-root': {\n margin: '0 15px 0 0',\n },\n padding: '24px',\n position: 'absolute',\n bottom: 0,\n width: '100%',\n backgroundColor: '#fff',\n },\n loadingButton: {\n position: 'absolute',\n top: '50%',\n left: '50%',\n marginTop: -12,\n marginLeft: -12,\n },\n}));\n\nexport default useStyle;\n","import CustomDayPickerRange from '@/components/CustomDayPickerRange';\nimport { useStores } from '@/stores';\nimport UnavailableDate from '@/types/UnavailableDate';\nimport {\n Button,\n Chip,\n CircularProgress,\n Drawer,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { DateTimeFormatOptions } from 'luxon';\nimport { observer } from 'mobx-react';\nimport { FormEvent, useState } from 'react';\nimport { RangeModifier } from 'react-day-picker';\nimport useStyle from './style';\n\nconst UnavailableDatesDrawer = () => {\n const { stateStore, schoolStore, errorStore } = useStores();\n const { editingSchool, setUnavailableDates, saveUnavailableDates } =\n schoolStore;\n const { unavailableDateDrawerIsOpen, setUnavailableDateDrawerIsOpen } =\n stateStore;\n const { showErrorMessage } = errorStore;\n\n const classes = useStyle();\n\n const newRange: RangeModifier = {\n from: new Date(),\n to: new Date(),\n };\n\n const [selection, setSelection] = useState(newRange);\n const [comment, setComment] = useState('');\n const [loading, setLoading] = useState(false);\n\n const sortedDates = editingSchool.unavailableDates\n .slice()\n .sort((a, b) => a.start.getTime() - b.start.getTime());\n\n const handleSubmit = (e: FormEvent) => {\n e.preventDefault();\n\n if (!editingSchool.externalId) return;\n\n if (!selection.from || !selection.to) {\n showErrorMessage('Velg både en start og slutt dato');\n return;\n }\n const unavailableDates = [...editingSchool.unavailableDates];\n const newDate = new UnavailableDate(\n editingSchool.externalId,\n comment,\n selection.from,\n selection.to\n );\n\n if (unavailableDates.some((ud) => ud.overlapsWith(newDate))) {\n showErrorMessage('Denne datoen overlapper med en annen dato');\n return;\n }\n\n unavailableDates.push(newDate);\n\n setUnavailableDates(unavailableDates);\n\n setComment('');\n setSelection({\n from: newDate.end,\n to: newDate.end,\n } as RangeModifier);\n };\n\n const handleDelete = (date: UnavailableDate) => {\n let unavailableDates = [...editingSchool.unavailableDates];\n\n unavailableDates = unavailableDates.filter(\n (ud) => ud.start !== date.start || ud.end !== date.end\n );\n\n setUnavailableDates(unavailableDates);\n };\n\n const handleSave = async () => {\n setLoading(true);\n\n try {\n await saveUnavailableDates();\n setLoading(false);\n setUnavailableDateDrawerIsOpen(false);\n } catch (error: any) {\n setLoading(false);\n }\n };\n\n const dateOptions: DateTimeFormatOptions = {\n day: 'numeric',\n month: 'short',\n };\n\n const onClose = () => {\n setComment('');\n setSelection(newRange);\n setUnavailableDateDrawerIsOpen(false);\n };\n\n return (\n setUnavailableDateDrawerIsOpen(false)}\n anchor=\"right\"\n >\n
\n \n Kalender for {editingSchool.schoolName}\n \n
\n Velg uaktuelle dager\n \n setComment(e.currentTarget.value)}\n value={comment}\n />\n \n \n
\n \n Elever vil ikke bli tildelt i følgende perioder:\n \n {sortedDates.map((ud) => (\n
\n {ud.comment}\n \n {ud.start.toLocaleDateString('nb', dateOptions)}\n {ud.start.getTime() !== ud.end.getTime() && (\n <> - {ud.end.toLocaleDateString('no', dateOptions)}\n )}\n \n }\n onDelete={() => handleDelete(ud)}\n />\n
\n ))}\n
\n
\n
\n \n \n
\n \n );\n};\n\nexport default observer(UnavailableDatesDrawer);\n","import { useStores } from '@/stores';\nimport { SchoolStatus } from '@/types/enums/SchoolStatus';\nimport School, { SchoolType } from '@/types/School';\nimport { Grid, IconButton } from '@material-ui/core';\nimport { Add } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport { useEffect, useState } from 'react';\nimport { useHistory } from 'react-router-dom';\nimport AddOrEditSchoolDrawer from '../common/AddOrEditSchoolDrawer';\nimport AdminHeader from '../common/AdminHeader';\nimport AdminSearchBar from '../common/AdminSearchBar';\nimport SchoolCard from '../common/SchoolCard';\nimport ShoolStatusFilter from '../common/ShoolStatusFilter';\nimport ContactsPersonDrawer from './ContactsPersonDrawer';\nimport ImportStudentsModal from './ImportStudentsModal';\nimport useStyle from './style';\nimport UnavailableDatesDrawer from './UnavailableDatesDrawer';\n\nconst SecondarySchools = () => {\n const [searchValue, setSearchValue] = useState('');\n\n const classes = useStyle();\n const { schoolStore, stateStore, userStore } = useStores();\n const { secondarySchools, getPopulatedSecondarySchools, setEditingSchool } =\n schoolStore;\n\n const handleOpenAddSecondarySchoolDrawer = () => {\n const newSchool = new School();\n newSchool.schoolType = SchoolType.SecondarySchool;\n\n setEditingSchool(newSchool);\n stateStore.setSchoolDrawerIsOpen(true);\n };\n\n const [filter, setFilter] = useState(SchoolStatus.ACTIVATE);\n const handleChangeFilter = (value: SchoolStatus): void => {\n setFilter(value);\n };\n\n useEffect(() => {\n getPopulatedSecondarySchools(filter);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [secondarySchools.length, filter]);\n\n const searchFilter = (s: School) =>\n s.schoolName.toLowerCase().includes(searchValue.toLowerCase());\n const filteredSchools = secondarySchools.filter(searchFilter).sort();\n\n const handleOpenContactsPersonDrawer = (externalSchoolId: string): void => {\n userStore.setListContactPerson([]);\n userStore.getContactPersonsByExternalSchoolId(externalSchoolId);\n stateStore.setContactsPersonDrawerIsOpen(true);\n };\n\n const history = useHistory();\n const redirectToScreenStudent = (externalId: string): void => {\n schoolStore.setExternalIdSecondarySchool(externalId);\n history.push('/all-students');\n };\n\n return (\n <>\n
\n \n \n \n \n \n \n \n
\n
\n \n {filteredSchools.map((school) => (\n \n ))}\n \n
\n \n \n \n \n \n );\n};\n\nexport default observer(SecondarySchools);\n","import { flexRow } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n paper: {\n padding: '24px',\n },\n headerWrapper: {\n ...flexRow,\n justifyContent: 'space-between',\n alignItems: 'center',\n marginBottom: '16px',\n },\n header: {\n color: palette.primary.dark,\n },\n deactivated: {\n color: palette.error.main,\n },\n}));\n\nexport default useStyles;\n","import { useStores } from '@/stores';\nimport IStudySubject, {\n getStudySubjectCategoryName,\n} from '@/types/StudySubject';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogTitle,\n IconButton,\n Paper,\n Typography,\n} from '@material-ui/core';\nimport { DeleteOutlined, EditOutlined } from '@material-ui/icons';\nimport { useState } from 'react';\nimport useStyles from './style';\n\ninterface IStudySubjectCardProps {\n studySubject: IStudySubject;\n isAdmin: boolean;\n}\n\nconst StudySubjectCard = ({\n studySubject,\n isAdmin,\n}: IStudySubjectCardProps) => {\n const classes = useStyles();\n\n const { stateStore, studySubjectStore } = useStores();\n const { setStudySubjectDrawerIsOpen, setVgsStudySubjectDrawerIsOpen } =\n stateStore;\n const { setChosenStudySubject, deleteStudySubject } = studySubjectStore;\n\n const [openDeleteConfirmation, setOpenDeleteConfirmation] = useState(false);\n\n const handleEdit = () => {\n setChosenStudySubject(studySubject);\n setStudySubjectDrawerIsOpen(true);\n };\n\n const handleDelete = () => {\n deleteStudySubject(studySubject.id);\n setOpenDeleteConfirmation(false);\n };\n\n const handleCreateOrEditCourseTemplate = (): void => {\n setChosenStudySubject(studySubject);\n setVgsStudySubjectDrawerIsOpen(true);\n };\n\n return (\n \n
\n
\n \n {getStudySubjectCategoryName(studySubject.category)}{' '}\n utdanningsprogram\n \n \n {studySubject.studySubjectName}{' '}\n \n {studySubject.isHide && (\n \n Skjul for påmelding\n \n )}\n {studySubject.deactivated && (\n \n Deaktivert\n \n )}\n
\n {isAdmin ? (\n
\n \n \n \n setOpenDeleteConfirmation(true)}>\n \n \n
\n ) : (\n
\n \n \n \n
\n )}\n
\n {isAdmin && (\n {studySubject.description})}\n {isAdmin && (\n setOpenDeleteConfirmation(false)}\n >\n \n \n Er du sikker på at du vil slette {studySubject.studySubjectName}?\n \n \n \n setOpenDeleteConfirmation(false)}\n >\n Avbryt\n \n \n \n \n )}\n
\n );\n};\n\nexport default StudySubjectCard;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n chip: {\n transition: 'background-color ease 0.25s',\n '&:hover': {\n backgroundColor: palette.primary[50],\n cursor: 'pointer',\n },\n },\n activeChip: {\n backgroundColor: palette.primary.main,\n color: '#fff',\n },\n}));\n\nexport default useStyles;\n","import {\n getStudySubjectCategoryName,\n StudySubjectCategory,\n} from '@/types/StudySubject';\nimport { Chip } from '@material-ui/core';\nimport useStyles from './style';\n\ninterface IStudySubjectCategoryChipProps {\n label?: string;\n category: StudySubjectCategory;\n isActive?: boolean;\n setCurrentCategory: (category: StudySubjectCategory) => void;\n}\n\nconst StudySubjectCategoryChip = ({\n label,\n category,\n isActive = false,\n setCurrentCategory,\n}: IStudySubjectCategoryChipProps) => {\n const classes = useStyles();\n\n return (\n setCurrentCategory(category)}\n />\n );\n};\n\nexport default StudySubjectCategoryChip;\n","import { flexCol, flexRow } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n header: {\n padding: '12px 24px',\n color: palette.primary.dark,\n },\n main: {\n padding: '24px',\n ...flexCol,\n gap: '16px',\n color: palette.primary.dark,\n },\n rowFlex: {\n ...flexRow,\n gap: '6px',\n justifyContent: 'flex-start',\n },\n}));\n\nexport default useStyles;\n","import { useStores } from '@/stores';\nimport { emptyStudySubject, StudySubjectCategory } from '@/types/StudySubject';\nimport {\n Button,\n Checkbox,\n Drawer,\n FormControlLabel,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { ChangeEvent, FormEventHandler } from 'react';\nimport StudySubjectCategoryChip from '../StudySubjectCategoryChip';\nimport useStyles from './style';\n\nconst StudySubjectDrawer = () => {\n const { stateStore, studySubjectStore, errorStore } = useStores();\n const {\n chosenStudySubject,\n setChosenStudySubject,\n updateStudySubject,\n addStudySubject,\n getAllStudySubjects,\n } = studySubjectStore;\n const { studySubjectDrawerIsOpen, setStudySubjectDrawerIsOpen } = stateStore;\n const { showErrorMessage } = errorStore;\n\n const classes = useStyles();\n\n const setChosenStudySubjectCategory = (category: StudySubjectCategory) => {\n setChosenStudySubject({\n ...chosenStudySubject,\n category,\n });\n };\n\n const setChosenStudySubjectName = (e: ChangeEvent) => {\n setChosenStudySubject({\n ...chosenStudySubject,\n studySubjectName: e.target.value,\n });\n };\n\n const setChosenStudySubjectDescription = (\n e: ChangeEvent\n ) => {\n setChosenStudySubject({\n ...chosenStudySubject,\n description: e.target.value,\n });\n };\n\n const setChosenStudySubjectDeactivated = (e: any) => {\n setChosenStudySubject({\n ...chosenStudySubject,\n deactivated: e.target.checked,\n });\n };\n\n const setChosenStudySubjectHidden = (e: any) => {\n setChosenStudySubject({\n ...chosenStudySubject,\n isHide: e.target.checked,\n });\n };\n\n const handleSubmit: FormEventHandler = async (e) => {\n e.preventDefault();\n\n if (!chosenStudySubject.studySubjectName) {\n showErrorMessage('Fyll inn navn');\n return;\n }\n\n if (!chosenStudySubject.description) {\n showErrorMessage('Fyll inn beskrivelse');\n return;\n }\n\n if (!chosenStudySubject.category) {\n showErrorMessage('Velg utdanningstype');\n return;\n }\n\n try {\n if (chosenStudySubject.id) {\n await updateStudySubject(chosenStudySubject);\n } else {\n await addStudySubject(chosenStudySubject);\n }\n setStudySubjectDrawerIsOpen(false);\n setChosenStudySubject(emptyStudySubject);\n await getAllStudySubjects(true);\n } catch (e) {\n showErrorMessage(e.message);\n }\n };\n\n const handleClose = () => {\n setStudySubjectDrawerIsOpen(false);\n setChosenStudySubject(emptyStudySubject);\n };\n\n return (\n \n
\n \n {chosenStudySubject.id ? 'Rediger kurs' : 'Opprett kurs'}\n \n
\n
\n Velg utdanningstype\n
\n \n \n
\n \n \n setChosenStudySubjectHidden(e)}\n checked={chosenStudySubject.isHide}\n control={}\n />\n setChosenStudySubjectDeactivated(e)}\n checked={chosenStudySubject.deactivated}\n control={}\n />\n
\n \n \n
\n \n \n );\n};\n\nexport default observer(StudySubjectDrawer);\n","import { flexRow } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n filterWrapper: {\n ...flexRow,\n justifyContent: 'space-between',\n },\n filterChips: {\n ...flexRow,\n gap: '12px',\n justifyContent: 'flex-start',\n alignItems: 'center',\n margin: '12px 0 6px 0',\n },\n chip: {\n transition: 'background-color ease 0.25s',\n '&:hover': {\n backgroundColor: palette.primary[50],\n cursor: 'pointer',\n },\n },\n activeChip: {\n backgroundColor: palette.primary.main,\n color: '#fff',\n },\n}));\n\nexport default useStyles;\n","import { StudySubjectCategory } from '@/types/StudySubject';\nimport { Chip } from '@material-ui/core';\nimport StudySubjectCategoryChip from '../StudySubjectCategoryChip';\nimport useStyles from './style';\n\ninterface IStudySubjectFilterProps {\n chosenCategory: StudySubjectCategory;\n setChosenCategory: (chosenCategory: StudySubjectCategory) => void;\n deactivatedFilterValue: string;\n setDeactivatedFilterValue: (deactivatedFilterValue: string) => void;\n isHideFilterValue: string;\n setIsHideFilterValue: (isHideFilterValue: string) => void;\n isAdmin: boolean;\n}\n\nconst StudySubjectFilter = ({\n chosenCategory,\n setChosenCategory,\n deactivatedFilterValue,\n setDeactivatedFilterValue,\n isHideFilterValue,\n setIsHideFilterValue,\n isAdmin,\n}: IStudySubjectFilterProps) => {\n const classes = useStyles();\n\n return (\n <>\n
\n
\n \n \n \n
\n {isAdmin && (\n
\n {\n setDeactivatedFilterValue('all');\n setIsHideFilterValue('all');\n }}\n />\n setDeactivatedFilterValue('active')}\n />\n setDeactivatedFilterValue('deactivated')}\n />\n {\n isHideFilterValue === 'isHide'\n ? setIsHideFilterValue('all')\n : setIsHideFilterValue('isHide');\n }}\n />\n
\n )}\n
\n \n );\n};\n\nexport default StudySubjectFilter;\n","import { flexCol } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ breakpoints, palette }) => ({\n listWrapper: {\n maxWidth: '1300px',\n ...flexCol,\n gap: '6px',\n padding: '0 115px',\n [breakpoints.down('md')]: {\n padding: '0 5px',\n },\n },\n}));\n\nexport default useStyles;\n","import { useStores } from '@/stores';\nimport IStudySubject from '@/types/StudySubject';\nimport { Button } from '@material-ui/core';\nimport { AddOutlined } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport { FC, useEffect, useState } from 'react';\nimport AdminHeader from '../../admin/common/AdminHeader';\nimport AdminSearchBar from '../../admin/common/AdminSearchBar';\nimport StudySubjectCard from './StudySubjectCard';\nimport StudySubjectDrawer from './StudySubjectDrawer';\nimport StudySubjectFilter from './StudySubjectFilter';\nimport useStyles from './style';\n\ninterface IStudySubjectsProps {\n isAdmin?: boolean;\n}\n\nconst StudySubjects: FC = ({ isAdmin = false }) => {\n const classes = useStyles();\n const { studySubjectStore, stateStore } = useStores();\n const { allStudySubjects, getAllStudySubjects } = studySubjectStore;\n const { setStudySubjectDrawerIsOpen } = stateStore;\n\n const [searchString, setSearchString] = useState('');\n const [chosenCategory, setChosenCategory] = useState(0);\n const [deactivatedFilterValue, setDeactivatedFilterValue] = useState(\n isAdmin ? 'all' : 'active'\n );\n const [isHideFilterValue, setIsHideFilterValue] = useState(\n isAdmin ? 'all' : 'isHide'\n );\n\n useEffect(() => {\n if (allStudySubjects.length === 0) {\n getAllStudySubjects(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const searchFilter = (sub: IStudySubject) =>\n searchString\n ? sub.studySubjectName.toLowerCase().includes(searchString.toLowerCase())\n : true;\n const categoryFilter = (sub: IStudySubject) =>\n chosenCategory > 0 ? sub.category === chosenCategory : true;\n\n const deactivatedFilter = (sub: IStudySubject) => {\n if (deactivatedFilterValue === 'all') {\n return true;\n } else if (deactivatedFilterValue === 'active') {\n return !sub.deactivated;\n }\n return sub.deactivated;\n };\n\n const isHideFilter = (sub: IStudySubject) => {\n if (isHideFilterValue === 'all') {\n return true;\n } else if (isHideFilterValue === 'isHide') {\n return !sub.isHide;\n }\n return sub.isHide;\n };\n\n const filteredStudySubjects = allStudySubjects\n .filter(\n (sub) =>\n searchFilter(sub) && categoryFilter(sub) && deactivatedFilter(sub)\n )\n .filter((sub) => isHideFilter(sub))\n .sort((a, b) =>\n a.studySubjectName.toLowerCase() > b.studySubjectName.toLowerCase()\n ? 1\n : -1\n );\n\n return (\n <>\n
\n \n setStudySubjectDrawerIsOpen(true)}\n >\n Legg til kurs\n \n \n )\n }\n />\n
\n \n {filteredStudySubjects.map((sub) => (\n \n ))}\n
\n
\n \n \n );\n};\n\nexport default observer(StudySubjects);\n","import StudySubjects from '../common/StudySubjects';\n\nconst StudentStudySubjects = () => {\n return ;\n};\n\nexport default StudentStudySubjects;\n","import { useStores } from '@/stores';\nimport { getSchoolAddressLink } from '@/utils/schoolUtils';\nimport { Box, Card, Link, Typography } from '@material-ui/core';\nimport ReactHtmlParser from 'react-html-parser';\nimport {\n AccessTimeOutlined,\n PhoneIphoneOutlined,\n RoomOutlined,\n} from '@material-ui/icons';\nimport { format } from 'date-fns';\nimport { observer } from 'mobx-react';\nimport useStudentStyle from '../studentStyle';\nimport { CourseStatus, getStatusDisplay } from '@/types/enums/CourseStatus';\n\nconst StudentCourseInformation = () => {\n const classes = useStudentStyle();\n const { userStore, projectStore } = useStores();\n const { user } = userStore;\n const { currentProject } = projectStore;\n\n const assignedStudentCourse = user?.getAssignedCourse(currentProject?.id);\n const course = assignedStudentCourse?.finalAssignedCourse;\n const mainContactPerson = course?.school.contactPeople.find(\n (cp) => cp.isMain\n );\n\n const getStatus = (): string => {\n if (course) {\n const courseStatus = course.status;\n\n if (courseStatus === CourseStatus.CANCELLED) {\n return getStatusDisplay(courseStatus);\n }\n }\n\n return '';\n };\n\n return (\n
\n
\n \n \n {course?.studySubject.studySubjectName}\n \n {course?.school.schoolName}\n\n \n Oppmøtested\n \n {course?.roomNumber}\n {!!course?.school && (\n \n \n {course?.school.address?.street},{' '}\n {course?.school.address?.zipCode},{' '}\n {course?.school.address?.city}\n \n \n )}\n\n \n Oppmøtetidspunkt\n \n \n \n {course?.startDate instanceof Date\n ? format(course.startDate, 'dd. MMM HH:mm') +\n ' - ' +\n format(course.endDate, 'HH:mm')\n : course &&\n format(new Date(course.startDate), 'dd. MMM HH:mm') +\n ' - ' +\n format(new Date(course.endDate), 'HH:mm')}\n \n\n \n {getStatus()}\n \n \n\n {!!mainContactPerson && (\n <>\n \n Kontaktperson\n \n \n {course?.courseHolder?.fullName}\n \n \n {course?.courseHolder?.phoneNumber}\n \n \n )}\n\n \n Informasjon\n \n \n {ReactHtmlParser(course?.courseInfo ?? '')}\n \n \n
\n
\n );\n};\n\nexport default observer(StudentCourseInformation);\n","import { Snackbar, SnackbarOrigin } from '@material-ui/core';\nimport { Alert, Color } from '@material-ui/lab';\nimport React from 'react';\n\ninterface IComponentProps {\n open: boolean;\n message: string;\n severity: Color;\n duration: number;\n anchorOrigin: SnackbarOrigin;\n handleClose: () => void;\n}\n\nconst NotifyMessage = (props: IComponentProps) => {\n const { open, message, severity, duration, anchorOrigin, handleClose } =\n props;\n\n return (\n \n {message}\n \n );\n};\n\nexport default NotifyMessage;\n","import IStudySubject from './StudySubject';\n\nexport enum Priority {\n First = 1,\n Second = 2,\n Third = 3,\n}\n\nexport interface IStudentStudySubjectDto {\n studentId: number;\n studySubjectId: number;\n projectId: number;\n priority: Priority;\n}\n\nexport const showPriority = (priority: Priority): string => {\n return 'P' + priority;\n};\n\nexport interface IStatisticSubjectCapacity {\n studySubject: IStudySubject;\n capacity: number;\n numberJoinedStudent: number;\n highSchoolName: string;\n}\n\nexport interface IStatisticRegistration {\n totalStudent: number;\n registeredStudent: number;\n}\n\nexport interface IStatisticAllocation {\n totalCourse: number;\n totalAssignedStudent: number;\n numberFirstPriorityStudent: number;\n numberSecondPriorityStudent: number;\n numberThirdPriorityStudent: number;\n}\n","import { flexCol } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(({ palette, typography }) => ({\n content: {\n width: '358px',\n ...flexCol,\n gap: '6px',\n overflow: 'auto',\n justifyContent: 'flex-start',\n },\n}));\n\nexport default useStyle;\n","import { flexCol, flexRow } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nexport const configStyle = {\n paddingHeader: 116,\n marginFilter: 24,\n widthOption: 358,\n paddingOption: 16,\n};\n\nconst courseStyle = makeStyles(({ breakpoints, palette }) => ({\n header: {\n position: 'relative',\n backgroundColor: palette.primary.light,\n height: '6rem',\n },\n headerContent: {\n paddingLeft: `${configStyle.paddingHeader}px`,\n },\n headerDivider: {\n height: '24px !important',\n width: '1px',\n margin: '0 10px',\n backgroundColor: palette.primary[500],\n },\n headerTitle: {\n fontSize: '24px',\n fontWeight: 400,\n color: palette.primary[900],\n },\n stepIconActive: {\n color: palette.primary[600],\n },\n stepLabel: {\n font: `normal normal 400 14px Oslo Sans, Roboto, Arial, sans-serif !important`,\n color: `${palette.primary[900]} !important`,\n },\n tabAdmin: {\n minWidth: '118px',\n },\n publishButton: {\n backgroundColor: palette.primary.main,\n height: '48px',\n width: '92px',\n minWidth: '92px',\n maxWidth: '92px',\n color: 'white',\n fontSize: '16px',\n border: 'none',\n padding: '16px',\n marginRight: '19px',\n },\n fontSize14: {\n fontSize: '14px !important',\n },\n fontSize16: {\n fontSize: '16px',\n },\n fontSize18: {\n fontSize: '18px',\n },\n fontWeight400: {\n fontWeight: 400,\n },\n fontWeight500: {\n fontWeight: 500,\n },\n marginLeft19: {\n marginLeft: '19px',\n },\n marginRight12: {\n marginRight: '12px',\n },\n marginRight20: {\n marginRight: '20px',\n },\n marginRight27: {\n marginRight: '27px',\n },\n marginRight30: {\n marginRight: '30px',\n },\n marginRight40: {\n marginRight: '40px',\n },\n marginRight123: {\n marginRight: '123px',\n },\n marginLeftAuto: {\n marginLeft: 'auto',\n },\n marginBottom6: {\n marginBottom: '6px',\n },\n marginBottom16: {\n marginBottom: '16px',\n },\n marginBottom21: {\n marginBottom: '21px',\n },\n marginTop10: {\n marginTop: '10px',\n },\n marginTop17: {\n marginTop: '17px',\n },\n marginTop18: {\n marginTop: '18px',\n },\n marginTop20: {\n marginTop: '20px',\n },\n marginTop21: {\n marginTop: '21px',\n },\n marginTop30: {\n marginTop: '30px',\n },\n courseFilterNav: {\n height: '62px',\n background:\n 'linear-gradient(0deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), #C6CADE',\n alignItems: 'flex-end',\n },\n leftContent: {\n width: `calc(100% - ${configStyle.widthOption}px)`,\n padding: `0 0 0 ${configStyle.paddingHeader}px`,\n },\n rightContent: {\n minWidth: `${configStyle.widthOption}px`,\n maxWidth: `${configStyle.widthOption}px`,\n },\n tabIndicator: {\n backgroundColor: palette.primary[600],\n },\n customSearch: {\n position: 'relative',\n width: '611px',\n height: '52px',\n padding: `4px 0`,\n boxSizing: 'content-box',\n [breakpoints.down('md')]: {\n width: '500px',\n },\n },\n courseContentContainerBackground: {\n background: 'rgba(0, 0, 0, 0.04)',\n },\n widthCheckbox: {\n width: '39px',\n },\n widthButtonDetail: {\n width: '28px',\n },\n checkboxPadding: {\n paddingRight: '8px',\n paddingLeft: '11px',\n },\n buttonDetailPadding: {\n paddingLeft: '8px',\n paddingRight: 0,\n },\n space: {\n marginRight: `${configStyle.marginFilter}px`,\n },\n rowColSpan: {\n background:\n 'linear-gradient(0deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), #C6CADE',\n },\n paddingDetail: {\n paddingTop: '8px',\n paddingBottom: '8px',\n },\n paddingRowDetail: {\n paddingTop: '13px',\n paddingBottom: '13px',\n },\n paddingSelectSecondarySchool: {\n paddingTop: '12px',\n paddingBottom: '12px',\n },\n rowCourseDetail: {\n background:\n 'linear-gradient(0deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)), #EBEAF1',\n },\n displayContent: {\n display: 'contents',\n },\n verticalAlignTop: {\n verticalAlign: 'top',\n },\n colorDetail: {\n fontFamily: 'Inter',\n fontStyle: 'normal',\n fontWeight: 600,\n lineHeight: '15px',\n letterSpacing: '0.05em',\n color: palette.primary[900],\n },\n heightText: {\n height: '22px',\n lineHeight: '22px',\n\n '& p': {\n margin: '0px',\n },\n },\n textStyle: {\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontSize: '14px',\n color: palette.primary[900],\n },\n tableCellStudySubject: {\n width: '250px',\n minWidth: '250px',\n maxWidth: '250px',\n [breakpoints.up(1440)]: {\n width: '300px',\n minWidth: '300px',\n maxWidth: '300px',\n },\n [breakpoints.up('xl')]: {\n width: '400px',\n minWidth: '400px',\n maxWidth: '400px',\n },\n },\n tableCellTime: {\n width: '150px',\n minWidth: '150px',\n maxWidth: '150px',\n // [breakpoints.up(1440)]: {\n // width: '300px',\n // minWidth: '300px',\n // maxWidth: '300px',\n // },\n // [breakpoints.up('xl')]: {\n // width: '400px',\n // minWidth: '400px',\n // maxWidth: '400px',\n // },\n },\n tableCellHighSchool: {\n width: '165px',\n minWidth: '165px',\n maxWidth: '165px',\n [breakpoints.up(1440)]: {\n width: '300px',\n minWidth: '300px',\n maxWidth: '300px',\n },\n [breakpoints.up('xl')]: {\n width: '400px',\n minWidth: '400px',\n maxWidth: '400px',\n },\n },\n textTransformLowercase: {\n textTransform: 'lowercase',\n },\n courseOptionPadding: {\n padding: `${configStyle.paddingOption}px`,\n },\n courseOptionWidth: {\n width: `calc(${configStyle.widthOption}px - ${\n 2 * configStyle.paddingOption\n }px)`,\n padding: `${configStyle.paddingOption}px`,\n paddingBottom: 0,\n },\n courseOptionStyle: {\n border: '1px solid rgba(0, 0, 0, 0.12)',\n paddingBottom: 0,\n },\n listStudentPadding: {\n padding: '8px 12px',\n },\n overflowXAuto: {\n overflowX: 'auto',\n },\n displayGirl: {\n display: 'grid',\n },\n displayFlex: {\n display: 'flex',\n },\n displayNone: {\n display: 'none !important',\n },\n pointer: { cursor: 'pointer' },\n backgroundColorFFF: {\n backgroundColor: palette.primary.A100,\n },\n backgroundColorTransparent: {\n backgroundColor: palette.background.default,\n },\n textAlignCenter: {\n textAlign: 'center',\n },\n textAlignRight: {\n textAlign: 'right',\n },\n alignItemsCenter: {\n alignItems: 'center',\n },\n justifyContentCenter: {\n justifyContent: 'center',\n },\n justifyContentFlexEnd: {\n justifyContent: 'flex-end',\n },\n widthFull: {\n width: '100%',\n },\n heightFull: {\n height: '100%',\n },\n heightLoading: {\n minHeight: '30vh',\n },\n margin0: {\n margin: 0,\n },\n padding0: {\n padding: '0 !important',\n },\n verticalAlignBottom: {\n verticalAlign: 'bottom',\n },\n whiteSpaceNowrap: {\n whiteSpace: 'nowrap',\n },\n divider: {\n backgroundColor: palette.primary[200],\n opacity: 1,\n },\n visibility: {\n visibility: 'hidden',\n },\n borderTable: {\n minWidth: '5px',\n maxWidth: '5px',\n width: '5px',\n },\n borderTableActive: {\n backgroundColor: palette.primary['600'],\n },\n borderTableDetailActive: {\n backgroundColor: palette.primary['200'],\n },\n tableEmpty: {\n fontSize: '22px',\n lineHeight: '31px',\n color: palette.primary[900],\n marginTop: '5rem',\n },\n optionsTitleSize: {\n fontSize: '18px',\n color: palette.primary.dark,\n },\n studySubjectName: {\n color: palette.primary['900'],\n fontSize: '22px',\n lineHeight: '31px',\n },\n optionButtons: {\n height: '84px',\n padding: '24px 16px',\n borderTop: '1px solid rgba(0, 0, 0, 0.12)',\n },\n titleDark: {\n color: palette.primary.dark,\n },\n studentInfoName: {\n fontWeight: 400,\n fontSize: '22px',\n lineHeight: '31px',\n },\n marginLeft17: {\n marginLeft: '17px',\n },\n marginLeft14: {\n marginLeft: '14px',\n },\n marginTop22: {\n marginTop: '22px',\n },\n marginLeft27: {\n marginLeft: '27px',\n },\n marginTop14: {\n marginTop: '14px',\n },\n color500: {\n color: palette.primary[500],\n },\n marginTop32: {\n marginTop: '32px',\n },\n studySubject: {\n fontSize: '16px',\n lineHeight: '24px',\n fontWeight: 400,\n },\n paddingLeft0: {\n paddingLeft: 0,\n },\n paddingLeft4: {\n paddingLeft: '4px',\n },\n paddingRight0: {\n paddingRight: 0,\n },\n paddingBottom0: {\n paddingBottom: 0,\n },\n paddingTop0: {\n paddingTop: 0,\n },\n marginTop28: {\n marginTop: '28px',\n },\n marginTop26: {\n marginTop: '26px',\n },\n marginTop24: {\n marginTop: '24px',\n },\n marginTop47: {\n marginTop: '47px',\n },\n studySubjectDefault: {\n borderColor: palette.grey['600'],\n color: palette.grey['600'],\n backgroundColor: palette.grey['500'],\n },\n studySubjectCurrent: {\n borderColor: palette.info['50'],\n color: palette.info['50'],\n background:\n 'linear-gradient(0deg, rgba(77, 199, 93, 0.15), rgba(77, 199, 93, 0.15)), #FFFFFF',\n },\n contentStudentStudyBox: {\n padding: '24px 0px',\n },\n contentStudentStudyBoxPadding: {\n paddingLeft: '20px',\n paddingRight: '20px',\n },\n contentStudentStudy: {\n padding: '4px 12px',\n borderRadius: '50px',\n border: `1px solid ${palette.primary[500]}`,\n marginBottom: '8px',\n '&:last-child': {\n marginBottom: '0px',\n },\n },\n switchBase: {\n color: palette.primary[500],\n },\n switchTrack: {\n border: `1px solid ${palette.primary[500]}`,\n backgroundColor: palette.primary[500],\n },\n paddingRight24: {\n paddingRight: '24px',\n },\n width64: {\n width: '64px',\n },\n width83: {\n width: '83px',\n },\n width200: {\n minWidth: '200px',\n width: '200px',\n },\n capacityText: {\n marginTop: '12px',\n color: palette.primary.main,\n },\n textCountStudent: {\n color: palette.text.secondary,\n },\n rootChooseSecondarySchool: {\n width: '118px',\n color: palette.primary[600],\n },\n selectChooseSecondarySchool: {\n '&:focus': {\n backgroundColor: palette.background.default,\n },\n },\n iconChooseSecondarySchool: {\n color: palette.primary[600],\n },\n colorIconSearch: {\n color: '#666666',\n },\n boxNoteStudentCourse: {\n backgroundColor: '#F5F5F4',\n borderTopLeftRadius: '4px',\n borderTopRightRadius: '4px',\n padding: '0 12px',\n paddingTop: '6px',\n color: palette.primary[500],\n },\n buttonChooseStudent: {\n width: '40px',\n height: '40px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '50%',\n },\n buttonChooseStudentActive: {\n backgroundColor: palette.primary[100],\n },\n subTableHeader: {\n fontWeight: 500,\n },\n hoverPointer: {\n '&:hover': {\n cursor: 'pointer',\n },\n },\n heighHeadCell: {\n height: '28px',\n },\n positionRelative: {\n position: 'relative',\n },\n disabled: {\n pointerEvents: 'none',\n opacity: 0.5,\n },\n informationInputs: {\n ...flexCol,\n gap: '16px',\n marginTop: '21px',\n },\n courseDateAndCapacityWrapper: {\n ...flexRow,\n justifyContent: 'space-between',\n marginTop: '30px',\n padding: '0 12px',\n },\n courseDateAndCapacity: {\n ...flexRow,\n alignItems: 'center',\n gap: '10px',\n },\n courseOptionHeader: {\n ...flexRow,\n justifyContent: 'space-between',\n marginBottom: '24px',\n },\n highlightedText: {\n fontWeight: 500,\n color: palette.primary.dark,\n },\n sizeIcon: {\n width: '25px',\n height: '25px',\n },\n sizeIconLoading: {\n width: '100% !important',\n height: '100% !important',\n },\n nestedStudentTableRow: {\n backgroundColor: palette.primary[50],\n '&:hover': {\n cursor: 'pointer',\n },\n },\n paddingHeaderDetailCourse: {\n paddingTop: '6px',\n paddingBottom: '6px',\n },\n textTransformUppercase: {\n textTransform: 'uppercase',\n },\n movingMulDialog: {\n padding: '12px 16px',\n },\n textMovingMulDialog: {\n fontStyle: 'normal',\n fontWeight: 'normal',\n color: palette.primary[900],\n fontSize: '16px',\n },\n textSchoolUnavailable: {\n fontStyle: 'normal',\n fontWeight: 'normal',\n color: 'red',\n fontSize: '16px',\n },\n textNumberStudentMoving: {\n marginTop: '12px',\n },\n titleInfoCourseOld: {\n marginTop: '16px',\n marginBottom: '8px',\n },\n movingMulDialogDivider: {\n margin: '16px 0',\n },\n movingMulDialogSelect: {\n paddingTop: '17.5px',\n paddingBottom: '18.5px',\n },\n movingMulDialogPager: {\n borderRadius: 0,\n },\n movingMulDialogList: {\n padding: 0,\n },\n movingMulDialogMenu: {\n paddingTop: '10px',\n paddingBottom: '11px',\n borderBottom: '1px solid #E0E0E0',\n '&:last-child': {\n borderBottomWidth: '0px',\n },\n },\n movingMulDialogButton: {\n marginTop: '64px',\n marginBottom: '32px',\n },\n notifySuccessWarraper: {\n padding: '16px',\n background: `linear-gradient(0deg, rgba(77, 199, 93, 0.15), rgba(77, 199, 93, 0.15)), #FFFFFF`,\n },\n notifySuccessTitle: {\n color: palette.info['50'],\n },\n sizeIconLoadingExportVGS: {\n width: '25px !important',\n height: '25px !important',\n },\n}));\n\nexport default courseStyle;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n heightFull: {\n height: '100%',\n },\n widthFull: {\n width: '100%',\n },\n alignItemsCenter: {\n alignItems: 'center',\n },\n displayFlex: {\n display: 'flex',\n },\n justifyContentCenter: {\n justifyContent: 'center',\n },\n}));\n\nexport default useStyles;\n","import { CircularProgress } from '@material-ui/core';\nimport useStyles from './style';\nimport clsx from 'clsx';\n\ninterface IComponentProps {\n loading?: boolean;\n}\n\nconst Loading = (props: IComponentProps) => {\n const { loading } = props;\n const classes = useStyles();\n\n return (\n <>\n {loading && (\n \n \n \n )}\n \n );\n};\n\nexport default Loading;\n","import { makeStyles } from '@material-ui/core';\n\nconst useEditCourseStyles = makeStyles(() => ({\n root: {\n padding: 20,\n },\n}));\n\nexport default useEditCourseStyles;\n","import { useStores } from '@/stores';\nimport { getDateTime } from '@/utils/timeUtils';\nimport courseStyle from '@/views/style/courses';\nimport { Typography } from '@material-ui/core';\nimport { EventOutlined, PersonOutline } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\n\nconst EditCourseInformation = () => {\n const { courseStore } = useStores();\n const { course } = courseStore;\n const courseClasses = courseStyle();\n return (\n <>\n \n {course?.studySubject?.studySubjectName\n ? course.studySubject.studySubjectName\n : 'Ikke definert'}\n \n
\n
\n \n \n {getDateTime(course?.startDate, 'dd. LLL. yyyy')}\n \n
\n\n
\n \n {`Kapasitet: ${course?.capacity}`}\n
\n
\n \n );\n};\n\nexport default observer(EditCourseInformation);\n","import { useStores } from '@/stores';\nimport { InputAdornment } from '@material-ui/core';\nimport { AccessTime } from '@material-ui/icons';\nimport { TimePicker } from '@material-ui/pickers';\nimport { DateTime } from 'luxon';\nimport { observer } from 'mobx-react';\n\ninterface IComponentProps {\n isDisableStartDate?: boolean;\n isDisableEndDate?: boolean;\n}\n\nconst EditCourseTimes = (props: IComponentProps) => {\n const { isDisableStartDate, isDisableEndDate } = props;\n const { courseStore } = useStores();\n const { course } = courseStore;\n\n const setStartDate = (date: Date) => {\n course &&\n courseStore.setCourse({\n ...course,\n startDate: date,\n });\n };\n\n const setEndDate = (date: Date) => {\n course &&\n courseStore.setCourse({\n ...course,\n endDate: date,\n });\n };\n\n let start = DateTime.fromISO(course?.startDate as unknown as string)\n .toUTC()\n .toJSDate();\n\n let end = DateTime.fromISO(course?.endDate as unknown as string)\n .toUTC()\n .toJSDate();\n\n if (course?.startDate instanceof Date) {\n start = DateTime.fromJSDate(course?.startDate).toUTC().toJSDate();\n }\n if (course?.endDate instanceof Date) {\n end = DateTime.fromJSDate(course?.endDate).toUTC().toJSDate();\n }\n\n return (\n <>\n {\n if (d) {\n setStartDate(d.toUTC().toJSDate());\n }\n }}\n InputProps={{\n endAdornment: (\n \n \n \n ),\n }}\n ampm={false}\n disabled={isDisableStartDate}\n />\n {\n if (d) setEndDate(d.toUTC().toJSDate());\n }}\n InputProps={{\n endAdornment: (\n \n \n \n ),\n }}\n ampm={false}\n disabled={isDisableEndDate}\n />\n \n );\n};\n\nexport default observer(EditCourseTimes);\n","import React from 'react';\nimport { CKEditor } from '@ckeditor/ckeditor5-react';\nimport { CircularProgress } from '@material-ui/core';\nimport Editor from 'ckeditor5-custom-build/build/ckeditor';\n\ninterface IComponentProps {\n content: string | null | undefined;\n}\n\nconst CustomEditorReadOnly = (props: IComponentProps) => {\n const { content } = props;\n\n const config = {\n toolbar: {\n items: [],\n //shouldNotGroupWhenFull: true,\n },\n language: 'nb',\n fontFamily: {\n supportAllValues: true,\n },\n };\n\n return (\n <>\n }>\n {\n if (editor) {\n editor.setData(content ?? '');\n }\n }}\n config={config}\n />\n \n \n );\n};\n\nexport default CustomEditorReadOnly;\n","import { useStores } from '@/stores';\nimport courseStyle from '@/views/style/courses';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport { TextField } from '@material-ui/core';\nimport Loading from '@/components/Loading';\nimport useEditCourseStyles from './style';\nimport EditCourseInformation from '@/views/app/VGSadmin/courses/components/CourseOptions/EditCourse/EditCourseInformation';\nimport EditCourseTimes from '@/views/app/VGSadmin/courses/components/CourseOptions/EditCourse/EditCourseTimes';\nimport CustomEditorReadOnly from '@/components/CustomEditorReadOnly';\n\nconst CourseInfo = () => {\n const courseClasses = courseStyle();\n const classes = useEditCourseStyles();\n const { courseStore } = useStores();\n const { course } = courseStore;\n\n return (\n <>\n {course ? (\n <>\n
\n \n
\n \n \n \n\n \n
\n
\n \n ) : (\n
\n \n
\n )}\n \n );\n};\n\nexport default observer(CourseInfo);\n","import { useStores } from '@/stores';\nimport { Drawer } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport useStyle from './style';\nimport CourseInfo from '@/views/app/GUadmin/Students/VGSCourseInfoDrawer/CourseInfo';\n\nconst VGSCourseInfoDrawer = () => {\n const { stateStore } = useStores();\n const { vgsCourseInfoDrawerIsOpen, setVgsCourseInfoDrawerIsOpen } =\n stateStore;\n\n const classes = useStyle();\n const onClose = (): void => {\n setVgsCourseInfoDrawerIsOpen(false);\n };\n\n return (\n \n
\n \n
\n
\n );\n};\n\nexport default observer(VGSCourseInfoDrawer);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n filters: {\n minWidth: '10vw',\n margin: '0 6px',\n },\n exportButton: {\n height: '48px',\n width: '48px',\n },\n menuItem: {\n overflow: 'hidden',\n width: '100%',\n textOverflow: 'ellipsis',\n },\n maxWidthSelectCourse: {\n maxWidth: '250px',\n minWidth: '250px',\n },\n}));\n\nexport default useStyles;\n","export enum MessageTemplateType {\n Both = 1,\n Student = 2,\n Teacher = 3,\n}\n\nexport const getMessageTemplateTypeDisplay = (\n recipientType: MessageTemplateType\n): string => {\n let statusText = '';\n switch (recipientType) {\n case MessageTemplateType.Both:\n statusText = 'Begge';\n break;\n case MessageTemplateType.Student:\n statusText = 'Elev';\n break;\n case MessageTemplateType.Teacher:\n statusText = 'Lærer';\n break;\n }\n\n return statusText;\n};\n","import { useStores } from '@/stores';\nimport StudentRegistrationStatus from '@/types/enums/StudentRegistrationStatus';\nimport {\n FormControl,\n InputLabel,\n Select,\n MenuItem,\n IconButton,\n CircularProgress,\n FilledInput,\n} from '@material-ui/core';\nimport { GetAppOutlined } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport {\n ChangeEvent,\n FC,\n ReactNode,\n useCallback,\n useEffect,\n useState,\n} from 'react';\nimport useStyles from './style';\nimport NotifyMessage from '@/components/NotifyMessage';\nimport ICourse from '@/types/Course';\nimport { getDateTime } from '@/utils/timeUtils';\nimport { Priority } from '@/types/StudentStudySubject';\nimport clsx from 'clsx';\n\ninterface IStudentTableFilterProps {\n classId?: string;\n setClassId?: (classId: string) => void;\n schoolId?: string;\n setSchoolId?: (schoolId: string) => void;\n courseId?: string;\n setCourseId?: (courseId: string) => void;\n priority?: string;\n setPriority?: (priority: string) => void;\n status: StudentRegistrationStatus;\n setStatus: (status: StudentRegistrationStatus) => void;\n all: boolean;\n}\n\nconst StudentTableFilters: FC = ({\n classId,\n setClassId,\n schoolId,\n setSchoolId,\n courseId,\n setCourseId,\n priority,\n setPriority,\n status,\n setStatus,\n all,\n}) => {\n const { schoolStore, userStore, projectStore, courseStore } = useStores();\n const { currentSchool, secondarySchools, getPopulatedSecondarySchools } =\n schoolStore;\n const { user } = userStore;\n const { currentProject } = projectStore;\n const classes = useStyles();\n const [courses, setCourses] = useState([]);\n\n const getAllCourse = useCallback(async () => {\n if (\n all &&\n courses.length === 0 &&\n projectStore.currentProject &&\n projectStore.currentProject.id\n ) {\n const courses = await courseStore.getAllByProjectId(\n projectStore.currentProject.id\n );\n setCourses(courses);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [projectStore.currentProject]);\n\n useEffect(() => {\n getAllCourse();\n }, [getAllCourse]);\n\n useEffect(() => {\n if (all && secondarySchools.length === 0) {\n getPopulatedSecondarySchools();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n useEffect(() => {\n if (schoolId) schoolStore.getSchoolByExternalId(schoolId);\n\n setClassId && setClassId('');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [schoolId]);\n\n const [exportLoading, setExportLoading] = useState(false);\n\n const downloadAllStudents = async () => {\n try {\n setExportLoading(true);\n const externalSchoolId = all ? '' : user?.externalSchoolId || 'error';\n let projectId = 0;\n if (currentProject && currentProject.id) {\n projectId = currentProject.id;\n }\n\n await userStore.downloadAllStudents(externalSchoolId, projectId);\n setExportLoading(false);\n } catch (err) {\n setExportLoading(false);\n setOpenNotifyMessage(true);\n }\n };\n\n const handleClassIdChange = (\n event: ChangeEvent<{\n name?: string | undefined;\n value: unknown;\n }>,\n child: ReactNode\n ) => setClassId && setClassId(event.target.value as string);\n\n const handleSchoolIdChange = (\n event: ChangeEvent<{\n name?: string | undefined;\n value: unknown;\n }>,\n child: ReactNode\n ) => setSchoolId && setSchoolId(event.target.value as string);\n\n const handleStatusChange = (\n event: ChangeEvent<{\n name?: string | undefined;\n value: unknown;\n }>,\n child: ReactNode\n ) => setStatus(event.target.value as StudentRegistrationStatus);\n\n const handleCourseIdChange = (\n event: ChangeEvent<{\n name?: string | undefined;\n value: unknown;\n }>,\n child: ReactNode\n ): void => {\n setCourseId && setCourseId(event.target.value as string);\n };\n\n const handlePriorityChange = (\n event: ChangeEvent<{\n name?: string | undefined;\n value: unknown;\n }>,\n child: ReactNode\n ): void => {\n setPriority && setPriority(event.target.value as string);\n };\n\n const [openNotifyMessage, setOpenNotifyMessage] = useState(false);\n const handleCloseNotifyMessage = (): void => {\n setOpenNotifyMessage(false);\n };\n\n return (\n <>\n {all && (\n <>\n \n Kurs\n }\n >\n {courses.map((c) => (\n \n {`${c.studySubject?.studySubjectName} - ${\n c.school?.schoolName\n } - ${getDateTime(c.startDate, 'yyyy.LL.dd T')}`}\n \n ))}\n \n Vis alle\n \n \n \n \n Skole\n \n {secondarySchools.filter(value => !value.deactivated).map((s) => (\n \n {s.schoolName}\n \n ))}\n \n Vis alle\n \n \n \n \n )}\n \n Klasse\n \n {currentSchool?.classes &&\n currentSchool.classes.map((c) => (\n \n {c.fullName}\n \n ))}\n \n Vis alle\n \n \n \n \n Prioritet tildelt\n \n 1. prioritet\n 2. prioritet\n 3. prioritet\n Visa alle\n \n \n \n Påmeldingsstatus\n \n \n Ikke meldt\n \n \n Meldt\n \n \n Vis alle\n \n \n \n \n {exportLoading ? : }\n \n\n \n \n );\n};\n\nexport default observer(StudentTableFilters);\n","import { flexRow } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\ninterface Props {\n open: boolean;\n}\n\nconst useStyles = makeStyles(({ breakpoints, palette }) => ({\n collapseTableRow: {\n transition: '0.3s ease all',\n borderLeft: '3px solid',\n borderColor: ({ open }: Props) =>\n open ? palette.primary[200] : 'transparent',\n backgroundColor: ({ open }: Props) =>\n open ? palette.primary[50] : 'transparent',\n },\n collapse: {\n padding: '12px 0',\n ...flexRow,\n justifyContent: 'space-between',\n [breakpoints.down('sm')]: {\n flexDirection: 'column',\n },\n },\n chipList: {\n ...flexRow,\n gap: '8px',\n justifyContent: 'flex-start',\n [breakpoints.down('sm')]: {\n flexDirection: 'column',\n },\n },\n subjectChip: {\n height: '25px',\n lineHeight: '25px',\n },\n checkboxLabel: {\n height: '25px',\n },\n unassignedSubjectChip: {\n backgroundColor: palette.grey[200],\n borderColor: palette.grey[600],\n color: palette.grey[600],\n },\n displayFlex: {\n display: 'flex',\n },\n btnChangeRegistration: {\n marginRight: '10px',\n },\n whiteSpaceNowrap: {\n whiteSpace: 'nowrap',\n },\n boxBtn: {\n marginLeft: '20px',\n },\n}));\n\nexport default useStyles;\n","import { useStores } from '@/stores';\nimport { IStudentStudySubject } from '@/types/StudySubject';\nimport { User } from '@/types/User';\nimport {\n TableRow,\n TableCell,\n Collapse,\n Chip,\n FormControlLabel,\n Checkbox,\n} from '@material-ui/core';\nimport { ChangeEvent } from 'react';\nimport useStyles from './style';\nimport clsx from 'clsx';\nimport CreateOutlinedIcon from '@material-ui/icons/CreateOutlined';\nimport { UserRole } from '@/types/UserRole';\nimport { observer } from 'mobx-react';\n\ninterface IStudentRowDropdownProps {\n open: boolean;\n student: User;\n assignedStudentStudySubject?: IStudentStudySubject;\n all: boolean;\n handleOpenChangeRegistration?: () => void;\n handleOpenManualAssign?: () => void;\n}\n\nconst StudentRowDropdown = ({\n open,\n student,\n assignedStudentStudySubject,\n all,\n handleOpenChangeRegistration,\n handleOpenManualAssign\n}: IStudentRowDropdownProps) => {\n const classes = useStyles({ open });\n\n const { userStore, schoolStore, projectStore } = useStores();\n const { user } = userStore;\n const { setIsSetHasSpecialNeeds } = schoolStore;\n\n const handleSpecialNeedsChange = async (\n e: ChangeEvent\n ): Promise => {\n await userStore.setHasSpecialNeeds(student.id, e.target.checked);\n setIsSetHasSpecialNeeds(true);\n };\n\n return (\n \n \n \n
\n
\n {student.studentStudySubjects.map((sub) => (\n \n ))}\n
\n
\n {handleOpenChangeRegistration &&\n user?.currentRole === UserRole.Admin && (\n \n }\n label={\n !student.studentStudySubjects.length\n ? `Opprett påmelding`\n : `Endre påmelding`\n }\n onClick={() => handleOpenChangeRegistration()}\n />\n )}\n\n {student.studentStudySubjects.length === 0 && handleOpenManualAssign && projectStore.currentProject && (projectStore.currentProject.isPublished || projectStore.isCurrentProjectInCoursePeriod()) &&\n user?.currentRole === UserRole.Admin && (\n \n }\n label={`Tildel elev`}\n onClick={() => handleOpenManualAssign()}\n />\n )}\n\n ) => {\n await handleSpecialNeedsChange(event);\n }}\n color=\"primary\"\n />\n }\n label=\"Elev med spesielle behov\"\n />\n
\n
\n
\n \n
\n );\n};\n\nexport default observer(StudentRowDropdown);\n","import { flexRow } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n card: {\n padding: '16px',\n width: '400px',\n },\n header: {},\n schoolName: {\n color: palette.primary.dark,\n },\n contactContainer: {\n ...flexRow,\n justifyContent: 'space-between',\n alignItems: 'center',\n marginTop: '16px',\n },\n contactName: {\n color: palette.primary.dark,\n },\n}));\n\nexport default useStyles;\n","import { ISchool } from '@/types/School';\nimport { User } from '@/types/User';\nimport { getSchoolAddressLink } from '@/utils/schoolUtils';\nimport { Card, IconButton, Link, Typography } from '@material-ui/core';\nimport { MailOutlined, PhoneIphoneOutlined } from '@material-ui/icons';\nimport useStyles from './style';\n\ninterface ISchoolHoverCardProps {\n school: ISchool;\n contactPerson?: User;\n}\n\nconst SchoolHoverCard = ({ school, contactPerson }: ISchoolHoverCardProps) => {\n const currentContactPerson =\n contactPerson ?? school.contactPeople.filter((cp) => cp.isMain)[0]?.user;\n const classes = useStyles();\n return (\n \n
\n \n {school.schoolName}\n \n
\n \n \n {school.address.street}, {school.address.zipCode}{' '}\n {school.address.city}\n \n \n {!!currentContactPerson && (\n
\n \n {currentContactPerson.fullName}\n \n
\n \n \n \n \n \n \n
\n
\n )}\n
\n );\n};\n\nexport default SchoolHoverCard;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n tooltip: {\n padding: 0,\n '& .MuiTooltip-tooltip': {\n padding: 0,\n },\n },\n}));\n\nexport default useStyles;\n","import { IStudentCourse } from '@/types/StudentCourse';\nimport { Tooltip, Typography } from '@material-ui/core';\nimport SchoolHoverCard from './SchoolHoverCard';\nimport useStyles from './style';\n\ninterface IContactPersonCellProps {\n course?: IStudentCourse;\n}\n\nconst ContactPersonCell = ({ course }: IContactPersonCellProps) => {\n const school = course?.finalAssignedCourse?.school;\n const contactPerson = course?.finalAssignedCourse?.courseHolder;\n\n const classes = useStyles();\n\n return (\n \n )\n }\n >\n
\n \n {school && school.schoolName}\n \n \n {contactPerson && contactPerson.fullName}\n \n
\n \n );\n};\n\nexport default ContactPersonCell;\n","import { flexCol } from '@/style/common';\nimport { semiBold } from '@/style/fontWeights';\nimport { makeStyles } from '@material-ui/core';\n\ninterface Props {\n open: boolean;\n}\n\nconst useStyles = makeStyles(({ breakpoints, palette }) => ({\n rowWrapper: {\n ...flexCol,\n },\n tableRow: {\n transition: '0.3s ease all',\n borderLeft: '3px solid',\n borderColor: ({ open }: Props) =>\n open ? palette.primary.main : 'transparent',\n backgroundColor: ({ open }: Props) =>\n open ? palette.primary[50] : 'transparent',\n '&:hover': {\n cursor: 'pointer',\n backgroundColor: palette.primary[50],\n },\n '& .MuiTableCell-root': {\n padding: '12px 16px',\n [breakpoints.down('sm')]: {\n padding: '4px',\n },\n },\n },\n thinChip: {\n height: '25px',\n lineHeight: '25px',\n },\n studentName: {\n fontWeight: semiBold,\n },\n boxTooltipComment: {\n padding: 0,\n width: '20rem',\n color: 'initial',\n fontSize: 'initial',\n fontWeight: 'normal',\n },\n whiteSpaceNowrap: {\n whiteSpace: 'nowrap',\n },\n spaceIcon: {\n marginLeft: '5px',\n '&:last-child': {\n marginLeft: '0px',\n },\n },\n}));\n\nexport default useStyles;\n","export const semiBold = 500;\n","import { IStudentCourse } from '@/types/StudentCourse';\nimport { Typography } from '@material-ui/core';\n\ninterface ITimeCellProps {\n course?: IStudentCourse;\n}\n\nconst TimeCell = ({ course }: ITimeCellProps) => {\n const startDate = !!course?.finalAssignedCourse?.startDate\n ? new Date(course?.finalAssignedCourse?.startDate)\n : null;\n const endDate = !!course?.finalAssignedCourse?.endDate\n ? new Date(course?.finalAssignedCourse?.endDate)\n : null;\n\n return (\n
\n \n {startDate?.toLocaleDateString('no', {\n day: '2-digit',\n month: 'short',\n })}\n \n \n {startDate?.toLocaleTimeString('no', {\n hour: '2-digit',\n minute: '2-digit',\n })}{' '}\n -{' '}\n {endDate?.toLocaleTimeString('no', {\n hour: '2-digit',\n minute: '2-digit',\n })}\n \n
\n );\n};\n\nexport default TimeCell;\n","import { User } from '@/types/User';\nimport {\n Chip,\n IconButton,\n TableCell,\n TableRow,\n Tooltip,\n Typography,\n} from '@material-ui/core';\nimport InsertDriveFileOutlinedIcon from '@material-ui/icons/InsertDriveFileOutlined';\nimport {\n AccessibilityNewOutlined,\n KeyboardArrowDownOutlined,\n KeyboardArrowUpOutlined,\n MailOutlined,\n PhoneIphoneOutlined,\n PersonAddDisabledOutlined,\n CommentOutlined,\n} from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport React, { useState } from 'react';\nimport StudentRowDropdown from '../../common/StudentRowDropdown';\nimport ContactPersonCell from './ContactPersonCell';\nimport useStyles from './style';\nimport TimeCell from './TimeCell';\nimport { useStores } from '@/stores';\nimport CustomEditorReadOnly from '@/components/CustomEditorReadOnly';\nimport { CourseStatus, getStatusDisplay } from '@/types/enums/CourseStatus';\n\ninterface IStudentCourseRowProps {\n student: User;\n all: boolean;\n handleOpenManualAssignDialog: (student: User) => void;\n}\n\nconst StudentCourseRow = ({\n student,\n all,\n handleOpenManualAssignDialog,\n}: IStudentCourseRowProps) => {\n const [open, setOpen] = useState(false);\n const classes = useStyles({ open });\n const studentCourse = student.studentCourses[0] ?? null;\n const { courseStore, stateStore } = useStores();\n const chooseCourseShowInfoVGS = (): void => {\n if (studentCourse != null && studentCourse.finalAssignedCourseId != null) {\n courseStore.getCourseById(studentCourse.finalAssignedCourseId);\n stateStore.setVgsCourseInfoDrawerIsOpen(true);\n }\n };\n const assignedStudentStudySubject = student.studentStudySubjects.find(\n (sub) =>\n sub.studySubjectId === studentCourse?.finalAssignedCourse?.studySubjectId\n );\n\n const beforeHandleOpenManualAssignDialog = (): void => {\n handleOpenManualAssignDialog(student);\n };\n\n const getStatus = (): string => {\n if (studentCourse && studentCourse.finalAssignedCourse) {\n const courseStatus = studentCourse.finalAssignedCourse.status;\n\n if (courseStatus === CourseStatus.CANCELLED) {\n return getStatusDisplay(courseStatus);\n }\n }\n\n return '';\n };\n\n return (\n <>\n \n \n setOpen(!open)}>\n {open ? : }\n \n \n \n
\n \n {student.fullName}\n \n \n {\n studentCourse?.finalAssignedCourse?.studySubject\n ?.studySubjectName\n }\n \n
\n
\n {student.class?.fullName}\n {all && {student.school?.schoolName}}\n {getStatus()}\n \n \n \n \n \n \n \n {!!assignedStudentStudySubject ? (\n \n ) : (\n 'Ikke definert'\n )}\n \n \n {student.hasSpecialNeeds && (\n \n \n \n )}\n {!(studentCourse && studentCourse.attendance) && (\n \n \n \n )}\n {studentCourse && studentCourse.note && (\n }\n >\n \n \n \n \n )}\n \n \n \n \n \n \n \n \n \n \n
\n \n \n );\n};\n\nexport default observer(StudentCourseRow);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n table: {\n backgroundColor: '#fff',\n },\n}));\n\nexport default useStyles;\n","import { useStores } from '@/stores';\nimport { User } from '@/types/User';\nimport {\n CircularProgress,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TablePagination,\n TableRow,\n Typography,\n} from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport StudentCourseRow from './StudentCourseRow';\nimport useStyles from './style';\n\ninterface IStudentCourseTableProps {\n loading: boolean;\n students: User[];\n page: number;\n handlePageChange: (e: any, page: number) => void;\n rowsPerPage: number;\n handleRowsPerPageChange: (e: any) => void;\n all: boolean;\n handleOpenManualAssignDialog: (student: User) => void;\n}\n\nconst StudentCourseTable = ({\n students,\n page,\n handlePageChange,\n rowsPerPage,\n handleRowsPerPageChange,\n loading,\n all,\n handleOpenManualAssignDialog,\n}: IStudentCourseTableProps) => {\n const classes = useStyles();\n const { schoolStore } = useStores();\n const { assignedStudentsCount, firstPriorityCount, totalStudentCount } =\n schoolStore;\n\n return (\n \n \n \n \n Navn\n Klasse\n {all && Skole}\n Status\n Tidspunkt\n Kontaktperson\n Tildelt\n \n
\n \n {assignedStudentsCount} tildelte elever\n \n \n {firstPriorityCount} med 1. prioritet\n \n
\n
\n
\n
\n \n {loading ? (\n \n \n \n ) : (\n <>\n {students.length > 0 ? (\n <>\n {students.map((student) => (\n \n ))}\n \n ) : (\n <>\n \n \n Det er ingen studenter\n \n \n \n )}\n \n )}\n \n \n `${from}-${to} av ${count !== -1 ? count : `mer enn ${to}`}`\n }\n />\n
\n );\n};\n\nexport default observer(StudentCourseTable);\n","import {\n Dialog,\n DialogTitle,\n Slide,\n IconButton,\n DialogContent,\n Select,\n MenuItem,\n Button,\n LinearProgress,\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport React, { forwardRef } from 'react';\nimport CloseIcon from '@material-ui/icons/Close';\nimport clsx from 'clsx';\nimport courseStyle from '@/views/style/courses';\nimport ICourse from '@/types/Course';\nimport { getDateTime } from '@/utils/timeUtils';\nimport { SELECT_ALL } from '@/types/dto/PaginationRequest.dto';\nimport IStudySubject from '@/types/StudySubject';\nimport { User } from '@/types/User';\n\nconst Transition = forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\ninterface IComponentProps {\n open: boolean;\n handleCloseDialog: () => void;\n student: User;\n studySubjects: IStudySubject[];\n studySubjectId: number | string;\n courses: ICourse[];\n courseId: number | string;\n handleChooseStudySubjectId: (\n studySubjectId: number | string\n ) => Promise;\n loadingNewCourse: boolean;\n handleChooseCourseId: (courseId: number | string) => void;\n manualAssign: () => Promise;\n}\n\nconst ManualAssignAllocationForStudentWithoutRegisterDialog = (\n props: IComponentProps\n) => {\n const {\n open,\n handleCloseDialog,\n student,\n studySubjects,\n studySubjectId,\n courses,\n courseId,\n handleChooseStudySubjectId,\n handleChooseCourseId,\n manualAssign,\n loadingNewCourse,\n } = props;\n const courseClasses = courseStyle();\n\n const getContentMenu = (value: unknown): string => {\n if (typeof value === 'string' && value === SELECT_ALL) {\n return 'Finn arrangement';\n }\n\n if (typeof value === 'number') {\n const course = courses.find((c) => c.id === value);\n if (course) {\n return course.school.schoolName;\n }\n }\n return '';\n };\n\n return (\n <>\n \n
\n \n \n \n Tildel elev\n
\n \n \n \n \n \n \n \n {student.fullName} skal tildeles\n \n ) =>\n handleChooseStudySubjectId(e.target.value as any)\n }\n classes={{\n root: courseClasses.movingMulDialogSelect,\n icon: courseClasses.color500,\n }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n getContentAnchorEl: null,\n classes: {\n paper: courseClasses.movingMulDialogPager,\n list: courseClasses.movingMulDialogList,\n },\n }}\n className={clsx(\n courseClasses.widthFull,\n courseClasses.marginBottom16\n )}\n >\n \n Finn kurs\n \n\n {studySubjects.map((studySubject: IStudySubject) => (\n \n {studySubject.studySubjectName}\n \n ))}\n \n\n {!loadingNewCourse ? (\n ) =>\n handleChooseCourseId(e.target.value as any)\n }\n classes={{\n root: courseClasses.movingMulDialogSelect,\n icon: courseClasses.color500,\n }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n getContentAnchorEl: null,\n classes: {\n paper: courseClasses.movingMulDialogPager,\n list: courseClasses.movingMulDialogList,\n },\n }}\n className={clsx(\n courseClasses.widthFull,\n courseClasses.marginBottom16\n )}\n renderValue={(value: unknown) => getContentMenu(value)}\n >\n {courses\n .sort((a, b) => {\n if (\n (a.school.schoolName ?? '') > (b.school.schoolName ?? '')\n ) {\n return 1;\n }\n if (\n (a.school.schoolName ?? '') < (b.school.schoolName ?? '')\n ) {\n return -1;\n }\n return (a.startDate ?? '') > (b.startDate ?? '') ? 1 : -1;\n })\n .map((course: ICourse) => (\n \n
\n
\n {course.school.schoolName}\n
\n
\n \n {`${getDateTime(\n course.startDate,\n 'dd LLLL'\n )} | kl. ${getDateTime(\n course.startDate,\n 'HH:mm'\n )} - ${getDateTime(course.endDate, 'HH:mm')}`}\n
\n \n {`${course.capacity - course.availableCapacity}/${\n course.capacity\n }`}\n
\n \n \n \n ))}\n \n ) : (\n
\n \n
\n )}\n
\n
\n \n Tildel\n \n \n Avbryt\n \n
\n
\n
\n \n \n \n );\n};\n\nexport default ManualAssignAllocationForStudentWithoutRegisterDialog;\n","import { flexCol, flexRow } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\ninterface Props {\n open: boolean;\n}\n\nconst useStyles = makeStyles(({ breakpoints, palette }) => ({\n rowWrapper: {\n ...flexCol,\n },\n tableRow: {\n transition: '0.3s ease all',\n borderLeft: '3px solid',\n borderColor: ({ open }: Props) =>\n open ? palette.primary.main : 'transparent',\n backgroundColor: ({ open }: Props) =>\n open ? palette.primary[50] : 'transparent',\n '&:hover': {\n cursor: 'pointer',\n backgroundColor: palette.primary[50],\n },\n '& .MuiTableCell-root': {\n padding: '12px 16px',\n [breakpoints.down('sm')]: {\n padding: '4px',\n },\n },\n },\n infoChip: {\n backgroundColor: palette.warning.main + '33',\n color: palette.text.hint,\n borderColor: palette.text.hint,\n height: '25px',\n lineHeight: '25px',\n },\n collapseTableRow: {\n transition: '0.3s ease all',\n borderLeft: '3px solid',\n borderColor: ({ open }: Props) =>\n open ? palette.primary[200] : 'transparent',\n backgroundColor: ({ open }: Props) =>\n open ? palette.primary[50] : 'transparent',\n },\n collapse: {\n padding: '12px 0',\n ...flexRow,\n justifyContent: 'space-between',\n [breakpoints.down('sm')]: {\n flexDirection: 'column',\n },\n },\n chipList: {\n ...flexRow,\n gap: '8px',\n justifyContent: 'flex-start',\n [breakpoints.down('sm')]: {\n flexDirection: 'column',\n },\n },\n subjectChip: {\n height: '25px',\n lineHeight: '25px',\n },\n checkboxLabel: {\n height: '25px',\n },\n}));\n\nexport default useStyles;\n","import { makeStyles } from '@material-ui/core';\nimport { flexRow } from '@/style/common';\n\ninterface Props {\n open: boolean;\n}\n\nconst useStyles = makeStyles(({ breakpoints, palette }) => ({\n collapseTableRow: {\n transition: '0.3s ease all',\n borderLeft: '3px solid',\n borderColor: ({ open }: Props) =>\n open ? palette.primary[200] : 'transparent',\n backgroundColor: ({ open }: Props) =>\n open ? palette.primary[50] : 'transparent',\n },\n collapse: {\n padding: '12px 0',\n ...flexRow,\n justifyContent: 'space-between',\n [breakpoints.down('sm')]: {\n flexDirection: 'column',\n },\n },\n studentStudySubjectList: {\n ...flexRow,\n gap: '8px',\n justifyContent: 'flex-start',\n [breakpoints.down('sm')]: {\n flexDirection: 'column',\n },\n },\n displayFlex: {\n display: 'flex',\n },\n whiteSpaceNowrap: {\n whiteSpace: 'nowrap',\n },\n boxBtn: {\n marginLeft: '20px',\n alignItems: 'flex-end',\n },\n btn: {\n border: `1px solid ${palette.primary[500]}`,\n padding: '8px 12px',\n height: '36px',\n },\n}));\n\nexport default useStyles;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ breakpoints, palette }) => ({\n contentStudentRowSelect: {\n //height: '52px',\n width: '296px',\n },\n select: {\n '&:focus': {\n backgroundColor: palette.background.default,\n },\n },\n icon: {\n color: palette.primary[500],\n },\n menuItem: {\n overflow: 'hidden',\n width: '100%',\n textOverflow: 'ellipsis',\n fontWeight: 500,\n padding: '10px 12px',\n backgroundColor: '#F5F5F5',\n borderRadius: '4px',\n },\n title: {\n color: palette.primary[900],\n fontSize: '14px',\n lineHeight: '22px',\n marginBottom: '6px',\n },\n}));\n\nexport default useStyles;\n","import IStudySubject, { StudentStudySubject } from '@/types/StudySubject';\nimport { MenuItem, Select, Input } from '@material-ui/core';\nimport React from 'react';\nimport useStyles from './style';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport { useStores } from '@/stores';\nimport { observer } from 'mobx-react';\nimport { UNDEFINED } from '@/types/dto/PaginationRequest.dto';\n\ninterface IComponentProps {\n studentStudySubject: StudentStudySubject | null;\n handleSetFirst?: (studySubjectId: number) => void;\n handleSetSecond?: (studySubjectId: number) => void;\n handleSetThird?: (studySubjectId: number) => void;\n priority: number;\n}\n\nconst StudentRowStudent = (props: IComponentProps) => {\n const {\n studentStudySubject,\n handleSetFirst,\n handleSetSecond,\n handleSetThird,\n priority,\n } = props;\n const { studySubjectStore } = useStores();\n const classes = useStyles();\n\n return (\n
\n
{`${priority}. prioritert*`}
\n ) => {\n if (handleSetFirst && priority === 1) {\n handleSetFirst(e.target.value as number);\n }\n\n if (handleSetSecond && priority === 2) {\n handleSetSecond(e.target.value as number);\n }\n\n if (handleSetThird && priority === 3) {\n handleSetThird(e.target.value as number);\n }\n }}\n classes={{\n select: classes.select,\n icon: classes.icon,\n }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n getContentAnchorEl: null,\n }}\n IconComponent={ArrowDropDownIcon}\n input={}\n >\n \n Velg kurs\n \n\n {studySubjectStore.allStudySubjects.map(\n (studySubject: IStudySubject) => (\n \n {studySubject.studySubjectName}\n \n )\n )}\n \n
\n );\n};\n\nexport default observer(StudentRowStudent);\n","import React, { useState } from 'react';\nimport { observer } from 'mobx-react';\nimport useStyles from './style';\nimport { TableCell, TableRow, Collapse, Button } from '@material-ui/core';\nimport { User } from '@/types/User';\nimport {\n IStudentStudySubject,\n StudentStudySubject,\n} from '@/types/StudySubject';\nimport StudentRowStudent from '../StudentRowSelect';\nimport clsx from 'clsx';\nimport { useStores } from '@/stores';\n\ninterface IComponentProps {\n open: boolean;\n student: User;\n all: boolean;\n addOrUpdate: (models: StudentStudySubject[]) => Promise;\n}\n\nconst StudentRowChangeRegistration = (props: IComponentProps) => {\n const { open, student, all, addOrUpdate } = props;\n const { projectStore } = useStores();\n const classes = useStyles({ open });\n\n const getStudentStudySubject = (\n sss: IStudentStudySubject\n ): StudentStudySubject => {\n const studentStudySubject = new StudentStudySubject();\n return { ...studentStudySubject, ...sss };\n };\n\n const [studentStudySubjects, setStudentStudySubjects] = useState<\n StudentStudySubject[]\n >(student.studentStudySubjects.map((sss) => getStudentStudySubject(sss)));\n\n const getStudentStudySubjectByPriority = (\n studentStudySubjects: StudentStudySubject[],\n priority: number\n ): StudentStudySubject | null => {\n if (studentStudySubjects.length) {\n const result = studentStudySubjects.find(\n (sss) => sss.priority === priority\n );\n if (!result) {\n return null;\n }\n\n return result;\n }\n\n return null;\n };\n\n const [first, setFirst] = useState(\n getStudentStudySubjectByPriority(studentStudySubjects, 1)\n );\n\n const [second, setSecond] = useState(\n getStudentStudySubjectByPriority(studentStudySubjects, 2)\n );\n\n const [third, setThird] = useState(\n getStudentStudySubjectByPriority(studentStudySubjects, 3)\n );\n\n const handleSetFirst = (studySubjectId: number): void => {\n if (first) {\n setFirst({ ...first, studySubjectId });\n } else {\n if (projectStore.currentProject && projectStore.currentProject.id) {\n const value: StudentStudySubject = {\n studentId: student.id,\n studySubjectId,\n priority: 1,\n projectId: projectStore.currentProject.id,\n };\n setFirst(value);\n }\n }\n };\n\n const handleSetSecond = (studySubjectId: number): void => {\n if (second) {\n setSecond({ ...second, studySubjectId });\n } else {\n if (projectStore.currentProject && projectStore.currentProject.id) {\n const value: StudentStudySubject = {\n studentId: student.id,\n studySubjectId,\n priority: 2,\n projectId: projectStore.currentProject.id,\n };\n setSecond(value);\n }\n }\n };\n\n const handleSetThird = (studySubjectId: number): void => {\n if (third) {\n setThird({ ...third, studySubjectId });\n } else {\n if (projectStore.currentProject && projectStore.currentProject.id) {\n const value: StudentStudySubject = {\n studentId: student.id,\n studySubjectId,\n priority: 3,\n projectId: projectStore.currentProject.id,\n };\n setThird(value);\n }\n }\n };\n\n const cancelChangeRegistration = () => {\n const result = student.studentStudySubjects.map((sss) =>\n getStudentStudySubject(sss)\n );\n\n setStudentStudySubjects(result);\n setFirst(getStudentStudySubjectByPriority(result, 1));\n setSecond(getStudentStudySubjectByPriority(result, 2));\n setThird(getStudentStudySubjectByPriority(result, 3));\n };\n\n const beforeAddOrUpdate = async (): Promise => {\n const models: StudentStudySubject[] = [];\n\n if (first) {\n models.push(first);\n }\n\n if (second) {\n models.push(second);\n }\n\n if (third) {\n models.push(third);\n }\n\n if (models.length) {\n await addOrUpdate(models);\n }\n };\n\n return (\n \n \n \n
\n
\n \n \n \n
\n
\n await beforeAddOrUpdate()}\n >\n Lagre\n \n \n Avbryt\n \n
\n
\n
\n \n
\n );\n};\n\nexport default observer(StudentRowChangeRegistration);\n","import { User } from '@/types/User';\nimport { TableRow, TableCell, Chip, IconButton } from '@material-ui/core';\nimport {\n PhoneIphoneOutlined,\n MailOutlined,\n KeyboardArrowUpOutlined,\n KeyboardArrowDownOutlined,\n AccessibilityNewOutlined,\n} from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport { useState } from 'react';\nimport StudentRowDropdown from '../../common/StudentRowDropdown';\nimport useStyles from './style';\nimport StudentRowChangeRegistration from '../../common/StudentRowChangeRegistration';\nimport { StudentStudySubject } from '@/types/StudySubject';\n\ninterface IStudentRegistrationRowProps {\n student: User;\n all: boolean;\n addOrUpdate: (models: StudentStudySubject[]) => Promise;\n}\n\nconst StudentRegistrationRow = ({\n student,\n all,\n addOrUpdate,\n}: IStudentRegistrationRowProps) => {\n const [open, setOpen] = useState(false);\n const [openChangeRegistration, setOpenChangeRegistration] = useState(false);\n\n const classes = useStyles({ open });\n\n const handleOpen = () => {\n setOpen(!open);\n setOpenChangeRegistration(\n openChangeRegistration ? !openChangeRegistration : openChangeRegistration\n );\n };\n\n const handleOpenChangeRegistration = (): void => {\n setOpen(!open);\n setOpenChangeRegistration(!openChangeRegistration);\n };\n\n return (\n <>\n handleOpen()} className={classes.tableRow}>\n \n setOpen(!open)}>\n {open ? : }\n \n \n {student.fullName}\n {student.class?.fullName}\n {all && {student.school?.schoolName}}\n \n {student.studentStudySubjects.length === 0 ? (\n \n ) : (\n ''\n )}\n \n \n {student.hasSpecialNeeds && }\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default observer(StudentRegistrationRow);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n table: {\n backgroundColor: '#fff',\n },\n}));\n\nexport default useStyles;\n","import { useStores } from '@/stores';\nimport { StudentStudySubject } from '@/types/StudySubject';\nimport { User } from '@/types/User';\nimport {\n CircularProgress,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TablePagination,\n TableRow,\n Typography,\n} from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport StudentRegistrationRow from './StudentRegistrationRow';\nimport useStyles from './style';\n\ninterface IStudentRegistrationTableProps {\n loading: boolean;\n students: User[];\n page: number;\n handlePageChange: (e: any, page: number) => void;\n rowsPerPage: number;\n handleRowsPerPageChange: (e: any) => void;\n all: boolean;\n addOrUpdate: (models: StudentStudySubject[]) => Promise;\n}\n\nconst StudentRegistrationTable = ({\n students,\n page,\n handlePageChange,\n rowsPerPage,\n handleRowsPerPageChange,\n loading,\n all,\n addOrUpdate,\n}: IStudentRegistrationTableProps) => {\n const { schoolStore } = useStores();\n const { totalStudentCount, noPrioritiesCount } = schoolStore;\n const classes = useStyles();\n\n return (\n \n \n \n \n Navn\n Klasse\n {all && Skole}\n Påmeldingsstatus\n \n
\n \n {totalStudentCount} elever totalt\n \n \n {noPrioritiesCount} uten meldt prioritering\n \n
\n
\n
\n
\n \n {loading ? (\n \n \n \n ) : (\n <>\n {students.map((student) => (\n \n ))}\n \n )}\n \n \n `${from}-${to} av ${count !== -1 ? count : `mer enn ${to}`}`\n }\n />\n
\n );\n};\n\nexport default observer(StudentRegistrationTable);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n stepper: {\n backgroundColor: 'transparent',\n width: '400px',\n },\n}));\n\nexport default useStyles;\n","import { Step, StepLabel, Stepper } from '@material-ui/core';\nimport useStyles from './style';\n\ninterface IStudentStepperProps {\n activeStep: number;\n}\n\nconst StudentStepper = ({ activeStep }: IStudentStepperProps) => {\n const classes = useStyles();\n\n return (\n \n 1}>\n Registreringsperiode\n \n 2}>\n Kursperiode\n \n \n );\n};\n\nexport default StudentStepper;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ breakpoints, palette }) => ({\n content: {\n padding: '0 115px',\n [breakpoints.down('md')]: {\n padding: 0,\n },\n },\n error: {\n color: palette.primary.dark,\n textAlign: 'center',\n marginTop: '24px',\n },\n}));\n\nexport default useStyles;\n","import NotifyMessage from '@/components/NotifyMessage';\nimport { useStores } from '@/stores';\nimport ICourse from '@/types/Course';\nimport { SELECT_ALL } from '@/types/dto/PaginationRequest.dto';\nimport StudentRegistrationStatus from '@/types/enums/StudentRegistrationStatus';\nimport { coursePeriodIsActive } from '@/types/Project';\nimport { StudentStudySubject } from '@/types/StudySubject';\nimport { User } from '@/types/User';\nimport { Typography, useMediaQuery, useTheme } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport {\n ChangeEventHandler,\n FC,\n useCallback,\n useEffect,\n useRef,\n useState,\n} from 'react';\nimport AdminHeader from '../../admin/common/AdminHeader';\nimport AdminSearchBar from '../../admin/common/AdminSearchBar';\nimport VGSCourseInfoDrawer from '../../GUadmin/Students/VGSCourseInfoDrawer';\nimport StudentTableFilters from './common/StudentTableFilters';\nimport StudentCourseTable from './StudentCourseTable';\nimport ManualAssignAllocationForStudentWithoutRegisterDialog from './StudentCourseTable/StudentCourseRow/ManualAssignAllocationForStudentWithoutRegisterDialog';\nimport StudentRegistrationTable from './StudentRegistrationTable';\nimport StudentStepper from './StudentStepper';\nimport useStyles from './style';\n//import { User } from '@/types/User';\n\ninterface IStudentsProps {\n all?: boolean;\n}\n\nconst Students: FC = ({ all = false }) => {\n const {\n projectStore,\n schoolStore,\n userStore,\n errorStore,\n studySubjectStore,\n studentCourseStore,\n courseStore,\n } = useStores();\n const {\n connectedUsers,\n getStudents,\n isSetHasSpecialNeeds,\n setIsSetHasSpecialNeeds,\n } = schoolStore;\n const { user } = userStore;\n const { breakpoints } = useTheme();\n const isSmallerThanMedium = useMediaQuery(breakpoints.up('md'));\n\n const [studentNameFilter, setStudentNameFilter] = useState('');\n const [page, setPage] = useState(0);\n const [rowsPerPage, setRowsPerPage] = useState(50);\n const [loading, setLoading] = useState(false);\n const [classId, setClassId] = useState('');\n const [schoolId, setSchoolId] = useState(\n schoolStore.externalIdSecondarySchool\n );\n const [registrationStatus, setRegistrationStatus] = useState(\n StudentRegistrationStatus.UNKNOWN\n );\n const [filterCourseId, setFilterCourseId] = useState('');\n const [filterPriority, setFilterPriority] = useState('');\n\n useEffect(() => {\n if (!projectStore.currentProject) {\n projectStore.getCurrent();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // const [filteredStudents, setFilteredStudents] =\n // useState(connectedUsers);\n const timeoutRef = useRef(\n setTimeout(() => {\n return;\n }, 300)\n );\n\n const searchStudent = useCallback(() => {\n // const result = connectedUsers.filter((u) => {\n // if (!studentNameFilter) {\n // return true;\n // }\n // return u.fullName.toLowerCase().includes(studentNameFilter.toLowerCase());\n // });\n\n if (projectStore.currentProject) {\n fetchStudents(\n page,\n rowsPerPage,\n classId,\n registrationStatus,\n schoolId,\n filterCourseId,\n filterPriority,\n projectStore.currentProject.id\n );\n\n //setFilteredStudents(result);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [studentNameFilter]);\n\n const filteredStudentsByFullName = useCallback(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n searchStudent();\n }, 1000);\n }, [searchStudent]);\n\n useEffect(() => {\n filteredStudentsByFullName();\n }, [filteredStudentsByFullName]);\n\n useEffect(() => {\n if (isSetHasSpecialNeeds) {\n searchStudent();\n setIsSetHasSpecialNeeds(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isSetHasSpecialNeeds]);\n\n const handlePageChange = (e: any, newPage: number) => {\n setPage(newPage);\n if (projectStore.currentProject) {\n fetchStudents(\n newPage,\n rowsPerPage,\n classId,\n registrationStatus,\n schoolId,\n filterCourseId,\n filterPriority,\n projectStore.currentProject.id\n );\n }\n };\n\n const handleRowsPerPageChange: ChangeEventHandler<\n HTMLTextAreaElement | HTMLInputElement\n > = (e) => {\n const newRowsPerPage = +e.target.value;\n setRowsPerPage(newRowsPerPage);\n if (projectStore.currentProject) {\n fetchStudents(\n page,\n newRowsPerPage,\n classId,\n registrationStatus,\n schoolId,\n filterCourseId,\n filterPriority,\n projectStore.currentProject.id\n );\n }\n };\n\n const fetchStudents = async (\n p: number,\n rows: number,\n classId: string,\n status: StudentRegistrationStatus,\n schoolId: string,\n courseId: string,\n priority: string,\n projectId?: number\n ) => {\n if (!all && !user?.externalSchoolId) {\n errorStore.showErrorMessage(\n 'Du er ikke tilkoblet en skole og kan ikke se elever. Kontakt administrator hvis dette er feil.'\n );\n return;\n }\n\n setLoading(true);\n schoolStore.connectedUsers = [];\n await getStudents({\n externalSchoolId: all ? '' : user?.externalSchoolId || 'error',\n projectId: projectId ?? 0,\n search: studentNameFilter,\n take: rows,\n skip: p * rows,\n classId,\n schoolId,\n registrationStatus: status,\n courseId,\n priority,\n });\n setLoading(false);\n };\n\n useEffect(() => {\n if (projectStore.currentProject) {\n fetchStudents(\n page,\n rowsPerPage,\n classId,\n registrationStatus,\n schoolId,\n filterCourseId,\n filterPriority,\n projectStore.currentProject.id\n );\n }\n schoolStore.getClasses();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [projectStore.currentProject]);\n\n const handleClassIdChange = (newClassId: string) => {\n setClassId(newClassId);\n if (projectStore.currentProject) {\n fetchStudents(\n page,\n rowsPerPage,\n newClassId,\n registrationStatus,\n schoolId,\n filterCourseId,\n filterPriority,\n projectStore.currentProject.id\n );\n }\n };\n\n const handleSchoolIdChange = (newSchoolId: string) => {\n setSchoolId(newSchoolId);\n if (projectStore.currentProject) {\n fetchStudents(\n page,\n rowsPerPage,\n classId,\n registrationStatus,\n newSchoolId,\n filterCourseId,\n filterPriority,\n projectStore.currentProject.id\n );\n }\n };\n\n const handleCourseIdChange = (newCourseId: string): void => {\n setFilterCourseId(newCourseId);\n if (projectStore.currentProject) {\n fetchStudents(\n page,\n rowsPerPage,\n classId,\n registrationStatus,\n schoolId,\n newCourseId,\n filterPriority,\n projectStore.currentProject.id\n );\n }\n };\n\n const handlePriorityChange = (newPriority: string): void => {\n setFilterPriority(newPriority);\n if (projectStore.currentProject) {\n fetchStudents(\n page,\n rowsPerPage,\n classId,\n registrationStatus,\n schoolId,\n filterCourseId,\n newPriority,\n projectStore.currentProject.id\n );\n }\n };\n\n const handleRegistrationStatusChange = (\n newStatus: StudentRegistrationStatus\n ) => {\n setRegistrationStatus(newStatus);\n if (projectStore.currentProject) {\n fetchStudents(\n page,\n rowsPerPage,\n classId,\n newStatus,\n schoolId,\n filterCourseId,\n filterPriority,\n projectStore.currentProject.id\n );\n }\n };\n\n useEffect(() => {\n if (\n projectStore.currentProject &&\n !coursePeriodIsActive(projectStore.currentProject)\n ) {\n studySubjectStore.getAllStudySubjects();\n }\n }, [studySubjectStore, projectStore, projectStore.currentProject]);\n\n const classes = useStyles();\n\n const [openNotifyMessage, setOpenNotifyMessage] = useState(false);\n const handleCloseNotifyMessage = (): void => {\n setOpenNotifyMessage(false);\n };\n\n const addOrUpdate = async (models: StudentStudySubject[]): Promise => {\n const result = await studySubjectStore.addOrUpdate(models);\n if (result) {\n setOpenNotifyMessage(true);\n if (projectStore.currentProject) {\n fetchStudents(\n page,\n rowsPerPage,\n classId,\n registrationStatus,\n schoolId,\n filterCourseId,\n filterPriority,\n projectStore.currentProject.id\n );\n }\n }\n };\n\n /** ManualAssign */\n const getStudySubject = useCallback(() => {\n if (projectStore.currentProject && projectStore.currentProject.id) {\n studySubjectStore.getStudySubjectByProjectId(\n +projectStore.currentProject.id\n );\n }\n }, [studySubjectStore, projectStore.currentProject]);\n\n useEffect(() => {\n getStudySubject();\n }, [getStudySubject]);\n\n const [student, setStudent] = useState(undefined);\n const [openManualAssign, setOpenManualAssign] = useState(false);\n const handleOpenManualAssignDialog = (student: User): void => {\n setStudent(student);\n setOpenManualAssign(true);\n };\n const handleCloseDialog = (): void => {\n setStudent(undefined);\n setOpenManualAssign(false);\n };\n const handleChooseCourseId = (newCourseId: number | string): void => {\n setCourseId(newCourseId);\n };\n const handleManualAssign = async (): Promise => {\n if (student && courseId !== SELECT_ALL) {\n await studentCourseStore.manualAssignStudentToCourse(\n student.id,\n +courseId\n );\n setStudySubjectId(SELECT_ALL);\n setCourseId(SELECT_ALL);\n setCourses([]);\n handleCloseDialog();\n setOpenNotifyMessage(true);\n\n if (projectStore.currentProject) {\n fetchStudents(\n page,\n rowsPerPage,\n classId,\n registrationStatus,\n schoolId,\n filterCourseId,\n filterPriority,\n projectStore.currentProject.id\n );\n }\n }\n };\n\n const [studySubjectId, setStudySubjectId] = useState(\n SELECT_ALL\n );\n const [courses, setCourses] = useState([]);\n const [courseId, setCourseId] = useState(SELECT_ALL);\n const [loadingNewCourse, setLoadingNewCourse] = useState(false);\n const handleChooseStudySubjectId = async (\n studySubjectId: number | string\n ): Promise => {\n try {\n setLoadingNewCourse(true);\n setCourseId(SELECT_ALL);\n setCourses([]);\n setStudySubjectId(studySubjectId);\n if (projectStore.currentProject?.id) {\n const courses = await courseStore.getCoursesMinified(\n projectStore.currentProject.id,\n studySubjectId !== SELECT_ALL ? +studySubjectId : undefined\n );\n setCourses(courses);\n setLoadingNewCourse(false);\n }\n } catch (error: any) {\n console.log(\n `Error get list course by projectId and studySubjectId: ${error}`\n );\n setLoadingNewCourse(false);\n }\n };\n /** ManualAssign */\n\n return (\n <>\n \n ) : (\n \n {projectStore.currentProject &&\n coursePeriodIsActive(projectStore.currentProject)\n ? 'Kursperiode'\n : 'Registreringsperiode'}\n \n )\n }\n />\n \n \n \n
\n {projectStore.currentProject ? (\n coursePeriodIsActive(projectStore.currentProject) ? (\n \n ) : (\n \n )\n ) : (\n \n Ingen aktive prosjekter\n \n )}\n
\n \n\n {student && (\n \n )}\n \n \n );\n};\n\nexport default observer(Students);\n","import { FC } from 'react';\nimport Students from '../../common/Students';\nimport React from 'react';\n\nconst AdminStudents: FC = () => {\n return ;\n};\n\nexport default AdminStudents;\n","import MessageTemplate from './MessageTemplate';\nimport { User } from './User';\n\ninterface IMessage {\n id: number;\n templateId: number;\n template: MessageTemplate;\n userId: number;\n user: User;\n projectId: number;\n courseId: number;\n smsStatus: MessageStatus;\n emailStatus: MessageStatus;\n emailSubject: string;\n emailBody: string;\n sms: string;\n createdDate?: Date;\n}\n\nexport default IMessage;\n\nexport enum MessageStatus {\n NotSent = 0,\n Sent = 1,\n Failed = 2,\n}\n","import { useStores } from '@/stores';\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Typography,\n} from '@material-ui/core';\nimport { FC } from 'react';\n\nconst AvailableTemplateData: FC = () => {\n const { messageTemplateStore } = useStores();\n const { currentMessageTemplate } = messageTemplateStore;\n\n const availableData = currentMessageTemplate?.getAvailableAttributes();\n\n return (\n <>\n Tilgjengelig data for denne malen\n \n \n \n Nøkkel\n Forklaring\n \n \n \n {availableData &&\n availableData.map(({ key, description }) => (\n \n {key}\n {description}\n \n ))}\n \n
\n \n );\n};\n\nexport default AvailableTemplateData;\n","import { flexCol } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n editorWrapper: {\n borderRadius: '4px',\n backgroundColor: 'rgba(0, 0, 0, 0.04)',\n borderTopLeftRadius: '4px',\n borderTopRightRadius: '4px',\n padding: '16px',\n ...flexCol,\n gap: '16px',\n '& .ProseMirror:focus-visible': {\n outline: 'none',\n },\n },\n}));\n\nexport default useStyles;\n","import { flexRow } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n root: {\n ...flexRow,\n gap: '4px',\n justifyContent: 'flex-start',\n },\n button: {\n padding: '3px 5px',\n '&.is-active': {\n backgroundColor: palette.primary.dark,\n color: '#fff',\n },\n },\n}));\n\nexport default useStyles;\n","import { Button } from '@material-ui/core';\nimport { Editor } from '@tiptap/react';\nimport { FC } from 'react';\nimport useStyles from './style';\n\ninterface IToolBarProps {\n editor: Editor | null;\n}\n\nconst ToolBar: FC = ({ editor }) => {\n const classes = useStyles();\n\n if (!editor) {\n return null;\n }\n\n return (\n
\n editor.chain().focus().toggleBold().run()}\n className={`${classes.button} ${\n editor.isActive('bold') ? 'is-active' : ''\n }`}\n >\n Fet\n \n editor.chain().focus().toggleItalic().run()}\n className={`${classes.button} ${\n editor.isActive('italic') ? 'is-active' : ''\n }`}\n >\n Kursiv\n \n editor.chain().focus().setParagraph().run()}\n className={`${classes.button} ${\n editor.isActive('paragraph') ? 'is-active' : ''\n }`}\n >\n Paragraf\n \n editor.chain().focus().toggleHeading({ level: 1 }).run()}\n className={`${classes.button} ${\n editor.isActive('heading', { level: 1 }) ? 'is-active' : ''\n }`}\n >\n h1\n \n editor.chain().focus().toggleHeading({ level: 2 }).run()}\n className={`${classes.button} ${\n editor.isActive('heading', { level: 2 }) ? 'is-active' : ''\n }`}\n >\n h2\n \n editor.chain().focus().toggleHeading({ level: 3 }).run()}\n className={`${classes.button} ${\n editor.isActive('heading', { level: 3 }) ? 'is-active' : ''\n }`}\n >\n h3\n \n editor.chain().focus().toggleHeading({ level: 4 }).run()}\n className={`${classes.button} ${\n editor.isActive('heading', { level: 4 }) ? 'is-active' : ''\n }`}\n >\n h4\n \n editor.chain().focus().toggleHeading({ level: 5 }).run()}\n className={`${classes.button} ${\n editor.isActive('heading', { level: 5 }) ? 'is-active' : ''\n }`}\n >\n h5\n \n editor.chain().focus().toggleHeading({ level: 6 }).run()}\n className={`${classes.button} ${\n editor.isActive('heading', { level: 6 }) ? 'is-active' : ''\n }`}\n >\n h6\n \n editor.chain().focus().toggleBulletList().run()}\n className={`${classes.button} ${\n editor.isActive('bulletList') ? 'is-active' : ''\n }`}\n >\n Punktliste\n \n editor.chain().focus().toggleOrderedList().run()}\n className={`${classes.button} ${\n editor.isActive('orderedList') ? 'is-active' : ''\n }`}\n >\n Talliste\n \n editor.chain().focus().undo().run()}\n className={classes.button}\n variant=\"outlined\"\n >\n Angre\n \n editor.chain().focus().redo().run()}\n className={classes.button}\n variant=\"outlined\"\n >\n Gjenta\n \n
\n );\n};\n\nexport default ToolBar;\n","import { useStores } from '@/stores';\nimport MessageTemplate from '@/types/MessageTemplate';\nimport { EditorContent, useEditor } from '@tiptap/react';\nimport StarterKit from '@tiptap/starter-kit';\nimport { observer } from 'mobx-react';\nimport { FC } from 'react';\nimport useStyles from './style';\nimport ToolBar from './ToolBar';\n\nconst MessageTemplateWYSIWYG: FC = () => {\n const { messageTemplateStore } = useStores();\n const { currentMessageTemplate, setCurrentMessageTemplate } =\n messageTemplateStore;\n\n const classes = useStyles();\n\n const editor = useEditor({\n extensions: [StarterKit],\n content: currentMessageTemplate?.emailBody,\n onUpdate: (content) => {\n setCurrentMessageTemplate(\n MessageTemplate.fromJson({\n ...currentMessageTemplate,\n emailBody: content.editor.getHTML(),\n })\n );\n },\n });\n\n return (\n <>\n
\n \n \n
\n \n );\n};\n\nexport default observer(MessageTemplateWYSIWYG);\n","import { flexCol, flexRow } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ breakpoints }) => ({\n root: {\n padding: '16px',\n ...flexCol,\n gap: '6px',\n width: '60vw',\n [breakpoints.down('md')]: {\n width: '100vw',\n },\n },\n subheader: {\n ...flexRow,\n justifyContent: 'space-between',\n },\n selectPadding: {\n padding: '12px 15px',\n },\n recipientType: {\n display: 'flex',\n alignItems: 'center',\n },\n recipientTypeLabel: {\n marginRight: '10px',\n },\n}));\n\nexport default useStyles;\n","import { useStores } from '@/stores';\nimport {\n getMessageTemplateTypeDisplay,\n MessageTemplateType,\n} from '@/types/enums/MessageTemplateType';\nimport MessageTemplate from '@/types/MessageTemplate';\nimport {\n Button,\n Checkbox,\n Drawer,\n FormControlLabel,\n MenuItem,\n Select,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { ChangeEvent, FC } from 'react';\nimport AvailableTemplateData from './AvailableTemplateData';\nimport MessageTemplateWYSIWYG from './MessageTemplateWYSIWYG';\nimport useStyles from './style';\n\ninterface IEditMessageTEmplateDrawerProps {\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nconst EditMessageTemplateDrawer: FC = ({\n open,\n setOpen,\n}) => {\n const classes = useStyles();\n\n const { messageTemplateStore } = useStores();\n const {\n currentMessageTemplate,\n setCurrentMessageTemplate,\n submitCurrentMessageTemplate,\n getAllMessageTemplates,\n } = messageTemplateStore;\n\n const handleNameChange = (event: ChangeEvent) => {\n setCurrentMessageTemplate(\n MessageTemplate.fromJson({\n ...currentMessageTemplate,\n name: event.target.value,\n })\n );\n };\n\n const handleSubjectChange = (event: ChangeEvent) => {\n setCurrentMessageTemplate(\n MessageTemplate.fromJson({\n ...currentMessageTemplate,\n emailSubject: event.target.value,\n })\n );\n };\n\n const handleSmsChange = (event: ChangeEvent) => {\n setCurrentMessageTemplate(\n MessageTemplate.fromJson({\n ...currentMessageTemplate,\n sms: event.target.value,\n })\n );\n };\n\n const handleSendSmsChange = (e: any, checked: boolean) => {\n setCurrentMessageTemplate(\n MessageTemplate.fromJson({\n ...currentMessageTemplate,\n sendSMS: checked,\n })\n );\n };\n const handleSendEmailChange = (e: any, checked: boolean) => {\n setCurrentMessageTemplate(\n MessageTemplate.fromJson({\n ...currentMessageTemplate,\n sendEmail: checked,\n })\n );\n };\n\n const handleRecipientTypeChange = (value: MessageTemplateType): void => {\n setCurrentMessageTemplate(\n MessageTemplate.fromJson({\n ...currentMessageTemplate,\n recipientType: value,\n })\n );\n };\n\n const handleSave = async () => {\n await submitCurrentMessageTemplate();\n setOpen(false);\n getAllMessageTemplates();\n };\n\n return (\n setOpen(false)}>\n
\n Oppdater meldingsmal\n \n
\n
\n Mottakertype:\n
\n ) =>\n handleRecipientTypeChange(e.target.value as MessageTemplateType)\n }\n inputProps={{\n className: classes.selectPadding,\n }}\n >\n {Object.keys(MessageTemplateType)\n .filter(\n (k: string) => typeof MessageTemplateType[k as any] === 'string'\n )\n .map((k1: string) => +k1)\n .map((k2: number) => (\n \n {getMessageTemplateTypeDisplay(k2)}\n \n ))}\n \n
\n \n
\n E-post\n }\n />\n
\n \n \n
\n SMS\n }\n />\n
\n \n \n \n
\n
\n );\n};\n\nexport default observer(EditMessageTemplateDrawer);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ breakpoints }) => ({\n content: {\n padding: '0 115px',\n [breakpoints.down('md')]: {\n padding: 0,\n },\n },\n}));\n\nexport default useStyles;\n","import { useStores } from '@/stores';\nimport MessageTemplate from '@/types/MessageTemplate';\nimport {\n IconButton,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n} from '@material-ui/core';\nimport {\n EditOutlined,\n MailOutlined,\n PhoneIphoneOutlined,\n} from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport { FC, useEffect, useState } from 'react';\nimport EditMessageTemplateDrawer from './EditMessageTemplateDrawer';\nimport useStyles from './style';\nimport AdminHeader from \"@/views/app/admin/common/AdminHeader\";\n\nconst Templates: FC = () => {\n const { messageTemplateStore } = useStores();\n const {\n messageTemplates,\n getAllMessageTemplates,\n setCurrentMessageTemplate,\n } = messageTemplateStore;\n\n const classes = useStyles();\n\n const [openDrawer, setOpenDrawer] = useState(false);\n\n useEffect(() => {\n getAllMessageTemplates();\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const handleOpenEdit = (template: MessageTemplate) => {\n setCurrentMessageTemplate(template);\n setOpenDrawer(true);\n };\n\n return (\n <>\n
\n \n
\n
\n \n \n \n Navn\n Send på epost/SMS\n \n \n \n \n {messageTemplates.map((messageTemplate) => (\n \n {messageTemplate.name}\n \n {messageTemplate.sendEmail && }{' '}\n {messageTemplate.sendSMS && }\n \n \n handleOpenEdit(messageTemplate)}>\n \n \n \n \n ))}\n \n
\n
\n \n \n );\n};\n\nexport default observer(Templates);\n","import { flexCol } from '@/style/common';\nimport Message, { MessageStatus } from '@/types/Message';\nimport { Button, Drawer, makeStyles, Typography } from '@material-ui/core';\nimport { EditorContent, useEditor } from '@tiptap/react';\nimport StarterKit from '@tiptap/starter-kit';\nimport { FC, useEffect } from 'react';\n\nconst useStyles = makeStyles(({ palette }) => ({\n drawerContent: {\n padding: '16px',\n ...flexCol,\n gap: '16px',\n minWidth: '400px',\n maxWidth: '800px',\n },\n emailBody: {\n backgroundColor: palette.grey[200],\n padding: '6px',\n borderRadius: '4px',\n },\n}));\n\nconst MessageDrawer: FC<{\n message: Message | null;\n setMessage: (m: Message | null) => void;\n}> = ({ message, setMessage }) => {\n const classes = useStyles();\n\n const editor = useEditor({\n extensions: [StarterKit],\n content: message?.emailBody,\n });\n\n useEffect(() => {\n if (editor) editor.commands.setContent(message?.emailBody ?? '');\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [message]);\n\n return (\n setMessage(null)} anchor=\"right\">\n
\n \n Melding til {message?.user.fullName}\n \n {message?.emailStatus === MessageStatus.NotSent ? (\n Email ble ikke sendt\n ) : (\n
\n Email\n {message?.emailSubject}\n \n
\n )}\n\n {message?.smsStatus === MessageStatus.NotSent ? (\n SMS ble ikke sendt\n ) : (\n
\n SMS\n {message?.sms}\n
\n )}\n \n
\n
\n );\n};\n\nexport default MessageDrawer;\n","export enum CourseOptionAdmin {\n CREATE_EDIT = 0,\n LIST_STUDENT = 1,\n INFO_STUDENT = 2,\n}\n\nexport enum CourseOptionVGS {\n EDIT = 0,\n INFO_STUDENT = 1,\n}\n","import Message, { MessageStatus } from '@/types/Message';\nimport { makeStyles } from '@material-ui/core';\nimport { PhoneIphoneOutlined, EmailOutlined } from '@material-ui/icons';\nimport { FC } from 'react';\n\nconst useStyles = makeStyles(({ palette }) => ({\n failed: {\n color: palette.error.main,\n },\n}));\n\nconst MessageStatusIcons: FC<{ message: Message }> = ({ message }) => {\n const classes = useStyles();\n\n return (\n <>\n {message.smsStatus !== MessageStatus.NotSent && (\n \n )}\n {message.emailStatus !== MessageStatus.NotSent && (\n \n )}\n \n );\n};\n\nexport default MessageStatusIcons;\n","import { makeStyles } from '@material-ui/core';\n\nconst useMessagesStyle = makeStyles(({ breakpoints }) => ({\n main: {\n margin: '20px 115px',\n display: 'flex',\n flexDirection: 'column',\n [breakpoints.down('md')]: {\n margin: '10px 5px',\n },\n },\n table: {\n backgroundColor: '#fff',\n },\n}));\n\nexport default useMessagesStyle;\n","import { useStores } from '@/stores';\nimport IMessagePaginationRequest from '@/types/dto/Messages/MessagePaginationRequest.dto';\nimport { DESC } from '@/types/dto/PaginationRequest.dto';\nimport Message from '@/types/Message';\nimport { getDateTime } from '@/utils/timeUtils';\nimport {\n Table,\n TableBody,\n TableCell,\n TableHead,\n TablePagination,\n TableRow,\n} from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { ChangeEventHandler, FC, useEffect, useState } from 'react';\nimport AdminHeader from '../common/AdminHeader';\nimport AdminSearchBar from '../common/AdminSearchBar';\nimport MessageDrawer from './MessageDrawer';\nimport MessageStatusIcons from './MessageStatusIcons';\nimport useMessagesStyle from './style';\n\nconst Messages: FC = () => {\n const classes = useMessagesStyle();\n\n const [page, setPage] = useState(0);\n const [currentMessage, setCurrentMessage] = useState(null);\n\n const [request, setRequest] = useState({\n skip: 0,\n take: 50,\n search: '',\n orderBy: 'created',\n orderDirection: DESC,\n });\n\n const setRequestAndRefresh = (newRequest: IMessagePaginationRequest) => {\n setRequest(newRequest);\n getMessages(newRequest);\n };\n\n const { messageStore } = useStores();\n const { messages, count, getMessages } = messageStore;\n\n useEffect(() => {\n getMessages(request);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const setSearch = (search: string) =>\n setRequestAndRefresh({ ...request, search });\n\n const handlePageChange = (_: any, newPageNumber: number) => {\n setPage(newPageNumber);\n setRequestAndRefresh({\n ...request,\n skip: newPageNumber * (request.take ?? 50),\n });\n };\n\n const handleRowsPerPageChange: ChangeEventHandler<\n HTMLInputElement | HTMLTextAreaElement\n > = (e) => {\n const newRowsPerPage = Number(e.target.value);\n setRequestAndRefresh({ ...request, take: newRowsPerPage });\n };\n\n return (\n <>\n
\n \n \n
\n
\n \n \n \n Til\n Meldingstype\n Date\n Status\n \n \n \n {messages.map((message) => (\n setCurrentMessage(message)}\n >\n {message.user.fullName}\n {message.template.name}\n \n {getDateTime(message.createdDate, 'yyyy.LL.dd T')}\n \n \n \n \n \n ))}\n \n
\n \n `${from}-${to} av ${count !== -1 ? count : `mer enn ${to}`}`\n }\n className={classes.table}\n />\n
\n \n \n );\n};\n\nexport default observer(Messages);\n","import {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Slide, Typography\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport React, { FormEvent, forwardRef, useState } from 'react';\nimport IOpenable from '@/types/interfaces/IOpenable';\nimport Loading from '@/components/Loading';\nimport { useStores } from '@/stores';\nimport {PER_PAGE_OPTIONS, SELECT_ALL} from \"@/types/dto/PaginationRequest.dto\";\n\nconst Transition = forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\nconst AllocationDialog = ({ open, setOpen }: IOpenable) => {\n\n const { userStore, courseStore, projectStore } = useStores();\n const [loading, setLoading] = useState(false);\n const [showResult, setShowResult] = useState(false);\n const [showOK, setShowOK] = useState(false);\n const handleSubmit = (e: FormEvent) => {\n e.preventDefault();\n handleClose();\n courseStore.getList({\n skip: 0,\n take: +PER_PAGE_OPTIONS[0],\n search: '',\n projectId: projectStore.currentProject?.id+'',\n studySubjectId: SELECT_ALL,\n externalSchoolId: SELECT_ALL,\n status: SELECT_ALL,\n });\n };\n const fetchAllocation = async ( ) => {\n setShowOK(true);\n setLoading(true);\n await userStore.allocationAllStudent();\n setLoading(false);\n setShowResult(true);\n };\n const handleClose = () => {\n setOpen(false);\n setLoading(false)\n setShowResult(false);\n setShowOK(false);\n };\n\n\n return (\n setOpen(false)}\n TransitionComponent={Transition}\n fullWidth\n >\n
\n Tildeling\n \n \n {!showResult && Tildelingsprosessen skal ta litt tid. Du kan jobbe med andre ting imens.
Ikke lukk denne fanen!
}\n
\n \n {showResult && \n Tildelingsresultat:\n
- Tildelt med 1. prioritert: {userStore.allocationResult.firstPriority}\n
- Tildelt med 2. prioritert: {userStore.allocationResult.secondPriority}\n
- Tildelt med 3. prioritert: {userStore.allocationResult.thirdPriority}\n
}\n
\n \n {(!showOK) && }\n {!loading && !showOK && }\n {showOK && }\n \n
\n \n\n );\n};\n\nexport default AllocationDialog;\n","import {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Slide, Typography\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport React, { FormEvent, forwardRef} from 'react';\nimport { useStores } from '@/stores';\n\nconst Transition = forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\ninterface IComponentProps {\n open: boolean;\n setOpen: (open: boolean) => void;\n}\n\nconst PublishDialog = (props: IComponentProps) => {\n const { open, setOpen} = props;\n const { projectStore } = useStores();\n const handleSubmit = (e: FormEvent) => {\n e.preventDefault();\n handleClose();\n projectStore.publishProject(projectStore.currentProject?.id);\n };\n\n const handleClose = () => {\n setOpen(false);\n };\n\n return (\n setOpen(false)}\n TransitionComponent={Transition}\n fullWidth\n >\n
\n Publiser tildelinger\n \n \n Ønsker du å publisere tildelingene til elevene?\n \n \n \n \n \n \n
\n \n\n );\n};\n\nexport default PublishDialog;\n","import courseStyle from '@/views/style/courses';\nimport { observer } from 'mobx-react';\nimport React, { useState } from 'react';\nimport HomeOutlinedIcon from '@material-ui/icons/HomeOutlined';\nimport { Button, Divider, Grid } from '@material-ui/core';\nimport clsx from 'clsx';\nimport { StepType } from '@/types/StepType';\nimport StepStatus from '@/components/StepStatus';\nimport AllocationDialog from '@/views/app/admin/courses/components/AllocationDialog';\nimport PublishDialog from \"@/views/app/admin/courses/components/PublishDialog\";\n\ninterface IComponentProps {\n steps: StepType[];\n step: number;\n projectName: string;\n}\n\nconst CourseHeader = (props: IComponentProps) => {\n const { steps, step, projectName } = props;\n const courseClasses = courseStyle();\n const [openAllocationDialog, setOpenAllocationDialog] =\n useState(false);\n const [openPublicDialog, setOpenPublicDialog] =\n useState(false);\n return (\n \n \n \n \n {projectName}\n \n\n
\n \n
\n\n {\n setOpenAllocationDialog(true)\n }}\n >\n Tildel\n \n {\n setOpenPublicDialog(true)\n }}\n >\n Publiser\n \n \n \n \n );\n};\n\nexport default observer(CourseHeader);\n","import { CourseStatus, getStatusDisplay } from '@/types/enums/CourseStatus';\nimport School from '@/types/School';\nimport IStudySubject from '@/types/StudySubject';\nimport { Input, MenuItem, Select } from '@material-ui/core';\nimport React from 'react';\nimport useStyles from './style';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport { SELECT_ALL } from '@/types/dto/PaginationRequest.dto';\n\ninterface IComponentProps {\n studySubjectId?: number | string;\n studySubjects?: IStudySubject[];\n externalSchoolId?: string;\n schools?: School[];\n status?: CourseStatus | string;\n courseStatus?: CourseStatus[];\n label: string;\n handleSearchStudySubjectId?: (studySubjectId: number | string) => void;\n handleExternalSchoolId?: (externalSchoolId: string) => void;\n handleCourseStatus?: (status: CourseStatus | string) => void;\n}\n\nenum SelectStatus {\n STUDY_SUBJECT = 'STUDY_SUBJECT',\n SCHOOL = 'SCHOOL',\n COURSE_STATUS = 'COURSE_STATUS',\n}\n\nconst CustomSelect = (props: IComponentProps) => {\n const {\n studySubjectId,\n studySubjects,\n externalSchoolId,\n schools,\n status,\n courseStatus,\n label,\n handleSearchStudySubjectId,\n handleExternalSchoolId,\n handleCourseStatus,\n } = props;\n const classes = useStyles();\n\n const [mode, setMode] = React.useState(null);\n\n React.useEffect(() => {\n if (studySubjects) {\n setMode(SelectStatus.STUDY_SUBJECT);\n } else if (externalSchoolId && schools) {\n setMode(SelectStatus.SCHOOL);\n } else if (status && courseStatus) {\n setMode(SelectStatus.COURSE_STATUS);\n }\n }, [\n studySubjectId,\n studySubjects,\n externalSchoolId,\n schools,\n status,\n courseStatus,\n ]);\n\n const getValue = (): any => {\n if (mode === SelectStatus.STUDY_SUBJECT) {\n return studySubjectId;\n } else if (mode === SelectStatus.SCHOOL) {\n return externalSchoolId;\n } else if (mode === SelectStatus.COURSE_STATUS) {\n return status;\n }\n };\n\n const changeValue = (value: any): void => {\n if (mode === SelectStatus.STUDY_SUBJECT && handleSearchStudySubjectId) {\n handleSearchStudySubjectId(value);\n } else if (mode === SelectStatus.SCHOOL && handleExternalSchoolId) {\n handleExternalSchoolId(value);\n } else if (mode === SelectStatus.COURSE_STATUS && handleCourseStatus) {\n handleCourseStatus(value);\n }\n };\n\n return (\n <>\n {mode && (\n ) =>\n changeValue(e.target.value)\n }\n classes={{\n select: classes.select,\n icon: classes.icon,\n }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n getContentAnchorEl: null,\n }}\n IconComponent={ArrowDropDownIcon}\n input={}\n >\n \n {label}\n \n\n {mode === SelectStatus.STUDY_SUBJECT &&\n studySubjects &&\n studySubjects.map((studySubject: IStudySubject) => (\n \n {studySubject.studySubjectName}\n \n ))}\n\n {mode === SelectStatus.SCHOOL &&\n schools &&\n schools.map((school: School) => (\n \n {school.schoolName}\n \n ))}\n\n {mode === SelectStatus.COURSE_STATUS &&\n courseStatus &&\n courseStatus.map((status: CourseStatus) => (\n \n {getStatusDisplay(status)}\n \n ))}\n \n )}\n \n );\n};\n\nexport default CustomSelect;\n","import { Fade, Tab, Tabs, CircularProgress } from '@material-ui/core';\nimport { Redo, Undo } from '@material-ui/icons';\nimport clsx from 'clsx';\nimport { CourseOptionAdmin } from '@/types/enums/CourseOption';\nimport courseStyle from '@/views/style/courses';\nimport MoreVertOutlinedIcon from '@material-ui/icons/MoreVertOutlined';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport React from 'react';\nimport { useStores } from '@/stores';\nimport { observer } from 'mobx-react';\nimport { GetAppOutlined } from '@material-ui/icons';\n\ninterface IComponentProps {\n tabMode: CourseOptionAdmin;\n chooseTabCourseOption: (mode: CourseOptionAdmin) => void;\n removeAllAllocations: () => Promise;\n handleOpenMultipleStatusDialog: () => void;\n deleteListCourse: () => Promise;\n handleUndo: () => Promise;\n handleRedo: () => Promise;\n getCourseExcelExport: () => Promise;\n exportLoading: boolean;\n}\n\nconst CourseFilter = (props: IComponentProps) => {\n const {\n tabMode,\n chooseTabCourseOption,\n removeAllAllocations,\n deleteListCourse,\n handleOpenMultipleStatusDialog,\n handleUndo,\n handleRedo,\n getCourseExcelExport,\n exportLoading,\n } = props;\n const { courseStore } = useStores();\n const courseClasses = courseStyle();\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n const openMenu = Boolean(anchorEl);\n\n const handleOpenMenu = (event: React.MouseEvent): void => {\n event.stopPropagation();\n setAnchorEl(event.currentTarget);\n };\n\n const handleCloseMenu = (): void => {\n setAnchorEl(null);\n };\n\n return (\n <>\n \n \n \n \n {\n await handleUndo();\n }}\n className={clsx(\n courseClasses.pointer,\n courseClasses.sizeIcon,\n courseClasses.marginRight12,\n {\n [courseClasses.disabled]:\n courseStore.redoStack.length === 0,\n }\n )}\n >\n \n \n\n {\n await handleRedo();\n }}\n className={clsx(\n courseClasses.pointer,\n courseClasses.sizeIcon,\n courseClasses.marginRight12,\n {\n [courseClasses.disabled]:\n courseStore.undoStack.length === 0,\n }\n )}\n >\n \n \n {\n await getCourseExcelExport();\n }}\n className={clsx(\n courseClasses.pointer,\n courseClasses.sizeIcon,\n courseClasses.marginRight12,\n {\n [courseClasses.disabled]: exportLoading,\n }\n )}\n >\n {exportLoading ? (\n \n ) : (\n \n )}\n \n <>\n \n \n \n \n {\n handleCloseMenu();\n await removeAllAllocations();\n }}\n >\n Fjern tildelinger\n \n {\n handleCloseMenu();\n await deleteListCourse();\n }}\n >\n Slett arrangement\n \n {\n handleCloseMenu();\n handleOpenMultipleStatusDialog();\n }}\n >\n Endre status\n \n \n \n \n \n \n \n >,\n newValue: CourseOptionAdmin\n ) => {\n chooseTabCourseOption(newValue);\n }}\n className={courseClasses.heightFull}\n classes={{ indicator: courseClasses.tabIndicator }}\n >\n \n \n \n \n \n \n \n );\n};\n\nexport default observer(CourseFilter);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n root: {\n '&:hover': {\n backgroundColor: palette.background.default,\n },\n },\n size: {\n width: '20px',\n height: '20px',\n },\n color: {\n color: palette.primary[600],\n },\n visibility: {\n visibility: 'hidden',\n },\n}));\n\nexport default useStyles;\n","import { Checkbox } from '@material-ui/core';\nimport React from 'react';\nimport CheckBoxIcon from '@material-ui/icons/CheckBox';\nimport clsx from 'clsx';\nimport useStyles from './style';\n\ninterface IComponentProps {\n isChecked?: boolean;\n handleChange?: (event: React.ChangeEvent) => void;\n hide?: boolean;\n disabled?: boolean;\n value?: any;\n}\n\nconst CustomCheckBox = (props: IComponentProps) => {\n const { isChecked, handleChange, hide, disabled, value } = props;\n const classes = useStyles();\n\n return (\n \n }\n checked={isChecked}\n onChange={handleChange}\n disabled={disabled}\n value={value}\n onClick={(event: React.MouseEvent) => {\n event.stopPropagation();\n }}\n />\n );\n};\n\nexport default CustomCheckBox;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n root: {\n '&:hover': {\n backgroundColor: palette.background.default,\n },\n width: '20px',\n height: '20px',\n },\n border: {\n border: `2px solid ${palette.primary[500]}`,\n },\n borderButtonSeek: {\n borderWidth: '0px',\n backgroundColor: palette.primary[600],\n '&:hover': {\n backgroundColor: palette.primary[600],\n color: palette.primary.A100,\n },\n },\n visibility: {\n visibility: 'hidden',\n },\n expandLessIcon: {\n color: palette.primary.A100,\n },\n}));\n\nexport default useStyles;\n","import { IconButton } from '@material-ui/core';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport ExpandLessIcon from '@material-ui/icons/ExpandLess';\nimport React from 'react';\nimport clsx from 'clsx';\nimport useStyles from './style';\n\ninterface IComponentProps {\n open?: boolean;\n courseId?: number;\n handleCloseDetail?: (\n open: boolean,\n courseId: number,\n event?: React.MouseEvent\n ) => Promise | void;\n hide?: boolean;\n}\n\nconst CustomIconButton = (props: IComponentProps) => {\n const { open, courseId, handleCloseDetail, hide } = props;\n const classes = useStyles();\n\n return (\n ) =>\n handleCloseDetail &&\n courseId &&\n (await handleCloseDetail(!open, courseId, event))\n }\n classes={{ root: clsx(classes.root, classes.border) }}\n className={clsx({\n [classes.borderButtonSeek]: open,\n [classes.visibility]: hide === true,\n })}\n >\n {open ? (\n \n ) : (\n \n )}\n \n );\n};\n\nexport default CustomIconButton;\n","import { makeStyles } from '@material-ui/core';\n\nexport const configStyle = {\n widthCapacity: 50,\n marginCapacity: 5,\n};\n\nconst useStyles = makeStyles(({ palette }) => ({\n whiteSpaceNowrap: {\n whiteSpace: 'nowrap',\n },\n displayFlex: {\n display: 'flex',\n },\n alignItemsFlexEnd: {\n alignItems: 'flex-end',\n },\n backgroundColorTransparent: {\n backgroundColor: palette.background.default,\n },\n blockCapacity: {\n height: '24px',\n position: 'relative',\n },\n textStyle: {\n fontStyle: 'normal',\n fontWeight: 'normal',\n fontSize: '14px',\n color: palette.primary[900],\n },\n verticalAlignBottom: {\n verticalAlign: 'bottom',\n },\n fontSizeIconCapacity: {\n fontSize: '20px',\n },\n heightFull: {\n height: '100%',\n },\n widthCapacityLeft: {\n width: `${configStyle.widthCapacity}px`,\n marginRight: `${configStyle.marginCapacity}px`,\n },\n widthCapacityRigh: {\n width: `calc(100% - ${\n configStyle.widthCapacity + configStyle.marginCapacity\n }px)`,\n },\n overloaded: {\n backgroundColor: palette.warning.dark,\n },\n}));\n\nexport default useStyles;\n","import { LinearProgress } from '@material-ui/core';\nimport React from 'react';\nimport useStyles from './style';\nimport clsx from 'clsx';\nimport PersonOutlineIcon from '@material-ui/icons/PersonOutline';\n\ninterface IComponentProps {\n capacity: number;\n vacant: number;\n showVacant: boolean;\n}\n\nconst CapacityCourse = (props: IComponentProps) => {\n const { capacity, vacant, showVacant } = props;\n const classes = useStyles();\n\n return (\n <>\n \n \n \n \n {capacity}\n \n \n\n {showVacant && (\n \n
\n \n {vacant >= 0\n ? `${vacant} ledig`\n : `${Math.abs(vacant)} overblastet`}\n \n = 0 ? (vacant * 100) / capacity : 100}\n classes={{\n barColorPrimary: clsx({ [classes.overloaded]: vacant < 0 }),\n }}\n />\n
\n \n )}\n \n \n );\n};\n\nexport default CapacityCourse;\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n buttonStatus: {\n border: `1px solid ${palette.primary.main}`,\n borderRadius: '50px',\n color: palette.primary.main,\n padding: '4px 12px',\n width: 'fit-content',\n },\n buttonStatusPending: {\n background:\n 'linear-gradient(0deg, rgba(255, 230, 0, 0.2), rgba(255, 230, 0, 0.2)), #FFFFFF',\n borderColor: palette.text.hint,\n color: palette.text.hint,\n },\n buttonStatusCancelled: {\n backgroundColor: `${palette.warning.light} !important`,\n borderColor: palette.warning.dark,\n color: palette.warning[50],\n },\n backgroundColorFFF: {\n backgroundColor: palette.primary.A100,\n },\n alignItemsCenter: {\n alignItems: 'center',\n },\n whiteSpaceNowrap: {\n whiteSpace: 'nowrap',\n },\n}));\n\nexport default useStyles;\n","import { CourseStatus, getStatusDisplay } from '@/types/enums/CourseStatus';\nimport React from 'react';\nimport useStyles from './style';\nimport clsx from 'clsx';\n\ninterface IComponentProps {\n status: CourseStatus;\n}\n\nconst ButtonCourseStatus = (props: IComponentProps) => {\n const classes = useStyles();\n const { status } = props;\n\n return (\n \n {getStatusDisplay(status)}\n \n );\n};\n\nexport default ButtonCourseStatus;\n","import { IStudentStudySubject } from '@/types/StudySubject';\nimport React from 'react';\nimport clsx from 'clsx';\nimport { showPriority } from '@/types/StudentStudySubject';\nimport { makeStyles } from '@material-ui/core';\n\ninterface IComponentProps {\n studentStudySubjects?: IStudentStudySubject[];\n}\n\nconst useStyles = makeStyles(({ palette }) => ({\n shapeCircle: {\n borderRadius: '50%',\n },\n positionCenter: {\n textAlign: 'center',\n verticalAlign: 'middle',\n },\n badgeContent: {\n width: '20px',\n height: '20px',\n lineHeight: '20px',\n fontSize: '12px',\n border: `1px solid ${palette.info['50']}`,\n color: palette.info['50'],\n background:\n 'linear-gradient(0deg, rgba(77, 199, 93, 0.15), rgba(77, 199, 93, 0.15)), #FFFFFF',\n },\n colorTransparent: {\n color: palette.background.default,\n },\n}));\n\nconst PriorityStudent = (props: IComponentProps) => {\n const { studentStudySubjects } = props;\n const classes = useStyles();\n\n return (\n \n 0 &&\n studentStudySubjects[0].priority\n ),\n })}\n >\n {studentStudySubjects && studentStudySubjects.length > 0\n ? showPriority(studentStudySubjects[0].priority)\n : 'P'}\n \n \n );\n};\n\nexport default PriorityStudent;\n","import React from 'react';\nimport ICourse from '@/types/Course';\nimport {\n Box,\n Collapse,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Button,\n IconButton,\n CircularProgress,\n Typography,\n} from '@material-ui/core';\nimport { getDateTime } from '@/utils/timeUtils';\nimport { observer } from 'mobx-react';\nimport { useStores } from '@/stores';\nimport { SELECT_ALL, TAKE_STUDENT } from '@/types/dto/PaginationRequest.dto';\nimport clsx from 'clsx';\nimport InsertDriveFileOutlinedIcon from '@material-ui/icons/InsertDriveFileOutlined';\nimport MoreVertOutlinedIcon from '@material-ui/icons/MoreVertOutlined';\nimport AccessibilityNewIcon from '@material-ui/icons/AccessibilityNew';\nimport CustomCheckBox from '@/components/CustomCheckBox';\nimport CustomIconButton from '@/components/CustomIconButton';\nimport courseStyle from '@/views/style/courses';\nimport CapacityCourse from '@/components/CapacityCourse';\nimport ButtonCourseStatus from '@/components/ButtonCourseStatus';\nimport Menu from '@material-ui/core/Menu';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Fade from '@material-ui/core/Fade';\nimport { IUserDto } from '@/types/User';\nimport SwapHorizOutlinedIcon from '@material-ui/icons/SwapHorizOutlined';\nimport PriorityStudent from './priority';\nimport ArrowBackIosOutlined from '@material-ui/icons/ArrowBackIosOutlined';\nimport ArrowForwardIosOutlined from '@material-ui/icons/ArrowForwardIosOutlined';\n\ninterface IComponentProps {\n row: ICourse;\n colSpan: number;\n chooseCourse: (id: number) => void;\n chooseStudent: (courseId: number, studentId: number) => void;\n editCourse: (id: number) => void;\n deleteCourse: (id: number) => Promise;\n duplicateCourse: (id: number) => Promise;\n checkBoxChooseCourse: (isChecked: boolean, courseId: number) => void;\n vgsCourseId: number;\n chooseCourseShowInfoVGS: (courseId: number) => void;\n //loadingDetail: boolean;\n handleOpenMovingMulDialog: (studentIds: number[], course: ICourse) => void;\n}\n\nconst Row = (props: IComponentProps) => {\n const {\n row,\n colSpan,\n chooseCourse,\n chooseStudent,\n editCourse,\n deleteCourse,\n duplicateCourse,\n checkBoxChooseCourse,\n vgsCourseId,\n chooseCourseShowInfoVGS,\n //loadingDetail,\n handleOpenMovingMulDialog,\n } = props;\n const { courseStore } = useStores();\n\n const courseClasses = courseStyle();\n\n const [open, setOpen] = React.useState(false);\n const [students, setStudents] = React.useState([]);\n const [total, setTotal] = React.useState(0);\n const [skip, setSkip] = React.useState(0);\n const [take] = React.useState(TAKE_STUDENT);\n const [courseId, setCourseId] = React.useState(0);\n const [loading, setLoading] = React.useState(false);\n\n const _getStudentsForDetailCourse = async (\n courseId: number,\n newSkip?: number\n ): Promise => {\n setStudents([]);\n setTotal(0);\n\n setLoading(true);\n const result = await courseStore.getStudentsForDetailCourse(courseId, {\n skip: newSkip !== undefined || newSkip !== null ? newSkip : skip,\n take,\n });\n setLoading(false);\n\n setStudents(result.data);\n setTotal(result.count);\n };\n\n const handleCloseCourseDetail = async (\n open: boolean,\n id: number,\n event?: React.MouseEvent\n ): Promise => {\n event?.stopPropagation();\n setOpen(open);\n\n if (open) {\n setCourseId(id);\n await _getStudentsForDetailCourse(id);\n }\n };\n\n // React.useEffect(() => {\n // const getDetail = async () => {\n // if (open && loadingDetail) {\n // await _getStudentsForDetailCourse(courseId);\n // }\n // };\n // getDetail();\n // // eslint-disable-next-line react-hooks/exhaustive-deps\n // }, [loadingDetail]);\n\n const [checkBoxChooseAllDetail, setCheckBoxChooseAllDetail] =\n React.useState('');\n const [studentIds, setStudentIds] = React.useState([]);\n\n const checkBoxChooseAllDetailCourse = (\n event: React.ChangeEvent\n ): void => {\n const isChecked = event.target.checked;\n if (isChecked) {\n const ids = students.map((s) => (s.id ? s.id : 0));\n setStudentIds(ids);\n setCheckBoxChooseAllDetail(SELECT_ALL);\n } else {\n setStudentIds([]);\n setCheckBoxChooseAllDetail('');\n }\n };\n\n const checkBoxChooseDetailCourse = (\n event: React.ChangeEvent\n ): void => {\n const isChecked = event.target.checked;\n const studentId = +event.target.value;\n\n if (isChecked) {\n const newStudentIds = [...studentIds, studentId];\n setStudentIds(newStudentIds);\n if (newStudentIds.length === students.length) {\n setCheckBoxChooseAllDetail(SELECT_ALL);\n }\n } else {\n const index = studentIds.indexOf(studentId);\n if (index > -1) {\n studentIds.splice(index, 1);\n setStudentIds([...studentIds]);\n\n if (checkBoxChooseAllDetail === SELECT_ALL) {\n setCheckBoxChooseAllDetail('');\n }\n }\n }\n };\n\n const isCheckStudent = (studentId?: number): boolean => {\n if (studentId) {\n const id = studentIds.find((id) => id === studentId);\n\n if (id && id > 0) {\n return true;\n }\n }\n return false;\n };\n\n const getPrevStudent = async (): Promise => {\n if (skip - take >= 0) {\n setSkip(skip - take);\n await _getStudentsForDetailCourse(courseId, skip - take);\n }\n };\n\n const getNextStudent = async (): Promise => {\n if (skip + take < total) {\n setSkip(skip + take);\n await _getStudentsForDetailCourse(courseId, skip + take);\n }\n };\n\n const [anchorEl, setAnchorEl] = React.useState(null);\n const openMenu = Boolean(anchorEl);\n\n const handleOpenMenu = (event: React.MouseEvent): void => {\n event.stopPropagation();\n setAnchorEl(event.currentTarget);\n };\n\n const handleCloseMenu = () => {\n setAnchorEl(null);\n };\n\n const beforeHandleEdit = (\n event: React.MouseEvent,\n courseId: number\n ): void => {\n event.stopPropagation();\n editCourse(courseId);\n handleCloseMenu();\n };\n\n const beforeHandleDuplicate = async (\n event: React.MouseEvent,\n courseId: number\n ): Promise => {\n try {\n event.stopPropagation();\n await duplicateCourse(courseId);\n } catch (error) {\n console.log(`Error duplicate course: ${courseId}, cause: ${error}`);\n } finally {\n handleCloseMenu();\n }\n };\n\n const beforeHandleDelete = async (\n event: React.MouseEvent,\n courseId: number\n ): Promise => {\n try {\n event.stopPropagation();\n await deleteCourse(courseId);\n } catch (error) {\n console.log(`Error delete course: ${courseId}, cause: ${error}`);\n } finally {\n handleCloseMenu();\n }\n };\n\n const beforeHandleChange = (\n event: React.ChangeEvent\n ): void => {\n event.stopPropagation();\n checkBoxChooseCourse(event.target.checked, +event.target.value);\n };\n\n const isCheck = (courseId: number): boolean => {\n const id = courseStore.courseIds.find((id) => id === courseId);\n\n if (id && id > 0) {\n return true;\n }\n return false;\n };\n\n const beforeChooseCourseShowInfoVGS = (\n event: React.MouseEvent,\n courseId: number\n ): void => {\n event.stopPropagation();\n chooseCourseShowInfoVGS(row.id);\n };\n\n return (\n \n chooseCourse(row.id)}\n >\n \n \n \n \n \n \n \n \n \n

\n {row.studySubject?.studySubjectName\n ? row.studySubject.studySubjectName\n : 'Ikke definert'}\n

\n \n \n \n \n
\n \n {getDateTime(row.startDate, 'dd. LLL.')}\n

\n
\n
\n

\n {`${getDateTime(row.startDate, 'HH:mm')} - ${getDateTime(\n row.endDate,\n 'HH:mm'\n )}`}\n

\n
\n \n \n
\n \n {row.school?.schoolName}\n

\n
\n
\n

\n {row.courseHolder?.fullName\n ? row.courseHolder.fullName\n : 'Ikke definert'}\n

\n
\n \n \n \n \n \n \n \n \n \n ) =>\n beforeChooseCourseShowInfoVGS(event, row.id)\n }\n >\n \n \n\n <>\n \n \n \n \n ) =>\n beforeHandleEdit(event, row.id)\n }\n >\n Rediger\n \n ) =>\n await beforeHandleDuplicate(event, row.id)\n }\n >\n Dupliser\n \n ) =>\n await beforeHandleDelete(event, row.id)\n }\n >\n Slett\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n Skole\n \n \n Klasse\n \n \n Elev\n \n \n Prioritert\n \n \n \n \n }\n onClick={() =>\n handleOpenMovingMulDialog(studentIds, row)\n }\n >\n Flytt elev\n \n \n \n \n \n\n \n {!loading ? (\n <>\n {students.length > 0 ? (\n students.map((student) => (\n {\n if (student.id) {\n chooseStudent(row.id, student.id);\n }\n }}\n >\n \n \n \n \n \n \n \n \n {student.school\n ? student.school.schoolName\n : 'Ikke definert'}\n \n \n {student.class\n ? student.class.fullName\n : 'Ikke definert'}\n \n \n {student.fullName}\n \n \n \n \n \n \n ))\n ) : (\n <>\n \n \n \n Det er ingen elever i dette kurset enda.\n \n \n \n \n )}\n \n ) : (\n <>\n \n \n \n \n \n \n \n \n )}\n {total > TAKE_STUDENT && (\n \n \n \n await getPrevStudent()}\n className={courseClasses.pointer}\n >\n \n \n\n await getNextStudent()}\n className={courseClasses.pointer}\n >\n \n \n \n \n \n )}\n \n
\n
\n
\n
\n
\n
\n );\n};\n\nexport default observer(Row);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n whiteSpaceNowrap: {\n whiteSpace: 'nowrap',\n },\n displayFlex: {\n display: 'flex',\n },\n alignItemsFlexEnd: {\n alignItems: 'flex-end',\n },\n backgroundColorTransparent: {\n backgroundColor: palette.background.default,\n },\n select: {\n '&:focus': {\n backgroundColor: palette.background.default,\n },\n },\n icon: {\n color: palette.primary[500],\n },\n menuItem: {\n overflow: 'hidden',\n width: '100%',\n textOverflow: 'ellipsis',\n fontWeight: 500,\n },\n}));\n\nexport default useStyles;\n","export enum EventCheckbox {\n REMOVE_ALL_ALLOCATION = 0,\n DELETE_ALL_EVENT = 1,\n DELETE_COURSE = 2,\n DUPLICATE_COURSE = 3,\n EDIT_COURSE = 4,\n UPDATE_STATUS_MULTIPLE_EVENT = 5,\n}\n","import {\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n CircularProgress,\n Typography,\n} from '@material-ui/core';\nimport React, { useEffect } from 'react';\nimport { observer } from 'mobx-react';\nimport { useStores } from '@/stores';\nimport Row from './row';\nimport { SELECT_ALL } from '@/types/dto/PaginationRequest.dto';\nimport clsx from 'clsx';\nimport CustomCheckBox from '@/components/CustomCheckBox';\nimport CustomIconButton from '@/components/CustomIconButton';\nimport courseStyle from '@/views/style/courses';\nimport CustomSelect from '@/components/CustomSelect';\nimport { CourseStatus } from '@/types/enums/CourseStatus';\nimport ICourse from '@/types/Course';\n\ninterface IComponentProps {\n chooseCourse: (id: number) => void;\n chooseStudent: (courseId: number, studentId: number) => void;\n studySubjectId: number | string;\n handleSearchStudySubjectId: (studySubjectId: number | string) => void;\n externalHighSchoolId: string;\n handleExternalHighSchoolId: (externalHighSchoolId: string) => void;\n courseStatus: CourseStatus | string;\n handleCourseStatus: (courseStatus: CourseStatus | string) => void;\n editCourse: (id: number) => void;\n deleteCourse: (id: number) => Promise;\n duplicateCourse: (id: number) => Promise;\n checkBoxChooseCourse: (isChecked: boolean, courseId: number) => void;\n checkBoxChooseAll: string;\n checkBoxChooseAllCourse: (isChecked: boolean) => void;\n vgsCourseId: number;\n chooseCourseShowInfoVGS: (courseId: number) => void;\n //loadingDetail: boolean;\n handleOpenMovingMulDialog: (studentIds: number[], course: ICourse) => void;\n handleOpenDialogFilterDate: () => void;\n}\n\nconst CourseTable = (props: IComponentProps) => {\n const {\n chooseCourse,\n chooseStudent,\n studySubjectId,\n handleSearchStudySubjectId,\n externalHighSchoolId,\n handleExternalHighSchoolId,\n courseStatus,\n handleCourseStatus,\n editCourse,\n deleteCourse,\n duplicateCourse,\n checkBoxChooseCourse,\n checkBoxChooseAll,\n checkBoxChooseAllCourse,\n vgsCourseId,\n chooseCourseShowInfoVGS,\n //loadingDetail,\n handleOpenMovingMulDialog,\n handleOpenDialogFilterDate,\n } = props;\n\n const courseClasses = courseStyle();\n\n const { courseStore, projectStore, studySubjectStore, schoolStore } =\n useStores();\n const { totalCount } = courseStore;\n const { totalAllocated, currentProject } = projectStore;\n const [numberOfCourses, setNumberOfCourses] = React.useState(0);\n const [numberOfAllocation, setNumberOfAllocation] = React.useState(0);\n\n useEffect(() => {\n if (currentProject && currentProject.id) {\n projectStore.getTotalAllocated(currentProject.id);\n setNumberOfAllocation(totalAllocated);\n setNumberOfCourses(totalCount);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [projectStore, currentProject, courseStore.totalCount]);\n\n const beforeHandleChange = (\n event: React.ChangeEvent\n ): void => {\n event.stopPropagation();\n checkBoxChooseAllCourse(event.target.checked);\n };\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n\n \n
\n \n
\n \n Kapasitet\n

\n \n\n \n
\n

Date

\n
\n \n Tidspunkt\n

\n \n\n \n
\n \n
\n \n Kontakt person\n

\n \n\n \n
\n \n
\n \n Status\n

\n
\n\n \n \n
\n
\n \n {numberOfCourses + ' arrangementer'}\n

\n
\n \n {numberOfAllocation + ' tildelt elever'}\n

\n
\n \n
\n
\n \n {!courseStore.loadingCourseTable ? (\n <>\n {courseStore.courses.length > 0 ? (\n <>\n {courseStore.courses.map((row) => (\n \n ))}\n \n ) : (\n <>\n \n \n \n Ingen arrangementer satt opp\n \n \n \n \n )}\n \n ) : (\n <>\n \n \n \n \n \n \n \n \n )}\n \n
\n
\n \n );\n};\n\nexport default observer(CourseTable);\n","import {\n CircularProgress,\n makeStyles,\n MenuItem,\n Select,\n Typography,\n} from '@material-ui/core';\nimport DayPicker, { DayModifiers, NavbarElementProps } from 'react-day-picker';\nimport 'react-day-picker/lib/style.css';\nimport './index.css';\nimport React from 'react';\nimport { getDateTime } from '@/utils/timeUtils';\nimport clsx from 'clsx';\nimport ChevronLeftOutlinedIcon from '@material-ui/icons/ChevronLeftOutlined';\nimport ChevronRightOutlinedIcon from '@material-ui/icons/ChevronRightOutlined';\n\ninterface ICalendarNavbar {\n navbarElementProps: NavbarElementProps;\n fromMonth: Date;\n toMonth: Date;\n changeMonth: (month: Date) => void;\n}\n\nconst calendarNavbarStyles = makeStyles(({ palette }) => ({\n root: {\n '& .MuiSelect-select:focus': {\n backgroundColor: palette.background.default,\n },\n color: palette.primary[900],\n '& .MuiSelect-icon': {\n color: palette.primary[500],\n },\n },\n select: {},\n iconControl: {\n alignSelf: 'center',\n marginLeft: 'auto',\n },\n marginRight: {\n marginRight: '10px',\n },\n pointer: { cursor: 'pointer' },\n selectPadding: {\n padding: '15px 10px 12px 10px',\n },\n}));\n\nconst CalendarNavbar = (props: ICalendarNavbar) => {\n const { navbarElementProps, changeMonth } = props;\n const { month, onPreviousClick, onNextClick, className } = navbarElementProps;\n\n const classes = calendarNavbarStyles();\n\n const handleChange = (m: string) => {\n changeMonth(new Date(month.getFullYear(), MONTHS.indexOf(m)));\n };\n\n return (\n
\n ) =>\n handleChange(e.target.value as string)\n }\n className={clsx(classes.root, classes.select)}\n inputProps={{\n className: classes.selectPadding,\n }}\n >\n {MONTHS.map((m: string) => (\n {`${m} ${month.getFullYear()}`}\n ))}\n \n\n
\n onPreviousClick()}\n />\n onNextClick()}\n />\n
\n
\n );\n};\n\ninterface IComponentProps {\n fromMonth?: Date | null;\n toMonth?: Date | null;\n selectedDays: Date | Date[];\n handleSelectedDays: (day: Date, modifiers: DayModifiers) => void;\n}\n\nconst MONTHS = [\n 'Jan', // January\n 'Feb', // February\n 'Mar', // March\n 'Apr', // April\n 'Mai', // May\n 'Jun', // June\n 'Jul', // July\n 'Aug', // August\n 'Sep', // September\n 'Okt', // October\n 'Nov', // November\n 'Des', // December\n];\n\nconst WEEKDAYS_LONG = [\n 'Søndag', //0, Sunday\n 'Mandag', //1, Monday\n 'Tirsdag', //2, Tuesday\n 'Onsdag', //3, Wednesday\n 'Torsdag', //4, Thursday\n 'Fredag', //5, Friday\n 'Lørdag', //6, Saturday\n];\nconst WEEKDAYS_SHORT = ['S', 'M', 'T', 'O', 'T', 'F', 'L'];\n\nconst useStyles = makeStyles(({ palette }) => ({\n optionsDatePicker: {\n width: '100%',\n minHeight: '287px',\n background: palette.grey[100],\n borderRadius: '4px',\n margin: '0 auto',\n marginTop: '12px',\n padding: '16px',\n '& .MuiTypography-body1': {\n fontSize: '14px',\n lineHeight: '22px',\n margin: '0 4px 0 8px',\n color: palette.primary[900],\n },\n '& .MuiPickersCalendarHeader-switchHeader': {\n display: 'none',\n },\n },\n loading: {\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n },\n}));\n\nconst CalendarCourse = (props: IComponentProps) => {\n const { fromMonth, toMonth, selectedDays, handleSelectedDays } = props;\n const classes = useStyles();\n const [coursePeriod, setCoursePeriod] = React.useState('');\n const [initMonth, setInitMonth] = React.useState(new Date());\n\n React.useEffect(() => {\n if (fromMonth && toMonth) {\n const coursePeriodCal = `${getDateTime(\n fromMonth,\n 'dd. LLL.'\n )} - ${getDateTime(toMonth, 'dd. LLL.')}${getDateTime(toMonth, 'yyyy')}`;\n\n setCoursePeriod(coursePeriodCal.toLocaleLowerCase());\n }\n }, [fromMonth, toMonth]);\n\n React.useEffect(() => {\n if (!Array.isArray(selectedDays)) {\n setInitMonth(selectedDays);\n } else {\n if (fromMonth) {\n setInitMonth(new Date(fromMonth));\n }\n }\n }, [fromMonth, selectedDays]);\n\n const changeMonth = (month: Date): void => {\n setInitMonth(month);\n };\n\n return (\n <>\n \n {fromMonth && toMonth ? (\n <>\n \n Velg aktuelt dager i kursperioden\n

{coursePeriod}

\n
\n \n handleSelectedDays(day, modifiers)\n }\n month={initMonth}\n fromMonth={fromMonth}\n toMonth={toMonth}\n captionElement={() => <>}\n navbarElement={(navbarElementProps: NavbarElementProps) => (\n \n )}\n className=\"CalendarCourse\"\n />\n \n ) : (\n \n )}\n \n \n );\n};\n\nexport default CalendarCourse;\n","import React from 'react';\nimport { observer } from 'mobx-react';\nimport {\n Button,\n FormControl,\n InputAdornment,\n MenuItem,\n Select,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { useStores } from '@/stores';\nimport { CourseStatus, getStatusDisplay } from '@/types/enums/CourseStatus';\nimport { DayModifiers } from 'react-day-picker';\nimport School from '@/types/School';\nimport IStudySubject from '@/types/StudySubject';\nimport { PermIdentity, RoomOutlined } from '@material-ui/icons';\nimport ClearIcon from '@material-ui/icons/Clear';\nimport { CreateUpdateCourse } from '@/types/Course';\nimport CalendarCourse from '@/views/app/admin/common/CalendarCourse';\nimport { getDateFromKarDateType } from '@/utils/timeUtils';\nimport clsx from 'clsx';\nimport CustomCheckBox from '@/components/CustomCheckBox';\nimport courseStyle from '@/views/style/courses';\n\ninterface IComponentProps {\n numberCoursePerDay: number;\n isCheckedChooseExtraCapacity: boolean;\n handleChangeChooseExtraCapacity: (\n event: React.ChangeEvent\n ) => void;\n setNumberCoursePerDay: (num: number) => void;\n resetNumberCoursePerDay: () => void;\n setStatus: (value: CourseStatus) => void;\n setSchool: (value: string) => void;\n setStudySubject: (value: number) => void;\n setCapacity: (value: number) => void;\n setExtraCapacity: (value: number) => void;\n selectedDays: Date | Date[];\n handleSelectedDays: (day: Date, modifiers: DayModifiers) => void;\n handleCreateCourse: () => Promise;\n cancelCreateCourse: () => void;\n}\n\nconst CreateEditCourse = (props: IComponentProps) => {\n const {\n numberCoursePerDay,\n isCheckedChooseExtraCapacity,\n handleChangeChooseExtraCapacity,\n setNumberCoursePerDay,\n resetNumberCoursePerDay,\n setStatus,\n setSchool,\n setStudySubject,\n setCapacity,\n setExtraCapacity,\n selectedDays,\n handleSelectedDays,\n handleCreateCourse,\n cancelCreateCourse,\n } = props;\n\n const courseClasses = courseStyle();\n const { courseStore, schoolStore, studySubjectStore, projectStore } =\n useStores();\n\n return (\n <>\n
\n
\n \n \n {!courseStore.currentCourse.id\n ? 'Opprett arrangement'\n : 'Arrangement info'}\n
\n
\n \n
\n
\n\n
\n \n ) =>\n setStatus(e.target.value as CourseStatus)\n }\n >\n {Object.keys(CourseStatus)\n .filter(\n (k: string) => typeof CourseStatus[k as any] === 'string'\n )\n .map((k1: string) => +k1)\n .map((k2: number) => (\n \n {getStatusDisplay(k2)}\n \n ))}\n \n \n
\n\n
\n \n ) =>\n setSchool(e.target.value as string)\n }\n >\n {schoolStore.highSchools.filter(school => !school.deactivated).map((school: School) => (\n \n {school.schoolName}\n \n ))}\n \n \n
\n\n
\n \n ) =>\n setStudySubject(e.target.value as number)\n }\n >\n {studySubjectStore.studySubjectsBySchoolExternalId.map(\n (studySubject: IStudySubject) => (\n \n {studySubject.studySubjectName}\n \n )\n )}\n \n \n
\n\n {!courseStore.currentCourse.id && (\n
\n \n \n \n \n ),\n endAdornment: (\n \n \n \n ),\n }}\n value={numberCoursePerDay}\n onChange={(e: React.ChangeEvent<{ value: unknown }>) =>\n setNumberCoursePerDay(e.target.value as number)\n }\n />\n \n
\n )}\n
\n \n \n \n \n ),\n endAdornment: (\n \n \n setCapacity(new CreateUpdateCourse().capacity)\n }\n />\n \n ),\n }}\n value={courseStore.currentCourse.capacity}\n onChange={(e: React.ChangeEvent<{ value: unknown }>) =>\n setCapacity(e.target.value as number)\n }\n />\n \n
\n \n \n \n Mulighet til overblastning av arrangementer\n \n ) =>\n setExtraCapacity(e.target.value as number)\n }\n />\n \n \n {courseStore.currentCourse.id && (\n \n Kapasitet: {courseStore.currentCourse.capacity}\n \n )}\n \n \n\n \n \n {!courseStore.currentCourse.id ? 'Opprett arrangement' : 'Lagre'}\n \n \n Avbryt\n \n \n \n );\n};\n\nexport default observer(CreateEditCourse);\n","import { observer } from 'mobx-react';\nimport React from 'react';\nimport clsx from 'clsx';\nimport { Box, Button, Collapse, TableCell, TableRow } from '@material-ui/core';\nimport { IUserDto } from '@/types/User';\nimport { useStores } from '@/stores';\nimport SearchIcon from '@material-ui/icons/Search';\nimport { IStudentStudySubject } from '@/types/StudySubject';\nimport CustomCheckBox from '@/components/CustomCheckBox';\nimport CustomIconButton from '@/components/CustomIconButton';\nimport courseStyle from '@/views/style/courses';\n\ninterface IComponentProps {\n row: IUserDto;\n handleOpenManualAssignDialog: () => void;\n}\n\nconst Row = (props: IComponentProps) => {\n const { row, handleOpenManualAssignDialog } = props;\n const courseClasses = courseStyle();\n const { studySubjectStore, userStore } = useStores();\n const [open, setOpen] = React.useState(false);\n const [studentStudySubjects, setStudentStudySubjects] = React.useState<\n IStudentStudySubject[]\n >([]);\n\n const handleCloseStudent = async (\n open: boolean,\n id: number\n ): Promise => {\n if (open) {\n await studySubjectStore.getStudySubjectsByUserId(id);\n setStudentStudySubjects(studySubjectStore.studentStudySubjects);\n }\n setOpen(open);\n };\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n

\n {row.fullName}\n

\n \n
\n

{`${row.school?.schoolName} ${row.class?.fullName}`}

\n
\n \n \n \n \n \n \n \n \n \n \n \n {studentStudySubjects.map((sss) => (\n \n {`${sss.priority}. ${sss.studySubject.studySubjectName}`}\n \n ))}\n {\n userStore.studentAspiration = row;\n handleOpenManualAssignDialog();\n }}\n >\n Tildel elev\n \n \n \n \n \n \n
\n \n );\n};\n\nexport default observer(Row);\n","import React from 'react';\nimport { observer } from 'mobx-react';\nimport { FilterList } from '@material-ui/icons';\nimport clsx from 'clsx';\nimport ClearIcon from '@material-ui/icons/Clear';\nimport {\n CircularProgress,\n MenuItem,\n Select,\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableRow,\n Typography,\n} from '@material-ui/core';\nimport { useStores } from '@/stores';\nimport Row from './row';\nimport School from '@/types/School';\nimport ExpandMoreIcon from '@material-ui/icons/ExpandMore';\nimport CustomCheckBox from '@/components/CustomCheckBox';\nimport CustomIconButton from '@/components/CustomIconButton';\nimport courseStyle from '@/views/style/courses';\nimport { SELECT_ALL } from '@/types/dto/PaginationRequest.dto';\n\ninterface IComponentProps {\n externalSchoolId: string;\n setExternalSchoolId: (externalSchoolId: string) => void;\n handleOpenManualAssignDialog: () => void;\n}\n\nconst ListStudent = (props: IComponentProps) => {\n const {\n externalSchoolId,\n setExternalSchoolId,\n handleOpenManualAssignDialog,\n } = props;\n\n const courseClasses = courseStyle();\n const { userStore, schoolStore } = useStores();\n\n return (\n <>\n
\n
\n \n \n Påmeldt elever\n
\n
\n \n \n
\n
\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n ) =>\n setExternalSchoolId(e.target.value as string)\n }\n classes={{\n root: courseClasses.rootChooseSecondarySchool,\n select: courseClasses.selectChooseSecondarySchool,\n icon: courseClasses.iconChooseSecondarySchool,\n }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n getContentAnchorEl: null,\n }}\n IconComponent={ExpandMoreIcon}\n inputProps={{\n className: courseClasses.listStudentPadding,\n }}\n >\n \n Alle skoler\n \n {schoolStore.secondarySchools.map((school: School) => (\n \n {school.schoolName}\n \n ))}\n \n\n \n {`${userStore.listStudentOfCourse.length} elever`}\n \n \n \n \n {!userStore.loading ? (\n <>\n {userStore.listStudentOfCourse.length > 0 ? (\n <>\n {userStore.listStudentOfCourse.map((row) => (\n \n ))}\n \n ) : (\n <>\n \n \n \n Ingen elever satt opp\n \n \n \n \n )}\n \n ) : (\n <>\n \n \n \n \n \n \n \n \n )}\n \n
\n
\n \n );\n};\n\nexport default observer(ListStudent);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(() => ({\n heightSearch: {\n height: '52px',\n },\n}));\n\nexport default useStyles;\n","import { IUserDto } from '@/types/User';\nimport { InputAdornment, TextField } from '@material-ui/core';\nimport { SearchOutlined } from '@material-ui/icons';\nimport { Autocomplete } from '@material-ui/lab';\nimport React from 'react';\nimport useStyles from './style';\n\ninterface IComponentProps {\n search: string;\n setSearch: (value: string) => void;\n setStudentId: (id: number) => void;\n listStudent: IUserDto[];\n label?: string;\n}\n\nconst CustomAutoSearchStudent = (props: IComponentProps) => {\n const { search, setSearch, setStudentId, listStudent, label } = props;\n const classes = useStyles();\n\n return (\n ,\n newValue: IUserDto | string\n ) => {\n if (typeof newValue === 'object' && newValue.id) {\n setStudentId(newValue.id);\n }\n }}\n inputValue={search}\n onInputChange={(event, newInputValue) => {\n setSearch(newInputValue);\n }}\n freeSolo\n id=\"search_info_student\"\n disableClearable\n options={listStudent as IUserDto[]}\n getOptionLabel={(student) =>\n typeof student === 'string' ? student : student.fullName\n }\n renderInput={(params) => (\n \n \n \n ),\n className: classes.heightSearch,\n }}\n />\n )}\n />\n );\n};\n\nexport default CustomAutoSearchStudent;\n","import React from 'react';\nimport { observer } from 'mobx-react';\nimport clsx from 'clsx';\nimport { Button, Divider } from '@material-ui/core';\nimport { useStores } from '@/stores';\nimport AccessibilityNewIcon from '@material-ui/icons/AccessibilityNew';\nimport PhoneIphoneOutlinedIcon from '@material-ui/icons/PhoneIphoneOutlined';\nimport EmailOutlinedIcon from '@material-ui/icons/EmailOutlined';\nimport InfoOutlinedIcon from '@material-ui/icons/InfoOutlined';\nimport LocationOnOutlinedIcon from '@material-ui/icons/LocationOnOutlined';\nimport EventOutlinedIcon from '@material-ui/icons/EventOutlined';\nimport { getDateTime } from '@/utils/timeUtils';\nimport SchoolOutlinedIcon from '@material-ui/icons/SchoolOutlined';\nimport courseStyle from '@/views/style/courses';\nimport CustomAutoSearchStudent from '@/components/CustomAutoSearchStudent';\n\ninterface IComponentProps {\n search: string;\n setSearch: (value: string) => void;\n setStudentId: (id: number) => void;\n //handleOpenMovingDialog: () => void;\n}\n\nconst InfoStudent = (props: IComponentProps) => {\n const { search, setSearch, setStudentId } = props;\n const { userStore, studySubjectStore, courseStore } = useStores();\n const courseClasses = courseStyle();\n\n return (\n <>\n
\n
\n
\n \n
\n \n {userStore.student && courseStore.course && (\n <>\n
\n \n {userStore.student.fullName}\n
\n {userStore.student.hasSpecialNeeds && (\n \n \n \n Eleven har spesielle behov\n
\n
\n )}\n \n \n \n \n {userStore.student.phoneNumber}\n \n \n\n \n \n \n {userStore.student.emailAddress}\n \n \n \n \n \n \n \n {`${\n userStore.student.school\n ? userStore.student.school.schoolName\n : 'Ikke definert'\n } skole klasse ${\n userStore.student.class\n ? userStore.student.class.fullName\n : 'Ikke definert'\n }`}\n \n \n \n \n \n
\n \n Tildelt kurs\n
\n \n {studySubjectStore.studentStudySubjects.map((sss) => (\n \n {`${sss.priority}. ${sss.studySubject.studySubjectName}`}\n \n ))}\n \n \n \n
\n \n Tildelt arrangement\n
\n \n \n \n {userStore.student.studentCourses &&\n userStore.student.studentCourses[0] &&\n userStore.student.studentCourses[0].finalAssignedCourse &&\n userStore.student.studentCourses[0].finalAssignedCourse\n .studySubject &&\n userStore.student.studentCourses[0]?.finalAssignedCourse\n .school\n ? userStore.student?.studentCourses[0]\n ?.finalAssignedCourse?.school.schoolName\n : ''}\n \n \n \n \n \n {userStore.student.studentCourses &&\n userStore.student.studentCourses[0] &&\n userStore.student.studentCourses[0].finalAssignedCourse &&\n userStore.student.studentCourses[0].finalAssignedCourse\n .studySubject &&\n userStore.student.studentCourses[0]?.finalAssignedCourse\n .school\n ? getDateTime(\n userStore.student.studentCourses[0]\n ?.finalAssignedCourse.startDate,\n 'dd. LLL.'\n ) +\n ' ' +\n getDateTime(\n userStore.student.studentCourses[0]\n ?.finalAssignedCourse.startDate,\n 'HH:mm'\n ) +\n ' - ' +\n getDateTime(\n userStore.student.studentCourses[0]\n ?.finalAssignedCourse.endDate,\n 'HH:mm'\n )\n : ''}\n \n \n \n \n \n {userStore.student.studentCourses &&\n userStore.student.studentCourses[0] &&\n userStore.student.studentCourses[0].finalAssignedCourse &&\n userStore.student.studentCourses[0].finalAssignedCourse\n .studySubject &&\n userStore.student.studentCourses[0]?.finalAssignedCourse\n .school\n ? userStore.student.studentCourses[0]?.finalAssignedCourse\n .studySubject.studySubjectName\n : ''}\n \n \n \n \n \n {userStore.student.studentCourses &&\n userStore.student.studentCourses[0] &&\n userStore.student.studentCourses[0].finalAssignedCourse &&\n userStore.student.studentCourses[0].finalAssignedCourse\n .studySubject &&\n userStore.student.studentCourses[0]?.finalAssignedCourse\n .school\n ? userStore.student.studentCourses[0]?.finalAssignedCourse\n .courseHolder?.fullName\n : ''}\n \n \n \n \n \n {userStore.student.studentCourses &&\n userStore.student.studentCourses[0] &&\n userStore.student.studentCourses[0].finalAssignedCourse &&\n userStore.student.studentCourses[0].finalAssignedCourse\n .studySubject &&\n userStore.student.studentCourses[0]?.finalAssignedCourse\n .school\n ? userStore.student.studentCourses[0]?.finalAssignedCourse\n .courseHolder?.emailAddress\n : ''}\n \n \n \n \n )}\n \n \n\n {userStore.student && courseStore.course && (\n \n \n \n \n )}\n \n );\n};\n\nexport default observer(InfoStudent);\n","import React from 'react';\nimport { observer } from 'mobx-react';\nimport { DayModifiers } from 'react-day-picker';\nimport { CourseStatus } from '@/types/enums/CourseStatus';\nimport CreateEditCourse from './CreateEditCourse';\nimport ListStudent from './ListStudent';\nimport InfoStudent from './InfoStudent';\nimport { CourseOptionAdmin } from '@/types/enums/CourseOption';\nimport { useStores } from '@/stores';\n\ninterface IComponentProps {\n tabMode: CourseOptionAdmin;\n /** CreateEditCourse */\n numberCoursePerDay: number;\n isCheckedChooseExtraCapacity: boolean;\n handleChangeChooseExtraCapacity: (\n event: React.ChangeEvent\n ) => void;\n setNumberCoursePerDay: (num: number) => void;\n resetNumberCoursePerDay: () => void;\n setStatus: (value: CourseStatus) => void;\n setSchool: (value: string) => void;\n setStudySubject: (value: number) => void;\n setCapacity: (value: number) => void;\n setExtraCapacity: (value: number) => void;\n selectedDays: Date | Date[];\n handleSelectedDays: (day: Date, modifiers: DayModifiers) => void;\n handleCreateCourse: () => Promise;\n cancelCreateCourse: () => void;\n /** CreateEditCourse */\n /** List Student */\n externalSchoolId: string;\n setExternalSchoolId: (externalSchoolId: string) => void;\n handleOpenManualAssignDialog: () => void;\n /** List Student */\n /** Info Student */\n searchInfoStudent: string;\n setSearchInfoStudent: (search: string) => void;\n setStudentId: (id: number) => void;\n //handleOpenMovingDialog: () => void;\n /** Info Student */\n}\n\nconst CourseOptions = (props: IComponentProps) => {\n const {\n tabMode,\n /** CreateEditCourse */\n numberCoursePerDay,\n isCheckedChooseExtraCapacity,\n handleChangeChooseExtraCapacity,\n setNumberCoursePerDay,\n resetNumberCoursePerDay,\n setStatus,\n setSchool,\n setStudySubject,\n setCapacity,\n setExtraCapacity,\n selectedDays,\n handleSelectedDays,\n handleCreateCourse,\n cancelCreateCourse,\n /** CreateEditCourse */\n /** List Student */\n externalSchoolId,\n setExternalSchoolId,\n handleOpenManualAssignDialog,\n /** List Student */\n /** Info Student */\n searchInfoStudent,\n setSearchInfoStudent,\n setStudentId,\n //handleOpenMovingDialog,\n /** Info Student */\n } = props;\n\n const { courseStore } = useStores();\n\n return (\n <>\n {tabMode === CourseOptionAdmin.CREATE_EDIT && (\n \n )}\n\n {tabMode === CourseOptionAdmin.LIST_STUDENT && (\n \n )}\n {tabMode === CourseOptionAdmin.INFO_STUDENT &&\n courseStore.courseId !== courseStore.initCourseId && (\n \n )}\n \n );\n};\n\nexport default observer(CourseOptions);\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n displayFlex: {\n display: 'flex',\n },\n alignItemsCenter: {\n alignItems: 'center',\n },\n rootSelect: {\n color: palette.primary[900],\n },\n select: {\n '&:focus': {\n backgroundColor: palette.background.default,\n },\n },\n iconSelect: {\n color: palette.primary[500],\n },\n selectPadding: {\n padding: '12px 15px',\n },\n}));\n\nexport default useStyles;\n","import { PER_PAGE_OPTIONS } from '@/types/dto/PaginationRequest.dto';\nimport { MenuItem, Select } from '@material-ui/core';\nimport { Pagination } from '@material-ui/lab';\nimport React from 'react';\nimport useStyles from './style';\nimport clsx from 'clsx';\n\ninterface IComponentProps {\n currentPage: number;\n totalRows: number;\n perPage: number;\n handleChoosePage: (page: number) => void;\n changePageOption: (perPage: number) => void;\n}\n\nconst CustomPagination = (props: IComponentProps) => {\n const {\n currentPage,\n totalRows,\n perPage,\n handleChoosePage,\n changePageOption,\n } = props;\n const classes = useStyles();\n\n const calculatePageNumber = (): number => {\n return Math.ceil(totalRows / perPage);\n };\n\n return (\n <>\n {totalRows ? (\n
\n , value: number) =>\n handleChoosePage(value)\n }\n />\n\n ) =>\n changePageOption(event.target.value as number)\n }\n classes={{\n root: classes.rootSelect,\n select: classes.select,\n icon: classes.iconSelect,\n }}\n inputProps={{\n className: classes.selectPadding,\n }}\n >\n {PER_PAGE_OPTIONS.map((t) => (\n \n {t}\n \n ))}\n \n
\n ) : (\n <>\n )}\n \n );\n};\n\nexport default CustomPagination;\n","import React from 'react';\nimport { CKEditor } from '@ckeditor/ckeditor5-react';\nimport Editor from 'ckeditor5-custom-build/build/ckeditor';\nimport { CircularProgress } from '@material-ui/core';\n\ninterface IComponentProps {\n content: string | null | undefined;\n setContent: (content: string) => void;\n disabled?: boolean;\n}\n\nconst CustomEditor = (props: IComponentProps) => {\n const { content, setContent, disabled } = props;\n\n const config = {\n toolbar: {\n items: ['undo', 'redo', 'bold', 'alignment', 'link'],\n shouldNotGroupWhenFull: true,\n },\n language: 'nb',\n fontFamily: {\n supportAllValues: true,\n },\n };\n\n return (\n <>\n }>\n {\n if (editor) {\n editor.setData(content ?? '');\n }\n }}\n onChange={(event: any, editor: any) => {\n if (editor) {\n const html = editor.getData();\n\n setContent(html || '

');\n }\n }}\n config={config}\n />\n
\n \n );\n};\n\nexport default CustomEditor;\n","import { makeStyles } from '@material-ui/core';\n\nconst useEditCourseStyles = makeStyles(() => ({\n root: {\n padding: 20,\n },\n}));\n\nexport default useEditCourseStyles;\n","import { useStores } from '@/stores';\nimport courseStyle from '@/views/style/courses';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport ClearIcon from '@material-ui/icons/Clear';\nimport {\n Button,\n FormControl,\n InputLabel,\n MenuItem,\n Select,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport { IUserDto } from '@/types/User';\nimport CustomEditor from '@/components/CustomEditor';\nimport Loading from '@/components/Loading';\nimport { useEffect } from 'react';\nimport useEditCourseStyles from './style';\nimport EditCourseInformation from './EditCourseInformation';\nimport EditCourseTimes from './EditCourseTimes';\nimport { CreateUpdateCourse } from '@/types/Course';\n\ninterface IComponentProps {\n isFromAdminPanel: boolean;\n}\nconst EditCourse = ({ isFromAdminPanel }: IComponentProps) => {\n const courseClasses = courseStyle();\n const classes = useEditCourseStyles();\n const { courseStore, userStore, errorStore, stateStore } = useStores();\n const { course } = courseStore;\n\n useEffect(() => {\n if (course?.id) userStore.getAllHighSchoolContactByCourseId(course.id);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [course?.id]);\n\n const handleEditCourse = async (): Promise => {\n if (courseStore.course && courseStore.course.id) {\n await courseStore.updateCourseVGS(\n courseStore.course.id,\n CreateUpdateCourse.fromICourse(courseStore.course)\n );\n errorStore.showErrorMessage('Kurset ble oppdatert.', 'success');\n }\n if (isFromAdminPanel) {\n stateStore.setVgsEditCourseDrawerIsOpen(false);\n }\n };\n\n const cancelEditCourse = (): void => {\n if (isFromAdminPanel) {\n stateStore.setVgsEditCourseDrawerIsOpen(false);\n } else {\n courseStore.resetCourse();\n courseStore.resetCourseId();\n }\n };\n\n const setCourseHolderId = (courseHolderId: number) => {\n course &&\n courseStore.setCourse({\n ...course,\n courseHolderId,\n });\n };\n\n const setRoomNumber = (roomNumber: string) => {\n course &&\n courseStore.setCourse({\n ...course,\n roomNumber,\n });\n };\n\n const setCourseInfo = (courseInfo: string) => {\n course &&\n courseStore.setCourse({\n ...course,\n courseInfo,\n });\n };\n\n return (\n <>\n {course ? (\n <>\n
\n
\n Legg til infomasjon\n \n
\n \n
\n \n\n \n \n Kontakt person\n \n 0 ? course.courseHolderId : ''\n }\n onChange={(e: React.ChangeEvent<{ value: unknown }>) =>\n setCourseHolderId(e.target.value as number)\n }\n labelId=\"contact-person-select-label\"\n >\n {userStore.listHighSchoolContactOfCourse.map(\n (user: IUserDto) => (\n \n {user.fullName}\n \n )\n )}\n \n \n\n ) =>\n setRoomNumber(e.target.value as string)\n }\n classes={{ root: courseClasses.widthFull }}\n />\n\n \n
\n
\n\n
\n \n \n Avbryt\n \n
\n \n ) : (\n
\n \n
\n )}\n \n );\n};\n\nexport default observer(EditCourse);\n","import { flexCol } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyle = makeStyles(({ palette, typography }) => ({\n content: {\n width: '358px',\n ...flexCol,\n gap: '6px',\n overflow: 'auto',\n justifyContent: 'flex-start',\n },\n}));\n\nexport default useStyle;\n","import { useStores } from '@/stores';\nimport EditCourse from '@/views/app/VGSadmin/courses/components/CourseOptions/EditCourse';\nimport { Drawer } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport useStyle from './style';\n\ninterface IComponentProps {\n handleCloseVgsEditCourseDrawer: () => void;\n setStartDate: (startDate: Date) => void;\n setEndDate: (endDate: Date) => void;\n setCourseHolderId: (courseHolderId: number) => void;\n setRoomNumber: (roomNumber: string) => void;\n setCourseInfo: (courseInfo: string) => void;\n handleEditCourse: () => Promise;\n cancelEditCourse: () => void;\n}\n\nconst VGSEditCourseDrawer = (props: IComponentProps) => {\n const {\n handleCloseVgsEditCourseDrawer,\n } = props;\n const { stateStore } = useStores();\n const { vgsEditCourseDrawerIsOpen } = stateStore;\n\n const classes = useStyle();\n\n return (\n handleCloseVgsEditCourseDrawer()}\n anchor=\"right\"\n >\n
\n \n
\n \n );\n};\n\nexport default observer(VGSEditCourseDrawer);\n","import {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Slide,\n Typography,\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport React, { forwardRef } from 'react';\nimport { IUserDto } from '@/types/User';\nimport { getDateTime } from '@/utils/timeUtils';\nimport ICourse from '@/types/Course';\n\nconst Transition = forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\ninterface IComponentProps {\n open: boolean;\n handleCloseManualAssignDialog: () => void;\n student: IUserDto;\n course: ICourse;\n manualAssignStudentToCourse: () => Promise;\n}\n\nconst ManualAssignDialog = (props: IComponentProps) => {\n const {\n open,\n handleCloseManualAssignDialog,\n student,\n course,\n manualAssignStudentToCourse,\n } = props;\n\n return (\n handleCloseManualAssignDialog()}\n TransitionComponent={Transition}\n fullWidth\n >\n Tildel elev\n \n \n \n Skal {student.fullName} tildeles{' '}\n {course?.studySubject.studySubjectName} ved{' '}\n {course?.school.schoolName} i{' '}\n {getDateTime(course?.startDate, 'dd. LLL.')}?\n \n \n \n \n \n await manualAssignStudentToCourse()}\n >\n Tildel elev\n \n \n \n );\n};\n\nexport default ManualAssignDialog;\n","export enum CourseOrderBy {\n STUDY_SUBJECT_NAME = 'studySubjectName',\n START_DATE = 'startDate',\n SCHOOL_NAME = 'schoolName',\n STATUS = 'status',\n}\n","export const scrollTop = (): void => {\n document.body.scrollTop = 0;\n document.documentElement.scrollTop = 0;\n};\n","import {\n Dialog,\n DialogTitle,\n Slide,\n IconButton,\n DialogContent,\n Divider,\n Select,\n MenuItem,\n LinearProgress,\n Button\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport React, { forwardRef, useState } from 'react';\nimport CloseIcon from '@material-ui/icons/Close';\nimport clsx from 'clsx';\nimport courseStyle from '@/views/style/courses';\nimport ICourse from '@/types/Course';\nimport { getDateTime } from '@/utils/timeUtils';\nimport { SELECT_ALL } from '@/types/dto/PaginationRequest.dto';\nimport IStudySubject from '@/types/StudySubject';\nimport {useStores} from \"@/stores\";\nimport {ISchool} from \"@/types/School\";\n\nconst Transition = forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\ninterface IComponentProps {\n open: boolean;\n handleCloseMovingMulDialog: () => void;\n studentIds: number[];\n course: ICourse; // Old course\n studySubjects: IStudySubject[];\n studySubjectId: number | string;\n handleChooseStudySubjectId: (studySubjectId: number | string) => void;\n courses: ICourse[];\n newCourseId: number | string;\n handleChooseNewCourseId: (newCourseId: number | string) => void;\n loadingNewCourse: boolean;\n movingAssignMul: () => Promise;\n}\n\nconst MovingMulDialog = (props: IComponentProps) => {\n const {\n open,\n handleCloseMovingMulDialog,\n studentIds,\n course,\n studySubjects,\n studySubjectId,\n handleChooseStudySubjectId,\n courses,\n newCourseId,\n handleChooseNewCourseId,\n loadingNewCourse,\n movingAssignMul\n } = props;\n const courseClasses = courseStyle();\n const [newCourse, setNewCourse] = useState();\n const [schools, setSchools] = useState();\n let schoolName = '';\n\n\n const { userStore } = useStores();\n const getContentMenu = (value: unknown): string => {\n if (typeof value === 'string' && value === SELECT_ALL) {\n return 'Finn nytt arrangement';\n }\n\n if (typeof value === 'number') {\n const course = courses.find((c) => c.id === value);\n if (course) {\n return course.school.schoolName + ' - ' +getDateTime(course.startDate, 'dd. LLL.') + ' ' + getDateTime(course.startDate, 'HH:mm') + '-' + getDateTime(course.endDate, 'HH:mm');\n }\n }\n return '';\n };\n\n React.useEffect(() => {\n async function extracted() {\n const schools: ISchool[] = [];\n for (const studentId of studentIds) {\n const student = await userStore.getStudentById(studentId);\n if (student != null && student.school != null)\n schools.push(student.school);\n }\n setSchools(schools);\n }\n extracted();\n }, [studentIds, userStore]);\n\n const isSchoolAvailableForThisDate = (date: Date): boolean => {\n let ret = true;\n const dDate = new Date(date);\n if (schools != null) {\n for (let i = 0; i < schools.length; i++) {\n const school = schools[i];\n if (school.unavailableDates != null)\n // eslint-disable-next-line\n school.unavailableDates.forEach(ud => {\n if (new Date(ud.start) <= dDate && dDate <= new Date(ud.end)) {\n schoolName = school.schoolName;\n ret = false;\n }\n });\n }\n }\n return ret;\n };\n\n function handleChooseNewCourse(value: any) {\n handleChooseNewCourseId(value);\n const course = courses.find((c) => c.id === value);\n setNewCourse(course);\n }\n\n return (\n <>\n \n
\n \n \n \n Flytt deltaker\n
\n \n \n \n \n \n \n \n Antall deltakere som flyttes: {studentIds.length}\n \n\n \n Fra:\n \n
\n {course.studySubject.studySubjectName}\n
\n
\n {course.school.schoolName}\n
\n
\n {getDateTime(course.startDate, 'dd. LLL.')} {' '}\n {getDateTime(course.startDate, 'HH:mm')} -\n {getDateTime(course.endDate, 'HH:mm')}\n
\n
\n \n \n \n Til:\n \n ) =>\n handleChooseStudySubjectId(e.target.value as any)\n }\n classes={{\n root: courseClasses.movingMulDialogSelect,\n icon: courseClasses.color500\n }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left'\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left'\n },\n getContentAnchorEl: null,\n classes: {\n paper: courseClasses.movingMulDialogPager,\n list: courseClasses.movingMulDialogList\n }\n }}\n className={clsx(\n courseClasses.widthFull,\n courseClasses.marginBottom16\n )}\n >\n \n Finn kurs\n \n\n {studySubjects.map((studySubject: IStudySubject) => (\n \n {studySubject.studySubjectName}\n \n ))}\n \n\n {!loadingNewCourse ? (\n ) =>\n handleChooseNewCourse(e.target.value as any)\n }\n classes={{\n root: courseClasses.movingMulDialogSelect,\n icon: courseClasses.color500\n }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left'\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left'\n },\n getContentAnchorEl: null,\n classes: {\n paper: courseClasses.movingMulDialogPager,\n list: courseClasses.movingMulDialogList\n }\n }}\n className={clsx(\n courseClasses.widthFull,\n courseClasses.marginBottom16\n )}\n renderValue={(value: unknown) => getContentMenu(value)}\n >\n {courses.sort((a, b) => {\n if ((a.school.schoolName ?? '') > (b.school.schoolName ?? '')) {\n return 1;\n }\n if ((a.school.schoolName ?? '') < (b.school.schoolName ?? '')) {\n return -1;\n }\n return (a.startDate ?? '') > (b.startDate ?? '') ? 1 : -1;\n }).map((course: ICourse) => (\n \n
\n
\n {course.school.schoolName}\n
\n
\n \n {`${getDateTime(\n course.startDate,\n 'dd LLLL'\n )} | kl. ${getDateTime(\n course.startDate,\n 'HH:mm'\n )} - ${getDateTime(course.endDate, 'HH:mm')}`}\n
\n \n {`${course.capacity - course.availableCapacity}/${\n course.capacity\n }`}\n
\n \n \n \n ))}\n \n ) : (\n \n )}\n\n {/*{newCourse != null && !isSchoolAvailableForThisDate(newCourse.startDate) ? 'Hmmm': ''}*/}\n\n {newCourse != null && !isSchoolAvailableForThisDate(newCourse.startDate) && \n {schoolName} er utilgjenglig denne dagen.}\n
\n \n \n
\n {\n await movingAssignMul();\n }}\n >\n Flytt\n \n \n Avbryt\n \n
\n \n
\n \n \n \n );\n};\n\nexport default MovingMulDialog;\n","import courseStyle from '@/views/style/courses';\nimport React, { forwardRef } from 'react';\nimport CheckCircleOutlineOutlinedIcon from '@material-ui/icons/CheckCircleOutlineOutlined';\nimport ICourse from '@/types/Course';\nimport { getDateTime } from '@/utils/timeUtils';\nimport { Button, Dialog, Slide } from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport clsx from 'clsx';\n\nconst Transition = forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\ninterface IComponentProps {\n numberStudent: number;\n oldCourse: ICourse;\n newCourse: ICourse;\n open: boolean;\n handleClose: () => void;\n}\n\nconst NotifySuccessMovingStudent = (props: IComponentProps) => {\n const { numberStudent, oldCourse, newCourse, open, handleClose } = props;\n const courseClasses = courseStyle();\n\n return (\n \n
\n
\n \n
\n {`Antall deltaker som flyttet til nytt arrangment: ${numberStudent}`}
\n
\n {`Fra: ${oldCourse.studySubject.studySubjectName}, ${\n oldCourse.school.schoolName\n }, ${getDateTime(oldCourse.startDate, 'dd LLL')}. ${getDateTime(\n oldCourse.startDate,\n 'HH:mm'\n )} - ${getDateTime(oldCourse.endDate, 'HH:mm')}`}\n
\n
\n {`Til: ${newCourse.studySubject.studySubjectName}, ${\n newCourse.school.schoolName\n }, ${getDateTime(newCourse.startDate, 'dd LLL')}. ${getDateTime(\n newCourse.startDate,\n 'HH:mm'\n )} - ${getDateTime(newCourse.endDate, 'HH:mm')}`}\n
\n
\n
\n \n {/**/}\n {/* Gå til nytt tildelt arrangment*/}\n {/**/}\n \n\n \n \n \n );\n};\n\nexport default NotifySuccessMovingStudent;\n","import { CourseStatus, getStatusDisplay } from '@/types/enums/CourseStatus';\nimport courseStyle from '@/views/style/courses';\nimport {\n Dialog,\n DialogTitle,\n Slide,\n IconButton,\n DialogContent,\n Button,\n Select,\n MenuItem,\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport React, { forwardRef } from 'react';\nimport clsx from 'clsx';\nimport CloseIcon from '@material-ui/icons/Close';\n\nconst Transition = forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\ninterface IComponentProps {\n open: boolean;\n statusNew: CourseStatus;\n handleCloseDialog: () => void;\n updateStatusMultipleCourse: () => Promise;\n setStatusNew: (status: CourseStatus) => void;\n}\n\nconst ChangeMultipleStatusDialog = (props: IComponentProps) => {\n const {\n open,\n statusNew,\n handleCloseDialog,\n updateStatusMultipleCourse,\n setStatusNew,\n } = props;\n const courseClasses = courseStyle();\n return (\n <>\n \n
\n \n \n \n Endre status\n
\n \n \n \n \n \n\n \n ) =>\n setStatusNew(e.target.value as CourseStatus)\n }\n classes={{\n root: courseClasses.movingMulDialogSelect,\n icon: courseClasses.color500,\n }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n getContentAnchorEl: null,\n classes: {\n paper: courseClasses.movingMulDialogPager,\n list: courseClasses.movingMulDialogList,\n },\n }}\n className={clsx(\n courseClasses.widthFull,\n courseClasses.marginTop10\n )}\n >\n {Object.keys(CourseStatus)\n .filter(\n (k: string) => typeof CourseStatus[k as any] === 'string'\n )\n .map((k1: string) => +k1)\n .map((k2: number) => (\n \n {getStatusDisplay(k2)}\n \n ))}\n \n \n\n \n \n
\n {\n await updateStatusMultipleCourse();\n }}\n >\n Endre status\n \n \n Avbryt\n \n
\n \n
\n \n \n \n );\n};\n\nexport default ChangeMultipleStatusDialog;\n","import CustomDayPickerRange from '@/components/CustomDayPickerRange';\nimport courseStyle from '@/views/style/courses';\nimport { Dialog, DialogContent, Slide, Button } from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport React, { forwardRef } from 'react';\nimport { RangeModifier } from 'react-day-picker';\nimport clsx from 'clsx';\n\nconst Transition = forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\ninterface IComponentProps {\n open: boolean;\n handleCloseDialog: () => void;\n rangeStartDate: RangeModifier;\n setRangeStartDate: (range: RangeModifier) => void;\n handleFilterStartDate: () => void;\n}\n\nconst DialogFilterDate = (props: IComponentProps) => {\n const {\n open,\n handleCloseDialog,\n rangeStartDate,\n setRangeStartDate,\n handleFilterStartDate,\n } = props;\n const courseClasses = courseStyle();\n\n return (\n handleCloseDialog()}\n TransitionComponent={Transition}\n >\n \n \n \n \n \n
\n {\n if (rangeStartDate.from && rangeStartDate.to) {\n handleFilterStartDate();\n }\n }}\n disabled={!(rangeStartDate.from && rangeStartDate.to)}\n >\n Søk\n \n \n Avbryt\n \n
\n \n
\n \n );\n};\n\nexport default DialogFilterDate;\n","import React from 'react';\nimport { observer } from 'mobx-react';\nimport { useStores } from '@/stores';\nimport {\n PER_PAGE_OPTIONS,\n SELECT_ALL,\n UNDEFINED,\n} from '@/types/dto/PaginationRequest.dto';\nimport CourseHeader from './components/CourseHeader';\nimport CourseFilter from './components/CourseFilter';\nimport CourseTable from './components/CourseTable';\nimport CourseOptions from './components/CourseOptions';\nimport { useParams } from 'react-router-dom';\nimport { CourseStatus } from '@/types/enums/CourseStatus';\nimport { DateUtils, DayModifiers, RangeModifier } from 'react-day-picker';\nimport ICourse, { CreateUpdateCourse, State } from '@/types/Course';\nimport NotifyMessage from '@/components/NotifyMessage';\nimport clsx from 'clsx';\nimport { CourseOptionAdmin } from '@/types/enums/CourseOption';\nimport CustomPagination from '@/components/CustomPagination';\nimport courseStyle from '@/views/style/courses';\nimport { StepType } from '@/types/StepType';\nimport VGSEditCourseDrawer from './components/VGSEditCourseDrawer';\nimport { EventCheckbox } from '@/types/enums/EventCheckbox';\n//import MovingDialog from './components/MovingDialog';\nimport { changeDate } from '@/utils/timeUtils';\nimport ManualAssignDialog from './components/ManualAssignDialog';\nimport { scrollTop } from '@/utils/common.utils';\nimport MovingMulDialog from './components/MovingMulDialog';\nimport NotifySuccessMovingStudent from './components/MovingMulDialog/notify-success';\nimport ChangeMultipleStatusDialog from './components/ChangeMultipleStatusDialog';\nimport DialogFilterDate from './components/DialogFilterDate';\n\ninterface UrlParams {\n projectId?: string;\n}\n\nconst AdminCourses = () => {\n const { projectId } = useParams();\n const courseClasses = courseStyle();\n\n const {\n courseStore,\n schoolStore,\n studySubjectStore,\n projectStore,\n userStore,\n stateStore,\n studentCourseStore,\n } = useStores();\n\n const [steps] = React.useState([\n {\n title: 'Planlegging', // 0\n },\n {\n title: 'Kursperiode', // 1\n },\n {\n title: 'Evaluering', // 2\n },\n ]);\n const [step, setStep] = React.useState(-1);\n React.useEffect(() => {\n if (projectStore.currentProject) {\n const project = projectStore.currentProject;\n const now = new Date();\n\n if (\n project.registeringPeriodStartDate &&\n project.registeringPeriodEndDate\n ) {\n if (\n new Date(project.registeringPeriodStartDate) <= now &&\n now <= new Date(project.registeringPeriodEndDate)\n ) {\n setStep(0);\n return;\n }\n }\n\n if (project.coursePeriodStartDate && project.coursePeriodEndDate) {\n if (\n new Date(project.coursePeriodStartDate) <= now &&\n now <= new Date(project.coursePeriodEndDate)\n ) {\n setStep(1);\n return;\n }\n }\n\n if (\n project.evaluationPeriodStartDate &&\n project.evaluationPeriodEndDate\n ) {\n if (\n new Date(project.evaluationPeriodStartDate) <= now &&\n now <= new Date(project.evaluationPeriodEndDate)\n ) {\n setStep(2);\n return;\n }\n }\n }\n }, [projectStore, projectStore.currentProject]);\n\n /** Course table */\n const [skip, setSkip] = React.useState(0);\n const [take, setTake] = React.useState(+PER_PAGE_OPTIONS[0]);\n const [currentPage, setCurrentPage] = React.useState(1);\n const [openNotifyMessage, setOpenNotifyMessage] =\n React.useState(false);\n const handleCloseNotifyMessage = () => {\n setOpenNotifyMessage(false);\n };\n const [openNotifyMessageWarning, setOpenNotifyMessageWarning] =\n React.useState(false);\n const handleCloseNotifyMessageWarning = () => {\n setOpenNotifyMessageWarning(false);\n };\n const [openNotifyMessageFail, setOpenNotifyMessageFail] =\n React.useState(false);\n const handleCloseNotifyMessageFail = () => {\n setOpenNotifyMessageFail(false);\n };\n\n const [studySubjectId, setStudySubjectId] = React.useState(\n SELECT_ALL\n );\n\n const handleSearchStudySubjectId = (studySubjectId: number | string) => {\n _resetGetList();\n setStudySubjectId(studySubjectId);\n };\n\n const [externalHighSchoolId, setExternalHighSchoolId] =\n React.useState(courseStore.externalHighSchoolId);\n\n const handleExternalHighSchoolId = (externalHighSchoolId: string) => {\n _resetGetList();\n setExternalHighSchoolId(externalHighSchoolId);\n };\n\n const [courseStatus, setCourseStatus] = React.useState(\n SELECT_ALL\n );\n\n const handleCourseStatus = (status: CourseStatus | string) => {\n _resetGetList();\n setCourseStatus(status);\n };\n\n const _resetGetList = (): void => {\n setSkip(0);\n setTake(+PER_PAGE_OPTIONS[0]);\n setCurrentPage(1);\n };\n\n const getList = React.useCallback(\n () => {\n scrollTop();\n _resetChooseCheckbox();\n\n const projectIdNr = projectStore.currentProject?.id\n ? Number(projectStore.currentProject?.id)\n : 0;\n userStore.UpdateStudentList(projectIdNr);\n courseStore.getList({\n skip,\n take,\n projectId,\n studySubjectId,\n externalSchoolId: externalHighSchoolId,\n status: courseStatus,\n beginStartDate: rangeStartDate.from,\n endStartDate: rangeStartDate.to,\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [\n skip,\n take,\n courseStore,\n projectId,\n studySubjectId,\n externalHighSchoolId,\n courseStatus,\n ]\n );\n\n const getStudySubject = React.useCallback(() => {\n if (projectId) {\n studySubjectStore.getStudySubjectByProjectId(+projectId);\n }\n }, [studySubjectStore, projectId]);\n\n const getHighSchool = React.useCallback(() => {\n if (projectId) {\n schoolStore.getHighSchoolByProjectId(+projectId);\n }\n }, [schoolStore, projectId]);\n\n const getCourseStatus = React.useCallback(() => {\n if (projectId) {\n courseStore.getCourseStatusByProjectId(+projectId);\n }\n }, [courseStore, projectId]);\n\n React.useEffect(() => {\n getStudySubject();\n getHighSchool();\n getCourseStatus();\n getList();\n }, [getStudySubject, getHighSchool, getCourseStatus, getList]);\n\n const changePageOption = (take: number): void => {\n handleChoosePage(1);\n setTake(take);\n };\n\n const handleChoosePage = (page: number): void => {\n setSkip((page - 1) * take);\n setCurrentPage(page);\n };\n\n const chooseCourse = (id: number): void => {\n if (courseStore.courseId === id) {\n switch (tabMode) {\n case CourseOptionAdmin.CREATE_EDIT:\n _cancelCreateCourse();\n courseStore.resetCourseId();\n break;\n case CourseOptionAdmin.LIST_STUDENT:\n break;\n case CourseOptionAdmin.INFO_STUDENT:\n break;\n }\n\n return;\n }\n\n courseStore.setCourseId(id);\n };\n\n const [isUndoOrRedo, setIsUndoOrRedo] = React.useState(false);\n const editCourse = (id: number): void => {\n chooseCourse(id);\n setIsUndoOrRedo(true);\n };\n\n const deleteCourse = async (id: number): Promise => {\n try {\n const result = await courseStore.deleteCourse(id);\n _insertState(result);\n setOpenNotifyMessage(true);\n _resetGetListCallApi();\n } catch (error) {\n throw error;\n }\n };\n\n const duplicateCourse = async (id: number): Promise => {\n try {\n const result = await courseStore.duplicateCourse(id);\n _insertState(result);\n setOpenNotifyMessage(true);\n getList();\n } catch (error) {\n throw error;\n }\n };\n\n const [checkBoxChooseAll, setCheckBoxChooseAll] = React.useState('');\n const checkBoxChooseAllCourse = (isChecked: boolean): void => {\n if (isChecked) {\n const courseIds = courseStore.courses.map((c) => c.id);\n courseStore.setCourseIds(courseIds);\n setCheckBoxChooseAll(SELECT_ALL);\n } else {\n courseStore.resetCourseIds();\n setCheckBoxChooseAll('');\n }\n };\n\n const checkBoxChooseCourse = (isChecked: boolean, courseId: number): void => {\n if (isChecked) {\n courseStore.courseIds.push(courseId);\n if (courseStore.courseIds.length === courseStore.courses.length) {\n setCheckBoxChooseAll(SELECT_ALL);\n }\n } else {\n const index = courseStore.courseIds.indexOf(courseId);\n if (index > -1) {\n courseStore.courseIds.splice(index, 1);\n\n if (checkBoxChooseAll === SELECT_ALL) {\n setCheckBoxChooseAll('');\n }\n }\n }\n };\n\n const [openDialogFilterDate, setOpenDialogFilterDate] =\n React.useState(false);\n const [rangeStartDate, setRangeStartDate] = React.useState({\n from: undefined,\n to: undefined,\n });\n const handleCloseDialogFilterDate = (): void => {\n setOpenDialogFilterDate(false);\n };\n const handleOpenDialogFilterDate = (): void => {\n setOpenDialogFilterDate(true);\n };\n const handleFilterStartDate = (): void => {\n courseStore.getList({\n skip,\n take,\n projectId,\n studySubjectId,\n externalSchoolId: externalHighSchoolId,\n status: courseStatus,\n beginStartDate: rangeStartDate.from,\n endStartDate: rangeStartDate.to,\n });\n handleCloseDialogFilterDate();\n };\n /** Course table */\n\n /** Course option */\n const [tabMode, setTabMode] = React.useState(\n CourseOptionAdmin.CREATE_EDIT\n );\n const chooseTabCourseOption = (mode: CourseOptionAdmin) => {\n setTabMode(mode);\n };\n\n const removeAllAllocations = async (): Promise => {\n if (courseStore.courseIds.length) {\n await courseStore.removeAllAllocations(courseStore.courseIds);\n\n // _insertState(result);\n _resetGetListCallApi();\n setOpenNotifyMessage(true);\n } else {\n setOpenNotifyMessageWarning(true);\n }\n };\n\n const deleteListCourse = async (): Promise => {\n if (projectId && courseStore.courseIds.length) {\n const result = await courseStore.deleteListCourse(\n +projectId,\n courseStore.courseIds\n );\n\n _insertState(result);\n _resetGetListCallApi();\n setOpenNotifyMessage(true);\n } else {\n setOpenNotifyMessageWarning(true);\n }\n };\n\n const [statusNew, setStatusNew] = React.useState(\n CourseStatus.DRAFT\n );\n const updateStatusMultipleCourse = async (): Promise => {\n handleCloseMultipleStatusDialog();\n if (courseStore.courseIds.length) {\n const courseDtos = courseStore.courseIds.map((id) => {\n return { ...new CreateUpdateCourse(), id, status: statusNew };\n });\n const result = await courseStore.updateStatusMultipleCourse(courseDtos);\n\n _insertState(result);\n setCheckBoxChooseAll('');\n //_resetGetListCallApi();\n getList();\n setOpenNotifyMessage(true);\n } else {\n setOpenNotifyMessageWarning(true);\n }\n };\n\n const [openMultipleStatusDialog, setOpenMultipleStatusDialog] =\n React.useState(false);\n const handleCloseMultipleStatusDialog = (): void => {\n setOpenMultipleStatusDialog(false);\n };\n const handleOpenMultipleStatusDialog = (): void => {\n setOpenMultipleStatusDialog(true);\n };\n\n const _insertState = (state: State): void => {\n if (courseStore.normalStack === 0) {\n courseStore.undoStack = [];\n }\n courseStore.insertState(state);\n };\n\n const _resetGetListCallApi = (): void => {\n _resetGetList();\n _resetChooseCheckbox();\n setStudySubjectId(SELECT_ALL);\n setExternalHighSchoolId(SELECT_ALL);\n setCourseStatus(SELECT_ALL);\n setRangeStartDate({ from: undefined, to: undefined });\n\n courseStore.getList({\n skip: 0,\n take: +PER_PAGE_OPTIONS[0],\n search: '',\n projectId,\n studySubjectId: SELECT_ALL,\n externalSchoolId: SELECT_ALL,\n status: SELECT_ALL,\n beginStartDate: undefined,\n endStartDate: undefined,\n });\n };\n\n const _resetChooseCheckbox = (): void => {\n courseStore.resetCourseIds();\n if (checkBoxChooseAll === SELECT_ALL) {\n setCheckBoxChooseAll('');\n }\n };\n\n const handleUndo = async (): Promise => {\n const state = courseStore.redoStack.pop();\n if (projectId && state) {\n if (state.mode === EventCheckbox.EDIT_COURSE) {\n const result = await courseStore.updateCourseToUndoOrRedo(\n state.courseIds[0],\n state.courseDto\n );\n courseStore.undoStack.push(result);\n } else if (state.mode === EventCheckbox.UPDATE_STATUS_MULTIPLE_EVENT) {\n const result = await courseStore.updateStatusMultipleCourse(\n state.courseDtos\n );\n courseStore.undoStack.push(result);\n } else {\n await courseStore.undoCourse(+projectId, state);\n courseStore.undoStack.push(state);\n }\n\n --courseStore.normalStack;\n _resetGetListCallApi();\n }\n };\n\n const handleRedo = async (): Promise => {\n const state = courseStore.undoStack.pop();\n if (projectId && state) {\n if (state.mode === EventCheckbox.EDIT_COURSE) {\n const result = await courseStore.updateCourseToUndoOrRedo(\n state.courseIds[0],\n state.courseDto\n );\n courseStore.redoStack.push(result);\n } else if (state.mode === EventCheckbox.UPDATE_STATUS_MULTIPLE_EVENT) {\n const result = await courseStore.updateStatusMultipleCourse(\n state.courseDtos\n );\n courseStore.redoStack.push(result);\n } else {\n await courseStore.redoCourse(+projectId, state);\n courseStore.redoStack.push(state);\n }\n\n ++courseStore.normalStack;\n _resetGetListCallApi();\n }\n };\n\n const [exportLoading, setExportLoading] = React.useState(false);\n const getCourseExcelExport = async (): Promise => {\n if (projectId) {\n try {\n setExportLoading(true);\n await courseStore.getCourseExcelExport(+projectId);\n setExportLoading(false);\n } catch (err) {\n setExportLoading(false);\n }\n }\n };\n\n /** Course option - Create or Edit Course */\n const [numberCoursePerDay, setNumberCoursePerDay] = React.useState(1);\n const [isCheckedChooseExtraCapacity, setIsCheckedChooseExtraCapacity] =\n React.useState(false);\n\n React.useEffect(() => {\n if (projectId) {\n projectStore.getById(+projectId);\n }\n }, [projectStore, projectId]);\n\n React.useEffect(() => {\n if (\n tabMode === CourseOptionAdmin.CREATE_EDIT &&\n courseStore.courseId !== courseStore.initCourseId\n ) {\n courseStore.getUpdateCourseById(courseStore.courseId);\n }\n\n if (\n (tabMode === CourseOptionAdmin.INFO_STUDENT ||\n tabMode === CourseOptionAdmin.LIST_STUDENT) &&\n courseStore.courseId !== courseStore.initCourseId\n ) {\n courseStore.getCourseById(courseStore.courseId);\n }\n }, [courseStore, courseStore.courseId, tabMode]);\n\n React.useEffect(() => {\n schoolStore.getPopulatedHighSchools();\n }, [schoolStore, schoolStore.getPopulatedHighSchools]);\n\n React.useEffect(() => {\n if (courseStore.currentCourse.externalSchoolId) {\n studySubjectStore.getByExternalSchoolId(\n courseStore.currentCourse.externalSchoolId\n );\n }\n }, [\n studySubjectStore,\n studySubjectStore.getByExternalSchoolId,\n courseStore.currentCourse.externalSchoolId,\n ]);\n\n React.useEffect(() => {\n if (courseStore.currentCourse.startDate) {\n setSelectedDays(new Date(courseStore.currentCourse.startDate));\n }\n }, [courseStore.currentCourse, courseStore.currentCourse.startDate]);\n\n const resetNumberCoursePerDay = (): void => {\n setNumberCoursePerDay(1);\n };\n\n const setStatus = (value: CourseStatus): void => {\n courseStore.setCurrentCourse({\n ...courseStore.currentCourse,\n status: value,\n });\n };\n\n const setSchool = (value: string): void => {\n courseStore.setCurrentCourse({\n ...courseStore.currentCourse,\n externalSchoolId: value,\n });\n };\n\n const setStudySubject = (value: number): void => {\n courseStore.setCurrentCourse({\n ...courseStore.currentCourse,\n studySubjectId: value,\n });\n };\n\n const setCapacity = (value: number): void => {\n courseStore.setCurrentCourse({\n ...courseStore.currentCourse,\n capacity: value,\n });\n };\n\n const setExtraCapacity = (value: number): void => {\n if (!isCheckedChooseExtraCapacity) {\n if (courseStore.currentCourse.id) {\n value = courseStore.currentCourse.extraCapacity;\n } else {\n value = 0;\n }\n }\n\n courseStore.setCurrentCourse({\n ...courseStore.currentCourse,\n extraCapacity: value,\n });\n };\n\n const handleChangeChooseExtraCapacity = (\n event: React.ChangeEvent\n ): void => {\n setIsCheckedChooseExtraCapacity(event.target.checked);\n\n if (!event.target.checked) {\n setExtraCapacity(0);\n }\n };\n\n const [selectedDays, setSelectedDays] = React.useState([]);\n const handleSelectedDays = (day: Date, modifiers: DayModifiers): void => {\n const { selected } = modifiers;\n if (Array.isArray(selectedDays)) {\n const sds = selectedDays.concat();\n if (selected) {\n const selectedIndex = sds.findIndex((selectedDay) =>\n DateUtils.isSameDay(selectedDay, day)\n );\n sds.splice(selectedIndex, 1);\n } else {\n sds.push(day);\n }\n setSelectedDays(sds);\n } else {\n setSelectedDays(day);\n }\n };\n\n const handleCreateCourse = async (): Promise => {\n if (projectId) {\n try {\n let model: CreateUpdateCourse = {\n ...courseStore.currentCourse,\n projectId: +projectId,\n numberCoursePerDay,\n };\n\n let result;\n if (courseStore.currentCourse.id && !Array.isArray(selectedDays)) {\n model = {\n ...model,\n startDate: changeDate(model.startDate, selectedDays),\n };\n\n if (isUndoOrRedo) {\n result = await courseStore.updateCourseToUndoOrRedo(\n courseStore.currentCourse.id,\n model\n );\n _insertState(result);\n courseStore.setCurrentCourse(model);\n } else {\n result = await courseStore.updateCourse(\n courseStore.currentCourse.id,\n model\n );\n courseStore.setCurrentCourse(result);\n }\n courseStore.getList({\n skip,\n take,\n projectId,\n studySubjectId,\n externalSchoolId: externalHighSchoolId,\n status: courseStatus,\n beginStartDate: rangeStartDate.from,\n endStartDate: rangeStartDate.to,\n });\n _resetChooseCheckbox();\n } else {\n model = {\n ...model,\n selectedDays: Array.isArray(selectedDays) ? selectedDays : [],\n };\n\n result = await courseStore.createCourse(model);\n if (result) {\n _resetCourse();\n }\n }\n\n if (result) {\n setOpenNotifyMessage(true);\n }\n } catch (error: any) {\n console.log(error);\n setOpenNotifyMessageFail(true);\n }\n }\n };\n\n const _cancelCreateCourse = () => {\n courseStore.setCurrentCourse(new CreateUpdateCourse());\n setNumberCoursePerDay(1);\n setSelectedDays([]);\n setIsCheckedChooseExtraCapacity(false);\n };\n\n const _resetCourse = (): void => {\n _cancelCreateCourse();\n\n // Reset get list\n let isChange = false;\n if (skip !== 0) {\n setSkip(0);\n isChange = true;\n }\n\n if (take !== +PER_PAGE_OPTIONS[0]) {\n setTake(+PER_PAGE_OPTIONS[0]);\n isChange = true;\n }\n\n if (currentPage !== 1) {\n setCurrentPage(1);\n isChange = true;\n }\n\n if (studySubjectId !== SELECT_ALL) {\n setStudySubjectId(SELECT_ALL);\n isChange = true;\n }\n\n if (externalHighSchoolId !== SELECT_ALL) {\n setExternalHighSchoolId(SELECT_ALL);\n isChange = true;\n }\n\n if (courseStatus !== SELECT_ALL) {\n setCourseStatus(SELECT_ALL);\n isChange = true;\n }\n\n if (!rangeStartDate.from || !rangeStartDate.to) {\n setRangeStartDate({ from: undefined, to: undefined });\n }\n\n if (!isChange) {\n _resetChooseCheckbox();\n courseStore.getList({\n skip: 0,\n take: +PER_PAGE_OPTIONS[0],\n projectId,\n studySubjectId: SELECT_ALL,\n externalSchoolId: SELECT_ALL,\n status: SELECT_ALL,\n beginStartDate: undefined,\n endStartDate: undefined,\n });\n }\n };\n /** Course option - Create or Edit Course */\n\n /** Course option - List Student Course */\n const [externalSchoolId, setExternalSchoolId] =\n React.useState(SELECT_ALL);\n\n const getAllStudent = React.useCallback(() => {\n if (projectId) {\n userStore.getAllStudentAspirationByProjectId(\n +projectId,\n externalSchoolId\n );\n }\n }, [userStore, projectId, externalSchoolId]);\n\n React.useEffect(() => {\n if (projectId && tabMode === CourseOptionAdmin.LIST_STUDENT) {\n getAllStudent();\n schoolStore.getAllSecondarySchoolByProjectId(+projectId);\n }\n }, [\n schoolStore,\n projectId,\n courseStore.initCourseId,\n tabMode,\n getAllStudent,\n ]);\n /** Course option - List Student Course */\n /** Course option - Infomation Student */\n const [searchInfoStudent, setSearchInfoStudent] = React.useState('');\n const [studentId, setStudentId] = React.useState(0);\n const timeoutRef = React.useRef(\n setTimeout(() => {\n return;\n }, 300)\n );\n\n const getAllStudentMinifiedByCourseId = React.useCallback(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n userStore.getAllStudentMinifiedByCourseId(\n courseStore.courseId,\n searchInfoStudent\n );\n }, 1000);\n }, [userStore, courseStore.courseId, searchInfoStudent]);\n\n React.useEffect(() => {\n if (tabMode === CourseOptionAdmin.INFO_STUDENT) {\n getAllStudentMinifiedByCourseId();\n }\n }, [tabMode, getAllStudentMinifiedByCourseId]);\n\n React.useEffect(() => {\n if (\n studentId !== 0 &&\n courseStore.courseId !== courseStore.initCourseId &&\n tabMode === CourseOptionAdmin.INFO_STUDENT\n ) {\n userStore.getStudentById(studentId, courseStore.courseId, true);\n studySubjectStore.getStudySubjectsByUserId(studentId);\n }\n }, [tabMode, userStore, studySubjectStore, studentId, courseStore]);\n\n React.useEffect(() => {\n if (\n courseStore.courseIds.length === 1 &&\n courseStore.courseIds[0] !== courseStore.courseId &&\n tabMode === CourseOptionAdmin.INFO_STUDENT\n ) {\n courseStore.setNewCourse(undefined);\n courseStore.getCourseById(courseStore.courseIds[0], true);\n }\n }, [tabMode, courseStore, courseStore.courseIds.length]);\n\n const chooseStudent = (courseId: number, studentId: number): void => {\n setStudentId(studentId);\n courseStore.setCourseId(courseId);\n setTabMode(CourseOptionAdmin.INFO_STUDENT);\n };\n\n /** Course option - Infomation Student */\n /** Course option */\n\n /** VGS edit course drawer */\n const [vgsCourseId, setVgsCourseId] = React.useState(UNDEFINED);\n const chooseCourseShowInfoVGS = (courseId: number): void => {\n setVgsCourseId(courseId);\n stateStore.setVgsEditCourseDrawerIsOpen(true);\n };\n const handleCloseVgsEditCourseDrawer = (): void => {\n setVgsCourseId(UNDEFINED);\n stateStore.setVgsEditCourseDrawerIsOpen(false);\n setUpdateCourse(new CreateUpdateCourse());\n courseStore.resetCourse();\n };\n React.useEffect(() => {\n if (vgsCourseId !== UNDEFINED) {\n courseStore.getCourseById(vgsCourseId);\n userStore.getAllHighSchoolContactByCourseId(vgsCourseId);\n }\n }, [userStore, courseStore, vgsCourseId]);\n\n const [updateCourse, setUpdateCourse] = React.useState(\n new CreateUpdateCourse()\n );\n const setStartDate = (startDate: Date) => {\n setUpdateCourse({ ...updateCourse, startDate });\n\n if (courseStore.course) {\n courseStore.setCourse({ ...courseStore.course, startDate });\n }\n };\n\n const setEndDate = (endDate: Date) => {\n setUpdateCourse({ ...updateCourse, endDate });\n\n if (courseStore.course) {\n courseStore.setCourse({ ...courseStore.course, endDate });\n }\n };\n\n const setCourseHolderId = (courseHolderId: number) => {\n setUpdateCourse({ ...updateCourse, courseHolderId });\n\n if (courseStore.course) {\n courseStore.setCourse({ ...courseStore.course, courseHolderId });\n }\n };\n\n const setRoomNumber = (roomNumber: string) => {\n setUpdateCourse({ ...updateCourse, roomNumber });\n\n if (courseStore.course) {\n courseStore.setCourse({ ...courseStore.course, roomNumber });\n }\n };\n\n const setCourseInfo = (courseInfo: string) => {\n setUpdateCourse({ ...updateCourse, courseInfo });\n\n if (courseStore.course) {\n courseStore.setCourse({ ...courseStore.course, courseInfo });\n }\n };\n\n const handleEditCourse = async (): Promise => {\n if (vgsCourseId !== UNDEFINED) {\n await courseStore.updateCourseVGS(vgsCourseId, updateCourse);\n handleCloseVgsEditCourseDrawer();\n setOpenNotifyMessage(true);\n }\n };\n\n const cancelEditCourse = (): void => {\n handleCloseVgsEditCourseDrawer();\n };\n /** VGS edit course drawer */\n\n /** Move student */\n // const [loadingDetail, setLoadingDetail] = React.useState(false);\n // const [openMovingDialog, setOpenMovingDialog] =\n // React.useState(false);\n // const handleCloseMovingDialog = (): void => {\n // setOpenMovingDialog(false);\n // };\n\n // const handleOpenMovingDialog = (): void => {\n // setOpenMovingDialog(true);\n // };\n\n // const movingAssign = async (): Promise => {\n // if (\n // userStore.student &&\n // userStore.student.id &&\n // courseStore.course &&\n // courseStore.newCourse\n // ) {\n // await studentCourseStore.movingAssign(\n // userStore.student.id,\n // courseStore.course.id,\n // courseStore.newCourse.id\n // );\n // courseStore.resetCourseIds();\n // courseStore.setNewCourse(undefined);\n // getList();\n // setLoadingDetail(true);\n // handleCloseMovingDialog();\n // setOpenNotifyMessage(true);\n // }\n // };\n /** Move student */\n\n /** ManualAssignDialog */\n const [openManualAssignDialog, setOpenManualAssignDialog] =\n React.useState(false);\n const handleCloseManualAssignDialog = (): void => {\n setOpenManualAssignDialog(false);\n };\n\n const handleOpenManualAssignDialog = (): void => {\n setOpenManualAssignDialog(true);\n };\n\n const manualAssignStudentToCourse = async (): Promise => {\n if (userStore.studentAspiration) {\n await studentCourseStore.manualAssignStudentToCourse(\n userStore.studentAspiration.id,\n courseStore.course?.id\n );\n\n userStore.studentAspiration = undefined;\n getList();\n handleCloseManualAssignDialog();\n setOpenNotifyMessage(true);\n }\n };\n /** ManualAssignDialog */\n\n /** Move multiple student */\n const [openMovingMulDialog, setOpenMovingMulDialog] =\n React.useState(true);\n const [studentIds, setStudentIds] = React.useState([]);\n const [course, setCourse] = React.useState(undefined);\n const [mulStudySubjectId, setMulStudySubjectId] = React.useState<\n number | string\n >(SELECT_ALL);\n const [mulCourses, setMulCourse] = React.useState([]);\n const [newCourseId, setNewCourseId] = React.useState(\n SELECT_ALL\n );\n const [newCourse, setNewCourse] = React.useState(\n undefined\n );\n const [loadingNewCourse, setLoadingNewCourse] =\n React.useState(false);\n const [openNotifySuccess, setOpenNotifySuccess] =\n React.useState(false);\n\n const handleCloseMovingMulDialog = (): void => {\n setOpenMovingMulDialog(false);\n };\n\n const getCoursesMinified = async () => {\n if (projectId) {\n try {\n setLoadingNewCourse(true);\n const courses = await courseStore.getCoursesMinified(\n +projectId,\n mulStudySubjectId !== SELECT_ALL ? +mulStudySubjectId : undefined\n );\n\n if (course) {\n const indexOldCourse = courses.map((c) => c.id).indexOf(course.id);\n if (indexOldCourse > -1) {\n courses.splice(indexOldCourse, 1);\n }\n }\n\n setMulCourse(courses);\n setLoadingNewCourse(false);\n } catch (error) {\n console.log(\n `Error get list course by projectId and studySubjectId: ${error}`\n );\n setLoadingNewCourse(false);\n }\n }\n };\n\n React.useEffect(() => {\n getCoursesMinified();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [mulStudySubjectId]);\n\n const handleOpenMovingMulDialog = (\n studentIds: number[],\n course: ICourse\n ): void => {\n setStudentIds(studentIds);\n setCourse(course);\n if (course.studySubjectId !== mulStudySubjectId) {\n setMulStudySubjectId(course.studySubjectId);\n setNewCourseId(SELECT_ALL);\n }\n setOpenMovingMulDialog(true);\n };\n\n const handleChooseStudySubjectId = (\n studySubjectId: number | string\n ): void => {\n setMulStudySubjectId(studySubjectId);\n setNewCourseId(SELECT_ALL);\n setMulCourse([]);\n };\n\n const handleChooseNewCourseId = (newCourseId: number | string): void => {\n const newCourse = mulCourses.find((c) => c.id === newCourseId);\n setNewCourse(newCourse);\n setNewCourseId(newCourseId);\n };\n\n const movingAssignMul = async (): Promise => {\n if (studentIds.length && course && newCourseId !== SELECT_ALL) {\n await studentCourseStore.movingAssignMul(\n studentIds,\n course.id,\n +newCourseId\n );\n handleCloseMovingMulDialog();\n handleOpenNotifySuccess();\n }\n };\n\n const handleOpenNotifySuccess = (): void => {\n setOpenNotifySuccess(true);\n };\n\n const handleCloseNotifySuccess = (): void => {\n setOpenNotifySuccess(false);\n setMulCourse([]);\n setMulStudySubjectId(SELECT_ALL);\n setNewCourseId(SELECT_ALL);\n setNewCourse(undefined);\n getList();\n };\n /** Move multiple student */\n\n return (\n <>\n \n \n \n
\n \n \n
\n\n
\n \n
\n \n \n \n \n \n \n \n \n\n {/* {userStore.student && courseStore.course && courseStore.newCourse && (\n \n )} */}\n\n \n\n {userStore.studentAspiration && courseStore.course && (\n \n )}\n\n {studentIds.length && course && (\n \n )}\n\n {studentIds.length && course && newCourse && (\n \n )}\n\n \n\n \n \n );\n};\n\nexport default observer(AdminCourses);\n","import { makeStyles } from '@material-ui/core';\n\nconst useCourseFilterStyles = makeStyles(({ breakpoints, palette }) => ({\n root: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingLeft: 116,\n backgroundColor: '#C6CADEAA',\n },\n search: {\n position: 'relative',\n width: '611px',\n height: '52px',\n padding: `4px 0`,\n boxSizing: 'content-box',\n [breakpoints.down('md')]: {\n width: '500px',\n },\n },\n tabs: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n width: 358,\n '& .MuiTabs-root': {\n width: '100%',\n '& .MuiTabs-flexContainer': {\n width: '100%',\n height: '100%',\n '& .MuiTab-root': {\n flexGrow: 1,\n },\n },\n },\n },\n activeTab: {\n color: palette.primary.dark,\n },\n tabIndicator: {\n backgroundColor: palette.primary.main,\n },\n}));\n\nexport default useCourseFilterStyles;\n","import { observer } from 'mobx-react';\nimport React from 'react';\nimport { CourseOptionVGS } from '@/types/enums/CourseOption';\nimport { Tab, Tabs } from '@material-ui/core';\nimport CustomSearch from '@/components/CustomSearch';\nimport useCourseFilterStyles from './style';\n\ninterface IComponentProps {\n tabMode: CourseOptionVGS;\n chooseTabCourseOption: (mode: CourseOptionVGS) => void;\n search: string;\n setSearch: (value: string) => void;\n handleSearch: () => void;\n}\n\nconst CourseFilter = ({\n tabMode,\n chooseTabCourseOption,\n search,\n setSearch,\n handleSearch,\n}: IComponentProps) => {\n const classes = useCourseFilterStyles();\n\n return (\n
\n
\n \n
\n
\n >,\n newValue: CourseOptionVGS\n ) => {\n chooseTabCourseOption(newValue);\n }}\n classes={{ indicator: classes.tabIndicator }}\n >\n \n \n \n
\n
\n );\n};\n\nexport default observer(CourseFilter);\n","export enum SurveyOption {\n CREATE = 0,\n EDIT = 1,\n}\n\nexport enum QuestionRight {\n ONLY_ANSWER = 0,\n ONLY_CREATE_EDIT = 1,\n FULL_RIGHT = 2,\n}\n","import CustomCheckBox from '@/components/CustomCheckBox';\nimport CustomIconButton from '@/components/CustomIconButton';\nimport courseStyle from '@/views/style/courses';\nimport { TableHead, TableRow, TableCell, Typography } from '@material-ui/core';\nimport { FC } from 'react';\nimport clsx from 'clsx';\n\nconst NestedStudentTableHeader: FC = () => {\n const courseClasses = courseStyle();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n Besøkende\n \n \n \n \n Fravær\n \n \n \n \n );\n};\n\nexport default NestedStudentTableHeader;\n","import CustomCheckBox from '@/components/CustomCheckBox';\nimport CustomIconButton from '@/components/CustomIconButton';\nimport { IUserDto } from '@/types/User';\nimport SchoolHoverCard from '@/views/app/common/Students/StudentCourseTable/StudentCourseRow/ContactPersonCell/SchoolHoverCard';\nimport courseStyle from '@/views/style/courses';\nimport { TableRow, TableCell, Tooltip } from '@material-ui/core';\nimport { AccessibilityNew, CreateOutlined } from '@material-ui/icons';\nimport { FC } from 'react';\nimport clsx from 'clsx';\nimport { useStores } from '@/stores';\nimport { observer } from 'mobx-react';\nimport { CourseStatus } from '@/types/enums/CourseStatus';\n\ninterface INestedStudentTableRowProps {\n student: IUserDto;\n selectStudent: (studentId: number) => void;\n toggleAbsence: (student: IUserDto) => void;\n courseStatus?: CourseStatus;\n}\n\nconst NestedStudentTableRow: FC = ({\n student,\n selectStudent,\n toggleAbsence,\n courseStatus,\n}) => {\n const courseClasses = courseStyle();\n const { userStore, projectStore } = useStores();\n\n const handleContactPerson = (externalSchoolId: string): void => {\n userStore.resetContactPerson();\n if (externalSchoolId) {\n userStore.getContactPersonByExternalSchoolId(externalSchoolId);\n }\n };\n\n const studentCourse = student.studentCourses?.find(\n (c) => c.finalAssignedCourse?.projectId === projectStore.currentProject?.id\n );\n\n const absence = !studentCourse?.attendance;\n\n return (\n student.id && selectStudent(student.id)}\n className={courseClasses.nestedStudentTableRow}\n >\n \n \n \n \n \n \n \n \n {student.fullName}\n \n {\n if (student.school && student.school.externalId) {\n handleContactPerson(student.school.externalId);\n }\n }}\n >\n \n )\n }\n >\n \n {`${student.school?.schoolName} ${student.class?.fullName}`}\n \n \n \n \n toggleAbsence(student)}\n disabled={courseStatus === CourseStatus.CANCELLED}\n />\n \n \n \n \n \n \n \n\n student.id && selectStudent(student.id)}\n >\n \n \n \n \n \n );\n};\n\nexport default observer(NestedStudentTableRow);\n","import { makeStyles } from '@material-ui/core';\n\nconst useNestedStudentTableStyles = makeStyles(() => ({\n nestedWrapperCell: {\n padding: 0,\n border: 'none',\n },\n}));\n\nexport default useNestedStudentTableStyles;\n","import { useStores } from '@/stores';\nimport { CreateOrUpdateStudentCourseDto } from '@/types/StudentCourse';\nimport { IUserDto } from '@/types/User';\nimport courseStyle from '@/views/style/courses';\nimport {\n TableRow,\n TableCell,\n Collapse,\n Box,\n Table,\n Typography,\n TableBody,\n CircularProgress,\n} from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport { FC } from 'react';\nimport NestedStudentTableHeader from './NestedStudentTableHeader';\nimport NestedStudentTableRow from './NestedStudentTableRow';\nimport useNestedStudentTableStyles from './style';\nimport clsx from 'clsx';\nimport ICourse from '@/types/Course';\n\ninterface INestedStudentTableProps {\n course: ICourse;\n students: IUserDto[];\n setStudents: (students: IUserDto[]) => void;\n open: boolean;\n chooseStudent: (courseId: number, studentId: number) => void;\n loading: boolean;\n}\n\nconst NestedStudentTable: FC = ({\n students,\n setStudents,\n course,\n open,\n chooseStudent,\n loading,\n}) => {\n const classes = useNestedStudentTableStyles();\n const courseClasses = courseStyle();\n const {\n studentCourseStore,\n userStore,\n courseStore,\n projectStore,\n errorStore,\n } = useStores();\n\n const selectStudent = (studentId: number) =>\n chooseStudent(course.id, studentId);\n\n const toggleAbsence = async (student: IUserDto) => {\n if (!student.studentCourses) return;\n\n const studentCourse =\n !!student.studentCourses &&\n student.studentCourses.find(\n (c) =>\n c.finalAssignedCourse?.projectId === projectStore.currentProject?.id\n );\n const createOrUpdateStudentCourseDto: CreateOrUpdateStudentCourseDto = {\n ...studentCourse,\n attendance: !studentCourse?.attendance,\n };\n\n if (createOrUpdateStudentCourseDto.id) {\n const result = await studentCourseStore.updateStudentCourse(\n createOrUpdateStudentCourseDto.id,\n createOrUpdateStudentCourseDto\n );\n\n if (result) {\n courseStore.setCourseId(course.id);\n errorStore.showErrorMessage(\n 'Fravær oppdatert for ' + student.fullName,\n 'success'\n );\n if (student.id) {\n await userStore.getStudentById(student.id, course.id);\n if (userStore.student) {\n const i = students.findIndex((s) => s.id === userStore.student?.id);\n if (i >= 0) {\n const currentStudents = [...students];\n currentStudents[i] = userStore.student;\n setStudents(currentStudents);\n }\n }\n }\n }\n }\n };\n\n return (\n \n \n \n \n \n \n \n {!loading ? (\n <>\n {students.length ? (\n students\n .sort((a, b) =>\n (a.fullName ?? '') > (b.fullName ?? '') ? 1 : -1\n )\n .map((student) => (\n \n ))\n ) : (\n \n \n \n Det er ingen elever i dette kurset enda.\n \n \n \n )}\n \n ) : (\n <>\n \n \n \n \n \n \n \n \n )}\n \n
\n
\n
\n
\n
\n );\n};\n\nexport default observer(NestedStudentTable);\n","import { useStores } from '@/stores';\nimport ICourse from '@/types/Course';\nimport React, { FC } from 'react';\nimport {\n TableCell,\n TableRow,\n Typography,\n CircularProgress,\n} from '@material-ui/core';\nimport { getDateTime } from '@/utils/timeUtils';\nimport { observer } from 'mobx-react';\nimport clsx from 'clsx';\nimport AccessibilityNewIcon from '@material-ui/icons/AccessibilityNew';\nimport CustomCheckBox from '@/components/CustomCheckBox';\nimport CustomIconButton from '@/components/CustomIconButton';\nimport courseStyle from '@/views/style/courses';\nimport ButtonCourseStatus from '@/components/ButtonCourseStatus';\nimport CapacityCourse from '@/components/CapacityCourse';\nimport CreateOutlinedIcon from '@material-ui/icons/CreateOutlined';\nimport { IUserDto } from '@/types/User';\nimport NestedStudentTable from './NestedStudentTable';\nimport { CourseStatus } from '@/types/enums/CourseStatus';\nimport { GetAppOutlined } from '@material-ui/icons';\n\ninterface IComponentProps {\n row: ICourse;\n chooseCourse: (id: number) => void;\n chooseStudent: (courseId: number, studentId: number) => void;\n listParticipantOfCourseExport: (courseId: number) => Promise;\n}\n\nconst Row: FC = ({\n row,\n chooseCourse,\n chooseStudent,\n listParticipantOfCourseExport,\n}) => {\n const { courseStore, userStore } = useStores();\n const courseClasses = courseStyle();\n const [open, setOpen] = React.useState(false);\n const [students, setStudents] = React.useState([]);\n const [loading, setLoading] = React.useState(false);\n\n const _getAllStudentByCourseId = async (courseId: number): Promise => {\n setStudents([]);\n setLoading(true);\n const students = await userStore.getAllStudentByCourseId(row.id);\n setStudents(students);\n setLoading(false);\n };\n\n const handleCloseCourseDetail = async (\n open: boolean,\n courseId: number,\n event?: React.MouseEvent\n ): Promise => {\n event?.stopPropagation();\n //userStore.setListStudentOfCourse([]);\n setOpen(open);\n\n if (open) {\n await _getAllStudentByCourseId(row.id);\n }\n };\n\n const [loadingExport, setLoadingExport] = React.useState(false);\n const beforeListParticipantOfCourseExport = async (\n event: React.MouseEvent,\n courseId: number\n ): Promise => {\n event.stopPropagation();\n try {\n setLoadingExport(true);\n await listParticipantOfCourseExport(courseId);\n setLoadingExport(false);\n } catch (error) {\n setLoadingExport(false);\n }\n };\n\n return (\n <>\n chooseCourse(row.id)}\n >\n \n \n \n \n \n \n \n \n \n {row.studySubject?.studySubjectName\n ? row.studySubject.studySubjectName\n : 'Ikke definert'}\n \n\n \n \n \n \n {getDateTime(row.startDate, 'dd. LLL.')}\n \n \n {`${getDateTime(row.startDate, 'HH:mm')} - ${getDateTime(\n row.endDate,\n 'HH:mm'\n )}`}\n \n \n \n
\n {row.courseHolder?.fullName\n ? row.courseHolder.fullName\n : 'Ikke definert'}\n
\n \n \n \n \n \n \n \n \n \n \n ) =>\n await beforeListParticipantOfCourseExport(event, row.id)\n }\n >\n {loadingExport ? (\n \n ) : (\n \n )}\n \n \n \n \n \n \n \n {(row.status === CourseStatus.ACTIVE ||\n row.status === CourseStatus.PUBLISHED ||\n row.status === CourseStatus.CANCELLED) && (\n \n )}\n \n );\n};\n\nexport default observer(Row);\n","import { CourseOrderBy } from '@/types/enums/CourseOrderBy';\nimport {\n Table,\n TableBody,\n TableCell,\n TableContainer,\n TableHead,\n TableRow,\n TableSortLabel,\n Typography,\n CircularProgress,\n} from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport courseStyle from '@/views/style/courses';\nimport CustomCheckBox from '@/components/CustomCheckBox';\nimport CustomIconButton from '@/components/CustomIconButton';\nimport { ASC } from '@/types/dto/PaginationRequest.dto';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport ArrowDropUpIcon from '@material-ui/icons/ArrowDropUp';\nimport clsx from 'clsx';\nimport { useStores } from '@/stores';\nimport Row from './row';\nimport { CourseStatus } from '@/types/enums/CourseStatus';\nimport CustomSelect from '@/components/CustomSelect';\ninterface IComponentProps {\n handleSortTable: (orderBy: string) => void;\n orderBy: string;\n sortDirection: 'asc' | 'desc';\n chooseCourse: (id: number) => void;\n chooseStudent: (courseId: number, studentId: number) => void;\n studySubjectId: number | string;\n handleSearchStudySubjectId: (studySubjectId: number | string) => void;\n courseStatus: CourseStatus | string;\n handleCourseStatus: (courseStatus: CourseStatus | string) => void;\n listParticipantOfCourseExport: (courseId: number) => Promise;\n}\n\nconst CourseTable = (props: IComponentProps) => {\n const {\n handleSortTable,\n sortDirection,\n orderBy,\n chooseCourse,\n chooseStudent,\n studySubjectId,\n handleSearchStudySubjectId,\n courseStatus,\n handleCourseStatus,\n listParticipantOfCourseExport,\n } = props;\n\n const courseClasses = courseStyle();\n const { courseStore, studySubjectStore } = useStores();\n\n const [numberOfCourses, setNumberOfCourses] = React.useState(0);\n React.useEffect(() => {\n setNumberOfCourses(courseStore.totalCount);\n }, [courseStore, courseStore.totalCount]);\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n \n \n\n \n
\n \n
\n \n Kapasitet\n

\n \n\n \n
\n handleSortTable(CourseOrderBy.START_DATE)}\n IconComponent={() =>\n sortDirection === ASC &&\n orderBy === CourseOrderBy.START_DATE ? (\n \n ) : (\n \n )\n }\n classes={{ root: courseClasses.whiteSpaceNowrap }}\n >\n

Date

\n \n
\n \n Tidspunkt\n

\n
\n\n \n
\n

Vgs ansvarlig

\n
\n \n Kontakt person\n

\n \n\n \n
\n \n
\n \n Status\n

\n
\n\n \n\n \n \n
\n \n {numberOfCourses + ' arrangementer'}\n

\n
\n \n
\n
\n
\n \n {!courseStore.loadingCourseTable ? (\n <>\n {courseStore.courses.length > 0 ? (\n <>\n {courseStore.courses.map((row) => (\n \n ))}\n \n ) : (\n <>\n \n \n \n Ingen arrangementer satt opp\n \n \n \n \n )}\n \n ) : (\n <>\n \n \n \n \n \n \n \n \n )}\n \n
\n
\n \n );\n};\n\nexport default observer(CourseTable);\n","import { makeStyles } from '@material-ui/core';\n\nconst useVGSStudentInfoStyles = makeStyles(() => ({\n root: {\n padding: 16,\n },\n studentInformationSection: {\n display: 'flex',\n flexDirection: 'column',\n marginTop: 16,\n gap: 16,\n },\n studentInformationItem: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n gap: 16,\n },\n}));\n\nexport default useVGSStudentInfoStyles;\n","import ICourse from './Course';\n\nexport interface IStudentCourse {\n id?: number;\n note?: string;\n finalAssignedCourse?: ICourse;\n attendance?: boolean;\n studentId?: number;\n finalAssignedCourseId?: number;\n}\n\nexport class CreateOrUpdateStudentCourseDto implements IStudentCourse {\n id?: number;\n note?: string;\n attendance?: boolean;\n studentId?: number;\n finalAssignedCourseId?: number;\n}\n","import { useStores } from '@/stores';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport clsx from 'clsx';\nimport courseStyle from '@/views/style/courses';\nimport CustomAutoSearchStudent from '@/components/CustomAutoSearchStudent';\nimport { Button, Divider, Switch, Typography } from '@material-ui/core';\nimport AccessibilityNew from '@material-ui/icons/AccessibilityNew';\nimport { getDateTime } from '@/utils/timeUtils';\nimport CustomEditor from '@/components/CustomEditor';\nimport useVGSStudentInfoStyles from './style';\nimport {\n PhoneIphoneOutlined,\n EmailOutlined,\n InfoOutlined,\n LocationOnOutlined,\n EventOutlined,\n SchoolOutlined,\n} from '@material-ui/icons';\nimport { CreateOrUpdateStudentCourseDto } from '@/types/StudentCourse';\nimport { CourseStatus } from '@/types/enums/CourseStatus';\ninterface IComponentProps {\n search: string;\n setSearch: (value: string) => void;\n}\n\nconst InfoStudent = ({ search, setSearch }: IComponentProps) => {\n const {\n userStore,\n courseStore,\n studentCourseStore,\n errorStore,\n projectStore,\n } = useStores();\n\n const courseClasses = courseStyle();\n const classes = useVGSStudentInfoStyles();\n\n const handleUpdateStudentCourse = async (): Promise => {\n if (userStore.student && userStore.student.studentCourses) {\n let createOrUpdateStudentCourseDto = new CreateOrUpdateStudentCourseDto();\n createOrUpdateStudentCourseDto = {\n ...createOrUpdateStudentCourseDto,\n ...userStore.student.studentCourses[0],\n };\n\n if (createOrUpdateStudentCourseDto.id) {\n const result = await studentCourseStore.updateStudentCourse(\n createOrUpdateStudentCourseDto.id,\n createOrUpdateStudentCourseDto\n );\n if (result) {\n errorStore.showErrorMessage('Oppdatering lagret', 'success');\n if (\n userStore.studentId !== userStore.initStudentId &&\n courseStore.courseId !== courseStore.initCourseId\n ) {\n userStore.getStudentById(userStore.studentId, courseStore.courseId);\n }\n }\n }\n }\n };\n\n const setAttendance = (attendance: boolean): void => {\n if (userStore.student && userStore.student.studentCourses) {\n const updatedStudent = { ...userStore.student };\n if (!updatedStudent.studentCourses) return;\n const studentCourseIndex = updatedStudent.studentCourses.findIndex(\n (sc) => sc.finalAssignedCourseId === courseStore.courseId\n );\n\n if (studentCourseIndex < 0) return;\n\n updatedStudent.studentCourses[studentCourseIndex].attendance =\n !attendance;\n\n userStore.setStudent(updatedStudent);\n }\n };\n\n const setNote = (note: string): void => {\n if (userStore.student && userStore.student.studentCourses) {\n userStore.setStudent({\n ...userStore.student,\n studentCourses: [\n // TODO - This will override all courses, and needs to be fixed\n {\n ...userStore.student.studentCourses[0],\n note,\n },\n ],\n });\n }\n };\n\n const cancelInfoStudent = (): void => {\n if (\n userStore.studentId !== userStore.initStudentId &&\n courseStore.courseId !== courseStore.initCourseId\n ) {\n userStore.getStudentById(userStore.studentId, courseStore.courseId);\n }\n };\n\n const attendance = userStore.student?.studentCourses?.find(\n (c) => c.finalAssignedCourse?.projectId === projectStore.currentProject?.id\n )?.attendance;\n\n return (\n <>\n
\n Elev info\n userStore.setStudentId(id)}\n listStudent={userStore.listMinifiedStudentOfCourse}\n />\n \n {userStore.student && courseStore.course && (\n <>\n
\n {userStore.student.fullName}\n {userStore.student.hasSpecialNeeds && (\n
\n \n \n Eleven har spesielle behov\n \n
\n )}\n
\n
\n \n \n {userStore.student.phoneNumber}\n \n
\n\n
\n \n \n {userStore.student.emailAddress}\n \n
\n
\n
\n \n \n {`${\n userStore.student.school\n ? userStore.student.school.schoolName\n : 'Ikke definert'\n } skole klasse ${\n userStore.student.class\n ? userStore.student.class.fullName\n : 'Ikke definert'\n }`}\n \n
\n
\n\n \n
\n Tildelt arrangement\n
\n \n \n {courseStore.course.school.schoolName}\n \n
\n
\n \n \n {`${getDateTime(\n courseStore.course.startDate,\n 'dd. LLL.'\n )} ${getDateTime(\n courseStore.course.startDate,\n 'HH:mm'\n )} - ${getDateTime(courseStore.course.endDate, 'HH:mm')}`}\n \n
\n
\n \n \n {courseStore.course.studySubject\n ? courseStore.course.studySubject.studySubjectName\n : 'Ikke definert'}\n \n
\n
\n \n \n {courseStore.course.courseHolder?.fullName}\n \n
\n
\n \n \n {courseStore.course.courseHolder?.emailAddress}\n \n
\n
\n\n \n\n
\n Tilbakemelding fra arrangør\n
\n Fravær\n ) =>\n setAttendance(event.target.checked as boolean)\n }\n checked={!attendance}\n color=\"default\"\n classes={{\n switchBase: courseClasses.switchBase,\n track: courseClasses.switchTrack,\n }}\n />\n
\n
\n Merknad\n \n
\n
\n \n )}\n
\n\n {userStore.student && courseStore.course && (\n \n \n Lagre\n \n \n Avbryt\n \n \n )}\n \n );\n};\n\nexport default observer(InfoStudent);\n","import { useStores } from '@/stores';\nimport { CourseOptionVGS } from '@/types/enums/CourseOption';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport EditCourse from './EditCourse';\nimport InfoStudent from './InfoStudent';\n\ninterface IComponentProps {\n tabMode: CourseOptionVGS;\n /** Info Student */\n searchInfoStudent: string;\n setSearchInfoStudent: (search: string) => void;\n /** Info Student */\n}\n\nconst CourseOptions = ({\n tabMode,\n searchInfoStudent,\n setSearchInfoStudent,\n}: IComponentProps) => {\n const { courseStore } = useStores();\n\n return (\n <>\n {tabMode === CourseOptionVGS.EDIT &&\n courseStore.courseId !== courseStore.initCourseId && }\n {tabMode === CourseOptionVGS.INFO_STUDENT && (\n \n )}\n \n );\n};\n\nexport default observer(CourseOptions);\n","import { observer } from 'mobx-react';\nimport React, { useEffect, useState } from 'react';\nimport CourseFilter from './components/CourseFilter';\nimport clsx from 'clsx';\nimport { CourseOptionVGS } from '@/types/enums/CourseOption';\nimport CourseTable from './components/CourseTable';\nimport CourseOptions from './components/CourseOptions';\nimport {\n ASC,\n DESC,\n PER_PAGE_OPTIONS,\n SELECT_ALL,\n} from '@/types/dto/PaginationRequest.dto';\nimport { CourseOrderBy } from '@/types/enums/CourseOrderBy';\nimport { useStores } from '@/stores';\nimport { useParams } from 'react-router-dom';\nimport CustomPagination from '@/components/CustomPagination';\nimport courseStyle from '@/views/style/courses';\nimport { CourseStatus } from '@/types/enums/CourseStatus';\nimport { StepType } from '@/types/StepType';\nimport { getStepVGS } from '@/utils/dashboardUtils';\nimport AdminHeader from '../../admin/common/AdminHeader';\nimport StepStatus from '@/components/StepStatus';\nimport { scrollTop } from '@/utils/common.utils';\n\ninterface UrlParams {\n projectId?: string;\n}\n\nconst steps: StepType[] = [\n {\n title: 'Planlegging',\n },\n {\n title: 'Kursperiode',\n },\n];\n\nconst VGSAdminCourses = () => {\n const { projectId } = useParams();\n const courseClasses = courseStyle();\n const { courseStore, userStore, projectStore, studySubjectStore } =\n useStores();\n\n const [step, setStep] = useState(0);\n const [tabMode, setTabMode] = useState(CourseOptionVGS.EDIT);\n\n useEffect(() => {\n if (courseStore.courseId !== courseStore.initCourseId) {\n courseStore.getCourseById(courseStore.courseId);\n\n if (tabMode === CourseOptionVGS.EDIT) {\n userStore.getAllHighSchoolContactByCourseId(courseStore.courseId);\n }\n }\n }, [courseStore, courseStore.courseId, tabMode, userStore]);\n\n useEffect(() => {\n projectStore.getCurrent();\n }, [projectStore]);\n\n useEffect(() => {\n const step = getStepVGS(projectStore.currentProject);\n setStep(step);\n }, [projectStore, projectStore.currentProject]);\n\n const [searchInfoStudent, setSearchInfoStudent] = React.useState('');\n const timeoutRef = React.useRef(\n setTimeout(() => {\n return;\n }, 300)\n );\n\n const getAllStudentMinifiedByCourseId = React.useCallback(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n userStore.getAllStudentMinifiedByCourseId(\n courseStore.courseId,\n searchInfoStudent\n );\n }, 1000);\n }, [userStore, courseStore.courseId, searchInfoStudent]);\n\n React.useEffect(() => {\n if (tabMode === CourseOptionVGS.INFO_STUDENT) {\n getAllStudentMinifiedByCourseId();\n }\n }, [tabMode, getAllStudentMinifiedByCourseId]);\n\n React.useEffect(() => {\n if (\n userStore.studentId !== userStore.initStudentId &&\n courseStore.courseId !== courseStore.initCourseId &&\n tabMode === CourseOptionVGS.INFO_STUDENT\n ) {\n userStore.getStudentById(userStore.studentId, courseStore.courseId);\n }\n }, [tabMode, userStore, userStore.studentId, courseStore]);\n\n const chooseStudent = (courseId: number, studentId: number): void => {\n setTabMode(CourseOptionVGS.INFO_STUDENT);\n userStore.setStudentId(studentId);\n userStore.getStudentById(studentId, courseId);\n courseStore.setCourseId(courseId);\n };\n /** Course option - Infomation Student */\n\n /** Course option - Course table */\n const [search, setSearch] = React.useState('');\n const [sortDirection, setSortDirection] = React.useState<'asc' | 'desc'>(ASC);\n const [skip, setSkip] = React.useState(0);\n const [take, setTake] = React.useState(+PER_PAGE_OPTIONS[0]);\n const [currentPage, setCurrentPage] = React.useState(1);\n const [orderBy, setOrderBy] = React.useState(\n CourseOrderBy.STUDY_SUBJECT_NAME\n );\n\n const [studySubjectId, setStudySubjectId] = React.useState(\n SELECT_ALL\n );\n\n const handleSearchStudySubjectId = (studySubjectId: number | string) => {\n _resetGetList();\n setStudySubjectId(studySubjectId);\n };\n\n const [courseStatus, setCourseStatus] = React.useState(\n SELECT_ALL\n );\n\n const handleCourseStatus = (status: CourseStatus | string) => {\n _resetGetList();\n setCourseStatus(status);\n };\n\n const _resetGetList = (): void => {\n setSkip(0);\n setTake(+PER_PAGE_OPTIONS[0]);\n setCurrentPage(1);\n setSortDirection(ASC);\n setSearch('');\n };\n\n const getListVGS = React.useCallback(\n (search?: string) => {\n scrollTop();\n courseStore.getListVGS({\n skip,\n take,\n search,\n orderBy,\n orderDirection: sortDirection,\n projectId,\n externalSchoolId: userStore.user?.externalSchoolId,\n studySubjectId,\n status: courseStatus,\n });\n },\n [\n skip,\n take,\n orderBy,\n sortDirection,\n courseStore,\n projectId,\n userStore,\n studySubjectId,\n courseStatus,\n ]\n );\n\n const getStudySubject = React.useCallback(() => {\n if (projectId) {\n studySubjectStore.getStudySubjectByProjectId(+projectId);\n }\n }, [studySubjectStore, projectId]);\n\n const getCourseStatus = React.useCallback(() => {\n if (projectId) {\n courseStore.getCourseStatusByProjectId(\n +projectId,\n userStore.user?.externalSchoolId\n );\n }\n }, [courseStore, projectId, userStore]);\n\n React.useEffect(() => {\n getStudySubject();\n getCourseStatus();\n getListVGS();\n }, [getStudySubject, getCourseStatus, getListVGS]);\n\n const handleSearch = (): void => {\n getListVGS(search);\n };\n\n const handleSortTable = (orderBy: string): void => {\n setOrderBy(orderBy);\n if (sortDirection === ASC) {\n setSortDirection(DESC);\n } else {\n setSortDirection(ASC);\n }\n };\n\n const chooseCourse = (id: number): void => {\n setTabMode(CourseOptionVGS.EDIT);\n if (courseStore.courseId === id) return;\n\n courseStore.resetCourse();\n courseStore.setCourseId(id);\n userStore.resetStudent();\n };\n\n const changePageOption = (take: number): void => {\n handleChoosePage(1);\n setTake(take);\n };\n\n const handleChoosePage = (page: number): void => {\n setSkip((page - 1) * take);\n setCurrentPage(page);\n };\n\n const listParticipantOfCourseExport = async (\n courseId: number\n ): Promise => {\n if (projectId) {\n await courseStore.listParticipantOfCourseExport(+projectId, courseId);\n }\n };\n\n return (\n <>\n }\n titlePadding={115}\n />\n \n \n
\n \n \n
\n\n
\n \n
\n \n \n \n \n \n \n );\n};\n\nexport default observer(VGSAdminCourses);\n","import { useStores } from '@/stores';\nimport { UserRole } from '@/types/UserRole';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport AdminCourses from '@/views/app/admin/courses';\nimport VGSAdminCourses from '@/views/app/VGSadmin/courses';\n\nconst CourseDashboard = () => {\n const { userStore } = useStores();\n const { user } = userStore;\n\n //if (user?.isCurrentlyRole(UserRole.Student)) return ;\n // if (user?.isCurrentlyRole(UserRole.Adviser)) return \n if (user?.isCurrentlyRole(UserRole.HighSchoolContact)) {\n return ;\n }\n\n if (user?.isCurrentlyRole(UserRole.Admin)) {\n return ;\n }\n\n return <>;\n};\n\nexport default observer(CourseDashboard);\n","import { useLocation } from 'react-router-dom';\n\nexport const useQuery = (string: string) =>\n new URLSearchParams(useLocation().search).get(string);\n","import {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Typography,\n} from '@material-ui/core';\nimport React from 'react';\n\ninterface IComponentProps {\n open: boolean;\n onClose: () => void;\n onAgree: () => void;\n content: string;\n}\n\nconst Component = ({ open, onClose, content, onAgree }: IComponentProps) => {\n return (\n <>\n \n \n \n {content}\n \n \n \n \n \n \n \n \n );\n};\n\nexport const ConfirmDialog = Component;\n","export default __webpack_public_path__ + \"static/media/background.0f68ccbd.png\";","import { useStores } from '@/stores';\nimport { INIT_PROJECT } from '@/types/Project';\nimport { Button, Grid, makeStyles, Paper, Typography } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport React, { FC } from 'react';\nimport RandomBackground from '../../../../assets/images/background.png';\n\nconst useStyles = makeStyles(({ palette }) => ({\n wrapper: {\n minHeight: '70vh',\n background: `url(${RandomBackground})`,\n backgroundPosition: 'center',\n backgroundSize: '724px 493px',\n backgroundRepeat: 'no-repeat',\n },\n paper: {\n height: '227px',\n width: '414px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n textAlign: 'center',\n verticalAlign: 'middle',\n flexDirection: 'column',\n '& button': {\n marginTop: '36px',\n color: palette.primary,\n },\n },\n}));\n\nconst Component: FC<{ isArchived: boolean }> = ({ isArchived }) => {\n const classes = useStyles();\n\n const { projectStore } = useStores();\n\n return (\n <>\n \n \n \n \n Du har ingen {isArchived ? 'arkiverte' : 'aktive'} prosjekter\n \n {!isArchived && (\n projectStore.openProjectPanel(INIT_PROJECT)}\n >\n Opprett nytt prosjekt\n \n )}\n \n \n \n \n );\n};\n\nexport const NoCurrentProject = observer(Component);\n","import { ConfirmDialog } from '@/components/ConfirmDialog';\nimport { UserRole } from '@/types/UserRole';\nimport {\n IconButton,\n makeStyles,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n} from '@material-ui/core';\nimport { DeleteForeverRounded, EditRounded } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport { useQuery } from '../../../../hooks';\nimport { useStores } from '../../../../stores';\nimport { IProject } from '../../../../types/Project';\nimport { generateStringFromToDate } from '../../../../utils/timeUtils';\nimport { NoCurrentProject } from './NoCurrentProject';\n\ninterface ICustomTableColumn {\n key: string;\n label: string;\n}\n\nconst columns: ICustomTableColumn[] = [\n { key: 'id', label: 'Id' },\n { key: 'projectName', label: 'Navn' },\n];\n\nconst useStyles = makeStyles(({ breakpoints, palette }) => ({\n root: {\n padding: '16px 115px',\n [breakpoints.down('lg')]: {\n padding: 0,\n },\n },\n table: {\n backgroundColor: '#fff',\n },\n tableRow: {\n borderLeft: '3px solid transparent',\n transition: 'all 0.3s ease',\n '&:hover': {\n cursor: 'pointer',\n borderLeft: '3px solid ' + palette.primary.light,\n },\n },\n}));\n\nconst ProjectList = () => {\n const { projectStore, userStore } = useStores();\n const history = useHistory();\n const isArchived = useQuery('isArchived');\n\n const [isConfirmShown, setIsConfirmShown] = React.useState(false);\n const [selectedDeleteProject, setSelectedDeletedProject] =\n React.useState(null);\n\n const handleDeleteConfirm = async () => {\n await projectStore.deleteProject(selectedDeleteProject?.id ?? 0);\n setIsConfirmShown(false);\n };\n\n const { tableList: projects } = projectStore;\n\n const goToCourse = (id = 0) => {\n history.push(`projects/${id}/courses`);\n };\n\n const openEditProject = (project: IProject) => {\n projectStore.openProjectPanel(project);\n };\n\n React.useEffect(() => {\n isArchived\n ? projectStore.getArchivedProjects()\n : projectStore.getActiveProjectsForTable();\n }, [isArchived, projectStore]);\n\n const classes = useStyles();\n\n return (\n
\n \n \n \n {columns.map((col) => (\n {col.label}\n ))}\n Synlighetsperiode\n Påmeldingsperiode\n Kursperiode\n {userStore.user?.currentRole === UserRole.Admin && (\n Action\n )}\n \n \n \n {projects.length ? (\n <>\n {projectStore.tableList.map((project) => (\n \n {columns.map((col) => (\n goToCourse(project.id)}\n key={`table-list-project-${project.id}-${col.key}`}\n >\n {project[col.key as keyof IProject]}\n \n ))}\n goToCourse(project.id)}>\n {generateStringFromToDate({\n from: project.availablePeriodStartDate,\n to: project.availablePeriodEndDate,\n })}\n \n\n goToCourse(project.id)}>\n {generateStringFromToDate({\n from: project.registeringPeriodStartDate,\n to: project.registeringPeriodEndDate,\n })}\n \n\n goToCourse(project.id)}>\n {generateStringFromToDate({\n from: project.coursePeriodStartDate,\n to: project.coursePeriodEndDate,\n })}\n \n {userStore.user?.currentRole === UserRole.Admin && (\n <>\n \n openEditProject(project)}>\n \n \n {\n setSelectedDeletedProject(project);\n setIsConfirmShown(true);\n }}\n >\n \n \n \n \n )}\n \n ))}\n \n ) : (\n \n \n \n \n \n )}\n \n
\n\n setIsConfirmShown(false)}\n onAgree={() => handleDeleteConfirm()}\n content={'Er du sikker på at du vil slette dette prosjektet?'}\n />\n
\n );\n};\n\nexport default observer(ProjectList);\n","import { useQuery } from '@/hooks';\nimport { Button } from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport { useHistory } from 'react-router-dom';\nimport AdminHeader from '../common/AdminHeader';\nimport ProjectList from './ProjectList';\n\nconst Projects = () => {\n const isArchived = useQuery('isArchived');\n const history = useHistory();\n const toggleIsArchived = () => {\n history.push(`projects${isArchived ? '' : '?isArchived=true'}`);\n };\n\n return (\n <>\n \n Se {isArchived ? 'aktive' : 'arkiverte'}\n \n }\n />\n \n \n );\n};\n\nexport default observer(Projects);\n","import React from 'react';\nimport { FC } from 'react';\nimport Students from '../../common/Students';\n\nconst GUStudents: FC = () => {\n return ;\n};\n\nexport default GUStudents;\n","import {\n Button,\n TextField,\n Typography,\n} from '@material-ui/core';\nimport React, {FormEvent, useEffect, useState} from 'react';\nimport {useStores} from '../../../../stores';\nimport useLoginStyle from '../style';\nimport {useHistory} from \"react-router-dom\";\n\n\nconst ResetPassword = () => {\n const history = useHistory();\n const {accountStore} = useStores();\n const [password, setPassword] = useState('');\n const [confirmPassword, setConfirmPassword] = useState('');\n const [validLink, setValidLink] = useState(false);\n const urlParams = new URLSearchParams(window.location.search);\n\n\n useEffect(() => {\n (async function () {\n const boolValue = await accountStore.isValidLink();\n setValidLink(boolValue);\n })()\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const resetPassword = async (e: FormEvent) => {\n e.preventDefault();\n await accountStore.resetPassword(urlParams.get('email'), password, urlParams.get('time'), urlParams.get('token'))\n history.push('/');\n };\n\n const classes = useLoginStyle();\n\n return (\n
\n {!validLink ? (\n \n Hei, lenken er ikke gyldig eller ikke tilgjengelig lenger.\n \n ) : (\n <>\n \n Tilbakestill passord\n \n
\n\n setPassword(e.currentTarget.value)}\n />\n setConfirmPassword(e.currentTarget.value)}\n error={confirmPassword !== '' && password !== confirmPassword ? true : false}\n helperText={confirmPassword !== '' && password !== confirmPassword ? \"Bekreft passord stemmer ikke\" : \"\"}\n />\n\n \n \n \n )}\n
\n );\n};\n\nexport default ResetPassword;\n","import { makeStyles } from '@material-ui/core';\nimport { flexCol } from '@/style/common';\n\nexport const configStyle = {\n paddingHeader: 116,\n marginFilter: 24,\n widthOption: 358,\n paddingOption: 16,\n};\n\nconst userSettingStyle = makeStyles(({ breakpoints, palette }) => ({\n header: {\n position: 'relative',\n backgroundColor: palette.primary.light,\n height: '6rem',\n },\n headerContent: {\n paddingLeft: `${configStyle.paddingHeader}px`,\n },\n headerTitle: {\n fontSize: '24px',\n fontWeight: 400,\n color: palette.primary[900],\n marginLeft: '27px',\n },\n filterNav: {\n height: '62px',\n background:\n 'linear-gradient(0deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.5)), #C6CADE',\n alignItems: 'flex-end',\n },\n leftContent: {\n width: `calc(100% - ${configStyle.widthOption}px)`,\n padding: `0 0 0 ${configStyle.paddingHeader}px`,\n },\n rightContent: {\n minWidth: `${configStyle.widthOption}px`,\n maxWidth: `${configStyle.widthOption}px`,\n },\n space: {\n marginRight: `${configStyle.marginFilter}px`,\n },\n customSearch: {\n position: 'relative',\n width: '611px',\n height: '52px',\n padding: `4px 0`,\n boxSizing: 'content-box',\n [breakpoints.down('md')]: {\n width: '500px',\n },\n },\n addNewUserBtn: {\n height: '36px',\n width: '180px',\n padding: '10px 12px',\n color: palette.primary[500],\n fontSize: '14px',\n letterSpacing: '0.4px',\n },\n spaceAddIcon: {\n marginRight: '12px',\n },\n contentUserItem: {\n marginTop: '18px',\n },\n boxUserItem: {\n height: '73px',\n width: '768px',\n padding: '8px 24px',\n marginBottom: '12px',\n '&:last-child': {\n marginBottom: '0px',\n },\n },\n userItemFullName: {\n width: '225px',\n color: palette.primary[900],\n fontSize: '16px',\n lineHeight: '24px',\n },\n textOverflow: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n },\n tooltipBox: {\n color: palette.primary[900],\n fontSize: '12px',\n },\n tooltipBoxFullName: {\n width: '225px',\n },\n userItemEmail: {\n width: '106px',\n },\n userItemPhone: {\n width: '75px',\n },\n userItemInfo: {\n color: palette.primary[500],\n fontSize: '16px',\n lineHeight: '16px',\n padding: '10px 12px',\n },\n userItemText: {\n fontSize: '14px',\n },\n userItemTextSpace: {\n marginLeft: '11px',\n },\n userItemSpace: {\n marginLeft: '5px',\n\n '&:last-child': {\n marginLeft: '0px',\n },\n },\n iconSize: {\n width: '16px',\n height: '16px',\n },\n buttonDelete: {\n marginRight: '28px',\n },\n buttonChoose: {\n width: '40px',\n height: '40px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n borderRadius: '50%',\n },\n buttonChooseActive: {\n backgroundColor: palette.primary[100],\n },\n switch: {\n marginLeft: '18px',\n },\n switchBase: {\n color: palette.primary[600],\n },\n switchTrack: {\n border: `1px solid ${palette.primary[600]}`,\n backgroundColor: palette.primary[600],\n },\n empty: {\n fontSize: '22px',\n lineHeight: '31px',\n color: palette.primary[900],\n marginTop: '5rem',\n },\n contentDrawer: {\n width: '376px',\n ...flexCol,\n gap: '6px',\n overflow: 'auto',\n justifyContent: 'flex-start',\n },\n titleDrawer: {\n padding: '12px 24px',\n color: palette.primary[900],\n },\n chooseUser: {\n background:\n 'linear-gradient(0deg, rgba(255, 255, 255, 0.2), rgba(255, 255, 255, 0.2)), #EBEAF1 !important',\n },\n bodyDrawer: {\n padding: '24px',\n },\n titleFillInfo: {\n color: palette.primary[900],\n marginBottom: '12px',\n },\n textFill: {\n marginBottom: '18px',\n },\n boxWarning: {\n padding: '16px',\n backgroundColor: palette.warning.light,\n borderBottom: `1px solid ${palette.warning.dark}`,\n marginTop: '54px',\n color: palette.warning[50],\n },\n iconErrorOnDrawer: {\n color: palette.warning[50],\n },\n contentErrorOnDrawer: {\n marginLeft: '20px',\n },\n contentErrorTitleOnDrawer: {\n fontWeight: 500,\n },\n contentListErrorOnDrawer: {\n paddingLeft: '1.25rem',\n fontSize: '14px',\n },\n groupBtnDrawer: {\n marginTop: '36px',\n },\n marginLeftAuto: {\n marginLeft: 'auto',\n },\n displayFlex: {\n display: 'flex',\n },\n pointer: { cursor: 'pointer' },\n backgroundColorFFF: {\n backgroundColor: palette.primary.A100,\n },\n backgroundColorTransparent: {\n backgroundColor: palette.background.default,\n },\n textAlignCenter: {\n textAlign: 'center',\n },\n textAlignRight: {\n textAlign: 'right',\n },\n alignItemsCenter: {\n alignItems: 'center',\n },\n justifyContentCenter: {\n justifyContent: 'center',\n },\n justifyContentFlexEnd: {\n justifyContent: 'flex-end',\n },\n widthFull: {\n width: '100%',\n },\n heightFull: {\n height: '100%',\n },\n padding0: {\n padding: 0,\n },\n margin0: {\n margin: 0,\n },\n contentDialogDeleteUser: {\n color: palette.primary[500],\n fontSize: '16px',\n },\n paddingDialogAction: {\n paddingLeft: '16px',\n paddingRight: '16px',\n paddingBottom: '16px',\n },\n}));\n\nexport default userSettingStyle;\n","import { User } from '@/types/User';\nimport React from 'react';\nimport clsx from 'clsx';\nimport userSettingStyle from '../../style';\nimport EmailOutlinedIcon from '@material-ui/icons/EmailOutlined';\nimport PhoneIphoneOutlinedIcon from '@material-ui/icons/PhoneIphoneOutlined';\nimport DeleteForeverOutlinedIcon from '@material-ui/icons/DeleteForeverOutlined';\nimport CreateOutlinedIcon from '@material-ui/icons/CreateOutlined';\nimport { Tooltip, Switch } from '@material-ui/core';\nimport { observer } from 'mobx-react';\n\ninterface IComponentProps {\n user: User;\n updateIsActive: (id: number, isActive: boolean) => Promise;\n chooseUser: (id: number) => void;\n userId: number | undefined;\n handleOpenDialogDeleteUser: (id: number) => void;\n}\n\nconst UserItem = (props: IComponentProps) => {\n const {\n user,\n updateIsActive,\n chooseUser,\n userId,\n handleOpenDialogDeleteUser,\n } = props;\n const classes = userSettingStyle();\n const fullNameRef = React.createRef();\n const emailRef = React.createRef();\n const phoneRef = React.createRef();\n\n const [isOverflowFullName, setIsOverflowFullName] =\n React.useState(false);\n const [isOverflowEmail, setIsOverflowEmail] = React.useState(false);\n const [isOverflowPhone, setIsOverflowPhone] = React.useState(false);\n\n React.useLayoutEffect(() => {\n if (\n fullNameRef.current &&\n fullNameRef.current.clientWidth < fullNameRef.current.scrollWidth\n ) {\n setIsOverflowFullName(true);\n }\n\n if (\n emailRef.current &&\n emailRef.current.clientWidth < emailRef.current.scrollWidth\n ) {\n setIsOverflowEmail(true);\n }\n\n if (\n phoneRef.current &&\n phoneRef.current.clientWidth < phoneRef.current.scrollWidth\n ) {\n setIsOverflowPhone(true);\n }\n }, [fullNameRef, emailRef, phoneRef]);\n\n const beforeHandleDelete = (\n id: number,\n event: React.MouseEvent\n ): void => {\n event.stopPropagation();\n handleOpenDialogDeleteUser(id);\n };\n\n return (\n <>\n chooseUser(user.id)}\n >\n \n \n {user.fullName}\n \n \n\n \n \n \n \n \n {user.emailAddress}\n \n \n \n \n\n \n \n \n \n \n {user.phoneNumber}\n \n \n \n \n\n \n ) =>\n beforeHandleDelete(user.id, event)\n }\n >\n \n \n\n chooseUser(user.id)}\n >\n \n \n\n ) =>\n await updateIsActive(user.id, event.target.checked as boolean)\n }\n checked={user.isActive}\n color=\"default\"\n classes={{\n switchBase: classes.switchBase,\n track: classes.switchTrack,\n }}\n className={classes.switch}\n inputProps={{\n onClick: (event: React.MouseEvent) => {\n event.stopPropagation();\n },\n }}\n />\n \n \n \n );\n};\n\nexport default observer(UserItem);\n","import React from 'react';\nimport userSettingStyle from '../../style';\nimport clsx from 'clsx';\nimport CustomSearch from '@/components/CustomSearch';\nimport AddIcon from '@material-ui/icons/Add';\n\ninterface IComponentProps {\n search: string;\n setSearch: (value: string) => void;\n handleSearch: () => void;\n handleCloseCreateOrUpdateUserDrawer: (open: boolean) => void;\n}\n\nconst UserSettingFilter = (props: IComponentProps) => {\n const {\n search,\n setSearch,\n handleSearch,\n handleCloseCreateOrUpdateUserDrawer,\n } = props;\n const classes = userSettingStyle();\n\n return (\n <>\n
\n \n
\n \n
\n
\n\n \n handleCloseCreateOrUpdateUserDrawer(true)}\n >\n \n Legg til ny bruker\n \n \n \n \n );\n};\n\nexport default UserSettingFilter;\n","import React from 'react';\nimport userSettingStyle from '../../style';\nimport clsx from 'clsx';\nimport { Grid } from '@material-ui/core';\nimport HomeOutlinedIcon from '@material-ui/icons/HomeOutlined';\n\nconst UserSettingHeader = () => {\n const classes = userSettingStyle();\n\n return (\n <>\n \n \n \n Brukerinnstillinger\n \n \n \n );\n};\n\nexport default UserSettingHeader;\n","import { FilledInputProps } from '@material-ui/core';\nimport { DatePicker } from '@material-ui/pickers';\nimport { ParsableDate } from '@material-ui/pickers/constants/prop-types';\nimport { MaterialUiPickersDate } from '@material-ui/pickers/typings/date';\nimport React from 'react';\n\ninterface IComponentProps {\n label: string;\n value: ParsableDate;\n onChange: (value: MaterialUiPickersDate) => void;\n inputProps?: Partial;\n format?: string;\n customClass?: string;\n hasError?: boolean;\n}\n\nconst CustomDatePicker = (props: IComponentProps) => {\n const { label, value, onChange, inputProps, format, customClass, hasError } =\n props;\n const [error, setError] = React.useState(false);\n\n const displayError = (error: React.ReactNode, value: ParsableDate): void => {\n if (error) {\n setError(true);\n }\n };\n\n return (\n <>\n \n displayError(error, value)\n }\n helperText={<>}\n />\n \n );\n};\n\nexport default CustomDatePicker;\n","import {ControlledInputText} from '@/components/ControlledInputText';\nimport {useStores} from '@/stores';\nimport {Button, Drawer, FormControl, InputLabel, MenuItem, Select, Typography,} from '@material-ui/core';\nimport {observer} from 'mobx-react';\nimport React, {useState} from 'react';\nimport userSettingStyle from '../../style';\nimport clsx from 'clsx';\nimport CustomDatePicker from '@/components/CustomDatePicker';\nimport {MaterialUiPickersDate} from '@material-ui/pickers/typings/date';\nimport {getNorwegianRole, UserRole} from '@/types/UserRole';\nimport School from '@/types/School';\nimport {IClass} from '@/types/Class';\n\ninterface IComponentProps {\n createOrUpdateUserDrawerIsOpen: boolean;\n handleCloseCreateOrUpdateUserDrawer: (open: boolean) => void;\n changeUserRole: (role: UserRole) => void;\n changeSchool: (externalSchoolId: string) => void;\n changeClass: (externalClassId: string) => void;\n changeDateOfBirth: (data: Date) => void;\n changeUserName: (data: string) => void;\n changeFullName: (data: string) => void;\n changeEmailAddress: (data: string) => void;\n changePhoneNumber: (data: string) => void;\n handleCreateOrUpdate: () => Promise;\n errors: Record;\n}\n\nconst CreateOrUpdateUserDrawer = (props: IComponentProps) => {\n const classes = userSettingStyle();\n const { userStore, schoolStore } = useStores();\n const [roles, setRoles] = useState([]);\n const { createOrUpdate } = userStore;\n React.useEffect(() => {\n if (userStore.user?.currentRole === UserRole.Admin) {\n setRoles(Object.keys(UserRole));\n }\n if (userStore.user?.role === UserRole.HighSchoolContact) {\n setRoles(['4']);\n }\n if (userStore.user?.role === UserRole.Adviser) {\n setRoles(['1', '2']);\n }\n }, [userStore]);\n const {\n createOrUpdateUserDrawerIsOpen,\n handleCloseCreateOrUpdateUserDrawer,\n changeUserRole,\n changeSchool,\n changeClass,\n changeDateOfBirth,\n changeUserName,\n changeFullName,\n changeEmailAddress,\n changePhoneNumber,\n handleCreateOrUpdate,\n errors,\n } = props;\n\n return (\n handleCloseCreateOrUpdateUserDrawer(false)}\n anchor=\"right\"\n >\n
\n \n {userStore.createOrUpdate.id ? `Rediger bruker` : `Opprett ny bruker`}\n\n \n
\n \n Fyll ut opplysninger\n \n\n changeUserName(value)}\n customClass={clsx(classes.widthFull, classes.textFill)}\n hasError={!!errors.userName}\n />\n\n {\n if (data) {\n changeDateOfBirth(data.toJSDate());\n }\n }}\n customClass={clsx(classes.widthFull, classes.textFill)}\n hasError={!!errors.dateOfBirth}\n />\n\n changeFullName(value)}\n customClass={clsx(classes.widthFull, classes.textFill)}\n hasError={!!errors.fullName}\n />\n\n changeEmailAddress(value)}\n customClass={clsx(classes.widthFull, classes.textFill)}\n hasError={!!errors.emailAddress}\n />\n\n changePhoneNumber(value)}\n customClass={clsx(classes.widthFull, classes.textFill)}\n hasError={!!errors.phoneNumber}\n />\n\n
\n \n Brukerrolle\n ) =>\n changeUserRole(e.target.value as UserRole)\n }\n >\n {roles\n .filter((k: string) => typeof UserRole[k as any] === 'string')\n .map((k1: string) => +k1)\n .map((k2: number) => (\n \n {getNorwegianRole(k2)}\n \n ))}\n \n \n
\n\n {(userStore.createOrUpdate.role === UserRole.HighSchoolContact ||\n userStore.createOrUpdate.role === UserRole.Adviser ||\n userStore.createOrUpdate.role === UserRole.Student) && (\n
\n \n Skole\n ) =>\n changeSchool(e.target.value as string)\n }\n >\n {schoolStore.schoolFilterByUserRole.map((school: School) => (\n \n {school.schoolName}\n \n ))}\n \n \n
\n )}\n\n {userStore.createOrUpdate.role === UserRole.Student && (\n
\n \n Klasse\n ) =>\n changeClass(e.target.value as string)\n }\n >\n {schoolStore.listClass.map((classes: IClass) => (\n \n {classes.fullName}\n \n ))}\n \n \n
\n )}\n\n {/* {Object.keys(errors).length > 0 && (\n
\n
\n \n
\n
\n
Fyll ut
\n
    \n {Object.values(errors).map((error) => (\n
  • {error}
  • \n ))}\n
\n
\n
\n )} */}\n\n
\n await handleCreateOrUpdate()}\n >\n {userStore.createOrUpdate.id ? `Lagre` : `Opprett`}\n \n handleCloseCreateOrUpdateUserDrawer(false)}\n style={{ marginLeft: '12px' }}\n >\n Avbryt\n \n
\n
\n
\n \n );\n};\n\nexport default observer(CreateOrUpdateUserDrawer);\n","import { PER_PAGE_OPTIONS } from '@/types/dto/PaginationRequest.dto';\nimport { observer } from 'mobx-react';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport UserItem from './components/UserItem';\nimport UserSettingFilter from './components/UserSettingFilter';\nimport UserSettingHeader from './components/UserSettingHeader';\nimport userSettingStyle from './style';\nimport clsx from 'clsx';\nimport { useStores } from '@/stores';\nimport CustomPagination from '@/components/CustomPagination';\nimport CreateOrUpdateUserDrawer from './components/CreateOrUpdateUserDrawer';\nimport NotifyMessage from '@/components/NotifyMessage';\nimport { UserRole } from '@/types/UserRole';\nimport { SchoolType } from '@/types/School';\nimport {\n validateEmailAddress,\n validatePhoneNumber,\n} from '@/utils/validationUtils';\nimport {\n Dialog,\n DialogContent,\n DialogContentText,\n DialogActions,\n Button,\n Box,\n CircularProgress,\n} from '@material-ui/core';\nimport { User } from '@/types/User';\nimport {\n changeDate,\n getDateFromKarDateType,\n resetTimeZeroOfDate,\n} from '@/utils/timeUtils';\nimport { Color } from '@material-ui/lab';\n\nconst UserSettings = () => {\n const classes = userSettingStyle();\n const { userStore, schoolStore } = useStores();\n const { user } = userStore;\n\n const [search, setSearch] = useState('');\n const [skip, setSkip] = useState(0);\n const [take, setTake] = useState(+PER_PAGE_OPTIONS[0]);\n const [currentPage, setCurrentPage] = useState(1);\n const [contentError] = useState>({\n userName: 'username not valid',\n fullName: 'fullname is not empty',\n emailAddress: 'email not valid',\n phoneNumber: 'phone not valid',\n dateOfBirth: 'birthday not valid',\n });\n const [errors, setErrors] = useState>({});\n\n const handleSearch = (): void => {\n _resetGetList();\n\n if (skip === 0 && take === +PER_PAGE_OPTIONS[0]) {\n userStore.getListUser({\n skip: 0,\n take: +PER_PAGE_OPTIONS[0],\n search,\n externalSchoolId: _getExternalSchoolId(),\n });\n }\n };\n\n const _resetGetList = (): void => {\n setSkip(0);\n setTake(+PER_PAGE_OPTIONS[0]);\n setCurrentPage(1);\n };\n\n const getListUser = useCallback(\n (search?: string) => {\n userStore.getListUser({\n skip,\n take,\n search,\n externalSchoolId: _getExternalSchoolId(),\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [userStore, skip, take]\n );\n\n const changePageOption = (take: number): void => {\n handleChoosePage(1);\n setTake(take);\n };\n\n const handleChoosePage = (page: number): void => {\n setSkip((page - 1) * take);\n setCurrentPage(page);\n };\n\n const updateIsActive = async (\n id: number,\n isActive: boolean\n ): Promise => {\n const user = userStore.listUsers.find((u) => u.id === id);\n if (user) {\n await userStore.updateUser({ ...user, isActive });\n user.isActive = isActive;\n }\n };\n\n const [userId, setUserId] = useState();\n const [createOrUpdateUserDrawerIsOpen, setCreateOrUpdateUserDrawerIsOpen] =\n useState(false);\n\n useEffect(() => {\n if (userId) {\n userStore.getUser(userId);\n }\n }, [userStore, userId]);\n\n const chooseUser = (id: number): void => {\n if (id === userId) {\n setUserId(undefined);\n } else {\n setUserId(id);\n setCreateOrUpdateUserDrawerIsOpen(true);\n }\n };\n\n const handleCloseCreateOrUpdateUserDrawer = (open: boolean): void => {\n setUserId(undefined);\n userStore.resetCreateOrUpdate();\n setCreateOrUpdateUserDrawerIsOpen(open);\n };\n\n const changeUserRole = (role: UserRole): void => {\n userStore.setCreateOrUpdate({\n ...userStore.createOrUpdate,\n role,\n });\n };\n\n const changeSchool = (externalSchoolId: string): void => {\n userStore.setCreateOrUpdate({\n ...userStore.createOrUpdate,\n externalSchoolId,\n });\n };\n\n const changeClass = (externalClassId: string): void => {\n userStore.setCreateOrUpdate({\n ...userStore.createOrUpdate,\n externalClassId,\n });\n };\n\n useEffect(() => {\n if (userStore.createOrUpdate.role === UserRole.HighSchoolContact) {\n schoolStore.getSchoolBySchoolType(SchoolType.HighSchool);\n }\n\n if (\n userStore.createOrUpdate.role === UserRole.Adviser ||\n userStore.createOrUpdate.role === UserRole.Student\n ) {\n schoolStore.getSchoolBySchoolType(SchoolType.SecondarySchool);\n }\n\n if (\n userStore.createOrUpdate.role === UserRole.Student &&\n !!userStore.createOrUpdate.externalSchoolId\n ) {\n schoolStore.getClassesByExternalSchoolId(\n userStore.createOrUpdate.externalSchoolId\n );\n }\n }, [\n schoolStore,\n userStore.createOrUpdate.role,\n userStore.createOrUpdate.externalSchoolId,\n ]);\n\n const changeDateOfBirth = (data: Date): void => {\n userStore.setCreateOrUpdate({\n ...userStore.createOrUpdate,\n dateOfBirth: data,\n });\n };\n\n const changeUserName = (data: string): void => {\n userStore.setCreateOrUpdate({\n ...userStore.createOrUpdate,\n userName: data,\n });\n };\n\n const changeFullName = (data: string): void => {\n userStore.setCreateOrUpdate({\n ...userStore.createOrUpdate,\n fullName: data,\n });\n };\n\n const changeEmailAddress = (data: string): void => {\n userStore.setCreateOrUpdate({\n ...userStore.createOrUpdate,\n emailAddress: data,\n });\n };\n\n const changePhoneNumber = (data: string): void => {\n userStore.setCreateOrUpdate({\n ...userStore.createOrUpdate,\n phoneNumber: data,\n });\n };\n\n const handleCreateOrUpdate = async (): Promise => {\n try {\n if (_validation()) {\n if (userStore.createOrUpdate.id) {\n await userStore.updateUser(userStore.createOrUpdate);\n } else {\n await userStore.createUser(userStore.createOrUpdate);\n }\n\n handleSearch();\n handleCloseCreateOrUpdateUserDrawer(false);\n setSeverity('success');\n setMessage('Success !!!');\n setOpenNotifyMessage(true);\n }\n } catch (error: any) {\n setSeverity('error');\n setMessage('Error !!!');\n setOpenNotifyMessage(true);\n }\n };\n\n const _validation = () => {\n let isValid = true;\n let errorObj = {};\n\n if (\n !userStore.createOrUpdate.userName &&\n userStore.createOrUpdate.userName.length !== 11\n ) {\n isValid = false;\n errorObj = { ...errorObj, userName: contentError.userName };\n }\n\n if (!userStore.createOrUpdate.fullName) {\n isValid = false;\n errorObj = { ...errorObj, fullName: contentError.fullName };\n }\n\n if (!validateEmailAddress(userStore.createOrUpdate.emailAddress)) {\n isValid = false;\n errorObj = { ...errorObj, emailAddress: contentError.emailAddress };\n }\n\n if (!validatePhoneNumber(userStore.createOrUpdate.phoneNumber)) {\n isValid = false;\n errorObj = { ...errorObj, phoneNumber: contentError.phoneNumber };\n }\n\n if (typeof userStore.createOrUpdate.dateOfBirth === 'string') {\n try {\n const dateOfBirth = getDateFromKarDateType(\n userStore.createOrUpdate.dateOfBirth\n );\n\n if (dateOfBirth) {\n userStore.createOrUpdate.dateOfBirth = changeDate(\n undefined,\n resetTimeZeroOfDate(dateOfBirth)\n );\n } else {\n throw new Error('Have a error dateOfBirth');\n }\n } catch (error) {\n isValid = false;\n errorObj = { ...errorObj, dateOfBirth: contentError.dateOfBirth };\n }\n } else {\n userStore.createOrUpdate.dateOfBirth = changeDate(\n undefined,\n resetTimeZeroOfDate(userStore.createOrUpdate.dateOfBirth)\n );\n }\n\n setErrors(errorObj);\n return isValid;\n };\n\n const handleDelete = async (id: number): Promise => {\n try {\n await userStore.deleteUser(id);\n\n handleCloseDialogDeleteUser();\n handleSearch();\n handleCloseCreateOrUpdateUserDrawer(false);\n setSeverity('success');\n setMessage('Success !!!');\n setOpenNotifyMessage(true);\n } catch (error: any) {\n setSeverity('error');\n setMessage('Error !!!');\n setOpenNotifyMessage(true);\n }\n };\n\n const _getExternalSchoolId = (): string | undefined => {\n if (\n user?.role === UserRole.Adviser ||\n user?.role === UserRole.HighSchoolContact\n ) {\n return user.externalSchoolId;\n }\n\n return;\n };\n\n const [openNotifyMessage, setOpenNotifyMessage] = useState(false);\n const [severity, setSeverity] = useState('success');\n const [message, setMessage] = useState('Success !!!');\n const handleCloseNotifyMessage = (): void => {\n setOpenNotifyMessage(false);\n };\n\n const [openDialogDeleteUser, setOpenDialogDeleteUser] =\n useState(false);\n const [deleteUser, setDeleteUser] = useState(undefined);\n const handleOpenDialogDeleteUser = (id: number): void => {\n const user = userStore.listUsers.find((u) => u.id === id);\n setDeleteUser(user);\n setOpenDialogDeleteUser(true);\n };\n const handleCloseDialogDeleteUser = (): void => {\n setDeleteUser(undefined);\n setOpenDialogDeleteUser(false);\n };\n\n const timeoutRef = useRef(\n setTimeout(() => {\n return;\n }, 300)\n );\n\n const filterByFullName = useCallback(() => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n getListUser(search);\n }, 1000);\n }, [getListUser, search]);\n\n useEffect(() => {\n filterByFullName();\n }, [filterByFullName]);\n\n return (\n <>\n \n \n\n
\n {!userStore.loading ? (\n <>\n {userStore.listUsers.map((user) => (\n \n ))}\n\n \n\n {!userStore.totalCountListUser && (\n

\n Det er ingen studenter\n

\n )}\n \n ) : (\n \n \n \n )}\n
\n\n \n\n \n\n \n \n \n {`Er du sikker på at du vil slette ${deleteUser?.fullName}?`}\n \n \n \n \n Avbryt\n \n {\n if (deleteUser && deleteUser.id) {\n await handleDelete(deleteUser.id);\n }\n }}\n >\n Slett\n \n \n \n \n );\n};\n\nexport default observer(UserSettings);\n","export const validateEmailAddress = (email: string) => {\n const re =\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n return re.test(String(email).toLowerCase());\n};\n\nexport const validatePhoneNumber = (phoneNumber: string) => {\n const re = /^\\(?([0-9]{8})$/;\n return re.test(phoneNumber);\n};\n","import { observer } from 'mobx-react';\nimport React from 'react';\nimport UserSettings from '../../common/UserSetting';\n\nconst GUUserSettings = () => {\n return ;\n};\n\nexport default observer(GUUserSettings);\n","import { observer } from 'mobx-react';\nimport React from 'react';\nimport UserSettings from '../../common/UserSetting';\n\nconst VGSUserSettings = () => {\n return ;\n};\n\nexport default observer(VGSUserSettings);\n","import { observer } from 'mobx-react';\nimport React from 'react';\nimport UserSettings from '../../common/UserSetting';\n\nconst AdminUserSettings = () => {\n return ;\n};\n\nexport default observer(AdminUserSettings);\n","import React from 'react';\nimport { observer } from 'mobx-react';\nimport { useStores } from '@/stores';\nimport { UserRole } from '@/types/UserRole';\nimport GUUserSettings from '@/views/app/GUadmin/user-settings';\nimport VGSUserSettings from '@/views/app/VGSadmin/user-settings';\nimport AdminUserSettings from '@/views/app/admin/user-settings';\n\nconst UserSettingDashboard = () => {\n const { userStore } = useStores();\n const { user } = userStore;\n\n if (user?.isCurrentlyRole(UserRole.Adviser)) {\n return ;\n }\n\n if (user?.isCurrentlyRole(UserRole.HighSchoolContact)) {\n return ;\n }\n\n if (user?.isCurrentlyRole(UserRole.Admin)) {\n return ;\n }\n\n return <>;\n};\n\nexport default observer(UserSettingDashboard);\n","import { makeStyles } from '@material-ui/core';\n\nexport const configStyle = {\n widthTitle: 150,\n widthButtonDeleteQuestion: 150,\n paddingContentQuestion: 100,\n widthButtonDeleteAnswerOption: 24,\n widthSurvey: 40,\n};\n\nconst userSurveyStyle = makeStyles(({ breakpoints, palette }) => ({\n root: {\n padding: '16px 115px',\n [breakpoints.down('lg')]: {\n padding: 0,\n },\n },\n table: {\n backgroundColor: '#fff',\n },\n tableRow: {\n borderLeft: '3px solid transparent',\n transition: 'all 0.3s ease',\n '&:hover': {\n cursor: 'pointer',\n borderLeft: '3px solid ' + palette.primary.light,\n },\n },\n container: {\n padding: '0 116px',\n paddingTop: '20px',\n },\n containerQuestion: {\n padding: '20px 120px',\n },\n displayFlex: {\n display: 'flex',\n },\n alignItemsCenter: {\n alignItems: 'center',\n },\n justifyContentCenter: {\n justifyContent: 'center',\n },\n backgroundColorFFF: {\n backgroundColor: palette.primary.A100,\n },\n marginLeftAuto: {\n marginLeft: 'auto',\n },\n marginTop5: {\n marginTop: '5px',\n },\n marginTop10: {\n marginTop: '10px',\n },\n marginTop20: {\n marginTop: '20px',\n },\n marginTop30: {\n marginTop: '30px',\n },\n marginTop40: {\n marginTop: '40px',\n },\n questionTitle: {\n width: `${configStyle.widthTitle}px`,\n },\n questionContent: {\n width: `calc(100% - ${configStyle.widthTitle}px)`,\n },\n heightFull: {\n height: '100%',\n },\n widthFull: {\n width: '100%',\n },\n color500: {\n color: palette.primary[500],\n },\n surveyInput: {\n padding: '12px 8px',\n fontSize: '16px',\n fontWeight: 500,\n border: '1px solid #E0E0E0',\n backgroundColor: palette.primary.A100,\n color: '#000',\n },\n questionInput: {\n padding: '8px',\n fontSize: '14px',\n border: '1px solid #E0E0E0',\n backgroundColor: palette.primary.A100,\n color: '#000',\n },\n questionTextArea: {\n padding: '12px 8px',\n fontSize: '16px',\n border: '1px solid #E0E0E0',\n backgroundColor: palette.primary.A100,\n color: '#000',\n '&:hover': {\n backgroundColor: palette.primary.A100,\n },\n },\n surveyQuestionType: {\n padding: '12px 8px',\n borderRadius: 0,\n border: '1px solid #E0E0E0',\n backgroundColor: palette.primary.A100,\n color: '#000',\n '&:hover': {\n backgroundColor: palette.primary.A100,\n },\n '&:focus': {\n backgroundColor: palette.primary.A100,\n },\n },\n surveyQuestionTypePager: {\n borderRadius: 0,\n },\n surveyQuestionTypeList: {\n padding: 0,\n },\n surveyQuestionTypeMenu: {\n color: '#000',\n paddingTop: '10px',\n paddingBottom: '11px',\n borderBottom: '1px solid #E0E0E0',\n '&:last-child': {\n borderBottomWidth: '0px',\n },\n },\n addSurveyQuestion: {\n marginTop: '10px',\n },\n padding0: {\n padding: 0,\n },\n fontSize18: {\n fontSize: '18px',\n },\n pointer: { cursor: 'pointer' },\n wrapperDialog: {\n padding: '12px 16px',\n },\n titleAddSurveyQuestionDialog: {\n fontStyle: 'normal',\n fontWeight: 'normal',\n color: palette.primary[900],\n fontSize: '16px',\n },\n fieldRequire: {\n color: '#d9534f',\n },\n boxQuestion: {\n border: '1px solid rgba(0, 0, 0, 0.12)',\n padding: '12px 16px',\n },\n buttonDeleteQuestion: {\n backgroundColor: '#d9534f',\n '&:hover': {\n backgroundColor: '#c9302c',\n },\n },\n widthButtonDeleteQuestion: {\n width: `${configStyle.widthButtonDeleteQuestion}px`,\n },\n widthContentQuestion: {\n width: `calc(100% - ${configStyle.widthButtonDeleteQuestion}px)`,\n paddingRight: `${configStyle.paddingContentQuestion}px`,\n },\n spaceCheck: {\n marginRight: '5px',\n },\n buttonDeleteAnswerOption: {\n color: '#d9534f',\n '&:hover': {\n color: '#c9302c',\n },\n },\n widthAnswerOption: {\n width: '60%',\n },\n widthButtonDeleteAnswerOption: {\n width: `${configStyle.widthButtonDeleteAnswerOption}px`,\n },\n widthContentAnswerOption: {\n width: `calc(100% - ${configStyle.widthButtonDeleteAnswerOption}px)`,\n },\n buttonNewSurvey: {\n marginRight: '15px',\n },\n buttonSurveyHome: {\n color: 'inherit',\n textDecoration: 'none',\n '&:hover': {\n color: 'inherit',\n textDecoration: 'none',\n },\n },\n containerSurvey: {\n width: `${configStyle.widthSurvey}%`,\n padding: '10px 15px',\n },\n containerListProject: {\n width: `calc(100% - ${configStyle.widthSurvey}% - 20px)`,\n marginLeft: '20px',\n },\n titleSurvey: {\n color: palette.common.black,\n fontSize: '28px',\n },\n answerOptionInDetail: {\n height: '25px',\n },\n minHeight: {\n minHeight: '50vh',\n },\n errorQuestion: {\n border: '1px solid #f00',\n },\n questionSubtitle: {\n color: '#999',\n },\n noBorder: {\n borderWidth: 0,\n },\n fontSizeTitle: {\n fontSize: '1.4rem',\n },\n dividerStyle: {\n backgroundColor: '#75b86e',\n height: '3px !important',\n },\n marginBottom5: { marginBottom: '5px' },\n marginBottom10: { marginBottom: '10px' },\n}));\n\nexport default userSurveyStyle;\n","import { ConfirmDialog } from '@/components/ConfirmDialog';\nimport CustomPagination from '@/components/CustomPagination';\nimport { useStores } from '@/stores';\nimport { PER_PAGE_OPTIONS } from '@/types/dto/PaginationRequest.dto';\nimport { ISurvey } from '@/types/Survey';\nimport { UserRole } from '@/types/UserRole';\nimport {\n IconButton,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n CircularProgress,\n Typography,\n Button,\n} from '@material-ui/core';\nimport { DeleteForeverRounded, EditRounded } from '@material-ui/icons';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport { Link, useHistory } from 'react-router-dom';\nimport userSurveyStyle from '../style';\nimport clsx from 'clsx';\nimport AdminHeader from '../../common/AdminHeader';\n\ninterface ICustomTableColumn {\n key: string;\n label: string;\n}\n\nconst columns: ICustomTableColumn[] = [\n { key: 'id', label: 'Id' },\n { key: 'name', label: 'Navn' },\n];\n\nconst UserSurveyList = () => {\n const { userSurveyStore, userStore } = useStores();\n const classes = userSurveyStyle();\n const history = useHistory();\n\n const [isConfirmShown, setIsConfirmShown] = React.useState(false);\n const [selectedDeleteSurvey, setSelectedDeletedSurvey] =\n React.useState(null);\n\n const handleDeleteConfirm = async (): Promise => {\n if (selectedDeleteSurvey && selectedDeleteSurvey.id) {\n await userSurveyStore.deleteSurvey(selectedDeleteSurvey.id);\n setIsConfirmShown(false);\n getList();\n }\n };\n\n const openEditSurvey = (survey: ISurvey): void => {\n if (survey.id) {\n history.push(`/user-surveys/${survey.id}/edit`);\n }\n };\n\n const openNewSurvey = (): void => {\n history.push(`/user-surveys/new`);\n };\n\n const openDetailSurvey = (surveyId: number): void => {\n history.push(`/user-surveys/${surveyId}/detail`);\n };\n\n const [skip, setSkip] = React.useState(0);\n const [take, setTake] = React.useState(+PER_PAGE_OPTIONS[0]);\n const [currentPage, setCurrentPage] = React.useState(1);\n\n const getList = React.useCallback(() => {\n userSurveyStore.getList({\n skip,\n take,\n });\n }, [userSurveyStore, skip, take]);\n\n React.useEffect(() => {\n getList();\n }, [getList]);\n\n const changePageOption = (take: number): void => {\n handleChoosePage(1);\n setTake(take);\n };\n\n const handleChoosePage = (page: number): void => {\n setSkip((page - 1) * take);\n setCurrentPage(page);\n };\n\n return (\n <>\n \n Brukerundersøkelse\n \n }\n actions={\n
\n \n
\n }\n />\n\n
\n
\n \n \n \n {columns.map((col) => (\n {col.label}\n ))}\n\n {userStore.user?.role === UserRole.Admin && (\n Action\n )}\n \n \n \n {!userSurveyStore.loadingTableList ? (\n <>\n {userSurveyStore.tableList.length > 0 ? (\n <>\n {userSurveyStore.tableList.map((survey) => (\n <>\n {\n if (survey.id) {\n openDetailSurvey(survey.id);\n }\n }}\n >\n {columns.map((col) => (\n \n {survey[col.key as keyof ISurvey]}\n \n ))}\n\n {userStore.user?.role === UserRole.Admin && (\n <>\n \n \n ) => {\n event.stopPropagation();\n openEditSurvey(survey);\n }}\n >\n \n \n \n ) => {\n event.stopPropagation();\n setSelectedDeletedSurvey(survey);\n setIsConfirmShown(true);\n }}\n >\n \n \n \n \n )}\n \n \n ))}\n \n ) : (\n <>\n \n \n \n Ingen undersøkelse satt opp\n \n \n \n \n )}\n \n ) : (\n <>\n \n \n \n \n \n \n \n \n )}\n \n
\n\n
\n \n
\n\n setIsConfirmShown(false)}\n onAgree={() => handleDeleteConfirm()}\n content={'Er du sikker på at du vil slette dette denne brukerundersøkelsen?'}\n />\n
\n
\n \n );\n};\n\nexport default observer(UserSurveyList);\n","export enum SurveyQuestionType {\n INPUT = 0,\n TEXT_AREA = 1,\n RADIO = 2,\n CHECKBOX = 3,\n}\n\nexport const getSurveyQuestionDisplay = (type: SurveyQuestionType): string => {\n let statusText = '';\n switch (type) {\n case SurveyQuestionType.INPUT:\n statusText = 'Tekstfelt med en linje';\n break;\n case SurveyQuestionType.TEXT_AREA:\n statusText = 'Tekstboks med flere linjer';\n break;\n case SurveyQuestionType.RADIO:\n statusText = 'Radiogruppe (Flere alternativer, kan bare velge ett)';\n break;\n case SurveyQuestionType.CHECKBOX:\n statusText = 'Flersvars alternativer (Avkrysningsboks)';\n break;\n }\n\n return statusText;\n};\n","export class Base64CustomUploadAdapter {\n editor: any;\n\n constructor(editor: any) {\n this.editor = editor;\n }\n\n init() {\n this.editor.plugins.get('FileRepository').createUploadAdapter = (\n loader: any\n ) => {\n return new Adapter(loader);\n };\n }\n}\n\nclass Adapter {\n loader: any;\n reader: FileReader;\n\n constructor(loader: any) {\n this.loader = loader;\n this.reader = new FileReader();\n }\n\n upload() {\n return new Promise((resolve, reject) => {\n const reader = (this.reader = new FileReader());\n\n reader.addEventListener('load', () => {\n resolve({ default: reader.result });\n });\n\n reader.addEventListener('error', (err) => {\n reject(err);\n });\n\n reader.addEventListener('abort', () => {\n reject();\n });\n\n this.loader.file.then((file: File) => {\n reader.readAsDataURL(file);\n });\n });\n }\n\n abort() {\n this.reader.abort();\n }\n}\n","import { CKEditor } from '@ckeditor/ckeditor5-react';\nimport './index.css';\nimport Editor from 'ckeditor5-custom-build/build/ckeditor';\nimport { Base64CustomUploadAdapter } from './Base64CustomUploadAdapter';\n\ninterface IComponentProps {\n content: string | null | undefined;\n setContent?: (content: string) => void;\n disabled?: boolean;\n}\n\nconst CustomSurveyEditor = (props: IComponentProps) => {\n const { content, setContent, disabled } = props;\n const config = {\n extraPlugins: [Base64CustomUploadAdapter],\n toolbar: {\n items: [\n 'bold',\n 'italic',\n 'underline',\n '|',\n 'alignment',\n '|',\n 'link',\n '|',\n 'bulletedList',\n 'numberedList',\n '|',\n 'outdent',\n 'indent',\n '|',\n 'insertTable',\n '|',\n 'uploadImage',\n 'insertImage',\n '|',\n 'mediaEmbed',\n '|',\n 'fontFamily',\n 'fontSize',\n 'fontColor',\n 'fontBackgroundColor',\n '|',\n 'blockQuote',\n '|',\n 'specialCharacters',\n '|',\n 'insertTable',\n '|',\n 'undo',\n 'redo',\n ],\n shouldNotGroupWhenFull: true,\n },\n image: {\n toolbar: [\n 'imageStyle:inline',\n 'imageStyle:block',\n 'imageStyle:side',\n '|',\n 'toggleImageCaption',\n 'imageTextAlternative',\n ],\n },\n mediaEmbed: {\n // configuration...\n },\n table: {\n contentToolbar: [\n 'tableColumn',\n 'tableRow',\n 'mergeTableCells',\n 'toggleTableCaption',\n 'tableProperties',\n 'tableCellProperties',\n ],\n },\n language: 'nb',\n fontFamily: {\n supportAllValues: true,\n },\n };\n\n return (\n <>\n
\n {\n if (editor) {\n editor.setData(content ?? '');\n }\n }}\n onChange={(event: any, editor: any) => {\n if (setContent) {\n const html = editor.getData();\n setContent(html || '

');\n }\n }}\n config={config}\n />\n
\n \n );\n};\n\nexport default CustomSurveyEditor;\n","import { ISurveyQuestion } from './SurveyQuestion';\n\nexport interface ISurvey {\n id?: number;\n name: string;\n title: string;\n description: string;\n isSent: boolean;\n questions: ISurveyQuestion[];\n createdDate?: Date;\n}\n\nexport const INIT_SURVEY: ISurvey = {\n name: '',\n title: '',\n description: '',\n isSent: false,\n questions: [],\n};\n\nexport interface IStudentSurvey {\n isAnswered: boolean;\n survey?: ISurvey;\n}\n","import { SurveyQuestionType } from './enums/SurveyQuestionType';\nimport { ISurveyAnswer } from './SurveyAnswer';\n\nexport interface ISurveyQuestion {\n id?: number;\n surveyId?: number;\n isRequired: boolean;\n type: SurveyQuestionType;\n title: string;\n subTitle: string;\n answers: ISurveyAnswer[];\n createdDate?: Date;\n}\n\nexport const INIT_SURVEY_QUESTION: ISurveyQuestion = {\n isRequired: false,\n type: SurveyQuestionType.INPUT,\n title: '',\n subTitle: '',\n answers: [],\n};\n","import { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n root: {\n padding: 0,\n },\n // size: {\n // width: '20px',\n // height: '20px',\n // },\n // color: {\n // color: palette.primary[600],\n // },\n // visibility: {\n // visibility: 'hidden',\n // },\n}));\n\nexport default useStyles;\n","import { Radio } from '@material-ui/core';\nimport React from 'react';\nimport useStyles from './style';\n\ninterface IComponentProps {\n name: string;\n value: any;\n isChecked: boolean;\n handleChange?: (event: React.ChangeEvent) => void;\n disabled?: boolean;\n}\n\nconst CustomRadio = (props: IComponentProps) => {\n const { name, value, isChecked, handleChange, disabled } = props;\n\n const classes = useStyles();\n\n return (\n <>\n \n \n );\n};\n\nexport default CustomRadio;\n","import { SurveyQuestionType } from '@/types/enums/SurveyQuestionType';\nimport { ISurveyAnswer } from '@/types/SurveyAnswer';\nimport React from 'react';\nimport userSurveyStyle from '../style';\nimport clsx from 'clsx';\nimport { ControlledInputText } from '@/components/ControlledInputText';\nimport { Button } from '@material-ui/core';\nimport CustomRadio from '@/components/CustomRadio';\nimport CustomCheckBox from '@/components/CustomCheckBox';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { QuestionRight } from '@/types/enums/SurveyOption';\n\ninterface IComponentProps {\n questionId: number;\n type: SurveyQuestionType;\n answers: ISurveyAnswer[];\n handleAddAnswer?: (questionId: number) => Promise;\n handleChangeAnswer: (\n content: string,\n questionId: number,\n answerId: number,\n isChecked?: boolean\n ) => void;\n handleDeleteAnswer?: (questionId: number, answerId: number) => Promise;\n right?: QuestionRight;\n notTitle?: boolean;\n}\n\nconst AnswerItem = (props: IComponentProps) => {\n const {\n questionId,\n type,\n answers,\n handleAddAnswer,\n handleChangeAnswer,\n handleDeleteAnswer,\n right,\n notTitle,\n } = props;\n const classes = userSurveyStyle();\n\n return (\n <>\n {type === SurveyQuestionType.INPUT ||\n type === SurveyQuestionType.TEXT_AREA ? (\n <>\n {answers.map((answer) => (\n \n
\n
\n
\n \n handleChangeAnswer(\n value,\n questionId,\n answer.id ?? 0,\n !!answer.isChecked\n )\n }\n customClass={clsx(classes.widthFull)}\n inputProps={{\n disableUnderline: true,\n classes: {\n input:\n type === SurveyQuestionType.INPUT\n ? classes.questionInput\n : '',\n multiline:\n type === SurveyQuestionType.TEXT_AREA\n ? classes.questionTextArea\n : '',\n },\n }}\n hasMultiline={type === SurveyQuestionType.TEXT_AREA}\n variant={\n type === SurveyQuestionType.TEXT_AREA\n ? 'standard'\n : 'filled'\n }\n minRows={3}\n maxRows={10}\n disabled={right === QuestionRight.ONLY_CREATE_EDIT}\n />\n
\n
\n \n ))}\n \n ) : (\n <>\n {answers.map((answer) => (\n \n
\n {type === SurveyQuestionType.RADIO ? (\n
\n \n \n ) =>\n handleChangeAnswer(\n answer.content,\n questionId,\n answer.id ?? 0,\n event.target.checked\n )\n }\n disabled={right === QuestionRight.ONLY_CREATE_EDIT}\n />\n
\n
\n ) : (\n
\n \n \n ) =>\n handleChangeAnswer(\n answer.content,\n questionId,\n answer.id ?? 0,\n event.target.checked\n )\n }\n disabled={right === QuestionRight.ONLY_CREATE_EDIT}\n />\n
\n \n )}\n \n
\n
\n \n \n \n handleChangeAnswer(\n value,\n questionId,\n answer.id ?? 0,\n !!answer.isChecked\n )\n }\n customClass={clsx(classes.widthFull)}\n inputProps={{\n disableUnderline: true,\n classes: { input: classes.questionInput },\n }}\n disabled={right === QuestionRight.ONLY_ANSWER}\n />\n
\n\n {right !== QuestionRight.ONLY_ANSWER && (\n {\n if (handleDeleteAnswer) {\n await handleDeleteAnswer(\n questionId,\n answer.id ?? 0\n );\n }\n }}\n >\n \n
\n )}\n \n \n \n \n ))}\n\n {right !== QuestionRight.ONLY_ANSWER && (\n
\n {\n if (handleAddAnswer) {\n handleAddAnswer(questionId);\n }\n }}\n >\n Legg til nytt svaralternativ\n \n
\n )}\n \n )}\n \n );\n};\n\nexport default AnswerItem;\n","import { ISurveyQuestion } from '@/types/SurveyQuestion';\nimport React from 'react';\nimport userSurveyStyle from '../style';\nimport clsx from 'clsx';\nimport { ControlledInputText } from '@/components/ControlledInputText';\nimport CustomCheckBox from '@/components/CustomCheckBox';\nimport { Button, MenuItem, Select } from '@material-ui/core';\nimport {\n getSurveyQuestionDisplay,\n SurveyQuestionType,\n} from '@/types/enums/SurveyQuestionType';\nimport AnswerItem from './answer';\nimport { QuestionRight } from '@/types/enums/SurveyOption';\n\ninterface IComponentProps {\n question: ISurveyQuestion;\n setQuestionTitle?: (questionId: number, title: string) => void;\n setQuestionIsRequired?: (questionId: number, isRequired: boolean) => void;\n setQuestionSubTitle?: (questionId: number, subTitle: string) => void;\n setQuestionType?: (questionId: number, type: SurveyQuestionType) => void;\n handleAddAnswer?: (questionId: number) => Promise;\n handleChangeAnswer: (\n content: string,\n questionId: number,\n answerId: number,\n isChecked?: boolean\n ) => void;\n handleDeleteQuestion?: (questionId: number) => Promise;\n handleDeleteAnswer?: (questionId: number, answerId: number) => Promise;\n right?: QuestionRight;\n isError?: boolean;\n}\n\nconst QuestionItem = (props: IComponentProps) => {\n const {\n question,\n setQuestionTitle,\n setQuestionIsRequired,\n setQuestionSubTitle,\n setQuestionType,\n handleAddAnswer,\n handleChangeAnswer,\n handleDeleteQuestion,\n handleDeleteAnswer,\n right,\n isError,\n } = props;\n const classes = userSurveyStyle();\n\n const beforeChangeIsRequired = (\n event: React.ChangeEvent\n ): void => {\n if (question.id) {\n if (right !== QuestionRight.ONLY_ANSWER && setQuestionIsRequired) {\n setQuestionIsRequired(question.id, event.target.checked);\n }\n }\n };\n\n return (\n <>\n \n
\n
\n
\n
\n Tittel*\n
\n
\n {\n if (question.id) {\n if (\n right !== QuestionRight.ONLY_ANSWER &&\n setQuestionTitle\n ) {\n setQuestionTitle(question.id, value);\n }\n }\n }}\n customClass={clsx(classes.widthFull)}\n inputProps={{\n disableUnderline: true,\n classes: { input: classes.questionInput },\n }}\n disabled={right === QuestionRight.ONLY_ANSWER}\n />\n
\n
\n \n
\n
\n \n
\n \n
\n
\n Må fylles ut*\n
\n
\n
\n
\n
\n
\n Hjelpetekst\n
\n
\n {\n if (question.id) {\n if (\n right !== QuestionRight.ONLY_ANSWER &&\n setQuestionSubTitle\n ) {\n setQuestionSubTitle(question.id, value);\n }\n }\n }}\n customClass={clsx(classes.widthFull)}\n inputProps={{\n disableUnderline: true,\n classes: {\n multiline: classes.questionTextArea,\n },\n }}\n hasMultiline={true}\n variant={'standard'}\n minRows={3}\n maxRows={10}\n disabled={right === QuestionRight.ONLY_ANSWER}\n />\n
\n
\n \n
\n Spørsmål Type*\n
\n
\n ) => {\n if (question.id) {\n if (\n right !== QuestionRight.ONLY_ANSWER &&\n setQuestionType\n ) {\n setQuestionType(\n question.id,\n e.target.value as SurveyQuestionType\n );\n }\n }\n }}\n classes={{\n root: classes.surveyQuestionType,\n icon: classes.color500,\n }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n getContentAnchorEl: null,\n classes: {\n paper: classes.surveyQuestionTypePager,\n list: classes.surveyQuestionTypeList,\n },\n }}\n className={clsx(classes.widthFull)}\n inputProps={{\n disabled: right === QuestionRight.ONLY_ANSWER,\n }}\n >\n {Object.keys(SurveyQuestionType)\n .filter(\n (k: string) =>\n typeof SurveyQuestionType[k as any] === 'string'\n )\n .map((k1: string) => +k1)\n .map((k2: number) => (\n \n {getSurveyQuestionDisplay(k2)}\n \n ))}\n \n
\n \n\n
\n \n
\n \n {right !== QuestionRight.ONLY_ANSWER && (\n \n {\n if (question.id && handleDeleteQuestion) {\n await handleDeleteQuestion(question.id);\n }\n }}\n >\n Slett spørsmål\n \n \n )}\n \n \n \n );\n};\n\nexport default QuestionItem;\n","import {\n Dialog,\n DialogContent,\n DialogTitle,\n IconButton,\n MenuItem,\n Select,\n Slide,\n Button,\n} from '@material-ui/core';\nimport { TransitionProps } from '@material-ui/core/transitions';\nimport React, { forwardRef } from 'react';\nimport userSurveyStyle from '../../style';\nimport clsx from 'clsx';\nimport CloseIcon from '@material-ui/icons/Close';\nimport { ISurveyQuestion } from '@/types/SurveyQuestion';\nimport {\n getSurveyQuestionDisplay,\n SurveyQuestionType,\n} from '@/types/enums/SurveyQuestionType';\n\nconst Transition = forwardRef(function Transition(\n props: TransitionProps & { children?: React.ReactElement },\n ref: React.Ref\n) {\n return ;\n});\n\ninterface IComponentProps {\n open: boolean;\n handleClose: () => void;\n question: ISurveyQuestion;\n setQuestion: (value: ISurveyQuestion) => void;\n handleAddQuestion: () => Promise;\n}\n\nconst AddSurveyQuestionDialog = (props: IComponentProps) => {\n const { open, handleClose, question, setQuestion, handleAddQuestion } = props;\n const classes = userSurveyStyle();\n\n return (\n <>\n \n
\n \n \n \n Legg til spørsmål\n
\n \n \n \n \n \n \n ) => {\n setQuestion({\n ...question,\n type: e.target.value as SurveyQuestionType,\n });\n }}\n classes={{\n root: classes.surveyQuestionType,\n icon: classes.color500,\n }}\n MenuProps={{\n anchorOrigin: {\n vertical: 'bottom',\n horizontal: 'left',\n },\n transformOrigin: {\n vertical: 'top',\n horizontal: 'left',\n },\n getContentAnchorEl: null,\n classes: {\n paper: classes.surveyQuestionTypePager,\n list: classes.surveyQuestionTypeList,\n },\n }}\n className={clsx(classes.widthFull)}\n >\n {Object.keys(SurveyQuestionType)\n .filter(\n (k: string) =>\n typeof SurveyQuestionType[k as any] === 'string'\n )\n .map((k1: string) => +k1)\n .map((k2: number) => (\n \n {getSurveyQuestionDisplay(k2)}\n \n ))}\n \n \n \n
\n
\n {\n await handleAddQuestion();\n }}\n >\n Lagre\n \n \n Avbryt\n \n
\n
\n
\n \n \n \n );\n};\n\nexport default AddSurveyQuestionDialog;\n","export interface ISurveyAnswer {\n id?: number;\n surveyQuestionId?: number;\n content: string;\n isChecked: boolean;\n createdDate?: Date;\n time?: string;\n}\n\nexport const INIT_SURVEY_ANSWER: ISurveyAnswer = {\n content: '',\n isChecked: false,\n};\n","import { ControlledInputText } from '@/components/ControlledInputText';\nimport { useStores } from '@/stores';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport { Link, useHistory, useParams } from 'react-router-dom';\nimport userSurveyStyle from '../style';\nimport clsx from 'clsx';\nimport CustomSurveyEditor from '@/components/CustomSurveyEditor';\nimport { INIT_SURVEY, ISurvey } from '@/types/Survey';\nimport { ISurveyQuestion, INIT_SURVEY_QUESTION } from '@/types/SurveyQuestion';\nimport { CircularProgress, Button } from '@material-ui/core';\nimport QuestionItem from './question';\nimport { SurveyQuestionType } from '@/types/enums/SurveyQuestionType';\nimport AddSurveyQuestionDialog from './AddSurveyQuestionDialog';\nimport { ISurveyAnswer, INIT_SURVEY_ANSWER } from '@/types/SurveyAnswer';\nimport AdminHeader from '../../common/AdminHeader';\nimport { QuestionRight, SurveyOption } from '@/types/enums/SurveyOption';\n\ninterface IComponentProps {\n option: SurveyOption;\n}\ninterface UrlParams {\n surveyId: string;\n}\n\ninterface QuestionHistory {\n questionId: number;\n mapOfTypeToAnswers: Map;\n}\n\nconst SurveyQuestion = (props: IComponentProps) => {\n const { option } = props;\n const { surveyId } = useParams();\n const { userSurveyStore } = useStores();\n const history = useHistory();\n\n const classes = userSurveyStyle();\n\n const [mapOfFakeQuestionId, setMapOfFakeQuestionId] = React.useState<\n Map\n >(new Map());\n const [mapOfFakeAnswerId, setMapOfFakeAnswerId] = React.useState<\n Map\n >(new Map());\n\n const [survey, setSurvey] = React.useState(INIT_SURVEY);\n const [loading, setLoading] = React.useState(false);\n\n const fetchData = async (surveyId: number): Promise => {\n setLoading(true);\n const surveyFromDB = await userSurveyStore.getSurveyById(surveyId);\n setSurvey(surveyFromDB);\n setLoading(false);\n };\n\n React.useEffect(() => {\n if (option === SurveyOption.EDIT) {\n fetchData(+surveyId);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [surveyId]);\n\n const setSurveyTitle = (title: string): void => {\n setSurvey({ ...survey, title });\n };\n\n const setSurveyName = (name: string): void => {\n setSurvey({ ...survey, name });\n };\n\n const setSurveyDescription = (content: string): void => {\n setSurvey({ ...survey, description: content });\n };\n\n const setQuestionTitle = (questionId: number, title: string): void => {\n const question = survey.questions.find((q) => q.id === questionId);\n if (question) {\n question.title = title;\n setSurvey({ ...survey });\n }\n };\n\n const setQuestionIsRequired = (\n questionId: number,\n isRequired: boolean\n ): void => {\n const question = survey.questions.find((q) => q.id === questionId);\n if (question) {\n question.isRequired = isRequired;\n setSurvey({ ...survey });\n }\n };\n\n const setQuestionSubTitle = (questionId: number, subTitle: string): void => {\n const question = survey.questions.find((q) => q.id === questionId);\n if (question) {\n question.subTitle = subTitle;\n setSurvey({ ...survey });\n }\n };\n\n const [questionHistories, setQuestionHistories] = React.useState<\n QuestionHistory[]\n >([]);\n const setQuestionType = (\n questionId: number,\n type: SurveyQuestionType\n ): void => {\n const question = survey.questions.find((q) => q.id === questionId);\n if (question) {\n const history = questionHistories.find(\n (h) => h.questionId === questionId\n );\n\n if (history) {\n const oldMap = history.mapOfTypeToAnswers;\n const oldAnswers = oldMap.get(type);\n if (oldAnswers) {\n oldMap.set(question.type, question.answers);\n question.answers = oldAnswers;\n } else {\n _getAnswers(type, question);\n }\n } else {\n const newMap = new Map();\n newMap.set(question.type, question.answers);\n\n const newHistory: QuestionHistory = {\n questionId,\n mapOfTypeToAnswers: newMap,\n };\n questionHistories.push(newHistory);\n _getAnswers(type, question);\n }\n\n question.type = type;\n setSurvey({ ...survey });\n setQuestionHistories([...questionHistories]);\n }\n };\n\n const _getAnswers = (\n type: SurveyQuestionType,\n question: ISurveyQuestion\n ): void => {\n if (\n type === SurveyQuestionType.INPUT ||\n type === SurveyQuestionType.TEXT_AREA\n ) {\n const answers = _getAllAnswers();\n const maxAnswerId = _findMax(answers.map((a) => a.id ?? 0));\n question.answers = [\n {\n ...INIT_SURVEY_ANSWER,\n id: maxAnswerId + 1,\n },\n ];\n mapOfFakeAnswerId.set(maxAnswerId + 1, maxAnswerId + 1);\n setMapOfFakeAnswerId(mapOfFakeAnswerId);\n }\n\n if (\n type === SurveyQuestionType.RADIO ||\n type === SurveyQuestionType.CHECKBOX\n ) {\n question.answers = [];\n }\n };\n\n /** Add survey question */\n const [openSurveyQuestionDialog, setOpenSurveyQuestionDialog] =\n React.useState(false);\n const handleOpenSurveyQuestionDialog = (): void => {\n setOpenSurveyQuestionDialog(true);\n };\n const handleCloseSurveyQuestionDialog = (): void => {\n setOpenSurveyQuestionDialog(false);\n };\n const [question, setQuestion] = React.useState({\n ...INIT_SURVEY_QUESTION,\n });\n\n const handleAddQuestion = async (): Promise => {\n if (\n question.type === SurveyQuestionType.INPUT ||\n question.type === SurveyQuestionType.TEXT_AREA\n ) {\n const answers = _getAllAnswers();\n const maxAnswerId = _findMax(answers.map((a) => a.id ?? 0));\n question.answers = [\n {\n ...INIT_SURVEY_ANSWER,\n id: maxAnswerId + 1,\n },\n ];\n mapOfFakeAnswerId.set(maxAnswerId + 1, maxAnswerId + 1);\n setMapOfFakeAnswerId(mapOfFakeAnswerId);\n }\n\n const maxQuestionId = _findMax(survey.questions.map((q) => q.id ?? 0));\n const questionNew = { ...question, id: maxQuestionId + 1 };\n survey.questions = [...survey.questions, questionNew];\n\n mapOfFakeQuestionId.set(maxQuestionId + 1, maxQuestionId + 1);\n setMapOfFakeQuestionId(mapOfFakeQuestionId);\n\n setSurvey({ ...survey });\n setQuestion({ ...INIT_SURVEY_QUESTION });\n handleCloseSurveyQuestionDialog();\n };\n\n const handleAddAnswer = async (questionId: number): Promise => {\n const answers = _getAllAnswers();\n const maxAnswerId = _findMax(answers.map((a) => a.id ?? 0));\n const answer: ISurveyAnswer = {\n ...INIT_SURVEY_ANSWER,\n id: maxAnswerId + 1,\n };\n\n mapOfFakeAnswerId.set(maxAnswerId + 1, maxAnswerId + 1);\n setMapOfFakeAnswerId(mapOfFakeAnswerId);\n\n const question = survey.questions.find((q) => q.id === questionId);\n if (question) {\n question.answers = [...question.answers, answer];\n setSurvey({ ...survey });\n }\n };\n\n const handleChangeAnswer = (\n content: string,\n questionId: number,\n answerId: number,\n isChecked?: boolean\n ): void => {\n const question = survey.questions.find((q) => q.id === questionId);\n\n if (question) {\n const answers = question.answers;\n\n switch (question.type) {\n case SurveyQuestionType.INPUT:\n if (answers[0]) {\n answers[0].content = content;\n }\n break;\n case SurveyQuestionType.TEXT_AREA:\n if (answers[0]) {\n answers[0].content = content;\n }\n break;\n case SurveyQuestionType.RADIO:\n const answerRadioChecked = answers.find((a) => a.isChecked);\n if (answerRadioChecked && !!isChecked) {\n answerRadioChecked.isChecked = false;\n }\n\n const answerRadio = answers.find((a) => a.id === answerId);\n if (answerRadio) {\n answerRadio.isChecked = !!isChecked;\n answerRadio.content = content;\n }\n break;\n case SurveyQuestionType.CHECKBOX:\n const answerCheckbox = answers.find((a) => a.id === answerId);\n if (answerCheckbox) {\n answerCheckbox.isChecked = !!isChecked;\n answerCheckbox.content = content;\n }\n break;\n default:\n break;\n }\n\n setSurvey({ ...survey });\n }\n };\n /** Add survey question */\n\n const handleUpdateOrCreateSurvey = async (): Promise => {\n _resetSurvey();\n\n if (survey.id) {\n await userSurveyStore.update(survey);\n setQuestionHistories([]);\n setMapOfFakeQuestionId(new Map());\n setMapOfFakeAnswerId(new Map());\n await fetchData(+surveyId);\n } else {\n await userSurveyStore.create(survey);\n history.push(`/user-surveys`);\n }\n };\n\n const _resetSurvey = (): void => {\n survey.questions.map((q) => {\n if (mapOfFakeQuestionId.get(q.id ?? 0)) {\n q.id = 0;\n }\n\n q.answers.map((a) => {\n if (mapOfFakeAnswerId.get(a.id ?? 0)) {\n a.id = 0;\n }\n\n return a;\n });\n\n return q;\n });\n\n setSurvey({ ...survey });\n };\n\n const handleDeleteQuestion = async (questionId: number): Promise => {\n const question = survey.questions.find((q) => q.id === questionId);\n\n if (question) {\n if (!mapOfFakeQuestionId.get(question.id ?? 0)) {\n await userSurveyStore.deleteQuestion(questionId);\n }\n\n const indexOldQuestion = survey.questions\n .map((q) => q.id)\n .indexOf(questionId);\n if (indexOldQuestion > -1) {\n survey.questions.splice(indexOldQuestion, 1);\n }\n const indexOldQuestionHistory = questionHistories\n .map((q) => q.questionId)\n .indexOf(questionId);\n if (indexOldQuestionHistory > -1) {\n questionHistories.splice(indexOldQuestionHistory, 1);\n }\n\n if (mapOfFakeQuestionId.get(question.id ?? 0)) {\n const answerIds = question.answers.map((a) => a.id ?? 0);\n answerIds.map((answerId) => {\n mapOfFakeAnswerId.delete(answerId);\n return answerId;\n });\n mapOfFakeQuestionId.delete(questionId);\n }\n\n setSurvey({ ...survey });\n setQuestionHistories([...questionHistories]);\n }\n };\n\n const handleDeleteAnswer = async (\n questionId: number,\n answerId: number\n ): Promise => {\n if (!mapOfFakeAnswerId.get(answerId)) {\n await userSurveyStore.deleteAnswer(answerId);\n }\n\n const question = survey.questions.find((q) => q.id === questionId);\n if (question) {\n const indexOldAnswer = question.answers\n .map((a) => a.id ?? 0)\n .indexOf(answerId);\n\n if (indexOldAnswer > -1) {\n question.answers.splice(indexOldAnswer, 1);\n }\n\n const questionHistory = questionHistories.find(\n (h) => h.questionId === questionId\n );\n if (questionHistory) {\n const answers = questionHistory.mapOfTypeToAnswers.get(question.type);\n if (answers) {\n const indexOldHistoryAnswer = answers\n .map((a) => a.id ?? 0)\n .indexOf(answerId);\n if (indexOldHistoryAnswer > -1) {\n answers.splice(indexOldHistoryAnswer, 1);\n }\n }\n }\n\n if (mapOfFakeAnswerId.get(answerId)) {\n mapOfFakeAnswerId.delete(answerId);\n }\n\n setSurvey({ ...survey });\n setQuestionHistories([...questionHistories]);\n }\n };\n\n const _findMax = (values: number[]): number => {\n if (!values.length) {\n return 0;\n }\n\n return values.reduce((a: number, b: number) => Math.max(a, b));\n };\n\n const _getAllAnswers = (): ISurveyAnswer[] => {\n let result: ISurveyAnswer[] = [];\n const all: ISurveyAnswer[][] = survey.questions.map((q) => q.answers);\n for (let i = 0; i < all.length; i++) {\n result = result.concat(all[i]);\n }\n\n return result;\n };\n\n const goListSurvey = (): void => {\n history.push(`/user-surveys`);\n };\n\n return (\n <>\n \n Brukerundersøkelse\n \n }\n actions={\n <>\n
\n \n Se arkiverte\n \n
\n \n }\n />\n\n
\n {!loading ? (\n <>\n \n
\n \n Tittel\n
\n
\n \n
\n
\n {option === SurveyOption.CREATE && (\n
\n \n Navn\n
\n
\n \n
\n \n )}\n
\n \n Beskrivelse\n
\n
\n \n
\n \n\n
\n {survey.questions.map((question: ISurveyQuestion) => (\n \n \n
\n ))}\n\n
\n \n Legg til spørsmål\n \n
\n \n\n
\n
\n {\n await handleUpdateOrCreateSurvey();\n }}\n >\n Lagre\n \n \n Avbryt\n \n
\n
\n \n \n ) : (\n \n \n \n )}\n\n \n \n \n );\n};\n\nexport default observer(SurveyQuestion);\n","import { SurveyOption } from '@/types/enums/SurveyOption';\nimport React from 'react';\nimport SurveyQuestion from '../SurveyQuestion';\n\nconst CreateSurvey = () => {\n return ;\n};\n\nexport default CreateSurvey;\n","import { SurveyOption } from '@/types/enums/SurveyOption';\nimport React from 'react';\nimport SurveyQuestion from '../SurveyQuestion';\n\nconst EditSurvey = () => {\n return ;\n};\n\nexport default EditSurvey;\n","import { ControlledInputText } from '@/components/ControlledInputText';\nimport CustomCheckBox from '@/components/CustomCheckBox';\nimport CustomRadio from '@/components/CustomRadio';\nimport { SurveyQuestionType } from '@/types/enums/SurveyQuestionType';\nimport { ISurveyAnswer } from '@/types/SurveyAnswer';\nimport React from 'react';\nimport userSurveyStyle from '../style';\nimport clsx from 'clsx';\n\ninterface IComponentProps {\n questionId: number;\n type: SurveyQuestionType;\n answers: ISurveyAnswer[];\n}\n\nconst Answer = (props: IComponentProps) => {\n const { questionId, type, answers } = props;\n const classes = userSurveyStyle();\n\n return (\n <>\n {type === SurveyQuestionType.INPUT ||\n type === SurveyQuestionType.TEXT_AREA ? (\n <>\n {answers.map((answer) => (\n
\n console.log(value)}\n customClass={clsx(classes.widthFull)}\n inputProps={{\n disableUnderline: true,\n classes: {\n input:\n type === SurveyQuestionType.INPUT\n ? classes.questionInput\n : '',\n multiline:\n type === SurveyQuestionType.TEXT_AREA\n ? classes.questionTextArea\n : '',\n },\n }}\n hasMultiline={type === SurveyQuestionType.TEXT_AREA}\n variant={\n type === SurveyQuestionType.TEXT_AREA ? 'standard' : 'filled'\n }\n minRows={3}\n maxRows={10}\n disabled={true}\n />\n
\n ))}\n \n ) : (\n <>\n {answers.map((answer) => (\n \n {type === SurveyQuestionType.RADIO ? (\n \n \n ) => console.log(event)}\n disabled={true}\n />\n \n ) : (\n \n \n ) => console.log(event)}\n disabled={true}\n />\n \n )}\n\n
{answer.content}
\n \n ))}\n \n )}\n \n );\n};\n\nexport default Answer;\n","import { CKEditor } from '@ckeditor/ckeditor5-react';\nimport './index.css';\nimport Editor from 'ckeditor5-custom-build/build/ckeditor';\n\ninterface IComponentProps {\n content: string | null | undefined;\n}\n\nconst DescriptionSurvey = (props: IComponentProps) => {\n const { content } = props;\n\n const config = {\n isReadOnly: true,\n };\n\n return (\n <>\n
\n {\n if (editor) {\n editor.setData(content ?? '');\n }\n }}\n config={config}\n disabled={true}\n />\n
\n \n );\n};\n\nexport default DescriptionSurvey;\n","import { ControlledInputText } from '@/components/ControlledInputText';\nimport { ISurveyQuestion } from '@/types/SurveyQuestion';\nimport clsx from 'clsx';\nimport React from 'react';\nimport userSurveyStyle from '../style';\n\ninterface IComponentProps {\n question: ISurveyQuestion;\n children: React.ReactElement; //JSX.Element;\n}\n\nconst Question = (props: IComponentProps) => {\n const { question, children } = props;\n const classes = userSurveyStyle();\n\n return (\n <>\n
\n {question.title}\n {question.isRequired ? (\n <>\n *\n \n ) : (\n <>\n )}\n
\n
\n console.log(value)}\n customClass={clsx(classes.widthFull)}\n inputProps={{\n disableUnderline: true,\n classes: {\n input: classes.questionSubtitle,\n multiline: clsx(\n classes.questionTextArea,\n classes.noBorder,\n classes.padding0\n ),\n },\n }}\n hasMultiline={true}\n variant={'standard'}\n minRows={1}\n maxRows={10}\n disabled={true}\n />\n
\n
\n {/* */}\n {children}\n
\n \n );\n};\n\nexport default Question;\n","import { ISurvey } from '@/types/Survey';\nimport { Divider } from '@material-ui/core';\nimport clsx from 'clsx';\nimport React from 'react';\nimport userSurveyStyle from '../style';\nimport Answer from './answer';\nimport DescriptionSurvey from './DescriptionSurvey';\nimport Question from './question';\n\ninterface IComponentProps {\n survey: ISurvey;\n openEditSurvey: () => void;\n}\n\nconst Survey = (props: IComponentProps) => {\n const { survey, openEditSurvey } = props;\n const classes = userSurveyStyle();\n return (\n <>\n
{survey.title}
\n \n
\n {survey.questions.map((question) => (\n
\n \n \n \n
\n ))}\n
\n <>\n \n
\n *Må fylles ut\n
\n \n\n \n Rediger\n \n \n );\n};\n\nexport default Survey;\n","import CustomPagination from '@/components/CustomPagination';\nimport { ProjectAssignDto } from '@/types/ProjectSurvey';\nimport {\n CircularProgress,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Typography,\n} from '@material-ui/core';\nimport GetAppIcon from '@material-ui/icons/GetApp';\nimport clsx from 'clsx';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport userSurveyStyle from '../style';\n\ninterface IComponentProps {\n list: ProjectAssignDto[];\n total: number;\n loading: boolean;\n currentPage: number;\n take: number;\n changePageOption: (take: number) => void;\n handleChoosePage: (page: number) => void;\n downloadProjectSurvey: (projectId: number) => Promise;\n}\n\nconst ListProject = (props: IComponentProps) => {\n const {\n list,\n total,\n loading,\n currentPage,\n take,\n changePageOption,\n handleChoosePage,\n downloadProjectSurvey,\n } = props;\n const classes = userSurveyStyle();\n\n return (\n
\n \n \n \n Prosjekt\n Antall utsendt\n Antall svar\n \n Action\n \n \n \n \n {!loading ? (\n <>\n {list.length > 0 ? (\n <>\n {list.map((p) => (\n <>\n \n {p.projectName}\n {p.numberSent}\n {p.numberResponse}\n \n {\n await downloadProjectSurvey(p.projectId);\n }}\n >\n \n \n \n \n \n ))}\n \n ) : (\n <>\n \n \n \n Ingen prosjekt satt opp\n \n \n \n \n )}\n \n ) : (\n \n \n \n \n \n \n \n )}\n \n
\n\n
\n \n
\n
\n );\n};\n\nexport default observer(ListProject);\n","import React from 'react';\nimport { observer } from 'mobx-react';\nimport { Link, useHistory, useParams } from 'react-router-dom';\nimport { useStores } from '@/stores';\nimport userSurveyStyle from '../style';\nimport AdminHeader from '../../common/AdminHeader';\nimport { ISurvey } from '@/types/Survey';\nimport { CircularProgress } from '@material-ui/core';\nimport clsx from 'clsx';\nimport Survey from './survey';\nimport ListProject from './list-project';\nimport { PER_PAGE_OPTIONS } from '@/types/dto/PaginationRequest.dto';\nimport { ProjectAssignDto } from '@/types/ProjectSurvey';\n\ninterface UrlParams {\n surveyId: string;\n}\n\nconst SurveyDetail = () => {\n const { surveyId } = useParams();\n const { userSurveyStore } = useStores();\n\n const history = useHistory();\n const classes = userSurveyStyle();\n\n const [survey, setSurvey] = React.useState(undefined);\n const [loading, setLoading] = React.useState(false);\n\n const fetchData = async (surveyId: number): Promise => {\n setLoading(true);\n const surveyFromDB = await userSurveyStore.getSurveyById(surveyId);\n setSurvey(surveyFromDB);\n setLoading(false);\n };\n\n React.useEffect(() => {\n fetchData(+surveyId);\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [surveyId]);\n\n const openEditSurvey = (): void => {\n history.push(`/user-surveys/${surveyId}/edit`);\n };\n\n const [skip, setSkip] = React.useState(0);\n const [take, setTake] = React.useState(+PER_PAGE_OPTIONS[0]);\n const [currentPage, setCurrentPage] = React.useState(1);\n const [list, setList] = React.useState([]);\n const [total, setTotal] = React.useState(0);\n const [loadingList, setLoadingList] = React.useState(false);\n\n const getList = React.useCallback(async () => {\n setLoadingList(true);\n const result = await userSurveyStore.getListProjectAssign({\n skip,\n take,\n surveyId: +surveyId,\n });\n\n setList(result.data);\n setTotal(result.count);\n setLoadingList(false);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [userSurveyStore, skip, take]);\n\n React.useEffect(() => {\n getList();\n }, [getList]);\n\n const changePageOption = (take: number): void => {\n handleChoosePage(1);\n setTake(take);\n };\n\n const handleChoosePage = (page: number): void => {\n setSkip((page - 1) * take);\n setCurrentPage(page);\n };\n\n const downloadProjectSurvey = async (projectId: number): Promise => {\n if (surveyId) {\n await userSurveyStore.getProjectSurveyExcelExport(projectId, +surveyId);\n }\n };\n\n return (\n <>\n \n Brukerundersøkelse\n \n }\n />\n\n
\n {!loading ? (\n <>\n {survey && (\n
\n \n \n
\n
\n \n
\n
\n )}\n \n ) : (\n \n \n \n )}\n \n \n );\n};\n\nexport default observer(SurveyDetail);\n","import React from 'react';\nimport StudySubjects from '../../common/StudySubjects';\n\nconst AdminStudySubjects = () => {\n return ;\n};\n\nexport default AdminStudySubjects;\n","import { flexCol, flexRow } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ palette }) => ({\n content: {\n width: '600px',\n ...flexCol,\n gap: '6px',\n overflow: 'auto',\n justifyContent: 'flex-start',\n padding: '16px',\n },\n courseOptionHeader: {\n ...flexRow,\n justifyContent: 'space-between',\n marginBottom: '24px',\n },\n pointer: { cursor: 'pointer' },\n studySubjectName: {\n marginBottom: '24px',\n },\n commonBottom: {\n marginBottom: '16px',\n },\n buttonContainer: {\n display: 'flex',\n marginTop: '1rem',\n },\n}));\n\nexport default useStyles;\n","import { useStores } from '@/stores';\nimport {\n Box,\n Button,\n Drawer,\n FilledInput,\n FormControl,\n FormHelperText,\n InputLabel,\n MenuItem,\n Select,\n Typography,\n} from '@material-ui/core';\nimport { observer } from 'mobx-react';\nimport React from 'react';\nimport useStyles from './style';\nimport ClearIcon from '@material-ui/icons/Clear';\nimport { User } from '@/types/User';\nimport { ControlledInputText } from '@/components/ControlledInputText';\nimport CustomEditor from '@/components/CustomEditor';\nimport { CreateUpdateCourseTemplate } from '@/types/CourseTemplate';\nimport { CircularProgress } from '@material-ui/core';\n\ninterface IComponentProps {\n handleClose: () => void;\n setCourseHolderId: (courseHolderId: number) => void;\n setRoomNumber: (roomNumber: string) => void;\n setCourseInfo: (courseInfo: string) => void;\n errorRegisterFormValue: Record;\n createUpdateCourseTemplate: CreateUpdateCourseTemplate;\n handleCreateOrUpdateCourseTemplate: () => void;\n loading: boolean;\n}\n\nconst VGSStudySubjectDrawer = (props: IComponentProps) => {\n const {\n handleClose,\n setCourseHolderId,\n setRoomNumber,\n setCourseInfo,\n errorRegisterFormValue,\n createUpdateCourseTemplate,\n handleCreateOrUpdateCourseTemplate,\n loading,\n } = props;\n\n const { stateStore, studySubjectStore, userStore } = useStores();\n const { vgsStudySubjectDrawerIsOpen } = stateStore;\n const { chosenStudySubject } = studySubjectStore;\n const { listContactPerson } = userStore;\n\n const classes = useStyles();\n\n return (\n <>\n \n \n {!loading ? (\n <>\n \n Legg til infomasjon\n \n \n\n \n {chosenStudySubject.studySubjectName}\n \n\n \n \n Kontakt person\n \n ) =>\n setCourseHolderId(e.target.value as number)\n }\n input={}\n >\n {listContactPerson.map((u: User) => (\n \n {`${u.fullName}`}\n \n ))}\n \n {errorRegisterFormValue.courseHolderId && (\n Obligatorisk\n )}\n \n\n \n\n \n \n \n\n
\n handleCreateOrUpdateCourseTemplate()}\n >\n {!createUpdateCourseTemplate.id ? 'Opprett' : 'Lagre'}\n \n \n Avbryt\n \n
\n \n ) : (\n \n \n
\n )}\n \n \n \n );\n};\n\nexport default observer(VGSStudySubjectDrawer);\n","import IStudySubject from './StudySubject';\nimport { User } from './User';\n\nexport interface ICourseTemplate {\n id: number;\n studySubjectId: number;\n studySubject: IStudySubject;\n roomNumber: string;\n courseHolderId: number;\n courseHolder: User;\n projectId: number;\n courseInfo: string;\n externalSchoolId: string;\n}\n\nexport class CreateUpdateCourseTemplate {\n id?: number;\n studySubjectId = 0;\n roomNumber = '';\n courseHolderId = 0;\n projectId = 0;\n courseInfo = '';\n externalSchoolId = '';\n\n static fromICourseTemplate(\n model: ICourseTemplate\n ): CreateUpdateCourseTemplate {\n const result = new CreateUpdateCourseTemplate();\n result.id = model.id;\n result.studySubjectId = model.studySubjectId;\n result.roomNumber = model.roomNumber;\n result.courseHolderId = model.courseHolderId;\n result.projectId = model.projectId;\n result.courseInfo = model.courseInfo;\n result.externalSchoolId = model.externalSchoolId;\n return result;\n }\n}\n","import { flexCol } from '@/style/common';\nimport { makeStyles } from '@material-ui/core';\n\nconst useStyles = makeStyles(({ breakpoints, palette }) => ({\n listWrapper: {\n maxWidth: '1300px',\n ...flexCol,\n gap: '6px',\n padding: '0 115px',\n [breakpoints.down('md')]: {\n padding: '0 5px',\n },\n },\n}));\n\nexport default useStyles;\n","import { observer } from 'mobx-react';\nimport { FC, useEffect, useState } from 'react';\nimport useStyles from './style';\nimport StudySubjectCard from '@/views/app/common/StudySubjects/StudySubjectCard';\nimport StudySubjectDrawer from '@/views/app/common/StudySubjects/StudySubjectDrawer';\nimport AdminHeader from '@/views/app/admin/common/AdminHeader';\nimport { useStores } from '@/stores';\nimport IStudySubject from '@/types/StudySubject';\nimport { Box, CircularProgress } from '@material-ui/core';\n\ninterface IStudySubjectsProps {\n schoolId?: string;\n}\n\nconst CourseTemplates: FC = ({ schoolId }) => {\n const classes = useStyles();\n const { schoolStore } = useStores();\n\n const [studySubs, setStudySubs] = useState([]);\n\n useEffect(() => {\n if (!schoolStore.highSchools.length) {\n schoolStore.getPopulatedHighSchools();\n }\n const ss = schoolStore.highSchools.find((s) => s.externalId === schoolId);\n if (ss) {\n const studySubjects = ss.studySubjects;\n setStudySubs(studySubjects.map((ss) => ss.studySubject));\n }\n }, [schoolStore, schoolStore.highSchools, schoolId]);\n\n return (\n <>\n
\n \n
\n {!schoolStore.loading ? (\n <>\n {studySubs.map((sub) => (\n \n ))}\n \n ) : (\n \n \n \n )}\n
\n
\n \n \n );\n};\n\nexport default observer(CourseTemplates);\n","import {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Typography,\n} from '@material-ui/core';\nimport React from 'react';\n\ninterface IComponentProps {\n open: boolean;\n onClose: () => void;\n onAgree: () => void;\n}\n\nconst Component = ({ open, onClose, onAgree }: IComponentProps) => {\n return (\n <>\n \n \n \n Ved lagring oppdateres teksten på alle arrangement av dette utdanningsprogrammet.\n \n \n \n \n \n \n \n \n );\n};\n\nexport const CreateOrUpdateCourseTemplateDialog = Component;\n","import { useStores } from '@/stores';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport VGSStudySubjectDrawer from '../../common/StudySubjects/VGSStudySubjectDrawer';\nimport { Color } from '@material-ui/lab';\nimport { CreateUpdateCourseTemplate } from '@/types/CourseTemplate';\nimport NotifyMessage from '@/components/NotifyMessage';\nimport { observer } from 'mobx-react';\nimport CourseTemplates from '@/views/app/VGSadmin/courses/components/Templates';\nimport { CreateOrUpdateCourseTemplateDialog } from '@/views/app/VGSadmin/study-subjects/CreateOrUpdateCourseTemplateDialog';\n\nconst VGSStudySubjects = () => {\n const {\n stateStore,\n courseTemplateStore,\n studySubjectStore,\n projectStore,\n userStore,\n } = useStores();\n const { vgsStudySubjectDrawerIsOpen, setVgsStudySubjectDrawerIsOpen } =\n stateStore;\n const { currentProject } = projectStore;\n const { chosenStudySubject } = studySubjectStore;\n const { user } = userStore;\n\n const [createUpdateCourseTemplate, setCreateUpdateCourseTemplate] =\n useState(new CreateUpdateCourseTemplate());\n const [loading, setLoading] = useState(false);\n const [isConfirmShown, setIsConfirmShown] = useState(false);\n const handleClose = (): void => {\n setIsConfirmShown(false);\n setCreateUpdateCourseTemplate(new CreateUpdateCourseTemplate());\n setErrorRegisterFormValue({ ...errorRegisterFormValueInit });\n setVgsStudySubjectDrawerIsOpen(false);\n };\n\n useEffect(() => {\n if (!projectStore.currentProject) {\n projectStore.getCurrent();\n }\n }, [projectStore]);\n\n const getCourseTemplate = useCallback(async () => {\n if (\n currentProject?.id &&\n user?.externalSchoolId &&\n chosenStudySubject &&\n vgsStudySubjectDrawerIsOpen\n ) {\n setLoading(true);\n const courseTemplate = await courseTemplateStore.getCourseTemplate(\n chosenStudySubject.id,\n user.externalSchoolId\n );\n\n let temp = {\n ...createUpdateCourseTemplate,\n projectId: currentProject.id,\n studySubjectId: chosenStudySubject.id,\n externalSchoolId: user.externalSchoolId,\n };\n if (courseTemplate) {\n temp = CreateUpdateCourseTemplate.fromICourseTemplate(courseTemplate);\n }\n\n setCreateUpdateCourseTemplate({ ...temp });\n setLoading(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentProject, user, chosenStudySubject, vgsStudySubjectDrawerIsOpen]);\n\n const getAllContactPerson = useCallback(() => {\n if (user?.externalSchoolId) {\n userStore.setListContactPerson([]);\n userStore.getContactPersonsByExternalSchoolId(user?.externalSchoolId);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [user]);\n\n useEffect(() => {\n getCourseTemplate();\n }, [getCourseTemplate]);\n\n useEffect(() => {\n getAllContactPerson();\n }, [getAllContactPerson]);\n\n const setCourseHolderId = (courseHolderId: number): void => {\n setCreateUpdateCourseTemplate({\n ...createUpdateCourseTemplate,\n courseHolderId,\n });\n };\n\n const setRoomNumber = (roomNumber: string): void => {\n setCreateUpdateCourseTemplate({\n ...createUpdateCourseTemplate,\n roomNumber,\n });\n };\n\n const setCourseInfo = (courseInfo: string): void => {\n setCreateUpdateCourseTemplate({\n ...createUpdateCourseTemplate,\n courseInfo,\n });\n };\n\n const [openNotifyMessage, setOpenNotifyMessage] = useState(false);\n const [severity, setSeverity] = useState('success');\n const [message, setMessage] = useState('Success !!!');\n const handleCloseNotifyMessage = (): void => {\n setOpenNotifyMessage(false);\n };\n const [errorRegisterFormValueInit] = useState>({\n courseHolderId: false,\n roomNumber: false,\n });\n const [errorRegisterFormValue, setErrorRegisterFormValue] = useState<\n Record\n >({\n courseHolderId: false,\n roomNumber: false,\n });\n\n const handleCreateOrUpdateCourseTemplate = (): void => {\n if (currentProject?.id && user?.externalSchoolId) {\n const temp = {\n ...createUpdateCourseTemplate,\n projectId: currentProject.id,\n externalSchoolId: user.externalSchoolId,\n };\n setCreateUpdateCourseTemplate({ ...temp });\n setIsConfirmShown(true);\n }\n };\n\n const _isErrorRegister = (): boolean => {\n const temp = { ...errorRegisterFormValueInit };\n let isError = false;\n\n if (createUpdateCourseTemplate.courseHolderId <= 0) {\n temp.courseHolderId = true;\n isError = true;\n }\n\n if (!createUpdateCourseTemplate.roomNumber) {\n temp.roomNumber = true;\n isError = true;\n }\n\n setErrorRegisterFormValue(temp);\n return isError;\n };\n\n const handleConfirm = async (): Promise => {\n if (!_isErrorRegister()) {\n try {\n if (createUpdateCourseTemplate.id) {\n await courseTemplateStore.updateCourseTemplate(\n createUpdateCourseTemplate.id,\n createUpdateCourseTemplate\n );\n } else {\n await courseTemplateStore.createCourseTemplate(\n createUpdateCourseTemplate\n );\n }\n\n setCreateUpdateCourseTemplate(new CreateUpdateCourseTemplate());\n setMessage('Success !!!');\n setSeverity('success');\n } catch (error: any) {\n console.log(`Error create or update CourseTemplate: ${error}`);\n setMessage('Fail !!!');\n setSeverity('error');\n } finally {\n setVgsStudySubjectDrawerIsOpen(false);\n setOpenNotifyMessage(true);\n setIsConfirmShown(false);\n }\n }\n };\n\n return (\n <>\n \n \n \n handleClose()}\n onAgree={() => handleConfirm()}\n />\n \n );\n};\n\nexport default observer(VGSStudySubjects);\n","import React from 'react';\nimport { useStores } from '@/stores';\nimport { UserRole } from '@/types/UserRole';\nimport AdminStudySubjects from '../../admin/study-subjects';\nimport VGSStudySubjects from '../../VGSadmin/study-subjects';\nimport { observer } from 'mobx-react';\n\nconst StudySubjectDashboard = () => {\n const { userStore } = useStores();\n const { user } = userStore;\n\n if (user?.isCurrentlyRole(UserRole.HighSchoolContact)) {\n return ;\n }\n\n if (user?.isCurrentlyRole(UserRole.Admin)) {\n return ;\n }\n\n return <>;\n};\n\nexport default observer(StudySubjectDashboard);\n","import { makeStyles } from '@material-ui/core';\n\nexport const configStyle = {\n widthTitle: 150,\n widthButtonDeleteQuestion: 150,\n paddingContentQuestion: 100,\n widthButtonDeleteAnswerOption: 24,\n widthSurvey: 40,\n};\n\nconst evaluationStyle = makeStyles(({ breakpoints, palette }) => ({\n main: {\n backgroundColor: palette.grey[50],\n },\n container: {\n padding: '0 116px',\n paddingTop: '20px',\n },\n displayFlex: {\n display: 'flex',\n },\n alignItemsCenter: {\n alignItems: 'center',\n },\n justifyContentCenter: {\n justifyContent: 'center',\n },\n backgroundColorFFF: {\n backgroundColor: palette.primary.A100,\n },\n minHeight: {\n minHeight: '100vh',\n },\n containerQuestion: {\n padding: '20px 120px',\n },\n marginTop20: {\n marginTop: '20px',\n },\n rootGrid: {\n height: '100vh',\n },\n banner: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n backgroundColor: palette.primary.light, //TODO - Change to primary['50'] once UK-24 is merged\n maxHeight: '100%',\n },\n bannerHeaderText: {\n color: palette.primary.dark,\n fontWeight: 500,\n marginTop: 'calc(100vh * 0.1)',\n [breakpoints.down('sm')]: {\n marginTop: 'calc(100vh * 0.03)',\n },\n },\n loginIllustration: {\n width: '100%',\n height: 'auto',\n },\n titleSurvey: {\n color: palette.common.black,\n fontSize: '28px',\n },\n dividerStyle: {\n backgroundColor: '#75b86e',\n height: '3px !important',\n },\n marginTop5: {\n marginTop: '5px',\n },\n marginTop40: {\n marginTop: '40px',\n },\n fieldRequire: {\n color: '#d9534f',\n },\n errorQuestion: {\n padding: '12px 16px',\n border: '1px solid #f00',\n },\n}));\n\nexport default evaluationStyle;\n","import { useStores } from '@/stores';\nimport { QuestionRight } from '@/types/enums/SurveyOption';\nimport { SurveyQuestionType } from '@/types/enums/SurveyQuestionType';\nimport { IStudentSurvey } from '@/types/Survey';\nimport { ISurveyQuestion } from '@/types/SurveyQuestion';\nimport DescriptionSurvey from '@/views/app/admin/userSurvey/Detail/DescriptionSurvey';\nimport Question from '@/views/app/admin/userSurvey/Detail/question';\nimport AnswerItem from '@/views/app/admin/userSurvey/SurveyQuestion/answer';\nimport {\n Button,\n CircularProgress,\n Divider,\n Grid\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport React, { useEffect, useState } from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\nimport { ReactComponent as LoginIllustration } from '../../../assets/login-illustration.svg';\nimport evaluationStyle from './style';\n\ninterface UrlParams {\n projectId: string;\n uuid: string;\n}\n\nconst Evaluation = () => {\n const { projectId, uuid } = useParams();\n const { userSurveyStore } = useStores();\n const classes = evaluationStyle();\n\n const [studentSurvey, setStudentSurvey] = useState(\n null\n );\n const [loading, setLoading] = useState(false);\n\n const history = useHistory();\n\n const fetchData = async (projectId: number): Promise => {\n setLoading(true);\n const surveyFromDB = await userSurveyStore.getSurveyByProjectId(\n projectId,\n uuid\n );\n if (surveyFromDB) {\n setStudentSurvey(surveyFromDB);\n }\n setLoading(false);\n };\n\n useEffect(() => {\n if (projectId) {\n fetchData(+projectId);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [projectId]);\n\n const handleChangeAnswer = (\n content: string,\n questionId: number,\n answerId: number,\n isChecked?: boolean\n ): void => {\n if (studentSurvey && studentSurvey.survey) {\n const survey = studentSurvey.survey;\n const question = survey.questions.find((q) => q.id === questionId);\n\n if (question) {\n const answers = question.answers;\n\n switch (question.type) {\n case SurveyQuestionType.INPUT:\n if (answers[0]) {\n answers[0].content = content;\n }\n break;\n case SurveyQuestionType.TEXT_AREA:\n if (answers[0]) {\n answers[0].content = content;\n }\n break;\n case SurveyQuestionType.RADIO:\n const answerRadioChecked = answers.find((a) => a.isChecked);\n if (answerRadioChecked && !!isChecked) {\n answerRadioChecked.isChecked = false;\n }\n\n const answerRadio = answers.find((a) => a.id === answerId);\n if (answerRadio) {\n answerRadio.isChecked = !!isChecked;\n answerRadio.content = content;\n }\n break;\n case SurveyQuestionType.CHECKBOX:\n const answerCheckbox = answers.find((a) => a.id === answerId);\n if (answerCheckbox) {\n answerCheckbox.isChecked = !!isChecked;\n answerCheckbox.content = content;\n }\n break;\n default:\n break;\n }\n\n setStudentSurvey({ ...studentSurvey });\n }\n }\n };\n\n const [mapOfQuestionIdToError, setMapOfQuestionIdToError] = useState<\n Map\n >(new Map());\n\n const _validationQuestions = (): boolean => {\n let isError = false;\n if (studentSurvey && studentSurvey.survey) {\n const questions = studentSurvey.survey.questions;\n const results = questions\n .filter((question) => question.isRequired)\n .map((question) => {\n let isResult = false;\n if (question.id) {\n if (\n question.type === SurveyQuestionType.INPUT ||\n question.type === SurveyQuestionType.TEXT_AREA\n ) {\n isResult = question.answers[0] && !question.answers[0].content;\n }\n\n if (\n question.type === SurveyQuestionType.RADIO ||\n question.type === SurveyQuestionType.CHECKBOX\n ) {\n const answers = question.answers;\n const answer = answers.find((a) => a.isChecked);\n isResult = !answer;\n }\n\n mapOfQuestionIdToError.set(question.id, isResult);\n setMapOfQuestionIdToError(mapOfQuestionIdToError);\n }\n\n return isResult;\n });\n\n isError = results.reduce((a, b) => a || b, false);\n setStudentSurvey({ ...studentSurvey });\n }\n\n return isError;\n };\n\n const handleEvaluation = async (): Promise => {\n const isError = _validationQuestions();\n\n if (!isError && studentSurvey && studentSurvey.survey) {\n _resetSurvey();\n await userSurveyStore.evaluationUpdateSurvey(uuid, studentSurvey.survey);\n history.push(`/evaluation-thank`);\n }\n };\n\n const _resetSurvey = (): void => {\n if (studentSurvey && studentSurvey.survey) {\n const time = new Date().getTime();\n studentSurvey.survey.questions.map((q) => {\n q.answers.map((a) => {\n a.id = 0;\n a.time = time.toString();\n\n return a;\n });\n\n return q;\n });\n\n setStudentSurvey({ ...studentSurvey });\n }\n };\n\n return (\n
\n \n {!loading ? (\n <>\n {studentSurvey && studentSurvey.survey ? (\n <>\n \n
\n {studentSurvey.survey.title}\n
\n \n\n
\n {studentSurvey.survey.questions.map(\n (question: ISurveyQuestion) => (\n \n \n \n \n
\n )\n )}\n
\n\n <>\n \n \n *Må fylles ut\n \n \n\n \n {studentSurvey && !studentSurvey.isAnswered && (\n {\n await handleEvaluation();\n }}\n >\n Lagre\n \n )}\n {\n history.push(`/`);\n }}\n style={{ marginLeft: '12px' }}\n >\n Avbryt\n \n \n \n \n ) : (\n \n\n \n
Hei, enten du har svart på brukerundersøkelsen
\n eller brukerundersøkelse med id = {uuid} finnes ikke\n \n
\n \n )}\n \n ) : (\n \n \n \n )}\n \n \n );\n};\n\nexport default Evaluation;\n","import { makeStyles } from '@material-ui/core';\n\nconst evaluationThankStyle = makeStyles(({ palette, breakpoints }) => ({\n rootGrid: {\n height: '100vh',\n },\n banner: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n backgroundColor: palette.primary.light, //TODO - Change to primary['50'] once UK-24 is merged\n maxHeight: '100%',\n },\n bannerHeaderText: {\n color: palette.primary.dark,\n fontWeight: 500,\n marginTop: 'calc(100vh * 0.1)',\n [breakpoints.down('sm')]: {\n marginTop: 'calc(100vh * 0.03)',\n },\n },\n loginIllustration: {\n width: '100%',\n height: 'auto',\n },\n}));\n\nexport default evaluationThankStyle;\n","import { ComponentType } from 'react';\nimport {\n AdminRoles,\n AllRoles,\n GURoles,\n SuperAdminRoles,\n UserRole,\n} from '../types/UserRole';\nimport HighSchools from '../views/app/admin/highSchools';\nimport Dashboard from '../views/app/Dashboard';\nimport CompleteOIDCLogin from '../views/public/CompleteOIDCLogin';\nimport Prioritize from '../views/app/student/Prioritize';\nimport Login from '../views/public/login/Login';\nimport StudentInformation from '@/views/app/student/StudentInformation';\nimport SecondarySchools from '@/views/app/admin/secondarySchools';\nimport StudentStudySubjects from '@/views/app/student/StudentStudySubjects';\nimport StudentCourseInformation from '@/views/app/student/CourseInformation';\nimport AdminStudents from '@/views/app/admin/students';\nimport Templates from '@/views/app/admin/templates';\nimport Messages from '@/views/app/admin/messages';\nimport CourseDashboard from '@/views/app/Dashboard/CourseDashboard';\nimport Projects from '@/views/app/admin/projects';\nimport GUStudents from '@/views/app/GUadmin/Students';\nimport ResetPassword from '@/views/public/login/components/ResetPassword';\nimport UserSettingDashboard from '@/views/app/Dashboard/UserSettingDashboard';\nimport UserSurveyList from '@/views/app/admin/userSurvey/UserSurveyList';\nimport CreateSurvey from '@/views/app/admin/userSurvey/Create';\nimport EditSurvey from '@/views/app/admin/userSurvey/Edit';\nimport SurveyDetail from '@/views/app/admin/userSurvey/Detail';\nimport StudySubjectDashboard from '@/views/app/Dashboard/StudySubjectDashboard';\nimport Evaluation from '@/views/public/evaluation';\nimport EvaluationThank from '@/views/public/evaluation-thank';\n\ninterface Route {\n name: string;\n path: string;\n component: ComponentType;\n exact?: boolean;\n}\n\ninterface ProtectedRoute extends Route {\n roles: UserRole;\n}\n\nexport const publicRoutes: Route[] = [\n {\n name: 'Home',\n path: '/',\n component: Login,\n },\n {\n name: 'Completing Login',\n path: '/complete-oidc-login',\n component: CompleteOIDCLogin,\n },\n {\n name: 'Reset Password',\n path: '/resetPassword',\n component: ResetPassword,\n },\n {\n name: 'Evaluation',\n path: '/evaluation/:projectId/:uuid',\n component: Evaluation,\n },\n {\n name: 'Thanks evaluation',\n path: '/evaluation-thank',\n component: EvaluationThank,\n },\n];\n\nexport const protectedRoutes: ProtectedRoute[] = [\n {\n name: 'Dashboard',\n path: '/home',\n component: Dashboard,\n roles: AllRoles,\n },\n {\n name: 'Brukere',\n path: '/settings',\n component: UserSettingDashboard,\n roles: AdminRoles,\n },\n {\n name: 'Prosjekter',\n path: '/projects',\n component: Projects,\n roles: AdminRoles,\n },\n {\n name: 'Kurs',\n path: '/projects/:projectId/courses',\n component: CourseDashboard,\n roles: AdminRoles,\n },\n {\n name: 'Videregående skoler',\n path: '/vgs',\n component: HighSchools,\n roles: SuperAdminRoles,\n },\n {\n name: 'Ungdomsskoler',\n path: '/gu',\n component: SecondarySchools,\n roles: SuperAdminRoles,\n },\n {\n name: 'Elever',\n path: '/all-students',\n component: AdminStudents,\n roles: SuperAdminRoles,\n },\n {\n name: 'Kurs',\n path: '/study-subjects',\n component: StudySubjectDashboard,\n roles: AdminRoles,\n },\n {\n name: 'Templates',\n path: '/templates',\n component: Templates,\n roles: SuperAdminRoles,\n },\n {\n name: 'Utgående meldinger',\n path: '/messages',\n component: Messages,\n roles: SuperAdminRoles,\n },\n {\n name: 'Brukerundersøkelse',\n path: '/user-surveys',\n component: UserSurveyList,\n roles: SuperAdminRoles,\n },\n {\n name: 'CreateSurvey',\n path: '/user-surveys/new',\n component: CreateSurvey,\n roles: SuperAdminRoles,\n },\n {\n name: 'EditSurvey',\n path: '/user-surveys/:surveyId/edit',\n component: EditSurvey,\n roles: SuperAdminRoles,\n },\n {\n name: 'SurveyDetail',\n path: '/user-surveys/:surveyId/detail',\n component: SurveyDetail,\n roles: SuperAdminRoles,\n },\n {\n name: 'Elever',\n path: '/students',\n component: GUStudents,\n roles: GURoles,\n },\n {\n name: 'Prioriter',\n path: '/prioritize',\n component: Prioritize,\n roles: UserRole.Student,\n },\n {\n name: 'Student Information',\n path: '/update-student-information',\n component: StudentInformation,\n roles: UserRole.Student,\n },\n {\n name: 'Study Subjects',\n path: '/student-study-subjects',\n component: StudentStudySubjects,\n roles: UserRole.Student,\n },\n {\n name: 'Course Information',\n path: '/course-information',\n component: StudentCourseInformation,\n roles: UserRole.Student,\n },\n];\n","import { Grid, Typography } from '@material-ui/core';\nimport React from 'react';\nimport evaluationThankStyle from './style';\nimport { ReactComponent as LoginIllustration } from '../../../assets/login-illustration.svg';\n\nconst EvaluationThank = () => {\n const classes = evaluationThankStyle();\n return (\n \n \n \n Tusen takk for din evaluering\n \n \n \n \n );\n};\n\nexport default EvaluationThank;\n","import { observer } from 'mobx-react';\nimport React from 'react';\nimport { Switch } from 'react-router';\nimport { Route } from 'react-router-dom';\nimport { useStores } from '../stores';\nimport MainLayout from '../views/app/layout/MainLayout';\nimport NotFoundError from '../views/error/NotFoundError';\nimport RouteGuard from './RouteGuard';\nimport { protectedRoutes, publicRoutes } from './routes';\n\nconst Router = () => {\n const { userStore } = useStores();\n const { user } = userStore;\n\n return (\n \n {publicRoutes.map((r, i) => (\n \n ))}\n {user ? (\n \n {protectedRoutes.map((r, i) => (\n \n \n \n \n \n ))}\n \n ) : null}\n \n \n );\n};\n\nexport default observer(Router);\n","export const mainBlue = '#4C5392';\nexport const lightBlue = '#C6CADE';\nexport const darkBlue = '#2A2859';\n","import { createTheme } from '@material-ui/core';\nimport { darkBlue, lightBlue, mainBlue } from './colors';\n\n// To be able to get all shades of color in components\nimport { Color } from '@material-ui/core';\ntype ColorPartial = Partial;\ndeclare module '@material-ui/core/styles/createPalette' {\n interface PaletteColor extends ColorPartial {\n customColor?: string;\n }\n}\n\nconst paletteTheme = createTheme({\n palette: {\n primary: {\n main: mainBlue,\n light: lightBlue,\n dark: darkBlue,\n '50': '#EBEAF1',\n '100': lightBlue,\n '200': '#A2A8C8',\n '500': mainBlue,\n '600': '#1841D3',\n '900': darkBlue,\n A100: '#FFFFFF',\n },\n secondary: {\n main: '#F9C66B',\n light: '#FBDCAA',\n },\n info: {\n main: '#F9C66B',\n light: '#FBDCAA',\n '50': '#156529',\n },\n warning: {\n main: '#FFE600',\n light: '#F9ECEC',\n dark: '#9C3535',\n '50': '#762828',\n },\n success: {\n main: '#4DC75D',\n },\n text: {\n primary: mainBlue,\n secondary: '#6E6893',\n hint: '#7B6D25',\n },\n grey: {\n '50': '#f5f5f4',\n '100': '#EBEAF1',\n '200': '#E5E5E5',\n '500': '#E4E4E4',\n '600': '#8D8D8D',\n '900': '#666666',\n A100: '#263238',\n A200: '#848DB8',\n },\n background: {\n default: 'transparent',\n },\n },\n typography: {\n fontFamily: [\n 'Oslo Sans',\n 'Open Sans',\n 'Roboto',\n 'Arial',\n 'sans-serif',\n ].join(','),\n body1: {\n fontSize: '14px',\n },\n body2: {\n color: mainBlue,\n lineHeight: '16px',\n fontSize: '14px',\n fontWeight: 400,\n },\n h1: {\n fontSize: '40px',\n fontWeight: 600,\n lineHeight: '56px',\n },\n h2: {\n fontSize: '24px',\n fontWeight: 600,\n lineHeight: '33px',\n },\n h3: {\n fontSize: '22px',\n fontWeight: 500,\n lineHeight: '30px',\n },\n h4: {\n fontSize: '18px',\n fontWeight: 400,\n lineHeight: '25px',\n },\n h5: {\n fontSize: '16px',\n fontWeight: 400,\n lineHeight: '24px',\n },\n h6: {\n fontSize: '14px',\n fontWeight: 200,\n lineHeight: '18px',\n },\n button: {\n textTransform: 'none',\n },\n },\n});\n\nconst theme = createTheme(\n {\n overrides: {\n MuiButton: {\n root: {\n borderRadius: 0,\n },\n },\n MuiTextField: {\n root: {\n borderRadius: '4px',\n },\n },\n MuiFilledInput: {\n root: {\n backgroundColor: 'rgba(0, 0, 0, 0.04)',\n borderRadius: '4px',\n color: paletteTheme.palette.primary.main,\n },\n underline: {\n '&:before': {\n left: '1px',\n right: '1px',\n borderBottom: '1px solid rgba(0, 0, 0, 0.38)',\n borderRadius: '1px',\n },\n '&:after': {\n left: '1px',\n right: '1px',\n borderRadius: '1px',\n },\n },\n },\n MuiInputLabel: {\n root: {\n color: paletteTheme.palette.primary.main,\n },\n },\n MuiToolbar: {\n gutters: {\n [paletteTheme.breakpoints.up('xs')]: {\n paddingRight: 0,\n },\n },\n },\n MuiListItem: {\n root: {\n '&:hover': {\n backgroundColor: paletteTheme.palette.grey[100],\n },\n },\n },\n MuiDivider: {\n root: {\n backgroundColor: paletteTheme.palette.primary.light,\n },\n },\n MuiChip: {\n outlined: {\n borderColor: paletteTheme.palette.primary.main,\n backgroundColor: '#fff',\n color: paletteTheme.palette.primary.main,\n },\n deleteIcon: {\n fill: paletteTheme.palette.primary.main,\n },\n },\n MuiLink: {\n root: {\n '&:hover': {\n cursor: 'pointer',\n },\n },\n },\n },\n props: {\n MuiTextField: {\n variant: 'filled',\n },\n MuiButton: {\n variant: 'contained',\n color: 'primary',\n },\n MuiSvgIcon: {\n color: 'primary',\n },\n MuiChip: {\n variant: 'outlined',\n },\n MuiSelect: {\n variant: 'filled',\n },\n MuiFormControl: {\n variant: 'filled',\n },\n },\n },\n paletteTheme\n);\nexport default theme;\n","import LuxonUtils from '@date-io/luxon';\nimport { ThemeProvider } from '@material-ui/core/styles';\nimport { MuiPickersUtilsProvider } from '@material-ui/pickers';\nimport React from 'react';\nimport { BrowserRouter } from 'react-router-dom';\nimport './App.css';\nimport './assets/fonts/OsloSans/OsloSans.css';\nimport ErrorMessage from './components/ErrorMessage';\nimport Router from './router/Router';\nimport theme from './style/defaultTheme';\n\nfunction App() {\n return (\n \n \n \n \n \n \n \n \n );\n}\n\nexport default App;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler) => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport App from './App';\nimport './index.css';\nimport reportWebVitals from './reportWebVitals';\n\nReactDOM.render(\n \n Loading}>\n \n \n ,\n document.getElementById('root')\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}