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
package/dist/src/App.d.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Architecture:
|
|
6
6
|
* - BrowserRouter: Provides routing context
|
|
7
|
-
* -
|
|
7
|
+
* - ToolpadProvider: Core Toolpad functionality, auth, theme, layout
|
|
8
8
|
* - Microservices: Top-level routing (Home, Help, Contact, dynamic routes)
|
|
9
9
|
* - UserMicroservice: Optional extension - self-contained user module with UserBus integration
|
|
10
10
|
* - CalendarMicroservice: Optional extension - self-contained calendar module with EventBus integration
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
export interface
|
|
2
|
+
export interface ToolpadProviderProps {
|
|
3
3
|
children?: ReactNode;
|
|
4
4
|
}
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* ToolpadProvider Component
|
|
7
7
|
*
|
|
8
8
|
* @version 3.0.0
|
|
9
9
|
* @breaking-changes
|
|
10
|
+
* - Renamed from LMSProvider to ToolpadProvider in v3.0.0
|
|
10
11
|
* - Complete architectural restructuring for better separation of concerns
|
|
11
12
|
* - Removed direct course management (now handled by CourseManager)
|
|
12
13
|
* - Simplified authentication handling (now handled by AuthenticationManager)
|
|
@@ -24,11 +25,11 @@ export interface LMSProviderProps {
|
|
|
24
25
|
* @example
|
|
25
26
|
* ```tsx
|
|
26
27
|
* <BrowserRouter>
|
|
27
|
-
* <
|
|
28
|
+
* <ToolpadProvider>
|
|
28
29
|
* <YourApp />
|
|
29
|
-
* </
|
|
30
|
+
* </ToolpadProvider>
|
|
30
31
|
* </BrowserRouter>
|
|
31
32
|
* ```
|
|
32
33
|
*/
|
|
33
|
-
declare const
|
|
34
|
-
export default
|
|
34
|
+
declare const ToolpadProvider: React.FC<ToolpadProviderProps>;
|
|
35
|
+
export default ToolpadProvider;
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/** @format */
|
|
2
|
-
export { default as
|
|
2
|
+
export { default as ToolpadProvider } from './LMSToolpad/ToolpadProvider';
|
|
3
3
|
export { BrowserRouter, HashRouter, MemoryRouter, Routes, Route, useNavigate, useLocation, useParams, Navigate, Link, Outlet, } from 'react-router-dom';
|
|
4
4
|
export * from './LMSToolpad/interfaces';
|
|
5
5
|
/**
|
|
@@ -14,8 +14,9 @@ export { useMicroserviceRoutes } from './LMSToolpad/components/Navigation/hooks/
|
|
|
14
14
|
export { useMicroserviceNavigation } from './LMSToolpad/components/Navigation/hooks/useMicroserviceNavigation';
|
|
15
15
|
export { useNavigationSectionManager } from './LMSToolpad/components/Navigation/hooks/useNavigationSectionManager';
|
|
16
16
|
export { useSyncNavigationFilters } from './LMSToolpad/components/Navigation/hooks/useSyncNavigationFilters';
|
|
17
|
+
export { registerAppToolbarAction, unregisterAppToolbarAction, registerPageToolbarAction, unregisterPageToolbarAction, useToolbarRegistryStore, } from './LMSToolpad/layout/Toolbars/toolbarRegistry';
|
|
17
18
|
export { useNavigationStore, filterNavigationByRole, } from './LMSToolpad/components/Navigation/store/useNavigationStore';
|
|
18
|
-
export type { NavigationStoreItem, NavigationPageStoreItem, NavigationHeaderItem, NavigationDividerItem, NavigationSection, ViewStore, ToolMetadata, } from './LMSToolpad/components/Navigation/store/types';
|
|
19
|
+
export type { NavigationStoreItem, NavigationPageStoreItem, NavigationHeaderItem, NavigationDividerItem, NavigationSection, ViewStore, ToolMetadata, addSectionProps, } from './LMSToolpad/components/Navigation/store/types';
|
|
19
20
|
export { useNavigationFilterStore } from './LMSToolpad/components/Navigation/store/useNavigationFilterStore';
|
|
20
21
|
export type { NavigationFilterState } from './LMSToolpad/components/Navigation/store/useNavigationFilterStore';
|
|
21
22
|
export { NavigationSectionBuilder } from './LMSToolpad/components/Navigation/NavigationBuilder';
|
|
@@ -28,6 +29,7 @@ export { useNotificationStore } from './LMSToolpad/components/Notifications/stor
|
|
|
28
29
|
export { default as Home } from './LMSToolpad/components/Routes/Home/Home';
|
|
29
30
|
export { default as Microservices } from './LMSToolpad/components/Microservices/Microservices';
|
|
30
31
|
export * from './common/components';
|
|
32
|
+
export { default as Scroller } from './common/components/ui/Scroller/Scroller';
|
|
31
33
|
export { SpeedDialButton } from './common/components/ui/SpeedDialButton/SpeedDialButton';
|
|
32
34
|
export { useGridItemContext } from './common/components/layout/GridLayout/GridItemContext';
|
|
33
35
|
export { createGridItem } from './common/components/layout/GridLayout/layoutUtils';
|
|
@@ -66,7 +68,6 @@ export { default as axios } from './LMSToolpad/network/axiosConfig';
|
|
|
66
68
|
* **CONSTANTS**
|
|
67
69
|
*/
|
|
68
70
|
export { baseUrl } from './LMSToolpad/constants';
|
|
69
|
-
export { dataStore, saveDataStore } from './LMSToolpad/mocks/store';
|
|
70
71
|
export * from './LMSToolpad/interfaces';
|
|
71
72
|
export { EventBus, eventBus } from './LMSToolpad/components/Events/EventBus';
|
|
72
73
|
export type { Event, EventSource } from './LMSToolpad/components/Events/types';
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"private": false,
|
|
4
4
|
"description": "Extended Toolpad",
|
|
5
5
|
"author": "Jaakko Rajala",
|
|
6
|
-
"version": "3.0.
|
|
6
|
+
"version": "3.0.2",
|
|
7
7
|
"type": "module",
|
|
8
8
|
"main": "./dist/index.cjs",
|
|
9
9
|
"module": "./dist/index.es.js",
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
],
|
|
14
14
|
"repository": {
|
|
15
15
|
"type": "git",
|
|
16
|
-
"url": "https://github.com/Jalez/mui-toolpad-extended-tuni"
|
|
16
|
+
"url": "git+https://github.com/Jalez/mui-toolpad-extended-tuni.git"
|
|
17
17
|
},
|
|
18
18
|
"exports": {
|
|
19
19
|
".": {
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"scripts": {
|
|
39
39
|
"clean": "rm -rf dist && rm -rf build && rm -rf coverage && rm -rf node_modules/.cache",
|
|
40
40
|
"dev": "vite --open --port 3100",
|
|
41
|
-
"build": "tsc && vite build",
|
|
41
|
+
"build": "tsc --project tsconfig.json && vite build",
|
|
42
42
|
"lint": "eslint .",
|
|
43
43
|
"preview": "vite preview",
|
|
44
44
|
"test": "vitest --coverage"
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
"react-colorful": "^5.6.1",
|
|
82
82
|
"react-dom": "^19.0.0",
|
|
83
83
|
"react-grid-layout": "^1.5.0",
|
|
84
|
-
"react-router-dom": "^7.
|
|
84
|
+
"react-router-dom": "^7.11.0",
|
|
85
85
|
"styled-components": "^6.1.0",
|
|
86
86
|
"uuid": "^10.0.0",
|
|
87
87
|
"zustand": "^4.5.4"
|
|
@@ -107,6 +107,7 @@
|
|
|
107
107
|
"globals": "^15.9.0",
|
|
108
108
|
"jsdom": "^25.0.1",
|
|
109
109
|
"msw": "^2.7.0",
|
|
110
|
+
"mui-toolpad-extended-tuni": "^3.0.0",
|
|
110
111
|
"typescript": "^5.7.3",
|
|
111
112
|
"typescript-eslint": "^8.0.0",
|
|
112
113
|
"vite": "^6.4.0",
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
interface CalendarBodyProps {
|
|
3
|
-
calendarRef: React.RefObject<any>;
|
|
4
|
-
calendarView: string;
|
|
5
|
-
events: any[];
|
|
6
|
-
onDatesSet: (arg: any) => void;
|
|
7
|
-
eventDidMount: (info: any) => void;
|
|
8
|
-
showAllDaySlot: boolean;
|
|
9
|
-
onMouseDown: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
10
|
-
onMouseMove: (e: React.MouseEvent<HTMLDivElement>) => void;
|
|
11
|
-
onMouseUp: () => void;
|
|
12
|
-
onMouseLeave: () => void;
|
|
13
|
-
density?: "compact" | "comfortable" | "spacious";
|
|
14
|
-
}
|
|
15
|
-
declare const CalendarBody: React.FC<CalendarBodyProps>;
|
|
16
|
-
export default CalendarBody;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
/**
|
|
3
|
-
* CalendarEventAggregator coordinates between the EventBus and the Calendar store.
|
|
4
|
-
* This component subscribes to generic events from the EventBus and converts them
|
|
5
|
-
* to CalendarEvent format for the calendar display.
|
|
6
|
-
* It's placed at the application level to maintain proper separation of concerns.
|
|
7
|
-
*/
|
|
8
|
-
declare const CalendarEventAggregator: React.FC;
|
|
9
|
-
export default CalendarEventAggregator;
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { EventContentArg } from '@fullcalendar/core';
|
|
2
|
-
export type CalendarEventType = "lecture" | "exercise" | "exam" | "deadline" | "other" | "meeting" | "maintenance";
|
|
3
|
-
type ExtendedEventContentArg = EventContentArg & {
|
|
4
|
-
el?: HTMLElement;
|
|
5
|
-
};
|
|
6
|
-
interface CalendarEventItemProps {
|
|
7
|
-
eventInfo: ExtendedEventContentArg;
|
|
8
|
-
}
|
|
9
|
-
declare const CalendarEventItem: ({ eventInfo }: CalendarEventItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
-
export default CalendarEventItem;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
interface CalendarHeaderProps {
|
|
3
|
-
onPrev: () => void;
|
|
4
|
-
onToday: () => void;
|
|
5
|
-
onNext: () => void;
|
|
6
|
-
onDatePickerOpen: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
7
|
-
calendarView: string;
|
|
8
|
-
onViewChange: (view: string) => void;
|
|
9
|
-
currentTitle: string;
|
|
10
|
-
}
|
|
11
|
-
declare const CalendarHeader: React.FC<CalendarHeaderProps>;
|
|
12
|
-
export default CalendarHeader;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { default as React, ReactNode } from 'react';
|
|
2
|
-
interface CalendarMicroserviceProps {
|
|
3
|
-
children?: ReactNode;
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* CalendarMicroservice Component
|
|
7
|
-
*
|
|
8
|
-
* @version 1.0.0
|
|
9
|
-
*
|
|
10
|
-
* Self-contained microservice that handles all calendar-related functionality:
|
|
11
|
-
* - Calendar grid item registration (via CalendarManager)
|
|
12
|
-
* - Calendar microservice registration with NavigationRegistry
|
|
13
|
-
* - Event aggregation from EventBus (via CalendarEventAggregator)
|
|
14
|
-
*
|
|
15
|
-
* Calendar receives events from EventBus, not directly from Courses.
|
|
16
|
-
* Courses publishes events via CourseEventPublisher, Calendar subscribes via CalendarEventAggregator.
|
|
17
|
-
*
|
|
18
|
-
* This component should be used in App.tsx, not LMSProvider.tsx, to maintain
|
|
19
|
-
* proper separation of concerns and avoid tight coupling.
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```tsx
|
|
23
|
-
* <Microservices>
|
|
24
|
-
* <CalendarMicroservice />
|
|
25
|
-
* <CourseMicroservice>
|
|
26
|
-
* <EduTest />
|
|
27
|
-
* </CourseMicroservice>
|
|
28
|
-
* </Microservices>
|
|
29
|
-
* ```
|
|
30
|
-
*/
|
|
31
|
-
declare const CalendarMicroservice: React.FC<CalendarMicroserviceProps>;
|
|
32
|
-
export default CalendarMicroservice;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { default as React } from 'react';
|
|
2
|
-
interface DatePickerPopoverProps {
|
|
3
|
-
anchorEl: HTMLElement | null;
|
|
4
|
-
onClose: () => void;
|
|
5
|
-
onDateSelect: (date: any) => void;
|
|
6
|
-
}
|
|
7
|
-
declare const DatePickerPopover: React.FC<DatePickerPopoverProps>;
|
|
8
|
-
export default DatePickerPopover;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { EventDetailsProps } from '../types';
|
|
2
|
-
declare const EventDetails: ({ description, location, courseColor, maxParticipants, requiresRegistration, teachers, type, recurring, onAddToCalendar, onRegister, theme, }: EventDetailsProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
-
export default EventDetails;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { EventMenuProps } from '../types';
|
|
2
|
-
declare const EventMenu: ({ open, anchorEl, onClose, eventInfo, courseColor, type, eventTypeIcons, courseTitle, courseCode, description, location, maxParticipants, requiresRegistration, teachers, recurring, theme, }: EventMenuProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
-
export default EventMenu;
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { EventViewProps } from '../types';
|
|
2
|
-
export declare const CompactEventView: ({ eventInfo, courseCode, type, courseColor, requiresRegistration, recurring, eventTypeIcons, theme, }: EventViewProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
-
export declare const RegularView: ({ eventInfo, courseCode, type, courseColor, location, requiresRegistration, recurring, eventTypeIcons, theme, }: EventViewProps) => import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
export { default as Calendar } from './Calendar';
|
|
3
|
-
export { default as CalendarManager } from './CalendarManager';
|
|
4
|
-
export { default as CalendarEventAggregator } from './CalendarEventAggregator';
|
|
5
|
-
export { default as CalendarMicroservice } from './CalendarMicroservice';
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
export interface CalendarEvent {
|
|
3
|
-
id: string;
|
|
4
|
-
title: string;
|
|
5
|
-
start: Date | string;
|
|
6
|
-
end?: Date | string;
|
|
7
|
-
backgroundColor?: string;
|
|
8
|
-
borderColor?: string;
|
|
9
|
-
textColor?: string;
|
|
10
|
-
extendedProps?: {
|
|
11
|
-
courseCode?: string;
|
|
12
|
-
courseTitle?: string;
|
|
13
|
-
type?: string;
|
|
14
|
-
description?: string;
|
|
15
|
-
location?: string;
|
|
16
|
-
[key: string]: any;
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
interface CalendarState {
|
|
20
|
-
events: CalendarEvent[];
|
|
21
|
-
isLoading: boolean;
|
|
22
|
-
error: string | null;
|
|
23
|
-
setEvents: (events: CalendarEvent[]) => void;
|
|
24
|
-
addEvent: (event: CalendarEvent) => void;
|
|
25
|
-
updateEvent: (eventId: string, updates: Partial<CalendarEvent>) => void;
|
|
26
|
-
removeEvent: (eventId: string) => void;
|
|
27
|
-
clearEvents: () => void;
|
|
28
|
-
setLoading: (loading: boolean) => void;
|
|
29
|
-
setError: (error: string | null) => void;
|
|
30
|
-
getEventsForDateRange: (start: Date, end: Date) => CalendarEvent[];
|
|
31
|
-
}
|
|
32
|
-
export declare const useCalendarStore: import('zustand/traditional').UseBoundStoreWithEqualityFn<Omit<import('zustand').StoreApi<CalendarState>, "setState"> & {
|
|
33
|
-
setState<A extends string | {
|
|
34
|
-
type: string;
|
|
35
|
-
}>(partial: CalendarState | Partial<CalendarState> | ((state: CalendarState) => CalendarState | Partial<CalendarState>), replace?: boolean | undefined, action?: A | undefined): void;
|
|
36
|
-
}>;
|
|
37
|
-
export declare const getContrastColor: (hexColor: string) => string;
|
|
38
|
-
export declare const createCalendarEvent: (id: string, title: string, start: Date | string, end?: Date | string, options?: {
|
|
39
|
-
backgroundColor?: string;
|
|
40
|
-
borderColor?: string;
|
|
41
|
-
textColor?: string;
|
|
42
|
-
extendedProps?: Record<string, any>;
|
|
43
|
-
}) => CalendarEvent;
|
|
44
|
-
export {};
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Theme } from '@mui/material';
|
|
2
|
-
import { EventContentArg } from '@fullcalendar/core';
|
|
3
|
-
import { CalendarEventType } from './CalendarEventItem';
|
|
4
|
-
export interface EventViewProps {
|
|
5
|
-
eventInfo: EventContentArg;
|
|
6
|
-
courseCode: string;
|
|
7
|
-
type: CalendarEventType;
|
|
8
|
-
courseColor: string;
|
|
9
|
-
location?: string;
|
|
10
|
-
requiresRegistration?: boolean;
|
|
11
|
-
recurring?: boolean;
|
|
12
|
-
eventTypeIcons: Record<CalendarEventType, string>;
|
|
13
|
-
theme: Theme;
|
|
14
|
-
courseTitle?: string;
|
|
15
|
-
maxParticipants?: number;
|
|
16
|
-
description?: string;
|
|
17
|
-
teachers?: any[];
|
|
18
|
-
}
|
|
19
|
-
export interface EventDetailsProps {
|
|
20
|
-
description?: string;
|
|
21
|
-
location?: string;
|
|
22
|
-
courseColor: string;
|
|
23
|
-
maxParticipants?: number;
|
|
24
|
-
requiresRegistration?: boolean;
|
|
25
|
-
teachers?: any[];
|
|
26
|
-
type: CalendarEventType;
|
|
27
|
-
recurring?: boolean;
|
|
28
|
-
onAddToCalendar: (e: React.MouseEvent) => void;
|
|
29
|
-
onRegister: (e: React.MouseEvent) => void;
|
|
30
|
-
theme: Theme;
|
|
31
|
-
}
|
|
32
|
-
export interface EventMenuProps {
|
|
33
|
-
open: boolean;
|
|
34
|
-
anchorEl: HTMLElement | null;
|
|
35
|
-
onClose: () => void;
|
|
36
|
-
eventInfo: EventContentArg;
|
|
37
|
-
courseColor: string;
|
|
38
|
-
type: CalendarEventType;
|
|
39
|
-
eventTypeIcons: Record<CalendarEventType, string>;
|
|
40
|
-
courseTitle: string;
|
|
41
|
-
courseCode: string;
|
|
42
|
-
description?: string;
|
|
43
|
-
location?: string;
|
|
44
|
-
maxParticipants?: number;
|
|
45
|
-
requiresRegistration?: boolean;
|
|
46
|
-
teachers?: any[];
|
|
47
|
-
recurring?: boolean;
|
|
48
|
-
theme: Theme;
|
|
49
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
/**
|
|
3
|
-
* Component for loading and managing course code level data.
|
|
4
|
-
*
|
|
5
|
-
* @version 2.1.0
|
|
6
|
-
* @new-component
|
|
7
|
-
* - Handles course code level routing
|
|
8
|
-
* - Manages course code state in store
|
|
9
|
-
* - Provides course instance list context
|
|
10
|
-
* - Supports navigation between instances
|
|
11
|
-
* @description - This component is responsible for loading the course data and rendering the course tools
|
|
12
|
-
* @returns {React.ReactElement} - Returns the course loader component
|
|
13
|
-
*/
|
|
14
|
-
declare const CourseCodeLoader: () => import("react/jsx-runtime").JSX.Element;
|
|
15
|
-
export default CourseCodeLoader;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
/**
|
|
3
|
-
* CourseEventPublisher publishes course events to the EventBus.
|
|
4
|
-
* This component converts course data to generic events and publishes them.
|
|
5
|
-
* It maintains separation by only knowing about courses and the EventBus API.
|
|
6
|
-
*/
|
|
7
|
-
declare const CourseEventPublisher: React.FC;
|
|
8
|
-
export default CourseEventPublisher;
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
/**
|
|
3
|
-
* Component for loading specific course instance data.
|
|
4
|
-
*
|
|
5
|
-
* @version 2.1.0
|
|
6
|
-
* @new-component
|
|
7
|
-
* - Manages course instance state
|
|
8
|
-
* - Handles instance-specific data loading
|
|
9
|
-
* - Provides instance context to children
|
|
10
|
-
* - Supports microservice integration
|
|
11
|
-
* - Handles instance not found scenarios
|
|
12
|
-
* @description - This component is responsible for loading the course data and rendering the course tools
|
|
13
|
-
* @returns {React.ReactElement} - Returns the course loader component
|
|
14
|
-
*/
|
|
15
|
-
declare const CourseInstanceLoader: () => import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export default CourseInstanceLoader;
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
/**
|
|
3
|
-
* Component for selecting course instances from a filtered list.
|
|
4
|
-
*
|
|
5
|
-
* @version 2.1.0
|
|
6
|
-
* @new-component
|
|
7
|
-
* - Provides instance selection UI for courses
|
|
8
|
-
* - Groups instances by course code
|
|
9
|
-
* - Handles active/inactive instance states
|
|
10
|
-
* - Supports nested navigation structure
|
|
11
|
-
*
|
|
12
|
-
* @param {Course[]} courses - Available course instances
|
|
13
|
-
*/
|
|
14
|
-
declare const CourseInstanceSelector: () => import("react/jsx-runtime").JSX.Element;
|
|
15
|
-
export default CourseInstanceSelector;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { Course } from '../store/useCourseStore';
|
|
2
|
-
type CourseHeaderActionsProps = {
|
|
3
|
-
course: Course;
|
|
4
|
-
courseColor: string;
|
|
5
|
-
isTeacher: boolean;
|
|
6
|
-
showEnrollmentOpen?: boolean;
|
|
7
|
-
onSettingsClick: (e: React.MouseEvent<HTMLElement>) => void;
|
|
8
|
-
onEnroll?: (e: React.MouseEvent<HTMLElement>) => void;
|
|
9
|
-
onTeacherEnroll?: (e: React.MouseEvent<HTMLElement>) => void;
|
|
10
|
-
};
|
|
11
|
-
export declare const CourseHeaderActions: ({ course, courseColor, isTeacher, showEnrollmentOpen, onSettingsClick, onEnroll, onTeacherEnroll, }: CourseHeaderActionsProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
export {};
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { SvgIconComponent } from '@mui/icons-material';
|
|
2
|
-
export interface SubjectConfig {
|
|
3
|
-
icon: string;
|
|
4
|
-
baseColor: string;
|
|
5
|
-
levelShades: Record<string, string>;
|
|
6
|
-
}
|
|
7
|
-
export declare const createCourseIcon: (courseColor: string, config: SubjectConfig) => SvgIconComponent;
|
|
8
|
-
export default createCourseIcon;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { Course } from '../store/useCourseStore';
|
|
2
|
-
type CourseInfoProps = {
|
|
3
|
-
course: Course;
|
|
4
|
-
displayMode: "course" | "instance" | "instanceList";
|
|
5
|
-
hasUpcomingEvents: boolean;
|
|
6
|
-
};
|
|
7
|
-
export declare const CourseInfo: ({ course, displayMode, hasUpcomingEvents, }: CourseInfoProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
-
export {};
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Course } from '../store/useCourseStore';
|
|
2
|
-
type CourseItemProps = {
|
|
3
|
-
course: Course;
|
|
4
|
-
isSelected?: boolean;
|
|
5
|
-
displayMode?: "course" | "instance" | "instanceList";
|
|
6
|
-
onClick: (course: Course) => void;
|
|
7
|
-
};
|
|
8
|
-
declare const CourseItem: ({ course, displayMode, onClick, }: CourseItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export default CourseItem;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
type CourseListProps = {
|
|
2
|
-
displayMode?: "course" | "instance" | "instanceList";
|
|
3
|
-
containerHeight?: string | number;
|
|
4
|
-
};
|
|
5
|
-
declare const CourseList: ({ displayMode, containerHeight, }: CourseListProps) => import("react/jsx-runtime").JSX.Element;
|
|
6
|
-
export default CourseList;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { default as React, ReactNode } from 'react';
|
|
2
|
-
interface CourseMicroserviceProps {
|
|
3
|
-
children?: ReactNode;
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* CourseMicroservice Component
|
|
7
|
-
*
|
|
8
|
-
* @version 3.0.0
|
|
9
|
-
*
|
|
10
|
-
* Fully self-contained microservice that handles all course-related functionality:
|
|
11
|
-
* - Course data fetching and management (via CourseManager)
|
|
12
|
-
* - Course navigation building
|
|
13
|
-
* - Course code and instance routing (/:code, /:code/:instance)
|
|
14
|
-
* - Course tools display
|
|
15
|
-
* - Course microservice registration and routing (/:code/:instance/:microservice)
|
|
16
|
-
* - Route registration with NavigationRegistry (via CourseRoutesProvider)
|
|
17
|
-
*
|
|
18
|
-
* Course microservices (like EduTest) are passed as children and register
|
|
19
|
-
* themselves through the CourseMicroserviceContext.
|
|
20
|
-
*
|
|
21
|
-
* Routes handled:
|
|
22
|
-
* - /:code - Course code selection (CourseCodeLoader + CourseInstanceSelector)
|
|
23
|
-
* - /:code/:instance - Course instance (CourseInstanceLoader + CourseTools)
|
|
24
|
-
* - /:code/:instance/:microservice/* - Course microservice routes
|
|
25
|
-
*
|
|
26
|
-
* @breaking-changes
|
|
27
|
-
* - v3.0.0: Now fully self-contained - includes CourseManager and CourseRoutesProvider
|
|
28
|
-
* - v2.0.0: Uses local state instead of Zustand store
|
|
29
|
-
* - Context provides allCourseMicroserviceNavigation array
|
|
30
|
-
* - Integrates with useNavigationStore to notify about course microservices
|
|
31
|
-
* - v3.1.0: Context logic extracted to separate context file
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* ```tsx
|
|
35
|
-
* <CourseMicroservice>
|
|
36
|
-
* <EduTest />
|
|
37
|
-
* <EduTest2 />
|
|
38
|
-
* </CourseMicroservice>
|
|
39
|
-
* ```
|
|
40
|
-
*/
|
|
41
|
-
declare const CourseMicroservice: React.FC<CourseMicroserviceProps>;
|
|
42
|
-
export default CourseMicroservice;
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
/**
|
|
3
|
-
* CourseRoutesProvider Component
|
|
4
|
-
*
|
|
5
|
-
* Registers course routes with the NavigationRegistry as a route provider.
|
|
6
|
-
* This allows Microservices.tsx to be microservice-agnostic - it doesn't need
|
|
7
|
-
* to know about course routes specifically.
|
|
8
|
-
*
|
|
9
|
-
* @version 1.0.0
|
|
10
|
-
*/
|
|
11
|
-
declare const CourseRoutesProvider: () => null;
|
|
12
|
-
export default CourseRoutesProvider;
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { NavigationPageStoreItem } from '@toolpad/core';
|
|
2
|
-
interface CourseToolsProps {
|
|
3
|
-
microservices?: NavigationPageStoreItem[];
|
|
4
|
-
}
|
|
5
|
-
/**
|
|
6
|
-
* Component for managing and displaying course-specific tools.
|
|
7
|
-
*
|
|
8
|
-
* @version 2.1.0
|
|
9
|
-
* @updates
|
|
10
|
-
* - Added support for microservice-based tool management
|
|
11
|
-
* - Introduced enabled/available tools separation
|
|
12
|
-
* - Added service enablement/disablement functionality
|
|
13
|
-
* - Enhanced teacher-specific tool configuration
|
|
14
|
-
* - Improved UI with centered headings and tool groups
|
|
15
|
-
*
|
|
16
|
-
* @component
|
|
17
|
-
* @param {CourseToolsProps} props
|
|
18
|
-
* @param {NavigationPageStoreItem[]} props.microservices - Array of available microservice tools
|
|
19
|
-
*/
|
|
20
|
-
declare const CourseTools: ({ microservices }: CourseToolsProps) => import("react/jsx-runtime").JSX.Element;
|
|
21
|
-
export default CourseTools;
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/** @format */
|
|
2
|
-
/**
|
|
3
|
-
* CourseSettings Component
|
|
4
|
-
*
|
|
5
|
-
* @version 3.0.0
|
|
6
|
-
* @breaking-changes
|
|
7
|
-
* - Restructured import paths to follow feature-based organization
|
|
8
|
-
* - Enhanced notification handling through dedicated store
|
|
9
|
-
* - Improved dialog management with better state handling
|
|
10
|
-
* - Updated course store integration with new path structure
|
|
11
|
-
* - Enhanced TypeScript strict mode compliance
|
|
12
|
-
* - Standardized string literals for consistency
|
|
13
|
-
*
|
|
14
|
-
* Provides interface for:
|
|
15
|
-
* - Managing course basic information
|
|
16
|
-
* - Configuring course visibility
|
|
17
|
-
* - Managing enrollment settings
|
|
18
|
-
* - Configuring staff access
|
|
19
|
-
* - Setting data processing preferences
|
|
20
|
-
* - Managing course relationships
|
|
21
|
-
*/
|
|
22
|
-
declare const CourseSettings: () => import("react/jsx-runtime").JSX.Element;
|
|
23
|
-
export default CourseSettings;
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { CourseRaw } from '../../store/useCourseStore';
|
|
2
|
-
import { UserData } from '../../../../components/Events/userTypes';
|
|
3
|
-
type CourseSettingsProps = {
|
|
4
|
-
formData: CourseRaw;
|
|
5
|
-
handleUpdateFormData: (newData: CourseRaw) => void;
|
|
6
|
-
courseUsers?: UserData[];
|
|
7
|
-
};
|
|
8
|
-
export default function CourseSettingsTabs({ formData, handleUpdateFormData, courseUsers, }: CourseSettingsProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
-
export {};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { CourseRaw } from '../../../store/useCourseStore';
|
|
2
|
-
interface BasicInfoTabProps {
|
|
3
|
-
formData: CourseRaw;
|
|
4
|
-
setFormData: (data: CourseRaw) => void;
|
|
5
|
-
}
|
|
6
|
-
export default function BasicInfoTab({ formData, setFormData, }: BasicInfoTabProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
-
export {};
|
package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/DataProcessingTab.d.ts
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import { CourseRaw } from '../../../store/useCourseStore';
|
|
2
|
-
interface DataProcessingTabProps {
|
|
3
|
-
formData: CourseRaw;
|
|
4
|
-
setFormData: (data: CourseRaw) => void;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* DataProcessingTab Component
|
|
8
|
-
*
|
|
9
|
-
* @version 3.0.0
|
|
10
|
-
* @breaking-changes
|
|
11
|
-
* - Updated component import paths to feature-based structure
|
|
12
|
-
* - Enhanced type safety for data processing options
|
|
13
|
-
* - Standardized string literals for legal bases
|
|
14
|
-
* - Improved default value handling
|
|
15
|
-
* - Added proper type definitions for processing settings
|
|
16
|
-
*
|
|
17
|
-
* Provides interface for:
|
|
18
|
-
* - Setting data processing legal basis
|
|
19
|
-
* - Managing special category data handling
|
|
20
|
-
* - Configuring retention periods
|
|
21
|
-
* - Setting data processing purposes
|
|
22
|
-
*/
|
|
23
|
-
export default function DataProcessingTab({ formData, setFormData, }: DataProcessingTabProps): import("react/jsx-runtime").JSX.Element;
|
|
24
|
-
export {};
|