mui-toolpad-extended-tuni 3.0.0 → 3.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -11
- package/dist/index.cjs +116 -138
- package/dist/index.es.js +32991 -55282
- package/dist/src/App.d.ts +1 -1
- package/dist/src/LMSToolpad/{LMSProvider.d.ts → ToolpadProvider.d.ts} +7 -6
- package/dist/src/index.d.ts +4 -3
- package/package.json +5 -4
- package/dist/src/LMSToolpad/components/Calendar/Calendar.d.ts +0 -3
- package/dist/src/LMSToolpad/components/Calendar/CalendarBody.d.ts +0 -16
- package/dist/src/LMSToolpad/components/Calendar/CalendarEventAggregator.d.ts +0 -9
- package/dist/src/LMSToolpad/components/Calendar/CalendarEventItem.d.ts +0 -10
- package/dist/src/LMSToolpad/components/Calendar/CalendarHeader.d.ts +0 -12
- package/dist/src/LMSToolpad/components/Calendar/CalendarManager.d.ts +0 -3
- package/dist/src/LMSToolpad/components/Calendar/CalendarMicroservice.d.ts +0 -32
- package/dist/src/LMSToolpad/components/Calendar/DatePickerPopover.d.ts +0 -8
- package/dist/src/LMSToolpad/components/Calendar/components/EventDetails.d.ts +0 -3
- package/dist/src/LMSToolpad/components/Calendar/components/EventMenu.d.ts +0 -3
- package/dist/src/LMSToolpad/components/Calendar/components/EventViews.d.ts +0 -3
- package/dist/src/LMSToolpad/components/Calendar/components/index.d.ts +0 -3
- package/dist/src/LMSToolpad/components/Calendar/index.d.ts +0 -5
- package/dist/src/LMSToolpad/components/Calendar/store/useCalendarStore.d.ts +0 -44
- package/dist/src/LMSToolpad/components/Calendar/types.d.ts +0 -49
- package/dist/src/LMSToolpad/components/Courses/CourseCodeLoader.d.ts +0 -15
- package/dist/src/LMSToolpad/components/Courses/CourseEventPublisher.d.ts +0 -8
- package/dist/src/LMSToolpad/components/Courses/CourseInstanceLoader.d.ts +0 -16
- package/dist/src/LMSToolpad/components/Courses/CourseInstanceSelector.d.ts +0 -15
- package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseActions.d.ts +0 -6
- package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseHeader.d.ts +0 -6
- package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseHeaderActions.d.ts +0 -12
- package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseIcon.d.ts +0 -8
- package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseInfo.d.ts +0 -8
- package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseItem.d.ts +0 -9
- package/dist/src/LMSToolpad/components/Courses/CourseList.d.ts +0 -6
- package/dist/src/LMSToolpad/components/Courses/CourseManager.d.ts +0 -2
- package/dist/src/LMSToolpad/components/Courses/CourseMicroservice.d.ts +0 -42
- package/dist/src/LMSToolpad/components/Courses/CourseRoutesProvider.d.ts +0 -12
- package/dist/src/LMSToolpad/components/Courses/CourseTools.d.ts +0 -21
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/CourseSettings.d.ts +0 -23
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/CourseSettingsTabs.d.ts +0 -9
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/BasicInfoTab.d.ts +0 -7
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/DataProcessingTab.d.ts +0 -24
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/EnrollmentTab.d.ts +0 -28
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/RelationshipsTab.d.ts +0 -25
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/StaffTab.d.ts +0 -26
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/VisibilityTab.d.ts +0 -24
- package/dist/src/LMSToolpad/components/Courses/LtiLoginUrlForm.d.ts +0 -3
- package/dist/src/LMSToolpad/components/Courses/Navigation/CourseNavigationbuilder.d.ts +0 -2
- package/dist/src/LMSToolpad/components/Courses/components/ToolDisplayer/ToolCard.d.ts +0 -8
- package/dist/src/LMSToolpad/components/Courses/components/ToolDisplayer/ToolDisplayer.d.ts +0 -11
- package/dist/src/LMSToolpad/components/Courses/config/subjectConfig.d.ts +0 -10
- package/dist/src/LMSToolpad/components/Courses/context/CourseMicroserviceContext.d.ts +0 -26
- package/dist/src/LMSToolpad/components/Courses/hooks/useCourseRoutes.d.ts +0 -6
- package/dist/src/LMSToolpad/components/Courses/mocks/commented.d.ts +0 -0
- package/dist/src/LMSToolpad/components/Courses/mocks/constants.d.ts +0 -9
- package/dist/src/LMSToolpad/components/Courses/mocks/endpoints.d.ts +0 -8
- package/dist/src/LMSToolpad/components/Courses/mocks/generators.d.ts +0 -13
- package/dist/src/LMSToolpad/components/Courses/mocks/types.d.ts +0 -109
- package/dist/src/LMSToolpad/components/Courses/network/courses.d.ts +0 -37
- package/dist/src/LMSToolpad/components/Courses/store/useCourseStore.d.ts +0 -146
- package/dist/src/LMSToolpad/components/Courses/utils/courseFilters.d.ts +0 -21
- package/dist/src/LMSToolpad/components/DevTools/DevelopmentTools.d.ts +0 -3
- package/dist/src/LMSToolpad/components/DevTools/UserSwitcher.d.ts +0 -3
- package/dist/src/LMSToolpad/components/Users/Forms/UserSettings/UserSettings.d.ts +0 -22
- package/dist/src/LMSToolpad/components/Users/UserEventPublisher.d.ts +0 -8
- package/dist/src/LMSToolpad/components/Users/UserManager.d.ts +0 -2
- package/dist/src/LMSToolpad/components/Users/UserMicroservice.d.ts +0 -34
- package/dist/src/LMSToolpad/components/Users/index.d.ts +0 -6
- package/dist/src/LMSToolpad/components/Users/mocks/constants.d.ts +0 -59
- package/dist/src/LMSToolpad/components/Users/mocks/endpoints.d.ts +0 -3
- package/dist/src/LMSToolpad/components/Users/mocks/generators.d.ts +0 -6
- package/dist/src/LMSToolpad/components/Users/mocks/types.d.ts +0 -52
- package/dist/src/LMSToolpad/components/Users/network/users.d.ts +0 -7
- package/dist/src/LMSToolpad/components/Users/store/useUserStore.d.ts +0 -63
- package/dist/src/LMSToolpad/hooks/useVisitedCourses.d.ts +0 -18
- package/dist/src/LMSToolpad/mocks/browser.d.ts +0 -2
- package/dist/src/LMSToolpad/mocks/handlers.d.ts +0 -2
- package/dist/src/LMSToolpad/mocks/store.d.ts +0 -24
- package/dist/src/LMSToolpad/utils/__tests__/courseFilters.test.d.ts +0 -2
- package/dist/src/test/Contact.d.ts +0 -8
- package/dist/src/test/EduTest.d.ts +0 -10
- package/dist/src/test/EduTest2.d.ts +0 -10
- package/dist/src/test/Help.d.ts +0 -8
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { CourseRaw } from '../../../store/useCourseStore';
|
|
2
|
-
import { UserData } from '../../../../../components/Events/userTypes';
|
|
3
|
-
interface EnrollmentTabProps {
|
|
4
|
-
formData: CourseRaw;
|
|
5
|
-
setFormData: (data: CourseRaw) => void;
|
|
6
|
-
courseUsers?: UserData[];
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* EnrollmentTab Component
|
|
10
|
-
*
|
|
11
|
-
* @version 3.0.0
|
|
12
|
-
* @breaking-changes
|
|
13
|
-
* - Enhanced TypeScript string literal types
|
|
14
|
-
* - Improved student list management with better state handling
|
|
15
|
-
* - Updated styling for better visual hierarchy
|
|
16
|
-
* - Enhanced date handling with proper typing
|
|
17
|
-
* - Improved responsive design for mobile and desktop views
|
|
18
|
-
* - Added proper type definitions for enrollment statuses
|
|
19
|
-
*
|
|
20
|
-
* Provides interface for:
|
|
21
|
-
* - Managing course enrollment settings
|
|
22
|
-
* - Handling student enrollment requests
|
|
23
|
-
* - Setting enrollment periods
|
|
24
|
-
* - Managing enrollment capacity
|
|
25
|
-
* - Viewing enrolled and pending students
|
|
26
|
-
*/
|
|
27
|
-
export default function EnrollmentTab({ formData, setFormData, courseUsers: _courseUsers, }: EnrollmentTabProps): import("react/jsx-runtime").JSX.Element;
|
|
28
|
-
export {};
|
package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/RelationshipsTab.d.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { CourseRaw } from '../../../store/useCourseStore';
|
|
2
|
-
interface RelationshipsTabProps {
|
|
3
|
-
formData: CourseRaw;
|
|
4
|
-
setFormData: (data: CourseRaw) => void;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* RelationshipsTab Component
|
|
8
|
-
*
|
|
9
|
-
* @version 3.0.0
|
|
10
|
-
* @breaking-changes
|
|
11
|
-
* - Updated course store import path to feature-based structure
|
|
12
|
-
* - Enhanced type definitions for course relationships
|
|
13
|
-
* - Standardized string literals for relationship types
|
|
14
|
-
* - Improved relationship type descriptions
|
|
15
|
-
* - Added better type safety for relationship management
|
|
16
|
-
*
|
|
17
|
-
* Provides interface for:
|
|
18
|
-
* - Managing course prerequisites
|
|
19
|
-
* - Setting up course continuations
|
|
20
|
-
* - Defining alternative courses
|
|
21
|
-
* - Managing course dependencies
|
|
22
|
-
* - Creating course relationship networks
|
|
23
|
-
*/
|
|
24
|
-
export default function RelationshipsTab({ formData, setFormData, }: RelationshipsTabProps): import("react/jsx-runtime").JSX.Element;
|
|
25
|
-
export {};
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { CourseRaw } from '../../../store/useCourseStore';
|
|
2
|
-
import { UserData } from '../../../../../components/Events/userTypes';
|
|
3
|
-
interface StaffTabProps {
|
|
4
|
-
formData: CourseRaw;
|
|
5
|
-
setFormData: (data: CourseRaw) => void;
|
|
6
|
-
courseUsers?: UserData[];
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* StaffTab Component
|
|
10
|
-
*
|
|
11
|
-
* @version 3.0.0
|
|
12
|
-
* @breaking-changes
|
|
13
|
-
* - Updated course store import path to feature-based structure
|
|
14
|
-
* - Enhanced TypeScript type definitions for staff roles
|
|
15
|
-
* - Improved staff removal confirmation handling
|
|
16
|
-
* - Updated styling for better accessibility
|
|
17
|
-
* - Added proper aria labels for actions
|
|
18
|
-
*
|
|
19
|
-
* Provides interface for:
|
|
20
|
-
* - Managing course staff members
|
|
21
|
-
* - Adding/removing teaching staff
|
|
22
|
-
* - Viewing staff permissions
|
|
23
|
-
* - Managing staff roles
|
|
24
|
-
*/
|
|
25
|
-
export default function StaffTab({ formData, setFormData }: StaffTabProps): import("react/jsx-runtime").JSX.Element;
|
|
26
|
-
export {};
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { CourseRaw } from '../../../store/useCourseStore';
|
|
2
|
-
interface VisibilityTabProps {
|
|
3
|
-
formData: CourseRaw;
|
|
4
|
-
setFormData: (data: CourseRaw) => void;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* VisibilityTab Component
|
|
8
|
-
*
|
|
9
|
-
* @version 3.0.0
|
|
10
|
-
* @breaking-changes
|
|
11
|
-
* - Standardized string literals for visibility modes
|
|
12
|
-
* - Enhanced type safety for visibility settings
|
|
13
|
-
* - Improved date picker integration
|
|
14
|
-
* - Added helper text explanations for each visibility mode
|
|
15
|
-
* - Updated styling for better visual feedback
|
|
16
|
-
*
|
|
17
|
-
* Provides interface for:
|
|
18
|
-
* - Setting course visibility mode
|
|
19
|
-
* - Configuring visibility periods
|
|
20
|
-
* - Managing access control
|
|
21
|
-
* - Setting visibility schedules
|
|
22
|
-
*/
|
|
23
|
-
export default function VisibilityTab({ formData, setFormData, }: VisibilityTabProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
-
export {};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { NavigationPageStoreItem } from '@toolpad/core';
|
|
2
|
-
type ToolCardProps = {
|
|
3
|
-
item: NavigationPageStoreItem;
|
|
4
|
-
onToggleService?: (path: string) => void;
|
|
5
|
-
isUsed?: boolean;
|
|
6
|
-
};
|
|
7
|
-
declare const ToolCard: ({ item, onToggleService, isUsed }: ToolCardProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
export default ToolCard;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { NavigationPageStoreItem } from '@toolpad/core';
|
|
2
|
-
interface ToolDisplayerProps {
|
|
3
|
-
show: boolean;
|
|
4
|
-
title: string;
|
|
5
|
-
onToggleService?: (path: string) => void;
|
|
6
|
-
navItems: NavigationPageStoreItem[];
|
|
7
|
-
roleCheck?: boolean;
|
|
8
|
-
isUsed?: boolean;
|
|
9
|
-
}
|
|
10
|
-
declare const ToolDisplayer: ({ show, onToggleService, navItems, roleCheck, isUsed, }: ToolDisplayerProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
export default ToolDisplayer;
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { default as React, ReactNode } from 'react';
|
|
2
|
-
import { NavigationPageStoreItem } from '@toolpad/core';
|
|
3
|
-
/**
|
|
4
|
-
* Context for course microservices to register themselves
|
|
5
|
-
*/
|
|
6
|
-
export interface CourseMicroserviceContextValue {
|
|
7
|
-
registerCourseMicroservice: (navigation: NavigationPageStoreItem) => void;
|
|
8
|
-
unregisterCourseMicroservice: (segment: string) => void;
|
|
9
|
-
allCourseMicroserviceNavigation: NavigationPageStoreItem[];
|
|
10
|
-
isInsideCourseMicroservice: boolean;
|
|
11
|
-
}
|
|
12
|
-
export declare const CourseMicroserviceContext: React.Context<CourseMicroserviceContextValue>;
|
|
13
|
-
/**
|
|
14
|
-
* Hook for course microservices to register themselves.
|
|
15
|
-
* Returns isInsideCourseMicroservice=false if used outside CourseMicroservice provider.
|
|
16
|
-
*/
|
|
17
|
-
export declare const useCourseMicroserviceRegistration: () => CourseMicroserviceContextValue;
|
|
18
|
-
interface CourseMicroserviceProviderProps {
|
|
19
|
-
children: ReactNode;
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Provider component for CourseMicroserviceContext.
|
|
23
|
-
* Manages the state of registered course microservices and syncs with the navigation store.
|
|
24
|
-
*/
|
|
25
|
-
export declare const CourseMicroserviceProvider: React.FC<CourseMicroserviceProviderProps>;
|
|
26
|
-
export {};
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
/**
|
|
3
|
-
* Hook that generates course routes from registered course microservices
|
|
4
|
-
* @returns Array of Route elements for course routing
|
|
5
|
-
*/
|
|
6
|
-
export declare const useCourseRoutes: () => React.ReactElement<unknown, string | React.JSXElementConstructor<any>>[];
|
|
File without changes
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
export declare const subjectTopics: {
|
|
3
|
-
readonly 'COMP.CS': readonly ["Programming", "Data Structures", "Algorithms", "Web Development", "Machine Learning", "Artificial Intelligence", "Cybersecurity", "Computer Networks", "Operating Systems", "Software Engineering", "Database Systems", "Computer Graphics", "Mobile Development", "Cloud Computing"];
|
|
4
|
-
readonly MATH: readonly ["Calculus", "Linear Algebra", "Discrete Mathematics", "Statistics", "Probability Theory", "Number Theory", "Differential Equations", "Numerical Analysis", "Optimization", "Graph Theory"];
|
|
5
|
-
readonly PHYS: readonly ["Mechanics", "Thermodynamics", "Electromagnetism", "Quantum Physics", "Optics", "Nuclear Physics", "Relativity", "Particle Physics", "Astrophysics", "Material Science"];
|
|
6
|
-
readonly BIO: readonly ["Cell Biology", "Genetics", "Ecology", "Microbiology", "Molecular Biology", "Physiology", "Evolution", "Biochemistry", "Neuroscience", "Biotechnology"];
|
|
7
|
-
readonly CHEM: readonly ["Organic Chemistry", "Inorganic Chemistry", "Physical Chemistry", "Analytical Chemistry", "Biochemistry", "Polymer Chemistry", "Environmental Chemistry", "Medicinal Chemistry", "Material Chemistry", "Chemical Engineering"];
|
|
8
|
-
readonly LANG: readonly ["Academic Writing", "Technical Communication", "Scientific Writing", "Research Methods", "Professional Communication", "Intercultural Communication", "Digital Communication", "Documentation", "Content Design", "Public Speaking"];
|
|
9
|
-
};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { HttpResponse } from 'msw';
|
|
2
|
-
import { CourseBackendData, CourseRawBackendData } from './types';
|
|
3
|
-
export declare const getCourseByIdResponse: (courseId: string) => HttpResponse;
|
|
4
|
-
export declare const getCoursesResponse: () => HttpResponse;
|
|
5
|
-
export declare const createCourseResponse: (newCourse: CourseRawBackendData) => HttpResponse;
|
|
6
|
-
export declare const updateCourseResponse: (updatedCourse: CourseBackendData) => HttpResponse;
|
|
7
|
-
export declare const deleteCourseResponse: (courseId: string) => HttpResponse;
|
|
8
|
-
export declare const courseHandlers: import('msw').HttpHandler[];
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { UserBackendData } from '../../Users/mocks/types';
|
|
2
|
-
import { CourseBackendData, CourseEnrollmentBackendData } from './types';
|
|
3
|
-
export declare function generateCourses(config: {
|
|
4
|
-
coursesPerYear: number;
|
|
5
|
-
startYear: number;
|
|
6
|
-
numberOfYears: number;
|
|
7
|
-
users: UserBackendData[];
|
|
8
|
-
}): {
|
|
9
|
-
courses: CourseBackendData[];
|
|
10
|
-
enrollmentsByCourse: {
|
|
11
|
-
[key: string]: CourseEnrollmentBackendData[];
|
|
12
|
-
};
|
|
13
|
-
};
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import { courseEventFrequency, courseLevel, courseRelationType, enrollmentStatus, legalBasis, visibilityMode, courseEventType, courseRole } from '../store/useCourseStore';
|
|
2
|
-
export interface CourseEventBackendData {
|
|
3
|
-
id: string;
|
|
4
|
-
type: courseEventType;
|
|
5
|
-
title: string;
|
|
6
|
-
description?: string;
|
|
7
|
-
start_time: string;
|
|
8
|
-
end_time?: string;
|
|
9
|
-
location?: string;
|
|
10
|
-
teachers?: CourseEnrollmentBackendData[];
|
|
11
|
-
recurring?: {
|
|
12
|
-
frequency: courseEventFrequency;
|
|
13
|
-
until: string;
|
|
14
|
-
exceptions?: string[];
|
|
15
|
-
};
|
|
16
|
-
max_participants?: number;
|
|
17
|
-
requires_registration?: boolean;
|
|
18
|
-
}
|
|
19
|
-
export interface CourseEnrollmentBackendData {
|
|
20
|
-
user_id: string;
|
|
21
|
-
role: courseRole;
|
|
22
|
-
status: enrollmentStatus;
|
|
23
|
-
enrollment_date?: string;
|
|
24
|
-
request_date?: string;
|
|
25
|
-
}
|
|
26
|
-
export interface CourseRelationBackendData {
|
|
27
|
-
code: string;
|
|
28
|
-
type: courseRelationType;
|
|
29
|
-
description?: string;
|
|
30
|
-
required?: boolean;
|
|
31
|
-
}
|
|
32
|
-
export type CourseRawBackendData = {
|
|
33
|
-
title: string;
|
|
34
|
-
description: string;
|
|
35
|
-
code: string;
|
|
36
|
-
instance: string;
|
|
37
|
-
lti_login_url?: string;
|
|
38
|
-
services?: string[];
|
|
39
|
-
image?: {
|
|
40
|
-
large: string;
|
|
41
|
-
medium: string;
|
|
42
|
-
thumbnail: string;
|
|
43
|
-
};
|
|
44
|
-
start_date: string | null;
|
|
45
|
-
end_date: string | null;
|
|
46
|
-
visibility: {
|
|
47
|
-
mode: visibilityMode;
|
|
48
|
-
start_date: string | null;
|
|
49
|
-
end_date: string | null;
|
|
50
|
-
};
|
|
51
|
-
events: {
|
|
52
|
-
[key in courseEventType]: CourseEventBackendData[];
|
|
53
|
-
};
|
|
54
|
-
tags?: string[];
|
|
55
|
-
language?: string;
|
|
56
|
-
data_processing: {
|
|
57
|
-
purposes: string[];
|
|
58
|
-
retention: number;
|
|
59
|
-
third_party_processors: {
|
|
60
|
-
name: string;
|
|
61
|
-
purpose: string;
|
|
62
|
-
data_shared: string[];
|
|
63
|
-
}[];
|
|
64
|
-
special_categories: boolean;
|
|
65
|
-
legal_basis: legalBasis;
|
|
66
|
-
};
|
|
67
|
-
enrollment: {
|
|
68
|
-
start_date: string | null;
|
|
69
|
-
end_date: string | null;
|
|
70
|
-
status: {
|
|
71
|
-
open: boolean;
|
|
72
|
-
max_students?: number;
|
|
73
|
-
};
|
|
74
|
-
};
|
|
75
|
-
relationships?: {
|
|
76
|
-
prerequisites: CourseRelationBackendData[];
|
|
77
|
-
continuations: CourseRelationBackendData[];
|
|
78
|
-
alternatives: CourseRelationBackendData[];
|
|
79
|
-
related: CourseRelationBackendData[];
|
|
80
|
-
};
|
|
81
|
-
study_module?: {
|
|
82
|
-
name: string;
|
|
83
|
-
order?: number;
|
|
84
|
-
credits: number;
|
|
85
|
-
level: courseLevel;
|
|
86
|
-
};
|
|
87
|
-
};
|
|
88
|
-
export interface CourseBackendData extends CourseRawBackendData {
|
|
89
|
-
id: string;
|
|
90
|
-
created_at: string;
|
|
91
|
-
updated_at: string;
|
|
92
|
-
}
|
|
93
|
-
export interface CourseBackendDataWithEnrollments extends CourseBackendData {
|
|
94
|
-
data: {
|
|
95
|
-
my_data?: {
|
|
96
|
-
role: courseRole;
|
|
97
|
-
status: enrollmentStatus;
|
|
98
|
-
};
|
|
99
|
-
enrollment_data?: CourseEnrollmentBackendData[];
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
export interface CourseEnrollmentBackendData {
|
|
103
|
-
user_id: string;
|
|
104
|
-
course_id: string;
|
|
105
|
-
name: string;
|
|
106
|
-
email: string;
|
|
107
|
-
role: courseRole;
|
|
108
|
-
status: enrollmentStatus;
|
|
109
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Course, CourseRaw } from '../store/useCourseStore';
|
|
2
|
-
/**
|
|
3
|
-
* @description Helper function to make a GET request to retrieve courses
|
|
4
|
-
* @returns Promise<Course[]> - The list of courses
|
|
5
|
-
*/
|
|
6
|
-
export declare function getCourses(): Promise<Course[]>;
|
|
7
|
-
/**
|
|
8
|
-
* @description Helper function to make a GET request to retrieve a course by ID
|
|
9
|
-
* @param courseId - The ID of the course to retrieve
|
|
10
|
-
* @returns Promise<Course> - The course object
|
|
11
|
-
*/
|
|
12
|
-
export declare function getCourseById(courseId: string): Promise<Course>;
|
|
13
|
-
/**
|
|
14
|
-
* @description Helper function to make a GET request to retrieve a course by URL
|
|
15
|
-
* @param url - The URL of the course to retrieve
|
|
16
|
-
* @returns Promise<Course> - The course object
|
|
17
|
-
*/
|
|
18
|
-
export declare function getCourseByUrl(url: string): Promise<Course>;
|
|
19
|
-
/**
|
|
20
|
-
* @description Helper function to make a POST request to add a new course
|
|
21
|
-
* **Should only be used by teachers or admins!**
|
|
22
|
-
* @param courseData - The course data to add
|
|
23
|
-
* @returns Added course object
|
|
24
|
-
*/
|
|
25
|
-
export declare function addCourse(courseData: CourseRaw): Promise<Course>;
|
|
26
|
-
/**
|
|
27
|
-
* @description Helper function to make a PUT request to update a course
|
|
28
|
-
* @param courseData - The course data to update
|
|
29
|
-
* @returns Updated course object
|
|
30
|
-
*/
|
|
31
|
-
export declare const updateCourse: (course: Course) => Promise<Course>;
|
|
32
|
-
/**
|
|
33
|
-
* @description Helper function to make a DELETE request to delete a course
|
|
34
|
-
* @param courseId - The ID of the course to delete
|
|
35
|
-
* @returns Deleted course object
|
|
36
|
-
*/
|
|
37
|
-
export declare function deleteCourse(courseId: string): Promise<Course>;
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { fetchState } from '../../../interfaces';
|
|
2
|
-
export type courseRole = "student" | "teacher" | "guest";
|
|
3
|
-
export type visibilityMode = "public" | "enrolled" | "private";
|
|
4
|
-
export type courseEventType = "lecture" | "exercise" | "exam" | "deadline" | "other";
|
|
5
|
-
export type courseEventFrequency = "daily" | "weekly" | "biweekly";
|
|
6
|
-
export type legalBasis = "consent" | "contract" | "legal_obligation" | "legitimate_interests";
|
|
7
|
-
export type enrollmentStatus = "enrolled" | "pending" | "rejected";
|
|
8
|
-
export interface EnrollmentData {
|
|
9
|
-
courseId: string;
|
|
10
|
-
userId: string;
|
|
11
|
-
name: string;
|
|
12
|
-
email: string;
|
|
13
|
-
role: courseRole;
|
|
14
|
-
status: enrollmentStatus;
|
|
15
|
-
}
|
|
16
|
-
interface CourseEvent {
|
|
17
|
-
id: string;
|
|
18
|
-
type: courseEventType;
|
|
19
|
-
title: string;
|
|
20
|
-
description?: string;
|
|
21
|
-
startTime: string;
|
|
22
|
-
endTime?: string;
|
|
23
|
-
location?: string;
|
|
24
|
-
teachers?: EnrollmentData[];
|
|
25
|
-
recurring?: {
|
|
26
|
-
frequency: courseEventFrequency;
|
|
27
|
-
until: string;
|
|
28
|
-
exceptions?: string[];
|
|
29
|
-
};
|
|
30
|
-
maxParticipants?: number;
|
|
31
|
-
requiresRegistration?: boolean;
|
|
32
|
-
}
|
|
33
|
-
export type courseRelationType = "prerequisite" | "recommended" | "parallel" | "continues_from" | "alternative_to" | "part_of" | "prepares_for";
|
|
34
|
-
export type courseLevel = "basic" | "intermediate" | "advanced";
|
|
35
|
-
export interface CourseRelation {
|
|
36
|
-
code: string;
|
|
37
|
-
type: courseRelationType;
|
|
38
|
-
description?: string;
|
|
39
|
-
required?: boolean;
|
|
40
|
-
}
|
|
41
|
-
export interface CourseRaw {
|
|
42
|
-
title: string;
|
|
43
|
-
description: string;
|
|
44
|
-
code: string;
|
|
45
|
-
instance: string;
|
|
46
|
-
ltiLoginUrl?: string;
|
|
47
|
-
services?: string[];
|
|
48
|
-
image?: {
|
|
49
|
-
large: string;
|
|
50
|
-
medium: string;
|
|
51
|
-
thumbnail: string;
|
|
52
|
-
};
|
|
53
|
-
startDate: string | null;
|
|
54
|
-
endDate: string | null;
|
|
55
|
-
visibility: {
|
|
56
|
-
mode: visibilityMode;
|
|
57
|
-
startDate: string | null;
|
|
58
|
-
endDate: string | null;
|
|
59
|
-
};
|
|
60
|
-
events: {
|
|
61
|
-
[key in courseEventType]: CourseEvent[];
|
|
62
|
-
};
|
|
63
|
-
tags?: string[];
|
|
64
|
-
language?: string;
|
|
65
|
-
dataProcessing: {
|
|
66
|
-
purposes: string[];
|
|
67
|
-
retention: number;
|
|
68
|
-
thirdPartyProcessors: {
|
|
69
|
-
name: string;
|
|
70
|
-
purpose: string;
|
|
71
|
-
dataShared: string[];
|
|
72
|
-
}[];
|
|
73
|
-
specialCategories: boolean;
|
|
74
|
-
legalBasis: legalBasis;
|
|
75
|
-
};
|
|
76
|
-
enrollment?: {
|
|
77
|
-
startDate: string | null;
|
|
78
|
-
endDate: string | null;
|
|
79
|
-
status: {
|
|
80
|
-
open: boolean;
|
|
81
|
-
maxStudents?: number;
|
|
82
|
-
};
|
|
83
|
-
};
|
|
84
|
-
data?: {
|
|
85
|
-
myData?: {
|
|
86
|
-
role: courseRole;
|
|
87
|
-
status: enrollmentStatus;
|
|
88
|
-
};
|
|
89
|
-
enrollmentData?: EnrollmentData[];
|
|
90
|
-
};
|
|
91
|
-
relationships?: {
|
|
92
|
-
prerequisites: CourseRelation[];
|
|
93
|
-
continuations: CourseRelation[];
|
|
94
|
-
alternatives: CourseRelation[];
|
|
95
|
-
related: CourseRelation[];
|
|
96
|
-
};
|
|
97
|
-
studyModule?: {
|
|
98
|
-
name: string;
|
|
99
|
-
order?: number;
|
|
100
|
-
credits: number;
|
|
101
|
-
level: courseLevel;
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
export interface Course extends CourseRaw {
|
|
105
|
-
id: string;
|
|
106
|
-
createdAt: string;
|
|
107
|
-
updatedAt: string;
|
|
108
|
-
}
|
|
109
|
-
export declare const courseTemplate: CourseRaw;
|
|
110
|
-
interface CourseStore {
|
|
111
|
-
fetchState: fetchState;
|
|
112
|
-
currentCourseUrl: string;
|
|
113
|
-
currentCourse: Course | null;
|
|
114
|
-
courseToUpdate: Course | null;
|
|
115
|
-
courses: Course[];
|
|
116
|
-
currentCourseCode: string | null;
|
|
117
|
-
setCourseToUpdate: (course: Course | null) => void;
|
|
118
|
-
setCurrentCourseUrl: (url: string) => void;
|
|
119
|
-
setCurrentCourse: (course: Course | null) => void;
|
|
120
|
-
setCurrentCourseCode: (code: string | null) => void;
|
|
121
|
-
updateStateCourse: (course: Course) => Promise<Course>;
|
|
122
|
-
getCourseByUrl: (url: string) => void;
|
|
123
|
-
getCourses: () => void;
|
|
124
|
-
learningCourses: Course[];
|
|
125
|
-
learningCoursesOld: Course[];
|
|
126
|
-
teachingCourses: Course[];
|
|
127
|
-
teachingCoursesOld: Course[];
|
|
128
|
-
availableCourses: Course[];
|
|
129
|
-
}
|
|
130
|
-
/**
|
|
131
|
-
* Course management store with enhanced instance handling.
|
|
132
|
-
*
|
|
133
|
-
* @version 2.1.0
|
|
134
|
-
* @updates
|
|
135
|
-
* - Added support for course codes and instances
|
|
136
|
-
* - Enhanced course filtering capabilities
|
|
137
|
-
* - Added currentCourseCode state
|
|
138
|
-
* - Updated Course interface with new fields
|
|
139
|
-
* - Added instance-specific state management
|
|
140
|
-
*
|
|
141
|
-
* @breaking-changes
|
|
142
|
-
* - Updated Course interface requires code and instance fields
|
|
143
|
-
* - Changed course identification logic to use code + instance
|
|
144
|
-
*/
|
|
145
|
-
declare const useCourseStore: import('zustand/traditional').UseBoundStoreWithEqualityFn<import('zustand').StoreApi<CourseStore>>;
|
|
146
|
-
export default useCourseStore;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Course } from '../store/useCourseStore';
|
|
2
|
-
export type CourseGroups = {
|
|
3
|
-
isStudent: Course[];
|
|
4
|
-
isStudentOld: Course[];
|
|
5
|
-
isTeacher: Course[];
|
|
6
|
-
isTeacherOld: Course[];
|
|
7
|
-
available: Course[];
|
|
8
|
-
};
|
|
9
|
-
export declare const filterUniqueCourses: (courses: Course[]) => Course[];
|
|
10
|
-
export declare const isActiveCourse: (course: Course) => boolean;
|
|
11
|
-
export declare const isActivecode: (courses: Course[], code: string) => boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Group courses by activity status (active/inactive).
|
|
14
|
-
* @param courses List of courses or instances
|
|
15
|
-
* @param skipUnique If true, do not apply unique filtering/logic.
|
|
16
|
-
*/
|
|
17
|
-
export declare const groupCoursesByActivity: (courses: Course[], skipUnique?: boolean) => {
|
|
18
|
-
active: Course[];
|
|
19
|
-
inactive: Course[];
|
|
20
|
-
};
|
|
21
|
-
export declare const groupCoursesByEnrollment: (courses: Course[]) => CourseGroups;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
/**
|
|
3
|
-
* UserSettings Component
|
|
4
|
-
*
|
|
5
|
-
* @version 3.0.0
|
|
6
|
-
* @breaking-changes
|
|
7
|
-
* - Enhanced layout with responsive design patterns
|
|
8
|
-
* - Added platform role management with admin-only access
|
|
9
|
-
* - Improved image handling with multi-size support
|
|
10
|
-
* - Added validation for platform roles
|
|
11
|
-
* - Enhanced styling consistency with theme integration
|
|
12
|
-
* - Removed fixed height constraints for better content flow
|
|
13
|
-
*
|
|
14
|
-
* Provides interface for:
|
|
15
|
-
* - Managing user profile information
|
|
16
|
-
* - Configuring privacy settings
|
|
17
|
-
* - Managing platform roles (admin only)
|
|
18
|
-
* - Setting data retention preferences
|
|
19
|
-
* - Managing notification preferences
|
|
20
|
-
*/
|
|
21
|
-
declare const UserSettings: () => import("react/jsx-runtime").JSX.Element | null;
|
|
22
|
-
export default UserSettings;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
/**
|
|
3
|
-
* UserEventPublisher publishes user state changes to the UserBus.
|
|
4
|
-
* This component converts user store changes to user events and publishes them.
|
|
5
|
-
* It maintains separation by only knowing about users and the UserBus API.
|
|
6
|
-
*/
|
|
7
|
-
declare const UserEventPublisher: React.FC;
|
|
8
|
-
export default UserEventPublisher;
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { default as React, ReactNode } from 'react';
|
|
2
|
-
interface UserMicroserviceProps {
|
|
3
|
-
children?: ReactNode;
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* UserMicroservice Component
|
|
7
|
-
*
|
|
8
|
-
* @version 1.0.0
|
|
9
|
-
*
|
|
10
|
-
* Self-contained microservice that handles all user-related functionality:
|
|
11
|
-
* - User lifecycle management (via UserManager)
|
|
12
|
-
* - User state change publishing to UserBus (via UserEventPublisher)
|
|
13
|
-
* - User data synchronization with navigation filters
|
|
14
|
-
*
|
|
15
|
-
* Other modules should subscribe to UserBus (via hooks like useCurrentUser, useUserActions)
|
|
16
|
-
* to react to user changes. Direct useUserStore access is only allowed within the Users
|
|
17
|
-
* module itself, in Events/UserBus for delegation, and in DevTools components.
|
|
18
|
-
*
|
|
19
|
-
* This component should be used in App.tsx, not LMSProvider.tsx, to maintain
|
|
20
|
-
* proper separation of concerns and avoid tight coupling.
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```tsx
|
|
24
|
-
* <Microservices>
|
|
25
|
-
* <UserMicroservice />
|
|
26
|
-
* <CalendarMicroservice />
|
|
27
|
-
* <CourseMicroservice>
|
|
28
|
-
* <EduTest />
|
|
29
|
-
* </CourseMicroservice>
|
|
30
|
-
* </Microservices>
|
|
31
|
-
* ```
|
|
32
|
-
*/
|
|
33
|
-
declare const UserMicroservice: React.FC<UserMicroserviceProps>;
|
|
34
|
-
export default UserMicroservice;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
export { default as UserMicroservice } from './UserMicroservice';
|
|
3
|
-
export { useUserStore } from './store/useUserStore';
|
|
4
|
-
export type { UserData, UserState } from './store/useUserStore';
|
|
5
|
-
export { default as UserSettings } from './Forms/UserSettings/UserSettings';
|
|
6
|
-
export { UserManager } from './UserManager';
|