mui-toolpad-extended-tuni 2.1.0 → 3.0.1
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 +167 -27
- package/dist/index.cjs +193 -149
- package/dist/index.d.ts +2 -49
- package/dist/index.es.js +66408 -19299
- package/dist/mockServiceWorker.js +1 -1
- package/dist/mui-toolpad-extended-tuni.css +1 -0
- package/dist/src/App.d.ts +31 -0
- package/dist/src/LMSToolpad/Forms/Components/Editables/EditableAutoComplete.d.ts +12 -0
- package/dist/src/LMSToolpad/Forms/Components/Editables/EditableColor.d.ts +8 -0
- package/dist/src/LMSToolpad/Forms/Components/Editables/EditableImage.d.ts +9 -0
- package/dist/src/LMSToolpad/Forms/Components/Editables/EditableNumber.d.ts +12 -0
- package/dist/src/LMSToolpad/Forms/Components/Editables/EditableSelect.d.ts +14 -0
- package/dist/src/LMSToolpad/Forms/Components/Editables/EditableSwitch.d.ts +8 -0
- package/dist/src/LMSToolpad/Forms/Components/Editables/EditableText.d.ts +32 -0
- package/dist/src/LMSToolpad/Forms/Components/SqueezableTable/SqueezableTable.d.ts +2 -0
- package/dist/src/LMSToolpad/Forms/Components/SqueezableTable/types.d.ts +24 -0
- package/dist/src/LMSToolpad/Forms/PlatformSettings/PlatformSettings.d.ts +21 -0
- package/dist/src/LMSToolpad/Forms/PlatformSettings/PlatformSettingsTabs.d.ts +16 -0
- package/dist/src/LMSToolpad/Forms/PlatformSettings/tabs/AITab.d.ts +7 -0
- package/dist/src/LMSToolpad/Forms/PlatformSettings/tabs/AuthTab.d.ts +7 -0
- package/dist/src/LMSToolpad/Forms/PlatformSettings/tabs/CoursesTab.d.ts +7 -0
- package/dist/src/LMSToolpad/Forms/PlatformSettings/tabs/FeaturesTab.d.ts +24 -0
- package/dist/src/LMSToolpad/Forms/PlatformSettings/tabs/GeneralTab.d.ts +7 -0
- package/dist/src/LMSToolpad/Forms/PlatformSettings/tabs/PrivacyTab.d.ts +7 -0
- package/dist/src/LMSToolpad/Forms/PlatformSettings/tabs/ThemeTab.d.ts +7 -0
- package/dist/src/LMSToolpad/Forms/PlatformSettings/tabs/components/ColorSettings.d.ts +7 -0
- package/dist/src/LMSToolpad/Forms/PlatformSettings/tabs/components/TypographySettings.d.ts +7 -0
- package/dist/src/LMSToolpad/ToolpadProvider.d.ts +35 -0
- package/dist/src/LMSToolpad/components/AuthenticationManager.d.ts +2 -0
- package/dist/src/LMSToolpad/components/Calendar/Calendar.d.ts +3 -0
- package/dist/src/LMSToolpad/components/Calendar/CalendarBody.d.ts +16 -0
- package/dist/src/LMSToolpad/components/Calendar/CalendarEventAggregator.d.ts +9 -0
- package/dist/src/LMSToolpad/components/Calendar/CalendarEventItem.d.ts +10 -0
- package/dist/src/LMSToolpad/components/Calendar/CalendarHeader.d.ts +12 -0
- package/dist/src/LMSToolpad/components/Calendar/CalendarManager.d.ts +3 -0
- package/dist/src/LMSToolpad/components/Calendar/CalendarMicroservice.d.ts +32 -0
- package/dist/src/LMSToolpad/components/Calendar/DatePickerPopover.d.ts +8 -0
- package/dist/src/LMSToolpad/components/Calendar/components/EventDetails.d.ts +3 -0
- package/dist/src/LMSToolpad/components/Calendar/components/EventMenu.d.ts +3 -0
- package/dist/src/LMSToolpad/components/Calendar/components/EventViews.d.ts +3 -0
- package/dist/src/LMSToolpad/components/Calendar/components/index.d.ts +3 -0
- package/dist/src/LMSToolpad/components/Calendar/index.d.ts +5 -0
- package/dist/src/LMSToolpad/components/Calendar/store/useCalendarStore.d.ts +44 -0
- package/dist/src/LMSToolpad/components/Calendar/types.d.ts +49 -0
- package/dist/src/LMSToolpad/components/Courses/CourseEventPublisher.d.ts +8 -0
- package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseActions.d.ts +6 -0
- package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseHeader.d.ts +6 -0
- package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseHeaderActions.d.ts +12 -0
- package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseIcon.d.ts +8 -0
- package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseInfo.d.ts +8 -0
- package/dist/src/LMSToolpad/components/Courses/CourseItem/CourseItem.d.ts +9 -0
- package/dist/src/LMSToolpad/components/Courses/CourseList.d.ts +6 -0
- package/dist/src/LMSToolpad/components/Courses/CourseManager.d.ts +2 -0
- package/dist/src/LMSToolpad/components/Courses/CourseMicroservice.d.ts +42 -0
- package/dist/src/LMSToolpad/components/Courses/CourseRoutesProvider.d.ts +12 -0
- package/dist/{LMSToolpad → src/LMSToolpad}/components/Courses/CourseTools.d.ts +2 -3
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/CourseSettings.d.ts +23 -0
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/CourseSettingsTabs.d.ts +9 -0
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/BasicInfoTab.d.ts +7 -0
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/DataProcessingTab.d.ts +24 -0
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/EnrollmentTab.d.ts +28 -0
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/RelationshipsTab.d.ts +25 -0
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/StaffTab.d.ts +26 -0
- package/dist/src/LMSToolpad/components/Courses/Forms/CourseSettings/tabs/VisibilityTab.d.ts +24 -0
- package/dist/src/LMSToolpad/components/Courses/Navigation/CourseNavigationbuilder.d.ts +2 -0
- package/dist/{LMSToolpad/components → src/LMSToolpad/components/Courses/components/ToolDisplayer}/ToolCard.d.ts +1 -1
- package/dist/{LMSToolpad/components → src/LMSToolpad/components/Courses/components/ToolDisplayer}/ToolDisplayer.d.ts +1 -11
- package/dist/src/LMSToolpad/components/Courses/config/subjectConfig.d.ts +10 -0
- package/dist/src/LMSToolpad/components/Courses/context/CourseMicroserviceContext.d.ts +26 -0
- package/dist/src/LMSToolpad/components/Courses/hooks/useCourseRoutes.d.ts +6 -0
- package/dist/src/LMSToolpad/components/Courses/mocks/commented.d.ts +0 -0
- package/dist/src/LMSToolpad/components/Courses/mocks/constants.d.ts +9 -0
- package/dist/src/LMSToolpad/components/Courses/mocks/endpoints.d.ts +8 -0
- package/dist/src/LMSToolpad/components/Courses/mocks/generators.d.ts +13 -0
- package/dist/src/LMSToolpad/components/Courses/mocks/types.d.ts +109 -0
- package/dist/{LMSToolpad → src/LMSToolpad/components/Courses}/network/courses.d.ts +1 -8
- package/dist/src/LMSToolpad/components/Courses/store/useCourseStore.d.ts +146 -0
- package/dist/{LMSToolpad → src/LMSToolpad/components/Courses}/utils/courseFilters.d.ts +8 -1
- package/dist/{LMSToolpad → src/LMSToolpad}/components/Dialogs/DialogOpener.d.ts +0 -1
- package/dist/src/LMSToolpad/components/Dialogs/Dialogs.d.ts +3 -0
- package/dist/src/LMSToolpad/components/Dialogs/ExtendedDialog.d.ts +8 -0
- package/dist/{LMSToolpad → src/LMSToolpad}/components/Dialogs/FormDialog.d.ts +5 -1
- package/dist/src/LMSToolpad/components/Dialogs/dialogRegistry.d.ts +3 -0
- package/dist/src/LMSToolpad/components/Events/EventBus.d.ts +34 -0
- package/dist/src/LMSToolpad/components/Events/UserBus.d.ts +111 -0
- package/dist/src/LMSToolpad/components/Events/hooks/useCurrentUser.d.ts +11 -0
- package/dist/src/LMSToolpad/components/Events/hooks/useUserActions.d.ts +15 -0
- package/dist/src/LMSToolpad/components/Events/hooks/useUserPreferences.d.ts +22 -0
- package/dist/src/LMSToolpad/components/Events/index.d.ts +10 -0
- package/dist/src/LMSToolpad/components/Events/types.d.ts +16 -0
- package/dist/src/LMSToolpad/components/Events/userTypes.d.ts +78 -0
- package/dist/{LMSToolpad → src/LMSToolpad}/components/IconWithBadge.d.ts +0 -1
- package/dist/{LMSToolpad/components → src/LMSToolpad/components/Microservices}/MicroserviceNavigationBuilder.d.ts +3 -3
- package/dist/src/LMSToolpad/components/Microservices/MicroserviceSubsections.d.ts +9 -0
- package/dist/src/LMSToolpad/components/Microservices/Microservices.d.ts +25 -0
- package/dist/src/LMSToolpad/components/Microservices/types.d.ts +12 -0
- package/dist/src/LMSToolpad/components/Navigation/NavigationBuilder.d.ts +6 -0
- package/dist/src/LMSToolpad/components/Navigation/NavigationFilter.d.ts +1 -0
- package/dist/src/LMSToolpad/components/Navigation/NavigationRegistry.d.ts +116 -0
- package/dist/src/LMSToolpad/components/Navigation/hooks/useMicroserviceNavigation.d.ts +4 -0
- package/dist/src/LMSToolpad/components/Navigation/hooks/useMicroserviceRoutes.d.ts +6 -0
- package/dist/src/LMSToolpad/components/Navigation/hooks/useNavigationSectionManager.d.ts +23 -0
- package/dist/src/LMSToolpad/components/Navigation/hooks/useSyncNavigationFilters.d.ts +1 -0
- package/dist/src/LMSToolpad/components/Navigation/store/microserviceUtils.d.ts +9 -0
- package/dist/src/LMSToolpad/components/Navigation/store/navigationCalculator.d.ts +11 -0
- package/dist/src/LMSToolpad/components/Navigation/store/sectionManager.d.ts +9 -0
- package/dist/src/LMSToolpad/components/Navigation/store/types.d.ts +90 -0
- package/dist/src/LMSToolpad/components/Navigation/store/useNavigationFilterStore.d.ts +6 -0
- package/dist/src/LMSToolpad/components/Navigation/store/useNavigationStore.d.ts +50 -0
- package/dist/src/LMSToolpad/components/Notifications/store/useNotificationsStore.d.ts +22 -0
- package/dist/src/LMSToolpad/components/Routes/Home/Home.d.ts +2 -0
- package/dist/src/LMSToolpad/components/Users/Forms/UserSettings/UserSettings.d.ts +22 -0
- package/dist/src/LMSToolpad/components/Users/UserEventPublisher.d.ts +8 -0
- package/dist/src/LMSToolpad/components/Users/UserManager.d.ts +2 -0
- package/dist/src/LMSToolpad/components/Users/UserMicroservice.d.ts +34 -0
- package/dist/src/LMSToolpad/components/Users/index.d.ts +6 -0
- package/dist/src/LMSToolpad/components/Users/mocks/constants.d.ts +59 -0
- package/dist/src/LMSToolpad/components/Users/mocks/endpoints.d.ts +3 -0
- package/dist/src/LMSToolpad/components/Users/mocks/generators.d.ts +6 -0
- package/dist/src/LMSToolpad/components/Users/mocks/types.d.ts +52 -0
- package/dist/src/LMSToolpad/components/Users/network/users.d.ts +7 -0
- package/dist/src/LMSToolpad/components/Users/store/useUserStore.d.ts +63 -0
- package/dist/{LMSToolpad → src/LMSToolpad}/components/tools/addActions.d.ts +2 -2
- package/dist/{LMSToolpad → src/LMSToolpad}/components/tools/addIcons.d.ts +1 -1
- package/dist/{LMSToolpad → src/LMSToolpad}/components/tools/utils/ActionFCWrapper.d.ts +2 -2
- package/dist/{LMSToolpad → src/LMSToolpad}/components/tools/utils/IconFCWrapper.d.ts +0 -1
- package/dist/src/LMSToolpad/constants.d.ts +67 -0
- package/dist/{LMSToolpad → src/LMSToolpad}/hooks/useCustomRouter.d.ts +2 -2
- package/dist/src/LMSToolpad/hooks/useVisitedCourses.d.ts +18 -0
- package/dist/src/LMSToolpad/index.d.ts +1 -0
- package/dist/src/LMSToolpad/layout/Content/PageContent.d.ts +5 -0
- package/dist/{LMSToolpad/components/toolbar → src/LMSToolpad/layout/Toolbars/AppToolbar}/Account.d.ts +1 -0
- package/dist/src/LMSToolpad/layout/Toolbars/AppToolbar/CollapsibleMenu.d.ts +1 -0
- package/dist/src/LMSToolpad/layout/Toolbars/AppToolbar/RegisteredAppTools.d.ts +11 -0
- package/dist/src/LMSToolpad/layout/Toolbars/AppToolbar/SearchBar.d.ts +6 -0
- package/dist/src/LMSToolpad/layout/Toolbars/PageToolbar/RegisteredPageTools.d.ts +37 -0
- package/dist/src/LMSToolpad/layout/Toolbars/toolbarRegistry.d.ts +117 -0
- package/dist/{LMSToolpad/components → src/LMSToolpad/layout}/sidebar/Footer.d.ts +0 -1
- package/dist/src/LMSToolpad/mocks/browser.d.ts +2 -0
- package/dist/src/LMSToolpad/mocks/handlers.d.ts +2 -0
- package/dist/src/LMSToolpad/mocks/store.d.ts +24 -0
- package/dist/{LMSToolpad → src/LMSToolpad}/network/axiosConfig.d.ts +1 -1
- package/dist/src/LMSToolpad/store/useDialogStore.d.ts +9 -0
- package/dist/src/LMSToolpad/store/usePlatformStore.d.ts +165 -0
- package/dist/src/LMSToolpad/store/useThemeStore.d.ts +184 -0
- package/dist/src/LMSToolpad/store/useToolbarStore.d.ts +8 -0
- package/dist/src/LMSToolpad/theme/EduMLTheme.d.ts +2 -0
- package/dist/{LMSToolpad → src/LMSToolpad}/tools/ErrorBoundary.d.ts +1 -2
- package/dist/src/LMSToolpad/utils/__tests__/courseFilters.test.d.ts +2 -0
- package/dist/src/LMSToolpad/utils/apiPrefix.d.ts +2 -0
- package/dist/src/LMSToolpad/utils/cookieUtils.d.ts +27 -0
- package/dist/src/LMSToolpad/utils/parseDate.d.ts +2 -0
- package/dist/src/LMSToolpad/utils/slugify.d.ts +1 -0
- package/dist/src/common/components/index.d.ts +2 -0
- package/dist/src/common/components/layout/GridLayout/GridItem.d.ts +17 -0
- package/dist/src/common/components/layout/GridLayout/GridItemContext.d.ts +26 -0
- package/dist/src/common/components/layout/GridLayout/ResponsiveGridLayout.d.ts +16 -0
- package/dist/src/common/components/layout/GridLayout/Tools/BreakpointIndicator.d.ts +8 -0
- package/dist/src/common/components/layout/GridLayout/Tools/EditModeToggler.d.ts +7 -0
- package/dist/src/common/components/layout/GridLayout/hooks/useGridLayoutManagement.d.ts +27 -0
- package/dist/src/common/components/layout/GridLayout/index.d.ts +12 -0
- package/dist/src/common/components/layout/GridLayout/layoutStorageUtils.d.ts +52 -0
- package/dist/src/common/components/layout/GridLayout/layoutUtils.d.ts +78 -0
- package/dist/src/common/components/layout/GridLayout/store/usePanelStore.d.ts +27 -0
- package/dist/src/common/components/layout/GridLayout/useGridLayout.d.ts +11 -0
- package/dist/src/common/components/layout/index.d.ts +1 -0
- package/dist/src/common/components/ui/CollapsingButtons/CollapsingButtons.d.ts +11 -0
- package/dist/src/common/components/ui/CompoundPanel/CompoundPanel.d.ts +86 -0
- package/dist/src/common/components/ui/Panel/Expandable/Expandable.d.ts +4 -0
- package/dist/src/common/components/ui/Panel/Expandable/context/ExpandableContextProvider.d.ts +10 -0
- package/dist/src/common/components/ui/Panel/Expandable/hooks/useCollapseHandler.d.ts +2 -0
- package/dist/src/common/components/ui/Panel/Expandable/hooks/useExpandable.d.ts +17 -0
- package/dist/src/common/components/ui/Panel/Expandable/hooks/useExpansionAnimation.d.ts +5 -0
- package/dist/src/common/components/ui/Panel/Expandable/hooks/useInitialSetup.d.ts +6 -0
- package/dist/src/common/components/ui/Panel/Expandable/hooks/useResizeHandler.d.ts +1 -0
- package/dist/src/common/components/ui/Panel/Expandable/store/useExpandablePanelStore.d.ts +7 -0
- package/dist/src/common/components/ui/Panel/Main/Context/PanelContextProvider.d.ts +50 -0
- package/dist/src/common/components/ui/Panel/Main/Panel.d.ts +3 -0
- package/dist/src/common/components/ui/Panel/Main/hooks/useDimensionManagement.d.ts +13 -0
- package/dist/src/common/components/ui/Panel/Main/hooks/usePersistentDimensions.d.ts +19 -0
- package/dist/src/common/components/ui/Panel/Main/tools/BlurOverlay.d.ts +6 -0
- package/dist/src/common/components/ui/Panel/Main/tools/ToolsContainer.d.ts +11 -0
- package/dist/src/common/components/ui/Panel/Movable/DraggableItem.d.ts +6 -0
- package/dist/src/common/components/ui/Panel/Movable/MovablePanel.d.ts +9 -0
- package/dist/src/common/components/ui/Panel/Movable/MoveToggler.d.ts +3 -0
- package/dist/src/common/components/ui/Panel/Movable/context/MovableContextProvider.d.ts +10 -0
- package/dist/src/common/components/ui/Panel/Movable/hooks/usePersistentOrder.d.ts +3 -0
- package/dist/src/common/components/ui/Panel/Resizable/Context/ResizableContextProvider.d.ts +27 -0
- package/dist/src/common/components/ui/Panel/Resizable/Hooks/useResizeHandlers.d.ts +26 -0
- package/dist/src/common/components/ui/Panel/Resizable/Hooks/useResponsiveResize.d.ts +14 -0
- package/dist/src/common/components/ui/Panel/Resizable/Resizable.d.ts +3 -0
- package/dist/src/common/components/ui/Panel/Resizable/ResizeHandlers.d.ts +7 -0
- package/dist/src/common/components/ui/Panel/Resizable/ResizeIndicator.d.ts +9 -0
- package/dist/src/common/components/ui/Panel/Scrollable/InternalScrolling.d.ts +11 -0
- package/dist/src/common/components/ui/Panel/Scrollable/PaginationDots.d.ts +13 -0
- package/dist/src/common/components/ui/Panel/Scrollable/Scrollable.d.ts +5 -0
- package/dist/src/common/components/ui/Panel/Scrollable/context/ScrollerContextProvider.d.ts +15 -0
- package/dist/src/common/components/ui/Panel/Scrollable/hooks/useScrollControls.d.ts +28 -0
- package/dist/src/common/components/ui/Panel/TBR/PanelContent.d.ts +24 -0
- package/dist/src/common/components/ui/Panel/TBR/ResizablePanel.d.ts +3 -0
- package/dist/src/common/components/ui/Panel/TBR/ResizeHandlers.d.ts +10 -0
- package/dist/src/common/components/ui/Panel/TBR/ResizeIndicator.d.ts +10 -0
- package/dist/src/common/components/ui/Panel/TBR/useResizablePanel.d.ts +32 -0
- package/dist/src/common/components/ui/Panel/types.d.ts +9 -0
- package/dist/src/common/components/ui/Scroller/PaginationDots.d.ts +13 -0
- package/dist/src/common/components/ui/Scroller/Scroller.d.ts +14 -0
- package/dist/src/common/components/ui/Scroller/context/ScrollerContextProvider.d.ts +15 -0
- package/dist/src/common/components/ui/Scroller/hooks/useScrollControls.d.ts +28 -0
- package/dist/src/common/components/ui/Scroller/types.d.ts +1 -0
- package/dist/src/common/components/ui/SpeedDialButton/SpeedDialButton.d.ts +20 -0
- package/dist/src/common/components/ui/ThemeToggle/ThemeToggle.d.ts +3 -0
- package/dist/src/common/components/ui/index.d.ts +15 -0
- package/dist/src/common/hooks/index.d.ts +1 -0
- package/dist/src/common/hooks/useRetry.d.ts +12 -0
- package/dist/src/common/index.d.ts +2 -0
- package/dist/src/index.d.ts +75 -0
- package/dist/src/main.d.ts +0 -0
- package/dist/src/setupTests.d.ts +0 -0
- package/dist/src/test/Contact.d.ts +8 -0
- package/dist/src/test/EduTest.d.ts +10 -0
- package/dist/src/test/EduTest2.d.ts +10 -0
- package/dist/src/test/Help.d.ts +8 -0
- package/dist/static/images/admin.png +0 -0
- package/dist/static/images/default-course.webp +0 -0
- package/dist/static/images/guest.png +0 -0
- package/dist/static/images/icons/atom.svg +15 -0
- package/dist/static/images/icons/brain.svg +49 -0
- package/dist/static/images/icons/code.svg +6 -0
- package/dist/static/images/icons/dna.svg +38 -0
- package/dist/static/images/icons/lang.svg +4 -0
- package/dist/static/images/icons/line.svg +2 -0
- package/dist/static/images/icons/weight.svg +53 -0
- package/dist/static/images/student.png +0 -0
- package/dist/static/images/teacher.png +0 -0
- package/package.json +54 -38
- package/dist/LMSToolpad/EduMLProvider.d.ts +0 -21
- package/dist/LMSToolpad/LMSProvider.d.ts +0 -26
- package/dist/LMSToolpad/components/Courses/CourseItem.d.ts +0 -25
- package/dist/LMSToolpad/components/Courses/CourseList.d.ts +0 -24
- package/dist/LMSToolpad/components/Courses/CourseSelector.d.ts +0 -23
- package/dist/LMSToolpad/components/Courses/LayoutToggle.d.ts +0 -7
- package/dist/LMSToolpad/components/Courses/NoCoursesMessage.d.ts +0 -3
- package/dist/LMSToolpad/components/EduMLDialog.d.ts +0 -9
- package/dist/LMSToolpad/components/Home.d.ts +0 -13
- package/dist/LMSToolpad/components/MicroserviceRoutes.d.ts +0 -44
- package/dist/LMSToolpad/components/PageToolBar.d.ts +0 -3
- package/dist/LMSToolpad/components/ToolSelector.d.ts +0 -17
- package/dist/LMSToolpad/components/toolbar/Actions.d.ts +0 -1
- package/dist/LMSToolpad/constants.d.ts +0 -3
- package/dist/LMSToolpad/layout/breadcrumbs/SizableContentHeader.d.ts +0 -7
- package/dist/LMSToolpad/network/users.d.ts +0 -5
- package/dist/LMSToolpad/store/useCourseStore.d.ts +0 -31
- package/dist/LMSToolpad/store/useDialogStore.d.ts +0 -3
- package/dist/LMSToolpad/store/useNavigationStore.d.ts +0 -42
- package/dist/LMSToolpad/store/useNotificationsStore.d.ts +0 -15
- package/dist/LMSToolpad/store/useUserStore.d.ts +0 -26
- package/dist/LMSToolpad/theme/EduMLTheme.d.ts +0 -2
- package/dist/LMSToolpad/types/toolpad.d.ts +0 -26
- package/dist/LMSToolpad/types/vite-env.d.ts +0 -3
- package/dist/vite-env.d.ts +0 -1
- /package/dist/{LMSToolpad → src/LMSToolpad}/components/Courses/CourseCodeLoader.d.ts +0 -0
- /package/dist/{LMSToolpad → src/LMSToolpad}/components/Courses/CourseInstanceLoader.d.ts +0 -0
- /package/dist/{LMSToolpad → src/LMSToolpad}/components/Courses/CourseInstanceSelector.d.ts +0 -0
- /package/dist/{LMSToolpad → src/LMSToolpad}/components/Courses/LtiLoginUrlForm.d.ts +0 -0
- /package/dist/{LMSToolpad/components → src/LMSToolpad/components/DevTools}/DevelopmentTools.d.ts +0 -0
- /package/dist/{LMSToolpad/components → src/LMSToolpad/components/DevTools}/UserSwitcher.d.ts +0 -0
- /package/dist/{LMSToolpad/components → src/LMSToolpad/components/Notifications}/Notifications.d.ts +0 -0
- /package/dist/{LMSToolpad → src/LMSToolpad}/components/tools/iconsByType.d.ts +0 -0
- /package/dist/{LMSToolpad → src/LMSToolpad}/interfaces.d.ts +0 -0
- /package/dist/{LMSToolpad/components → src/LMSToolpad/layout/Toolbars/AppToolbar}/Logo.d.ts +0 -0
- /package/dist/{LMSToolpad → src/LMSToolpad}/tools/NullStateWarning.d.ts +0 -0
- /package/dist/{LMSToolpad → src/LMSToolpad}/utils/caseConverter.d.ts +0 -0
- /package/dist/{LMSToolpad/components → src/common/components/ui/CenteredHeading}/CenteredHeading.d.ts +0 -0
- /package/dist/{LMSToolpad/components → src/common/components/ui/LoadingScreen}/LoadingScreen.d.ts +0 -0
|
@@ -0,0 +1,146 @@
|
|
|
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,5 +1,11 @@
|
|
|
1
|
-
/** @format */
|
|
2
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
|
+
};
|
|
3
9
|
export declare const filterUniqueCourses: (courses: Course[]) => Course[];
|
|
4
10
|
export declare const isActiveCourse: (course: Course) => boolean;
|
|
5
11
|
export declare const isActivecode: (courses: Course[], code: string) => boolean;
|
|
@@ -12,3 +18,4 @@ export declare const groupCoursesByActivity: (courses: Course[], skipUnique?: bo
|
|
|
12
18
|
active: Course[];
|
|
13
19
|
inactive: Course[];
|
|
14
20
|
};
|
|
21
|
+
export declare const groupCoursesByEnrollment: (courses: Course[]) => CourseGroups;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
type CustomDialogProps = {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
open: boolean;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
};
|
|
7
|
+
declare const ExtendedDialog: ({ children, open, onClose, ...dialogProps }: CustomDialogProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export default ExtendedDialog;
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
import { DialogProps } from '@mui/material';
|
|
2
2
|
interface FormDialogProps {
|
|
3
3
|
onSubmit: (event: React.FormEvent<HTMLFormElement>) => void;
|
|
4
4
|
title: string;
|
|
5
5
|
children: React.ReactNode;
|
|
6
6
|
submitText?: string;
|
|
7
7
|
disableSubmit?: boolean;
|
|
8
|
+
maxWidth?: DialogProps["maxWidth"];
|
|
9
|
+
fullWidth?: boolean;
|
|
10
|
+
showUnsavedChangesWarning?: boolean;
|
|
11
|
+
isDirty?: boolean;
|
|
8
12
|
}
|
|
9
13
|
declare const FormDialog: React.FC<FormDialogProps>;
|
|
10
14
|
export default FormDialog;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Event } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Event Bus for decoupling event producers from consumers.
|
|
4
|
+
* Modules can publish events and other modules can subscribe to them.
|
|
5
|
+
* This is a generic event system that any module can use.
|
|
6
|
+
*/
|
|
7
|
+
export declare class EventBus {
|
|
8
|
+
private static instance;
|
|
9
|
+
private subscribers;
|
|
10
|
+
private events;
|
|
11
|
+
private constructor();
|
|
12
|
+
static getInstance(): EventBus;
|
|
13
|
+
/**
|
|
14
|
+
* Subscribe to event updates
|
|
15
|
+
*/
|
|
16
|
+
subscribe(callback: (events: Event[]) => void): () => void;
|
|
17
|
+
/**
|
|
18
|
+
* Publish events to the bus
|
|
19
|
+
*/
|
|
20
|
+
publish(sourceId: string, events: Event[]): void;
|
|
21
|
+
/**
|
|
22
|
+
* Remove all events from a specific source
|
|
23
|
+
*/
|
|
24
|
+
removeSource(sourceId: string): void;
|
|
25
|
+
/**
|
|
26
|
+
* Get all current events
|
|
27
|
+
*/
|
|
28
|
+
getAllEvents(): Event[];
|
|
29
|
+
/**
|
|
30
|
+
* Clear all events
|
|
31
|
+
*/
|
|
32
|
+
clear(): void;
|
|
33
|
+
}
|
|
34
|
+
export declare const eventBus: EventBus;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { UserEvent, UserData } from './userTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Configuration interface for UserBus store methods.
|
|
4
|
+
* This allows UserBus to work with any user store implementation.
|
|
5
|
+
*/
|
|
6
|
+
export interface UserBusStoreConfig {
|
|
7
|
+
getUser: () => Promise<void>;
|
|
8
|
+
updateUser: (userData: UserData) => Promise<UserData>;
|
|
9
|
+
setUserToUpdate: (user: UserData | null) => void;
|
|
10
|
+
fetchCourseUsers: (courseId: string) => Promise<void>;
|
|
11
|
+
logout: () => Promise<void>;
|
|
12
|
+
getState: () => {
|
|
13
|
+
user: UserData | null;
|
|
14
|
+
courseUsers?: UserData[];
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* User Bus for decoupling user state changes from consumers.
|
|
19
|
+
* Modules can subscribe to user events and react to user state changes.
|
|
20
|
+
* This follows the same pattern as EventBus but is specifically for user-related events.
|
|
21
|
+
*
|
|
22
|
+
* UserBus requires store methods to be configured via configureStore() before use.
|
|
23
|
+
* This allows it to work without direct dependencies on user store implementations.
|
|
24
|
+
*/
|
|
25
|
+
export declare class UserBus {
|
|
26
|
+
private static instance;
|
|
27
|
+
private subscribers;
|
|
28
|
+
private currentUser;
|
|
29
|
+
private lastEvent;
|
|
30
|
+
private storeConfig;
|
|
31
|
+
private constructor();
|
|
32
|
+
/**
|
|
33
|
+
* Configure UserBus with store methods.
|
|
34
|
+
* This must be called before using store-dependent methods.
|
|
35
|
+
*/
|
|
36
|
+
configureStore(config: UserBusStoreConfig): void;
|
|
37
|
+
private getStoreConfig;
|
|
38
|
+
static getInstance(): UserBus;
|
|
39
|
+
/**
|
|
40
|
+
* Subscribe to user event updates
|
|
41
|
+
* @param callback Function to call when user events occur
|
|
42
|
+
* @returns Unsubscribe function
|
|
43
|
+
*/
|
|
44
|
+
subscribe(callback: (event: UserEvent) => void): () => void;
|
|
45
|
+
/**
|
|
46
|
+
* Publish a user event to the bus
|
|
47
|
+
* @param event User event to publish
|
|
48
|
+
*/
|
|
49
|
+
publish(event: UserEvent): void;
|
|
50
|
+
/**
|
|
51
|
+
* Get the current user synchronously
|
|
52
|
+
* @returns Current user data or null
|
|
53
|
+
*/
|
|
54
|
+
getCurrentUser(): UserData | null;
|
|
55
|
+
/**
|
|
56
|
+
* Get the current user synchronously (alias for getCurrentUser)
|
|
57
|
+
* @returns Current user data or null
|
|
58
|
+
*/
|
|
59
|
+
getCurrentUserSync(): UserData | null;
|
|
60
|
+
/**
|
|
61
|
+
* Subscribe to user updates and get current user
|
|
62
|
+
* @param callback Function to call with current user and updates
|
|
63
|
+
* @returns Unsubscribe function
|
|
64
|
+
*/
|
|
65
|
+
subscribeToUser(callback: (user: UserData | null) => void): () => void;
|
|
66
|
+
/**
|
|
67
|
+
* Get the last user event
|
|
68
|
+
* @returns Last user event or null
|
|
69
|
+
*/
|
|
70
|
+
getLastEvent(): UserEvent | null;
|
|
71
|
+
/**
|
|
72
|
+
* Clear all user state
|
|
73
|
+
*/
|
|
74
|
+
clear(): void;
|
|
75
|
+
/**
|
|
76
|
+
* Initialize UserBus with current user from store
|
|
77
|
+
* Should be called by UserEventPublisher on mount
|
|
78
|
+
*/
|
|
79
|
+
initializeFromStore(): void;
|
|
80
|
+
/**
|
|
81
|
+
* Get user from store and publish to bus
|
|
82
|
+
* Delegates to store.getUser() and publishes event when complete
|
|
83
|
+
*/
|
|
84
|
+
getUser(): Promise<void>;
|
|
85
|
+
/**
|
|
86
|
+
* Update user and publish event
|
|
87
|
+
* Delegates to store.updateUser() and publishes event
|
|
88
|
+
*/
|
|
89
|
+
updateUser(userData: UserData): Promise<UserData>;
|
|
90
|
+
/**
|
|
91
|
+
* Set user to update (for editing)
|
|
92
|
+
* Delegates to store.setUserToUpdate()
|
|
93
|
+
*/
|
|
94
|
+
setUserToUpdate(user: UserData | null): void;
|
|
95
|
+
/**
|
|
96
|
+
* Fetch course users
|
|
97
|
+
* Delegates to store.fetchCourseUsers()
|
|
98
|
+
*/
|
|
99
|
+
fetchCourseUsers(courseId: string): Promise<void>;
|
|
100
|
+
/**
|
|
101
|
+
* Get course users from store
|
|
102
|
+
* @returns Course users array or undefined
|
|
103
|
+
*/
|
|
104
|
+
getCourseUsers(): UserData[] | undefined;
|
|
105
|
+
/**
|
|
106
|
+
* Logout user and publish event
|
|
107
|
+
* Delegates to store.logout() and publishes event
|
|
108
|
+
*/
|
|
109
|
+
logout(): Promise<void>;
|
|
110
|
+
}
|
|
111
|
+
export declare const userBus: UserBus;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { UserData } from '../userTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Hook to get current user from UserBus
|
|
4
|
+
* Automatically updates when user changes via UserBus events
|
|
5
|
+
*
|
|
6
|
+
* @returns { user: UserData | null, isLoading: boolean }
|
|
7
|
+
*/
|
|
8
|
+
export declare const useCurrentUser: () => {
|
|
9
|
+
user: UserData | null;
|
|
10
|
+
isLoading: boolean;
|
|
11
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { UserData } from '../userTypes';
|
|
2
|
+
/**
|
|
3
|
+
* Hook that provides user actions through UserBus
|
|
4
|
+
* All actions trigger UserBus events when called
|
|
5
|
+
*
|
|
6
|
+
* @returns { updateUser, setUserToUpdate, fetchCourseUsers, getUser, logout, getCourseUsers }
|
|
7
|
+
*/
|
|
8
|
+
export declare const useUserActions: () => {
|
|
9
|
+
updateUser: (userData: UserData) => Promise<UserData>;
|
|
10
|
+
setUserToUpdate: (user: UserData | null) => void;
|
|
11
|
+
fetchCourseUsers: (courseId: string) => Promise<void>;
|
|
12
|
+
getUser: () => Promise<void>;
|
|
13
|
+
logout: () => Promise<void>;
|
|
14
|
+
getCourseUsers: () => UserData[] | undefined;
|
|
15
|
+
};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/** @format */
|
|
2
|
+
export interface UserPreferences {
|
|
3
|
+
navigationType: "direct" | "instances";
|
|
4
|
+
visibleCourseLists: {
|
|
5
|
+
isStudent: boolean;
|
|
6
|
+
isStudentOld: boolean;
|
|
7
|
+
isTeacher: boolean;
|
|
8
|
+
isTeacherOld: boolean;
|
|
9
|
+
available: boolean;
|
|
10
|
+
};
|
|
11
|
+
lastVisitedCourses: string[];
|
|
12
|
+
visibleNavigation: string[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Hook to get user preferences from UserBus
|
|
16
|
+
* Automatically updates when user preferences change via UserBus events
|
|
17
|
+
*
|
|
18
|
+
* @returns { preferences: UserPreferences | null }
|
|
19
|
+
*/
|
|
20
|
+
export declare const useUserPreferences: () => {
|
|
21
|
+
preferences: UserPreferences | null;
|
|
22
|
+
};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** @format */
|
|
2
|
+
export { EventBus, eventBus } from './EventBus';
|
|
3
|
+
export type { Event, EventSource } from './types';
|
|
4
|
+
export { UserBus, userBus } from './UserBus';
|
|
5
|
+
export type { UserBusStoreConfig } from './UserBus';
|
|
6
|
+
export type { UserData, UserEvent, UserEventType, PlatformRole, navigationTypes, gender, userId } from './userTypes';
|
|
7
|
+
export { useCurrentUser } from './hooks/useCurrentUser';
|
|
8
|
+
export { useUserPreferences } from './hooks/useUserPreferences';
|
|
9
|
+
export { useUserActions } from './hooks/useUserActions';
|
|
10
|
+
export type { UserPreferences } from './hooks/useUserPreferences';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/** @format */
|
|
2
|
+
/**
|
|
3
|
+
* Generic Event interface that can be used by any module.
|
|
4
|
+
* This is the base event type for the Events API.
|
|
5
|
+
*/
|
|
6
|
+
export interface Event {
|
|
7
|
+
id: string;
|
|
8
|
+
title: string;
|
|
9
|
+
start: Date | string;
|
|
10
|
+
end?: Date | string;
|
|
11
|
+
metadata?: Record<string, any>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Event source identifier type for tracking which module published the event
|
|
15
|
+
*/
|
|
16
|
+
export type EventSource = string;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/** @format */
|
|
2
|
+
/**
|
|
3
|
+
* User data type definition.
|
|
4
|
+
* This is defined here to avoid circular dependencies.
|
|
5
|
+
*/
|
|
6
|
+
export type userId = string;
|
|
7
|
+
export type navigationTypes = "direct" | "instances";
|
|
8
|
+
export type gender = "male" | "female" | "other";
|
|
9
|
+
export type PlatformRole = "admin" | "developer" | "moderator" | "creator" | "user" | "guest";
|
|
10
|
+
export interface UserData {
|
|
11
|
+
id: userId;
|
|
12
|
+
name: string;
|
|
13
|
+
email: string;
|
|
14
|
+
gender?: gender;
|
|
15
|
+
image?: {
|
|
16
|
+
large: string;
|
|
17
|
+
medium: string;
|
|
18
|
+
thumbnail: string;
|
|
19
|
+
};
|
|
20
|
+
department?: string;
|
|
21
|
+
platformRoles: PlatformRole[];
|
|
22
|
+
privacySettings: {
|
|
23
|
+
allowAnalytics: boolean;
|
|
24
|
+
allowPersonalization: boolean;
|
|
25
|
+
allowCommunications: boolean;
|
|
26
|
+
allowThirdPartySharing: boolean;
|
|
27
|
+
};
|
|
28
|
+
gdprConsent: {
|
|
29
|
+
accepted: boolean;
|
|
30
|
+
acceptedDate?: string;
|
|
31
|
+
lastUpdated: string;
|
|
32
|
+
};
|
|
33
|
+
dataRetention: {
|
|
34
|
+
deleteAccountAfterInactivity?: number;
|
|
35
|
+
deleteDataAfterAccountDeletion?: number;
|
|
36
|
+
};
|
|
37
|
+
preferences: {
|
|
38
|
+
navigationType: navigationTypes;
|
|
39
|
+
visibleCourseLists: {
|
|
40
|
+
isStudent: boolean;
|
|
41
|
+
isStudentOld: boolean;
|
|
42
|
+
isTeacher: boolean;
|
|
43
|
+
isTeacherOld: boolean;
|
|
44
|
+
available: boolean;
|
|
45
|
+
};
|
|
46
|
+
lastVisitedCourses: string[];
|
|
47
|
+
visibleNavigation: string[];
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* User event types for UserBus communication.
|
|
52
|
+
* These events are published when user state changes occur.
|
|
53
|
+
*/
|
|
54
|
+
export type UserEventType = "user:loggedIn" | "user:updated" | "user:preferencesChanged" | "user:loggedOut";
|
|
55
|
+
export interface UserEvent {
|
|
56
|
+
type: UserEventType;
|
|
57
|
+
user: UserData | null;
|
|
58
|
+
timestamp: string;
|
|
59
|
+
metadata?: Record<string, unknown>;
|
|
60
|
+
}
|
|
61
|
+
export interface UserLoggedInEvent extends UserEvent {
|
|
62
|
+
type: "user:loggedIn";
|
|
63
|
+
user: UserData;
|
|
64
|
+
}
|
|
65
|
+
export interface UserUpdatedEvent extends UserEvent {
|
|
66
|
+
type: "user:updated";
|
|
67
|
+
user: UserData;
|
|
68
|
+
previousUser?: UserData;
|
|
69
|
+
}
|
|
70
|
+
export interface UserPreferencesChangedEvent extends UserEvent {
|
|
71
|
+
type: "user:preferencesChanged";
|
|
72
|
+
user: UserData;
|
|
73
|
+
changedPreferences?: string[];
|
|
74
|
+
}
|
|
75
|
+
export interface UserLoggedOutEvent extends UserEvent {
|
|
76
|
+
type: "user:loggedOut";
|
|
77
|
+
user: null;
|
|
78
|
+
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
import { NavigationPageStoreItem } from '../store/useNavigationStore';
|
|
1
|
+
import { NavigationPageStoreItem } from '../Navigation/store/types';
|
|
3
2
|
export type BuildMicroServiceNavigationProps = {
|
|
4
3
|
segment: string;
|
|
5
4
|
title: string;
|
|
6
5
|
description: string;
|
|
7
6
|
icon: any;
|
|
7
|
+
view?: React.ComponentType;
|
|
8
8
|
forRoles: string[];
|
|
9
9
|
children?: NavigationPageStoreItem[];
|
|
10
10
|
};
|
|
@@ -42,4 +42,4 @@ export type BuildMicroServiceNavigationProps = {
|
|
|
42
42
|
* });
|
|
43
43
|
* ```
|
|
44
44
|
*/
|
|
45
|
-
export declare const buildMicroServiceNavigation: ({ segment, title, description, icon, forRoles, children, }: BuildMicroServiceNavigationProps) => NavigationPageStoreItem[];
|
|
45
|
+
export declare const buildMicroServiceNavigation: ({ segment, title, description, icon, view, forRoles, children, }: BuildMicroServiceNavigationProps) => NavigationPageStoreItem[];
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { NavigationPageStoreItem } from '../Navigation/store/types';
|
|
2
|
+
import { default as React } from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* Sub-sections navigation component for tool pages
|
|
5
|
+
*/
|
|
6
|
+
declare const SubSections: React.FC<{
|
|
7
|
+
children: NavigationPageStoreItem[];
|
|
8
|
+
}>;
|
|
9
|
+
export default SubSections;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Core component for handling top-level app routing and microservices.
|
|
4
|
+
*
|
|
5
|
+
* @version 3.1.0
|
|
6
|
+
* @breaking-changes
|
|
7
|
+
* - Course routing has been moved to CourseMicroservice component
|
|
8
|
+
* - This component is now microservice-agnostic - it doesn't directly import course routes
|
|
9
|
+
* - Course routes register themselves via CourseRoutesProvider using NavigationRegistry
|
|
10
|
+
*
|
|
11
|
+
* Architecture:
|
|
12
|
+
* - Microservices handles: /, /help, /contact, dynamic microservices (via NavigationRegistry)
|
|
13
|
+
* - Course routes register themselves as route providers via CourseRoutesProvider
|
|
14
|
+
* - All routes are retrieved through useMicroserviceRoutes() which includes route providers
|
|
15
|
+
* - CourseMicroservice handles: /:code, /:code/:instance, /:code/:instance/:microservice
|
|
16
|
+
* - Course microservices are managed by CourseMicroservice component via context (not tightly coupled here)
|
|
17
|
+
*
|
|
18
|
+
* @component
|
|
19
|
+
* @param {Object} props
|
|
20
|
+
* @param {React.ReactNode} props.children - Child components (e.g., CourseMicroservice)
|
|
21
|
+
*/
|
|
22
|
+
declare const Microservices: ({ children }: {
|
|
23
|
+
children: React.ReactNode;
|
|
24
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
export default Microservices;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** @format */
|
|
2
|
+
/**
|
|
3
|
+
* Configuration interface for microservices
|
|
4
|
+
*
|
|
5
|
+
* Used to define microservice metadata including routing, component, and navigation building.
|
|
6
|
+
*/
|
|
7
|
+
export interface MicroserviceConfig {
|
|
8
|
+
path: string;
|
|
9
|
+
Component: React.ComponentType;
|
|
10
|
+
fetchHooks?: Array<(courseId: string) => void>;
|
|
11
|
+
buildNavigation: (courseId: string, isTeacher: boolean) => any[];
|
|
12
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const NavigationFilter: () => import("react/jsx-runtime").JSX.Element | null;
|