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.
Files changed (82) hide show
  1. package/README.md +13 -11
  2. package/dist/index.cjs +116 -138
  3. package/dist/index.es.js +32991 -55282
  4. package/dist/src/App.d.ts +1 -1
  5. package/dist/src/LMSToolpad/{LMSProvider.d.ts → ToolpadProvider.d.ts} +7 -6
  6. package/dist/src/index.d.ts +4 -3
  7. package/package.json +5 -4
  8. package/dist/src/LMSToolpad/components/Calendar/Calendar.d.ts +0 -3
  9. package/dist/src/LMSToolpad/components/Calendar/CalendarBody.d.ts +0 -16
  10. package/dist/src/LMSToolpad/components/Calendar/CalendarEventAggregator.d.ts +0 -9
  11. package/dist/src/LMSToolpad/components/Calendar/CalendarEventItem.d.ts +0 -10
  12. package/dist/src/LMSToolpad/components/Calendar/CalendarHeader.d.ts +0 -12
  13. package/dist/src/LMSToolpad/components/Calendar/CalendarManager.d.ts +0 -3
  14. package/dist/src/LMSToolpad/components/Calendar/CalendarMicroservice.d.ts +0 -32
  15. package/dist/src/LMSToolpad/components/Calendar/DatePickerPopover.d.ts +0 -8
  16. package/dist/src/LMSToolpad/components/Calendar/components/EventDetails.d.ts +0 -3
  17. package/dist/src/LMSToolpad/components/Calendar/components/EventMenu.d.ts +0 -3
  18. package/dist/src/LMSToolpad/components/Calendar/components/EventViews.d.ts +0 -3
  19. package/dist/src/LMSToolpad/components/Calendar/components/index.d.ts +0 -3
  20. package/dist/src/LMSToolpad/components/Calendar/index.d.ts +0 -5
  21. package/dist/src/LMSToolpad/components/Calendar/store/useCalendarStore.d.ts +0 -44
  22. package/dist/src/LMSToolpad/components/Calendar/types.d.ts +0 -49
  23. package/dist/src/LMSToolpad/components/Courses/CourseCodeLoader.d.ts +0 -15
  24. package/dist/src/LMSToolpad/components/Courses/CourseEventPublisher.d.ts +0 -8
  25. package/dist/src/LMSToolpad/components/Courses/CourseInstanceLoader.d.ts +0 -16
  26. package/dist/src/LMSToolpad/components/Courses/CourseInstanceSelector.d.ts +0 -15
  27. package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseActions.d.ts +0 -6
  28. package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseHeader.d.ts +0 -6
  29. package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseHeaderActions.d.ts +0 -12
  30. package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseIcon.d.ts +0 -8
  31. package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseInfo.d.ts +0 -8
  32. package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseItem.d.ts +0 -9
  33. package/dist/src/LMSToolpad/components/Courses/CourseList.d.ts +0 -6
  34. package/dist/src/LMSToolpad/components/Courses/CourseManager.d.ts +0 -2
  35. package/dist/src/LMSToolpad/components/Courses/CourseMicroservice.d.ts +0 -42
  36. package/dist/src/LMSToolpad/components/Courses/CourseRoutesProvider.d.ts +0 -12
  37. package/dist/src/LMSToolpad/components/Courses/CourseTools.d.ts +0 -21
  38. package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/CourseSettings.d.ts +0 -23
  39. package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/CourseSettingsTabs.d.ts +0 -9
  40. package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/BasicInfoTab.d.ts +0 -7
  41. package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/DataProcessingTab.d.ts +0 -24
  42. package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/EnrollmentTab.d.ts +0 -28
  43. package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/RelationshipsTab.d.ts +0 -25
  44. package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/StaffTab.d.ts +0 -26
  45. package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/VisibilityTab.d.ts +0 -24
  46. package/dist/src/LMSToolpad/components/Courses/LtiLoginUrlForm.d.ts +0 -3
  47. package/dist/src/LMSToolpad/components/Courses/Navigation/CourseNavigationbuilder.d.ts +0 -2
  48. package/dist/src/LMSToolpad/components/Courses/components/ToolDisplayer/ToolCard.d.ts +0 -8
  49. package/dist/src/LMSToolpad/components/Courses/components/ToolDisplayer/ToolDisplayer.d.ts +0 -11
  50. package/dist/src/LMSToolpad/components/Courses/config/subjectConfig.d.ts +0 -10
  51. package/dist/src/LMSToolpad/components/Courses/context/CourseMicroserviceContext.d.ts +0 -26
  52. package/dist/src/LMSToolpad/components/Courses/hooks/useCourseRoutes.d.ts +0 -6
  53. package/dist/src/LMSToolpad/components/Courses/mocks/commented.d.ts +0 -0
  54. package/dist/src/LMSToolpad/components/Courses/mocks/constants.d.ts +0 -9
  55. package/dist/src/LMSToolpad/components/Courses/mocks/endpoints.d.ts +0 -8
  56. package/dist/src/LMSToolpad/components/Courses/mocks/generators.d.ts +0 -13
  57. package/dist/src/LMSToolpad/components/Courses/mocks/types.d.ts +0 -109
  58. package/dist/src/LMSToolpad/components/Courses/network/courses.d.ts +0 -37
  59. package/dist/src/LMSToolpad/components/Courses/store/useCourseStore.d.ts +0 -146
  60. package/dist/src/LMSToolpad/components/Courses/utils/courseFilters.d.ts +0 -21
  61. package/dist/src/LMSToolpad/components/DevTools/DevelopmentTools.d.ts +0 -3
  62. package/dist/src/LMSToolpad/components/DevTools/UserSwitcher.d.ts +0 -3
  63. package/dist/src/LMSToolpad/components/Users/Forms/UserSettings/UserSettings.d.ts +0 -22
  64. package/dist/src/LMSToolpad/components/Users/UserEventPublisher.d.ts +0 -8
  65. package/dist/src/LMSToolpad/components/Users/UserManager.d.ts +0 -2
  66. package/dist/src/LMSToolpad/components/Users/UserMicroservice.d.ts +0 -34
  67. package/dist/src/LMSToolpad/components/Users/index.d.ts +0 -6
  68. package/dist/src/LMSToolpad/components/Users/mocks/constants.d.ts +0 -59
  69. package/dist/src/LMSToolpad/components/Users/mocks/endpoints.d.ts +0 -3
  70. package/dist/src/LMSToolpad/components/Users/mocks/generators.d.ts +0 -6
  71. package/dist/src/LMSToolpad/components/Users/mocks/types.d.ts +0 -52
  72. package/dist/src/LMSToolpad/components/Users/network/users.d.ts +0 -7
  73. package/dist/src/LMSToolpad/components/Users/store/useUserStore.d.ts +0 -63
  74. package/dist/src/LMSToolpad/hooks/useVisitedCourses.d.ts +0 -18
  75. package/dist/src/LMSToolpad/mocks/browser.d.ts +0 -2
  76. package/dist/src/LMSToolpad/mocks/handlers.d.ts +0 -2
  77. package/dist/src/LMSToolpad/mocks/store.d.ts +0 -24
  78. package/dist/src/LMSToolpad/utils/__tests__/courseFilters.test.d.ts +0 -2
  79. package/dist/src/test/Contact.d.ts +0 -8
  80. package/dist/src/test/EduTest.d.ts +0 -10
  81. package/dist/src/test/EduTest2.d.ts +0 -10
  82. 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 {};
@@ -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,3 +0,0 @@
1
- /** @format */
2
- declare const LtiLoginUrlForm: () => import("react/jsx-runtime").JSX.Element;
3
- export default LtiLoginUrlForm;
@@ -1,2 +0,0 @@
1
- import { default as React } from 'react';
2
- export declare const CourseNavigationBuilder: React.FC;
@@ -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,10 +0,0 @@
1
- import { courseLevel } from '../store/useCourseStore';
2
- export declare const subjectConfig: {
3
- [key: string]: {
4
- icon: string;
5
- baseColor: string;
6
- levelShades: {
7
- [K in courseLevel]: string;
8
- };
9
- };
10
- };
@@ -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>>[];
@@ -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,3 +0,0 @@
1
- /** @format */
2
- declare const DevelopmentTools: React.FC;
3
- export default DevelopmentTools;
@@ -1,3 +0,0 @@
1
- /** @format */
2
- declare const UserSwitcher: React.FC;
3
- export default UserSwitcher;
@@ -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,2 +0,0 @@
1
- /** @format */
2
- export declare const UserManager: () => null;
@@ -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';