@openedx/frontend-base 1.0.0-alpha.9 → 1.0.1-alpha.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 +22 -84
- package/dist/index.d.ts +4 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime/analytics/MockAnalyticsService.d.ts +50 -0
- package/dist/runtime/analytics/MockAnalyticsService.js +64 -0
- package/dist/runtime/analytics/MockAnalyticsService.js.map +1 -0
- package/dist/runtime/analytics/SegmentAnalyticsService.d.ts +64 -0
- package/dist/runtime/analytics/SegmentAnalyticsService.js +218 -0
- package/dist/runtime/analytics/SegmentAnalyticsService.js.map +1 -0
- package/dist/runtime/analytics/index.d.ts +3 -0
- package/dist/runtime/analytics/index.js +4 -0
- package/dist/runtime/analytics/index.js.map +1 -0
- package/dist/runtime/analytics/interface.d.ts +53 -0
- package/dist/runtime/analytics/interface.js +133 -0
- package/dist/runtime/analytics/interface.js.map +1 -0
- package/dist/runtime/auth/AxiosCsrfTokenService.d.ts +10 -0
- package/dist/runtime/auth/AxiosCsrfTokenService.js +64 -0
- package/dist/runtime/auth/AxiosCsrfTokenService.js.map +1 -0
- package/dist/runtime/auth/AxiosJwtAuthService.d.ts +182 -0
- package/dist/runtime/auth/AxiosJwtAuthService.js +339 -0
- package/dist/runtime/auth/AxiosJwtAuthService.js.map +1 -0
- package/dist/runtime/auth/AxiosJwtTokenService.d.ts +16 -0
- package/dist/runtime/auth/AxiosJwtTokenService.js +130 -0
- package/dist/runtime/auth/AxiosJwtTokenService.js.map +1 -0
- package/dist/runtime/auth/LocalForageCache.d.ts +7 -0
- package/dist/runtime/auth/LocalForageCache.js +78 -0
- package/dist/runtime/auth/LocalForageCache.js.map +1 -0
- package/dist/runtime/auth/MockAuthService.d.ts +209 -0
- package/dist/runtime/auth/MockAuthService.js +256 -0
- package/dist/runtime/auth/MockAuthService.js.map +1 -0
- package/dist/runtime/auth/index.d.ts +3 -0
- package/dist/runtime/auth/index.js +4 -0
- package/dist/runtime/auth/index.js.map +1 -0
- package/dist/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.d.ts +2 -0
- package/dist/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.js +42 -0
- package/dist/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.js.map +1 -0
- package/dist/runtime/auth/interceptors/createJwtTokenProviderInterceptor.d.ts +2 -0
- package/dist/runtime/auth/interceptors/createJwtTokenProviderInterceptor.js +40 -0
- package/dist/runtime/auth/interceptors/createJwtTokenProviderInterceptor.js.map +1 -0
- package/dist/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.d.ts +2 -0
- package/dist/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.js +26 -0
- package/dist/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.js.map +1 -0
- package/dist/runtime/auth/interceptors/createRetryInterceptor.d.ts +3 -0
- package/dist/runtime/auth/interceptors/createRetryInterceptor.js +67 -0
- package/dist/runtime/auth/interceptors/createRetryInterceptor.js.map +1 -0
- package/dist/runtime/auth/interface.d.ts +133 -0
- package/dist/runtime/auth/interface.js +302 -0
- package/dist/runtime/auth/interface.js.map +1 -0
- package/dist/runtime/auth/utils.d.ts +13 -0
- package/dist/runtime/auth/utils.js +66 -0
- package/dist/runtime/auth/utils.js.map +1 -0
- package/dist/runtime/babel.config.d.ts +2 -0
- package/dist/runtime/babel.config.js +4 -0
- package/dist/runtime/babel.config.js.map +1 -0
- package/dist/runtime/config/index.d.ts +216 -0
- package/dist/runtime/config/index.js +428 -0
- package/dist/runtime/config/index.js.map +1 -0
- package/dist/runtime/constants.d.ts +57 -0
- package/dist/runtime/constants.js +58 -0
- package/dist/runtime/constants.js.map +1 -0
- package/dist/runtime/i18n/index.d.ts +3 -0
- package/dist/runtime/i18n/index.js +78 -0
- package/dist/runtime/i18n/index.js.map +1 -0
- package/dist/runtime/i18n/injectIntlWithShim.d.ts +11 -0
- package/dist/runtime/i18n/injectIntlWithShim.js +45 -0
- package/dist/runtime/i18n/injectIntlWithShim.js.map +1 -0
- package/dist/runtime/i18n/lib.d.ts +113 -0
- package/dist/runtime/i18n/lib.js +223 -0
- package/dist/runtime/i18n/lib.js.map +1 -0
- package/dist/runtime/index.d.ts +14 -0
- package/dist/runtime/index.js +15 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/initialize.d.ts +87 -0
- package/dist/runtime/initialize.js +305 -0
- package/dist/runtime/initialize.js.map +1 -0
- package/dist/runtime/jest.config.d.ts +16 -0
- package/dist/runtime/jest.config.js +34 -0
- package/dist/runtime/jest.config.js.map +1 -0
- package/dist/runtime/logging/MockLoggingService.d.ts +28 -0
- package/dist/runtime/logging/MockLoggingService.js +31 -0
- package/dist/runtime/logging/MockLoggingService.js.map +1 -0
- package/dist/runtime/logging/NewRelicLoggingService.d.ts +67 -0
- package/dist/runtime/logging/NewRelicLoggingService.js +175 -0
- package/dist/runtime/logging/NewRelicLoggingService.js.map +1 -0
- package/dist/runtime/logging/index.d.ts +3 -0
- package/dist/runtime/logging/index.js +4 -0
- package/dist/runtime/logging/index.js.map +1 -0
- package/dist/runtime/logging/interface.d.ts +38 -0
- package/dist/runtime/logging/interface.js +99 -0
- package/dist/runtime/logging/interface.js.map +1 -0
- package/dist/runtime/logging/types.d.ts +4 -0
- package/dist/runtime/logging/types.js +2 -0
- package/dist/runtime/logging/types.js.map +1 -0
- package/dist/runtime/react/AuthenticatedPageRoute.d.ts +30 -0
- package/dist/runtime/react/AuthenticatedPageRoute.js +38 -0
- package/dist/runtime/react/AuthenticatedPageRoute.js.map +1 -0
- package/dist/runtime/react/CombinedAppProvider.d.ts +6 -0
- package/dist/runtime/react/CombinedAppProvider.js +20 -0
- package/dist/runtime/react/CombinedAppProvider.js.map +1 -0
- package/dist/runtime/react/CurrentAppContext.d.ts +20 -0
- package/dist/runtime/react/CurrentAppContext.js +21 -0
- package/dist/runtime/react/CurrentAppContext.js.map +1 -0
- package/dist/runtime/react/CurrentAppProvider.d.ts +23 -0
- package/dist/runtime/react/CurrentAppProvider.js +33 -0
- package/dist/runtime/react/CurrentAppProvider.js.map +1 -0
- package/dist/runtime/react/Divider.d.ts +1 -0
- package/dist/runtime/react/Divider.js +5 -0
- package/dist/runtime/react/Divider.js.map +1 -0
- package/dist/runtime/react/ErrorBoundary.d.ts +32 -0
- package/dist/runtime/react/ErrorBoundary.js +40 -0
- package/dist/runtime/react/ErrorBoundary.js.map +1 -0
- package/dist/runtime/react/ErrorPage.d.ts +17 -0
- package/dist/runtime/react/ErrorPage.js +29 -0
- package/dist/runtime/react/ErrorPage.js.map +1 -0
- package/dist/runtime/react/LoginRedirect.d.ts +8 -0
- package/dist/runtime/react/LoginRedirect.js +16 -0
- package/dist/runtime/react/LoginRedirect.js.map +1 -0
- package/dist/runtime/react/NotFoundPage.d.ts +2 -0
- package/dist/runtime/react/NotFoundPage.js +14 -0
- package/dist/runtime/react/NotFoundPage.js.map +1 -0
- package/dist/runtime/react/PageWrap.d.ts +8 -0
- package/dist/runtime/react/PageWrap.js +21 -0
- package/dist/runtime/react/PageWrap.js.map +1 -0
- package/dist/runtime/react/SiteContext.d.ts +24 -0
- package/dist/runtime/react/SiteContext.js +26 -0
- package/dist/runtime/react/SiteContext.js.map +1 -0
- package/dist/runtime/react/SiteProvider.d.ts +29 -0
- package/dist/runtime/react/SiteProvider.js +69 -0
- package/dist/runtime/react/SiteProvider.js.map +1 -0
- package/dist/runtime/react/constants.d.ts +3 -0
- package/dist/runtime/react/constants.js +4 -0
- package/dist/runtime/react/constants.js.map +1 -0
- package/dist/runtime/react/hooks/index.d.ts +7 -0
- package/dist/runtime/react/hooks/index.js +8 -0
- package/dist/runtime/react/hooks/index.js.map +1 -0
- package/dist/runtime/react/hooks/theme/index.js +3 -0
- package/dist/runtime/react/hooks/theme/index.js.map +1 -0
- package/dist/runtime/react/hooks/theme/useTheme.d.ts +35 -0
- package/dist/runtime/react/hooks/theme/useTheme.js +153 -0
- package/dist/runtime/react/hooks/theme/useTheme.js.map +1 -0
- package/dist/runtime/react/hooks/theme/useThemeConfig.d.ts +16 -0
- package/dist/runtime/react/hooks/theme/useThemeConfig.js +29 -0
- package/dist/runtime/react/hooks/theme/useThemeConfig.js.map +1 -0
- package/dist/runtime/react/hooks/theme/useThemeCore.d.ts +10 -0
- package/dist/runtime/react/hooks/theme/useThemeCore.js +48 -0
- package/dist/runtime/react/hooks/theme/useThemeCore.js.map +1 -0
- package/dist/runtime/react/hooks/theme/useThemeVariants.d.ts +17 -0
- package/dist/runtime/react/hooks/theme/useThemeVariants.js +90 -0
- package/dist/runtime/react/hooks/theme/useThemeVariants.js.map +1 -0
- package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.d.ts +8 -0
- package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.js +30 -0
- package/dist/runtime/react/hooks/theme/useTrackColorSchemeChoice.js.map +1 -0
- package/dist/runtime/react/hooks/theme/utils.d.ts +6 -0
- package/dist/runtime/react/hooks/theme/utils.js +11 -0
- package/dist/runtime/react/hooks/theme/utils.js.map +1 -0
- package/dist/runtime/react/hooks/useActiveRoles.d.ts +2 -0
- package/dist/runtime/react/hooks/useActiveRoles.js +16 -0
- package/dist/runtime/react/hooks/useActiveRoles.js.map +1 -0
- package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.d.ts +2 -0
- package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.js +22 -0
- package/dist/runtime/react/hooks/useActiveRouteRoleWatcher.js.map +1 -0
- package/dist/runtime/react/hooks/useAppConfig.d.ts +2 -0
- package/dist/runtime/react/hooks/useAppConfig.js +8 -0
- package/dist/runtime/react/hooks/useAppConfig.js.map +1 -0
- package/dist/runtime/react/hooks/useAuthenticatedUser.d.ts +2 -0
- package/dist/runtime/react/hooks/useAuthenticatedUser.js +8 -0
- package/dist/runtime/react/hooks/useAuthenticatedUser.js.map +1 -0
- package/dist/runtime/react/hooks/useSiteConfig.d.ts +2 -0
- package/dist/runtime/react/hooks/useSiteConfig.js +8 -0
- package/dist/runtime/react/hooks/useSiteConfig.js.map +1 -0
- package/dist/runtime/react/hooks/useSiteEvent.d.ts +12 -0
- package/dist/runtime/react/hooks/useSiteEvent.js +22 -0
- package/dist/runtime/react/hooks/useSiteEvent.js.map +1 -0
- package/dist/runtime/react/index.d.ts +19 -0
- package/dist/runtime/react/index.js +20 -0
- package/dist/runtime/react/index.js.map +1 -0
- package/dist/runtime/react/reducers.d.ts +11 -0
- package/dist/runtime/react/reducers.js +28 -0
- package/dist/runtime/react/reducers.js.map +1 -0
- package/dist/runtime/routing/authenticatedLoader.d.ts +2 -0
- package/dist/runtime/routing/authenticatedLoader.js +27 -0
- package/dist/runtime/routing/authenticatedLoader.js.map +1 -0
- package/dist/runtime/routing/index.d.ts +2 -0
- package/dist/runtime/routing/index.js +3 -0
- package/dist/runtime/routing/index.js.map +1 -0
- package/dist/runtime/routing/utils.d.ts +4 -0
- package/dist/runtime/routing/utils.js +43 -0
- package/dist/runtime/routing/utils.js.map +1 -0
- package/dist/runtime/scripts/index.d.ts +1 -0
- package/dist/runtime/scripts/index.js +14 -0
- package/dist/runtime/scripts/index.js.map +1 -0
- package/dist/runtime/setupTest.d.ts +1 -0
- package/dist/runtime/setupTest.js +12 -0
- package/dist/runtime/setupTest.js.map +1 -0
- package/dist/runtime/slots/Slot.d.ts +11 -0
- package/dist/runtime/slots/Slot.js +37 -0
- package/dist/runtime/slots/Slot.js.map +1 -0
- package/dist/runtime/slots/SlotContext.d.ts +8 -0
- package/dist/runtime/slots/SlotContext.js +7 -0
- package/dist/runtime/slots/SlotContext.js.map +1 -0
- package/dist/runtime/slots/hooks.d.ts +11 -0
- package/dist/runtime/slots/hooks.js +19 -0
- package/dist/runtime/slots/hooks.js.map +1 -0
- package/dist/runtime/slots/index.js +7 -0
- package/dist/runtime/slots/index.js.map +1 -0
- package/dist/runtime/slots/layout/DefaultSlotLayout.d.ts +1 -0
- package/dist/runtime/slots/layout/DefaultSlotLayout.js +7 -0
- package/dist/runtime/slots/layout/DefaultSlotLayout.js.map +1 -0
- package/dist/runtime/slots/layout/hooks.d.ts +9 -0
- package/dist/runtime/slots/layout/hooks.js +52 -0
- package/dist/runtime/slots/layout/hooks.js.map +1 -0
- package/dist/runtime/slots/layout/index.js +5 -0
- package/dist/runtime/slots/layout/index.js.map +1 -0
- package/dist/runtime/slots/layout/types.d.ts +30 -0
- package/dist/runtime/slots/layout/types.js +12 -0
- package/dist/runtime/slots/layout/types.js.map +1 -0
- package/dist/runtime/slots/layout/utils.d.ts +5 -0
- package/dist/runtime/slots/layout/utils.js +11 -0
- package/dist/runtime/slots/layout/utils.js.map +1 -0
- package/dist/runtime/slots/types.d.ts +18 -0
- package/dist/runtime/slots/types.js +7 -0
- package/dist/runtime/slots/types.js.map +1 -0
- package/dist/runtime/slots/utils.d.ts +3 -0
- package/dist/runtime/slots/utils.js +65 -0
- package/dist/runtime/slots/utils.js.map +1 -0
- package/dist/runtime/slots/widget/WidgetContext.d.ts +6 -0
- package/dist/runtime/slots/widget/WidgetContext.js +8 -0
- package/dist/runtime/slots/widget/WidgetContext.js.map +1 -0
- package/dist/runtime/slots/widget/WidgetProvider.d.ts +9 -0
- package/dist/runtime/slots/widget/WidgetProvider.js +18 -0
- package/dist/runtime/slots/widget/WidgetProvider.js.map +1 -0
- package/dist/runtime/slots/widget/hooks.d.ts +12 -0
- package/dist/runtime/slots/widget/hooks.js +84 -0
- package/dist/runtime/slots/widget/hooks.js.map +1 -0
- package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.d.ts +10 -0
- package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.js +42 -0
- package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.js.map +1 -0
- package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.d.ts +13 -0
- package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.js +15 -0
- package/dist/runtime/slots/widget/iframe/IFrameContentWrapper.messages.js.map +1 -0
- package/dist/runtime/slots/widget/iframe/IFrameWidget.d.ts +6 -0
- package/dist/runtime/slots/widget/iframe/IFrameWidget.js +32 -0
- package/dist/runtime/slots/widget/iframe/IFrameWidget.js.map +1 -0
- package/dist/runtime/slots/widget/iframe/constants.d.ts +15 -0
- package/dist/runtime/slots/widget/iframe/constants.js +17 -0
- package/dist/runtime/slots/widget/iframe/constants.js.map +1 -0
- package/dist/runtime/slots/widget/iframe/hooks.d.ts +64 -0
- package/dist/runtime/slots/widget/iframe/hooks.js +144 -0
- package/dist/runtime/slots/widget/iframe/hooks.js.map +1 -0
- package/dist/runtime/slots/widget/iframe/index.d.ts +3 -0
- package/dist/runtime/slots/widget/iframe/index.js +3 -0
- package/dist/runtime/slots/widget/iframe/index.js.map +1 -0
- package/dist/runtime/slots/widget/iframe/types.d.ts +5 -0
- package/dist/runtime/slots/widget/iframe/types.js +3 -0
- package/dist/runtime/slots/widget/iframe/types.js.map +1 -0
- package/dist/runtime/slots/widget/index.js +6 -0
- package/dist/runtime/slots/widget/index.js.map +1 -0
- package/dist/runtime/slots/widget/types.d.ts +108 -0
- package/dist/runtime/slots/widget/types.js +41 -0
- package/dist/runtime/slots/widget/types.js.map +1 -0
- package/dist/runtime/slots/widget/utils.d.ts +22 -0
- package/dist/runtime/slots/widget/utils.js +181 -0
- package/dist/runtime/slots/widget/utils.js.map +1 -0
- package/dist/runtime/subscriptions.d.ts +24 -0
- package/dist/runtime/subscriptions.js +48 -0
- package/dist/runtime/subscriptions.js.map +1 -0
- package/dist/runtime/testing/index.d.ts +8 -0
- package/dist/runtime/testing/index.js +9 -0
- package/dist/runtime/testing/index.js.map +1 -0
- package/dist/runtime/testing/initializeMockApp.d.ts +46 -0
- package/dist/runtime/testing/initializeMockApp.js +71 -0
- package/dist/runtime/testing/initializeMockApp.js.map +1 -0
- package/dist/runtime/testing/mockMessages.d.ts +22 -0
- package/dist/runtime/testing/mockMessages.js +23 -0
- package/dist/runtime/testing/mockMessages.js.map +1 -0
- package/dist/runtime/utils.d.ts +95 -0
- package/dist/runtime/utils.js +163 -0
- package/dist/runtime/utils.js.map +1 -0
- package/dist/shell/DefaultLayout.d.ts +1 -0
- package/dist/shell/DefaultLayout.js +7 -0
- package/dist/shell/DefaultLayout.js.map +1 -0
- package/dist/shell/DefaultMain.d.ts +1 -0
- package/dist/shell/DefaultMain.js +6 -0
- package/dist/shell/DefaultMain.js.map +1 -0
- package/dist/shell/Logo.d.ts +6 -0
- package/dist/shell/Logo.js +16 -0
- package/dist/shell/Logo.js.map +1 -0
- package/dist/shell/Shell.d.ts +1 -0
- package/dist/shell/Shell.js +10 -0
- package/dist/shell/Shell.js.map +1 -0
- package/dist/shell/Shell.messages.d.ts +63 -0
- package/dist/shell/Shell.messages.js +65 -0
- package/dist/shell/Shell.messages.js.map +1 -0
- package/dist/shell/app.d.ts +3 -0
- package/dist/shell/app.js +43 -0
- package/dist/shell/app.js.map +1 -0
- package/dist/shell/babel.config.d.ts +2 -0
- package/dist/shell/babel.config.js +4 -0
- package/dist/shell/babel.config.js.map +1 -0
- package/dist/shell/constants.d.ts +2 -0
- package/dist/shell/constants.js +3 -0
- package/dist/shell/constants.js.map +1 -0
- package/dist/shell/dev/devFooter/app.d.ts +3 -0
- package/dist/shell/dev/devFooter/app.js +36 -0
- package/dist/shell/dev/devFooter/app.js.map +1 -0
- package/dist/shell/dev/devFooter/index.js +2 -0
- package/dist/shell/dev/devFooter/index.js.map +1 -0
- package/dist/shell/dev/devHeader/BarContext.d.ts +7 -0
- package/dist/shell/dev/devHeader/BarContext.js +8 -0
- package/dist/shell/dev/devHeader/BarContext.js.map +1 -0
- package/dist/shell/dev/devHeader/BarLink.d.ts +1 -0
- package/dist/shell/dev/devHeader/BarLink.js +10 -0
- package/dist/shell/dev/devHeader/BarLink.js.map +1 -0
- package/dist/shell/dev/devHeader/BarProvider.d.ts +6 -0
- package/dist/shell/dev/devHeader/BarProvider.js +16 -0
- package/dist/shell/dev/devHeader/BarProvider.js.map +1 -0
- package/dist/shell/dev/devHeader/CoursesLink.d.ts +1 -0
- package/dist/shell/dev/devHeader/CoursesLink.js +10 -0
- package/dist/shell/dev/devHeader/CoursesLink.js.map +1 -0
- package/dist/shell/dev/devHeader/FooContext.d.ts +7 -0
- package/dist/shell/dev/devHeader/FooContext.js +8 -0
- package/dist/shell/dev/devHeader/FooContext.js.map +1 -0
- package/dist/shell/dev/devHeader/FooLink.d.ts +1 -0
- package/dist/shell/dev/devHeader/FooLink.js +10 -0
- package/dist/shell/dev/devHeader/FooLink.js.map +1 -0
- package/dist/shell/dev/devHeader/FooProvider.d.ts +6 -0
- package/dist/shell/dev/devHeader/FooProvider.js +16 -0
- package/dist/shell/dev/devHeader/FooProvider.js.map +1 -0
- package/dist/shell/dev/devHeader/app.d.ts +3 -0
- package/dist/shell/dev/devHeader/app.js +34 -0
- package/dist/shell/dev/devHeader/app.js.map +1 -0
- package/dist/shell/dev/devHeader/index.js +2 -0
- package/dist/shell/dev/devHeader/index.js.map +1 -0
- package/dist/shell/dev/devHeader/providers.d.ts +3 -0
- package/dist/shell/dev/devHeader/providers.js +8 -0
- package/dist/shell/dev/devHeader/providers.js.map +1 -0
- package/dist/shell/dev/devHome/HomePage.d.ts +1 -0
- package/dist/shell/dev/devHome/HomePage.js +14 -0
- package/dist/shell/dev/devHome/HomePage.js.map +1 -0
- package/dist/shell/dev/devHome/app.d.ts +3 -0
- package/dist/shell/dev/devHome/app.js +15 -0
- package/dist/shell/dev/devHome/app.js.map +1 -0
- package/dist/shell/dev/devHome/index.js +2 -0
- package/dist/shell/dev/devHome/index.js.map +1 -0
- package/dist/shell/dev/devHome/messages.d.ts +8 -0
- package/dist/shell/dev/devHome/messages.js +10 -0
- package/dist/shell/dev/devHome/messages.js.map +1 -0
- package/dist/shell/dev/index.d.ts +4 -0
- package/dist/shell/dev/index.js +5 -0
- package/dist/shell/dev/index.js.map +1 -0
- package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.d.ts +1 -0
- package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.js +8 -0
- package/dist/shell/dev/slotShowcase/HorizontalSlotLayout.js.map +1 -0
- package/dist/shell/dev/slotShowcase/LayoutWithOptions.d.ts +1 -0
- package/dist/shell/dev/slotShowcase/LayoutWithOptions.js +9 -0
- package/dist/shell/dev/slotShowcase/LayoutWithOptions.js.map +1 -0
- package/dist/shell/dev/slotShowcase/SlotShowcase.scss +50 -0
- package/dist/shell/dev/slotShowcase/SlotShowcasePage.d.ts +2 -0
- package/dist/shell/dev/slotShowcase/SlotShowcasePage.js +17 -0
- package/dist/shell/dev/slotShowcase/SlotShowcasePage.js.map +1 -0
- package/dist/shell/dev/slotShowcase/ToggleByRoleLayout.d.ts +1 -0
- package/dist/shell/dev/slotShowcase/ToggleByRoleLayout.js +11 -0
- package/dist/shell/dev/slotShowcase/ToggleByRoleLayout.js.map +1 -0
- package/dist/shell/dev/slotShowcase/WidgetWithOptions.d.ts +1 -0
- package/dist/shell/dev/slotShowcase/WidgetWithOptions.js +8 -0
- package/dist/shell/dev/slotShowcase/WidgetWithOptions.js.map +1 -0
- package/dist/shell/dev/slotShowcase/app.d.ts +3 -0
- package/dist/shell/dev/slotShowcase/app.js +372 -0
- package/dist/shell/dev/slotShowcase/app.js.map +1 -0
- package/dist/shell/dev/slotShowcase/index.js +2 -0
- package/dist/shell/dev/slotShowcase/index.js.map +1 -0
- package/dist/shell/footer/CenterLinks.d.ts +1 -0
- package/dist/shell/footer/CenterLinks.js +7 -0
- package/dist/shell/footer/CenterLinks.js.map +1 -0
- package/dist/shell/footer/CopyrightNotice.d.ts +10 -0
- package/dist/shell/footer/CopyrightNotice.js +10 -0
- package/dist/shell/footer/CopyrightNotice.js.map +1 -0
- package/dist/shell/footer/DesktopFooterLayout.d.ts +1 -0
- package/dist/shell/footer/DesktopFooterLayout.js +12 -0
- package/dist/shell/footer/DesktopFooterLayout.js.map +1 -0
- package/dist/shell/footer/Footer.d.ts +1 -0
- package/dist/shell/footer/Footer.js +6 -0
- package/dist/shell/footer/Footer.js.map +1 -0
- package/dist/shell/footer/LabeledLinkColumn.d.ts +1 -0
- package/dist/shell/footer/LabeledLinkColumn.js +11 -0
- package/dist/shell/footer/LabeledLinkColumn.js.map +1 -0
- package/dist/shell/footer/LanguageMenu.d.ts +1 -0
- package/dist/shell/footer/LanguageMenu.js +16 -0
- package/dist/shell/footer/LanguageMenu.js.map +1 -0
- package/dist/shell/footer/LanguageMenuItem.d.ts +8 -0
- package/dist/shell/footer/LanguageMenuItem.js +11 -0
- package/dist/shell/footer/LanguageMenuItem.js.map +1 -0
- package/dist/shell/footer/LeftLinks.d.ts +1 -0
- package/dist/shell/footer/LeftLinks.js +7 -0
- package/dist/shell/footer/LeftLinks.js.map +1 -0
- package/dist/shell/footer/LegalNotices.d.ts +1 -0
- package/dist/shell/footer/LegalNotices.js +10 -0
- package/dist/shell/footer/LegalNotices.js.map +1 -0
- package/dist/shell/footer/PoweredBy.d.ts +1 -0
- package/dist/shell/footer/PoweredBy.js +9 -0
- package/dist/shell/footer/PoweredBy.js.map +1 -0
- package/dist/shell/footer/RevealLinks.d.ts +1 -0
- package/dist/shell/footer/RevealLinks.js +16 -0
- package/dist/shell/footer/RevealLinks.js.map +1 -0
- package/dist/shell/footer/RightLinks.d.ts +1 -0
- package/dist/shell/footer/RightLinks.js +7 -0
- package/dist/shell/footer/RightLinks.js.map +1 -0
- package/dist/shell/footer/app.d.ts +3 -0
- package/dist/shell/footer/app.js +67 -0
- package/dist/shell/footer/app.js.map +1 -0
- package/dist/shell/footer/data/api.d.ts +1 -0
- package/dist/shell/footer/data/api.js +45 -0
- package/dist/shell/footer/data/api.js.map +1 -0
- package/dist/shell/footer/index.js +3 -0
- package/dist/shell/footer/index.js.map +1 -0
- package/dist/shell/header/AuthenticatedMenu.d.ts +5 -0
- package/dist/shell/header/AuthenticatedMenu.js +9 -0
- package/dist/shell/header/AuthenticatedMenu.js.map +1 -0
- package/dist/shell/header/Header.d.ts +1 -0
- package/dist/shell/header/Header.js +8 -0
- package/dist/shell/header/Header.js.map +1 -0
- package/dist/shell/header/HelpButton.d.ts +5 -0
- package/dist/shell/header/HelpButton.js +10 -0
- package/dist/shell/header/HelpButton.js.map +1 -0
- package/dist/shell/header/anonymous-menu/AnonymousMenu.d.ts +5 -0
- package/dist/shell/header/anonymous-menu/AnonymousMenu.js +7 -0
- package/dist/shell/header/anonymous-menu/AnonymousMenu.js.map +1 -0
- package/dist/shell/header/anonymous-menu/LoginButton.d.ts +3 -0
- package/dist/shell/header/anonymous-menu/LoginButton.js +22 -0
- package/dist/shell/header/anonymous-menu/LoginButton.js.map +1 -0
- package/dist/shell/header/anonymous-menu/RegisterButton.d.ts +3 -0
- package/dist/shell/header/anonymous-menu/RegisterButton.js +22 -0
- package/dist/shell/header/anonymous-menu/RegisterButton.js.map +1 -0
- package/dist/shell/header/app.d.ts +4 -0
- package/dist/shell/header/app.js +157 -0
- package/dist/shell/header/app.js.map +1 -0
- package/dist/shell/header/app.scss +20 -0
- package/dist/shell/header/constants.d.ts +3 -0
- package/dist/shell/header/constants.js +4 -0
- package/dist/shell/header/constants.js.map +1 -0
- package/dist/shell/header/course-bar/data/service.d.ts +11 -0
- package/dist/shell/header/course-bar/data/service.js +49 -0
- package/dist/shell/header/course-bar/data/service.js.map +1 -0
- package/dist/shell/header/course-bar/masquerade/MasqueradeBar.d.ts +1 -0
- package/dist/shell/header/course-bar/masquerade/MasqueradeBar.js +22 -0
- package/dist/shell/header/course-bar/masquerade/MasqueradeBar.js.map +1 -0
- package/dist/shell/header/course-bar/masquerade/MasqueradeContext.d.ts +3 -0
- package/dist/shell/header/course-bar/masquerade/MasqueradeContext.js +10 -0
- package/dist/shell/header/course-bar/masquerade/MasqueradeContext.js.map +1 -0
- package/dist/shell/header/course-bar/masquerade/StudioLink.d.ts +6 -0
- package/dist/shell/header/course-bar/masquerade/StudioLink.js +27 -0
- package/dist/shell/header/course-bar/masquerade/StudioLink.js.map +1 -0
- package/dist/shell/header/course-bar/masquerade/data/api.d.ts +29 -0
- package/dist/shell/header/course-bar/masquerade/data/api.js +33 -0
- package/dist/shell/header/course-bar/masquerade/data/api.js.map +1 -0
- package/dist/shell/header/course-bar/masquerade/hooks.d.ts +20 -0
- package/dist/shell/header/course-bar/masquerade/hooks.js +203 -0
- package/dist/shell/header/course-bar/masquerade/hooks.js.map +1 -0
- package/dist/shell/header/course-bar/masquerade/index.d.ts +1 -0
- package/dist/shell/header/course-bar/masquerade/index.js +2 -0
- package/dist/shell/header/course-bar/masquerade/index.js.map +1 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeUserNameInput.d.ts +7 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeUserNameInput.js +18 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeUserNameInput.js.map +1 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeWidget.d.ts +1 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeWidget.js +16 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeWidget.js.map +1 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeWidgetOption.d.ts +6 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeWidgetOption.js +18 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/MasqueradeWidgetOption.js.map +1 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/index.d.ts +2 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/index.js +3 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/index.js.map +1 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/messages.d.ts +28 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/messages.js +30 -0
- package/dist/shell/header/course-bar/masquerade/masquerade-widget/messages.js.map +1 -0
- package/dist/shell/header/course-bar/masquerade/messages.d.ts +28 -0
- package/dist/shell/header/course-bar/masquerade/messages.js +30 -0
- package/dist/shell/header/course-bar/masquerade/messages.js.map +1 -0
- package/dist/shell/header/course-bar/navigation/CourseTabsNavigation.d.ts +3 -0
- package/dist/shell/header/course-bar/navigation/CourseTabsNavigation.js +39 -0
- package/dist/shell/header/course-bar/navigation/CourseTabsNavigation.js.map +1 -0
- package/dist/shell/header/course-bar/navigation/course-tabs-navigation.scss +7 -0
- package/dist/shell/header/course-bar/navigation/messages.d.ts +8 -0
- package/dist/shell/header/course-bar/navigation/messages.js +10 -0
- package/dist/shell/header/course-bar/navigation/messages.js.map +1 -0
- package/dist/shell/header/course-bar/utils.d.ts +3 -0
- package/dist/shell/header/course-bar/utils.js +54 -0
- package/dist/shell/header/course-bar/utils.js.map +1 -0
- package/dist/shell/header/desktop/DesktopLayout.d.ts +1 -0
- package/dist/shell/header/desktop/DesktopLayout.js +10 -0
- package/dist/shell/header/desktop/DesktopLayout.js.map +1 -0
- package/dist/shell/header/desktop/PrimaryNavLinks.d.ts +1 -0
- package/dist/shell/header/desktop/PrimaryNavLinks.js +7 -0
- package/dist/shell/header/desktop/PrimaryNavLinks.js.map +1 -0
- package/dist/shell/header/desktop/SecondaryNavLinks.d.ts +1 -0
- package/dist/shell/header/desktop/SecondaryNavLinks.js +7 -0
- package/dist/shell/header/desktop/SecondaryNavLinks.js.map +1 -0
- package/dist/shell/header/helpButtonSlotOperation.d.ts +6 -0
- package/dist/shell/header/helpButtonSlotOperation.js +14 -0
- package/dist/shell/header/helpButtonSlotOperation.js.map +1 -0
- package/dist/shell/header/index.d.ts +5 -0
- package/dist/shell/header/index.js +6 -0
- package/dist/shell/header/index.js.map +1 -0
- package/dist/shell/header/mobile/MobileLayout.d.ts +1 -0
- package/dist/shell/header/mobile/MobileLayout.js +17 -0
- package/dist/shell/header/mobile/MobileLayout.js.map +1 -0
- package/dist/shell/header/mobile/MobileNavLinks.d.ts +1 -0
- package/dist/shell/header/mobile/MobileNavLinks.js +7 -0
- package/dist/shell/header/mobile/MobileNavLinks.js.map +1 -0
- package/dist/shell/index.d.ts +8 -0
- package/dist/shell/index.js +9 -0
- package/dist/shell/index.js.map +1 -0
- package/dist/shell/jest.config.d.ts +15 -0
- package/dist/shell/jest.config.js +32 -0
- package/dist/shell/jest.config.js.map +1 -0
- package/dist/shell/layer-order.scss +1 -0
- package/dist/shell/menus/LinkMenuItem.d.ts +9 -0
- package/dist/shell/menus/LinkMenuItem.js +38 -0
- package/dist/shell/menus/LinkMenuItem.js.map +1 -0
- package/dist/shell/menus/NavDropdownMenuSlot.d.ts +7 -0
- package/dist/shell/menus/NavDropdownMenuSlot.js +14 -0
- package/dist/shell/menus/NavDropdownMenuSlot.js.map +1 -0
- package/dist/shell/menus/ProfileLinkMenuItem.d.ts +8 -0
- package/dist/shell/menus/ProfileLinkMenuItem.js +16 -0
- package/dist/shell/menus/ProfileLinkMenuItem.js.map +1 -0
- package/dist/shell/menus/data/utils.d.ts +4 -0
- package/dist/shell/menus/data/utils.js +13 -0
- package/dist/shell/menus/data/utils.js.map +1 -0
- package/dist/shell/router/createRouter.d.ts +1 -0
- package/dist/shell/router/createRouter.js +26 -0
- package/dist/shell/router/createRouter.js.map +1 -0
- package/dist/shell/router/getAppRoutes.d.ts +2 -0
- package/dist/shell/router/getAppRoutes.js +27 -0
- package/dist/shell/router/getAppRoutes.js.map +1 -0
- package/dist/shell/setupTest.d.ts +1 -0
- package/dist/shell/setupTest.js +12 -0
- package/dist/shell/setupTest.js.map +1 -0
- package/dist/shell/site.config.dev.d.ts +4 -0
- package/dist/shell/site.config.dev.js +43 -0
- package/dist/shell/site.config.dev.js.map +1 -0
- package/dist/shell/site.d.ts +1 -0
- package/dist/shell/site.js +45 -0
- package/dist/shell/site.js.map +1 -0
- package/dist/shell/style.d.ts +3 -0
- package/dist/shell/style.js +10 -0
- package/dist/shell/style.js.map +1 -0
- package/dist/shell/style.scss +147 -0
- package/dist/tools/babel/babel.config.d.ts +12 -0
- package/dist/tools/babel.config.d.ts +2 -0
- package/dist/tools/babel.config.js +3 -0
- package/dist/tools/cli/commands/serve.d.ts +1 -0
- package/dist/tools/cli/commands/translations.d.ts +2 -0
- package/dist/tools/cli/commands/translations.js +20 -0
- package/dist/tools/cli/openedx.d.ts +2 -0
- package/dist/tools/cli/openedx.js +111 -0
- package/dist/tools/cli/utils/ensureConfigFilenameOption.d.ts +2 -0
- package/dist/tools/cli/utils/formatter.d.ts +1 -0
- package/dist/tools/cli/utils/formatter.js +3 -0
- package/dist/tools/cli/utils/getResolvedConfigPath.d.ts +2 -0
- package/dist/tools/cli/utils/prettyPrintTitle.d.ts +1 -0
- package/dist/tools/cli/utils/printUsage.d.ts +1 -0
- package/dist/tools/cli/utils/printUsage.js +47 -0
- package/dist/tools/cli/utils/translations/index.d.ts +2 -0
- package/dist/tools/cli/utils/translations/index.js +7 -0
- package/dist/tools/cli/utils/translations/messagesObject.d.ts +26 -0
- package/dist/tools/cli/utils/translations/messagesObject.js +66 -0
- package/dist/tools/cli/utils/translations/prepare.d.ts +5 -0
- package/dist/tools/cli/utils/translations/prepare.js +98 -0
- package/dist/tools/cli/utils/translations/pull.d.ts +6 -0
- package/dist/tools/cli/utils/translations/pull.js +102 -0
- package/dist/tools/config-helpers/createConfig.d.ts +2 -0
- package/dist/tools/config-helpers/createLintConfig.d.ts +2 -0
- package/dist/tools/config-helpers/getBaseConfig.d.ts +2 -0
- package/dist/tools/defaultConfigPaths.d.ts +8 -0
- package/dist/tools/eslint/base.eslint.config.d.ts +3 -0
- package/dist/tools/eslint/base.eslint.config.js +114 -0
- package/dist/tools/eslint.config.d.ts +3 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/jest/jest.config.d.ts +14 -0
- package/dist/tools/jest.config.d.ts +8 -0
- package/dist/tools/types.d.ts +20 -0
- package/dist/tools/types.js +25 -0
- package/dist/tools/typescript/tsconfig.json +33 -0
- package/dist/tools/webpack/common-config/all/getCodeRules.d.ts +2 -0
- package/dist/tools/webpack/common-config/all/getFileLoaderRules.d.ts +11 -0
- package/dist/tools/webpack/common-config/all/getImageMinimizer.d.ts +5 -0
- package/dist/tools/webpack/common-config/all/getStylesheetRule.d.ts +12 -0
- package/dist/tools/webpack/common-config/all/getStylesheetRule.js +150 -0
- package/dist/tools/webpack/common-config/all/postcssWrapLayer.d.ts +4 -0
- package/dist/tools/webpack/common-config/all/postcssWrapLayer.js +32 -0
- package/dist/tools/webpack/common-config/dev/getDevServer.d.ts +2 -0
- package/dist/tools/webpack/common-config/dev/getDevServer.js +36 -0
- package/dist/tools/webpack/common-config/index.d.ts +7 -0
- package/dist/tools/webpack/common-config/index.js +20 -0
- package/dist/tools/webpack/common-config/site/getHtmlWebpackPlugin.d.ts +2 -0
- package/dist/tools/webpack/common-config/site/getHtmlWebpackPlugin.js +24 -0
- package/dist/tools/webpack/common-config/site/getI18nMessagesFallbackPlugin/emptyI18n.d.ts +2 -0
- package/dist/tools/webpack/common-config/site/getI18nMessagesFallbackPlugin/emptyI18n.js +3 -0
- package/dist/tools/webpack/common-config/site/getI18nMessagesFallbackPlugin/index.d.ts +2 -0
- package/dist/tools/webpack/common-config/site/getI18nMessagesFallbackPlugin/index.js +26 -0
- package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.d.ts +16 -0
- package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/index.d.ts +2 -0
- package/dist/tools/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.d.ts +1 -0
- package/dist/tools/webpack/utils/getPublicPath.d.ts +1 -0
- package/dist/tools/webpack/utils/getPublicPath.js +6 -0
- package/dist/tools/webpack/utils/getResolvedSiteConfigPath.d.ts +1 -0
- package/dist/tools/webpack/utils/getResolvedSiteI18nPath.d.ts +1 -0
- package/dist/tools/webpack/utils/getResolvedSiteI18nPath.js +25 -0
- package/dist/tools/webpack/webpack.config.build.d.ts +3 -0
- package/dist/tools/webpack/webpack.config.build.js +78 -0
- package/dist/tools/webpack/webpack.config.dev.d.ts +3 -0
- package/dist/tools/webpack/webpack.config.dev.js +78 -0
- package/dist/tools/webpack/webpack.config.dev.shell.d.ts +3 -0
- package/dist/tools/webpack/webpack.config.dev.shell.js +105 -0
- package/dist/types.d.ts +93 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +45 -32
- package/config/eslint/base.eslint.config.js +0 -113
- package/config/tsconfig.json +0 -32
- package/config/types.js +0 -23
- package/config/webpack/common-config/all/getIgnoreWarnings.js +0 -14
- package/config/webpack/common-config/all/getStylesheetRule.js +0 -112
- package/config/webpack/common-config/dev/getDevServer.js +0 -38
- package/config/webpack/common-config/index.js +0 -18
- package/config/webpack/common-config/site/getHtmlWebpackPlugin.js +0 -16
- package/config/webpack/plugins/html-webpack-new-relic-plugin/test/HtmlWebpackNewRelicPlugin.test.js +0 -66
- package/config/webpack/utils/getLocalAliases.js +0 -65
- package/config/webpack/utils/getPublicPath.js +0 -6
- package/config/webpack/webpack.config.build.js +0 -69
- package/config/webpack/webpack.config.dev.js +0 -69
- package/config/webpack/webpack.config.dev.shell.js +0 -103
- package/index.ts +0 -7
- package/runtime/__mocks__/file.js +0 -1
- package/runtime/__mocks__/svg.js +0 -1
- package/runtime/__mocks__/universal-cookie.js +0 -6
- package/runtime/analytics/MockAnalyticsService.js +0 -71
- package/runtime/analytics/SegmentAnalyticsService.js +0 -243
- package/runtime/analytics/index.ts +0 -12
- package/runtime/analytics/interface.js +0 -145
- package/runtime/analytics/interface.test.js +0 -242
- package/runtime/auth/AxiosCsrfTokenService.js +0 -60
- package/runtime/auth/AxiosJwtAuthService.js +0 -363
- package/runtime/auth/AxiosJwtAuthService.test.jsx +0 -1076
- package/runtime/auth/AxiosJwtTokenService.js +0 -134
- package/runtime/auth/LocalForageCache.js +0 -76
- package/runtime/auth/MockAuthService.js +0 -278
- package/runtime/auth/index.ts +0 -19
- package/runtime/auth/interceptors/createCsrfTokenProviderInterceptor.js +0 -36
- package/runtime/auth/interceptors/createJwtTokenProviderInterceptor.js +0 -37
- package/runtime/auth/interceptors/createProcessAxiosRequestErrorInterceptor.js +0 -20
- package/runtime/auth/interceptors/createRetryInterceptor.js +0 -74
- package/runtime/auth/interceptors/createRetryInterceptor.test.js +0 -23
- package/runtime/auth/interface.js +0 -309
- package/runtime/auth/utils.js +0 -105
- package/runtime/babel.config.js +0 -3
- package/runtime/config/getExternalLinkUrl.test.js +0 -76
- package/runtime/config/index.ts +0 -294
- package/runtime/constants.ts +0 -68
- package/runtime/i18n/index.js +0 -118
- package/runtime/i18n/injectIntlWithShim.jsx +0 -48
- package/runtime/i18n/lib.test.js +0 -230
- package/runtime/i18n/lib.ts +0 -272
- package/runtime/index.ts +0 -139
- package/runtime/initialize.async.function.config.test.js +0 -43
- package/runtime/initialize.const.config.test.js +0 -41
- package/runtime/initialize.function.config.test.js +0 -41
- package/runtime/initialize.js +0 -352
- package/runtime/initialize.test.js +0 -356
- package/runtime/jest.config.js +0 -33
- package/runtime/logging/MockLoggingService.js +0 -31
- package/runtime/logging/NewRelicLoggingService.js +0 -184
- package/runtime/logging/NewRelicLoggingService.test.js +0 -214
- package/runtime/logging/index.ts +0 -9
- package/runtime/logging/interface.js +0 -109
- package/runtime/logging/types.ts +0 -4
- package/runtime/react/AuthenticatedPageRoute.jsx +0 -43
- package/runtime/react/AuthenticatedPageRoute.test.jsx +0 -135
- package/runtime/react/CombinedAppProvider.tsx +0 -46
- package/runtime/react/CurrentAppContext.tsx +0 -25
- package/runtime/react/CurrentAppProvider.tsx +0 -46
- package/runtime/react/Divider.tsx +0 -5
- package/runtime/react/ErrorBoundary.jsx +0 -47
- package/runtime/react/ErrorBoundary.test.jsx +0 -83
- package/runtime/react/ErrorPage.jsx +0 -72
- package/runtime/react/LoginRedirect.jsx +0 -16
- package/runtime/react/PageWrap.jsx +0 -24
- package/runtime/react/SiteContext.tsx +0 -32
- package/runtime/react/SiteProvider.test.jsx +0 -66
- package/runtime/react/SiteProvider.tsx +0 -101
- package/runtime/react/constants.ts +0 -3
- package/runtime/react/hooks/index.ts +0 -8
- package/runtime/react/hooks/theme/useTheme.test.ts +0 -221
- package/runtime/react/hooks/theme/useTheme.ts +0 -179
- package/runtime/react/hooks/theme/useThemeConfig.test.ts +0 -107
- package/runtime/react/hooks/theme/useThemeConfig.ts +0 -34
- package/runtime/react/hooks/theme/useThemeCore.test.ts +0 -65
- package/runtime/react/hooks/theme/useThemeCore.ts +0 -52
- package/runtime/react/hooks/theme/useThemeVariants.test.ts +0 -97
- package/runtime/react/hooks/theme/useThemeVariants.ts +0 -116
- package/runtime/react/hooks/theme/useTrackColorSchemeChoice.test.ts +0 -54
- package/runtime/react/hooks/theme/useTrackColorSchemeChoice.ts +0 -30
- package/runtime/react/hooks/theme/utils.ts +0 -11
- package/runtime/react/hooks/useActiveRoles.ts +0 -15
- package/runtime/react/hooks/useActiveRouteRoleWatcher.ts +0 -31
- package/runtime/react/hooks/useAppConfig.ts +0 -9
- package/runtime/react/hooks/useAuthenticatedUser.test.tsx +0 -41
- package/runtime/react/hooks/useAuthenticatedUser.ts +0 -9
- package/runtime/react/hooks/useSiteConfig.test.tsx +0 -13
- package/runtime/react/hooks/useSiteConfig.ts +0 -9
- package/runtime/react/hooks/useSiteEvent.ts +0 -24
- package/runtime/react/index.ts +0 -19
- package/runtime/react/reducers.ts +0 -40
- package/runtime/routing/index.ts +0 -1
- package/runtime/routing/utils.test.ts +0 -7
- package/runtime/routing/utils.ts +0 -34
- package/runtime/scripts/GoogleAnalyticsLoader.test.ts +0 -77
- package/runtime/scripts/GoogleAnalyticsLoader.ts +0 -59
- package/runtime/scripts/index.ts +0 -1
- package/runtime/setupTest.js +0 -14
- package/runtime/site.config.test.tsx +0 -33
- package/runtime/slots/Slot.test.tsx +0 -40
- package/runtime/slots/Slot.tsx +0 -32
- package/runtime/slots/SlotContext.tsx +0 -8
- package/runtime/slots/hooks.ts +0 -35
- package/runtime/slots/layout/DefaultSlotLayout.test.tsx +0 -31
- package/runtime/slots/layout/DefaultSlotLayout.tsx +0 -9
- package/runtime/slots/layout/hooks.test.tsx +0 -178
- package/runtime/slots/layout/hooks.ts +0 -65
- package/runtime/slots/layout/types.ts +0 -45
- package/runtime/slots/layout/utils.test.ts +0 -67
- package/runtime/slots/layout/utils.ts +0 -14
- package/runtime/slots/types.ts +0 -24
- package/runtime/slots/utils.test.ts +0 -64
- package/runtime/slots/utils.ts +0 -78
- package/runtime/slots/widget/WidgetContext.tsx +0 -9
- package/runtime/slots/widget/WidgetProvider.tsx +0 -30
- package/runtime/slots/widget/hooks.ts +0 -105
- package/runtime/slots/widget/iframe/IFrameContentWrapper.messages.tsx +0 -16
- package/runtime/slots/widget/iframe/IFrameContentWrapper.tsx +0 -84
- package/runtime/slots/widget/iframe/IFrameWidget.tsx +0 -59
- package/runtime/slots/widget/iframe/constants.ts +0 -19
- package/runtime/slots/widget/iframe/hooks.ts +0 -179
- package/runtime/slots/widget/iframe/index.ts +0 -6
- package/runtime/slots/widget/iframe/types.ts +0 -7
- package/runtime/slots/widget/types.ts +0 -134
- package/runtime/slots/widget/utils.tsx +0 -201
- package/runtime/subscriptions.ts +0 -60
- package/runtime/testing/index.ts +0 -9
- package/runtime/testing/initializeMockApp.test.ts +0 -66
- package/runtime/testing/initializeMockApp.ts +0 -86
- package/runtime/testing/mockMessages.ts +0 -23
- package/runtime/utils.js +0 -178
- package/runtime/utils.test.js +0 -116
- package/shell/DefaultLayout.tsx +0 -18
- package/shell/DefaultMain.tsx +0 -7
- package/shell/Logo.test.tsx +0 -32
- package/shell/Logo.tsx +0 -28
- package/shell/Shell.messages.ts +0 -61
- package/shell/Shell.tsx +0 -18
- package/shell/__mocks__/file.js +0 -1
- package/shell/__mocks__/svg.js +0 -1
- package/shell/__mocks__/universal-cookie.js +0 -6
- package/shell/app.scss +0 -150
- package/shell/app.ts +0 -38
- package/shell/babel.config.js +0 -3
- package/shell/dev/devFooter/app.tsx +0 -43
- package/shell/dev/devHeader/BarContext.tsx +0 -13
- package/shell/dev/devHeader/BarLink.tsx +0 -16
- package/shell/dev/devHeader/BarProvider.tsx +0 -25
- package/shell/dev/devHeader/CoursesLink.tsx +0 -16
- package/shell/dev/devHeader/FooContext.tsx +0 -13
- package/shell/dev/devHeader/FooLink.tsx +0 -16
- package/shell/dev/devHeader/FooProvider.tsx +0 -25
- package/shell/dev/devHeader/app.tsx +0 -53
- package/shell/dev/devHeader/providers.tsx +0 -11
- package/shell/dev/devHome/HomePage.tsx +0 -28
- package/shell/dev/devHome/app.ts +0 -18
- package/shell/dev/devHome/i18n/index.ts +0 -27
- package/shell/dev/devHome/messages.ts +0 -11
- package/shell/dev/devUser/app.tsx +0 -24
- package/shell/dev/devUser/index.ts +0 -1
- package/shell/dev/index.ts +0 -5
- package/shell/dev/slotShowcase/HorizontalSlotLayout.tsx +0 -11
- package/shell/dev/slotShowcase/LayoutWithOptions.tsx +0 -17
- package/shell/dev/slotShowcase/SlotShowcasePage.tsx +0 -66
- package/shell/dev/slotShowcase/WidgetWithOptions.tsx +0 -11
- package/shell/dev/slotShowcase/app.tsx +0 -373
- package/shell/footer/CenterLinks.tsx +0 -11
- package/shell/footer/CopyrightNotice.tsx +0 -36
- package/shell/footer/Footer.tsx +0 -34
- package/shell/footer/LabeledLinkColumn.tsx +0 -19
- package/shell/footer/LanguageMenu.tsx +0 -35
- package/shell/footer/LanguageMenuItem.tsx +0 -23
- package/shell/footer/LeftLinks.tsx +0 -11
- package/shell/footer/LegalNotices.tsx +0 -17
- package/shell/footer/PoweredBy.tsx +0 -17
- package/shell/footer/RevealLinks.tsx +0 -43
- package/shell/footer/RightLinks.tsx +0 -11
- package/shell/footer/app.tsx +0 -73
- package/shell/footer/data/api.ts +0 -48
- package/shell/header/AuthenticatedMenu.tsx +0 -32
- package/shell/header/Header.tsx +0 -17
- package/shell/header/anonymous-menu/AnonymousMenu.tsx +0 -14
- package/shell/header/anonymous-menu/LoginButton.tsx +0 -14
- package/shell/header/anonymous-menu/RegisterButton.tsx +0 -15
- package/shell/header/app.tsx +0 -142
- package/shell/header/desktop/DesktopLayout.tsx +0 -22
- package/shell/header/desktop/PrimaryNavLinks.tsx +0 -10
- package/shell/header/desktop/SecondaryNavLinks.tsx +0 -10
- package/shell/header/index.ts +0 -2
- package/shell/header/mobile/MobileLayout.tsx +0 -47
- package/shell/header/mobile/MobileNavLinks.tsx +0 -10
- package/shell/i18n/index.ts +0 -25
- package/shell/index.ts +0 -7
- package/shell/jest.config.js +0 -31
- package/shell/menus/LinkMenuItem.tsx +0 -64
- package/shell/menus/NavDropdownMenuSlot.tsx +0 -29
- package/shell/menus/ProfileLinkMenuItem.tsx +0 -33
- package/shell/menus/data/utils.ts +0 -19
- package/shell/public/index.html +0 -10
- package/shell/router/createRouter.test.tsx +0 -50
- package/shell/router/createRouter.ts +0 -17
- package/shell/router/getAppRoutes.test.tsx +0 -59
- package/shell/router/getAppRoutes.ts +0 -21
- package/shell/setupTest.js +0 -13
- package/shell/site.config.dev.tsx +0 -49
- package/shell/site.config.test.tsx +0 -16
- package/shell/site.tsx +0 -41
- package/tools/dist/babel/babel.config.js +0 -28
- package/tools/dist/cli/intl-imports.js +0 -233
- package/tools/dist/cli/intl-imports.test.js +0 -146
- package/tools/dist/cli/openedx.js +0 -86
- package/tools/dist/cli/transifex-utils.js +0 -68
- package/tools/dist/cli/utils/formatter.js +0 -10
- package/tools/dist/cli/utils/printUsage.js +0 -39
- package/tools/dist/config-helpers/createConfig.js +0 -13
- package/tools/dist/config-helpers/createLintConfig.js +0 -16
- package/tools/dist/config-helpers/getBaseConfig.js +0 -12
- package/tools/dist/defaultConfigPaths.js +0 -35
- package/tools/dist/eslint/base.eslint.config.js +0 -113
- package/tools/dist/index.js +0 -12
- package/tools/dist/jest/jest.config.js +0 -30
- package/tools/dist/types.js +0 -23
- package/tools/dist/typescript/tsconfig.json +0 -32
- package/tools/dist/webpack/common-config/all/getCodeRules.js +0 -52
- package/tools/dist/webpack/common-config/all/getFileLoaderRules.js +0 -26
- package/tools/dist/webpack/common-config/all/getIgnoreWarnings.js +0 -14
- package/tools/dist/webpack/common-config/all/getImageMinimizer.js +0 -25
- package/tools/dist/webpack/common-config/all/getStylesheetRule.js +0 -112
- package/tools/dist/webpack/common-config/dev/getDevServer.js +0 -38
- package/tools/dist/webpack/common-config/index.js +0 -18
- package/tools/dist/webpack/common-config/site/getHtmlWebpackPlugin.js +0 -16
- package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.js +0 -91
- package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/index.js +0 -7
- package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/test/HtmlWebpackNewRelicPlugin.test.js +0 -66
- package/tools/dist/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.js +0 -3
- package/tools/dist/webpack/utils/getLocalAliases.js +0 -65
- package/tools/dist/webpack/utils/getPublicPath.js +0 -6
- package/tools/dist/webpack/utils/getResolvedSiteConfigPath.js +0 -32
- package/tools/dist/webpack/webpack.config.build.js +0 -69
- package/tools/dist/webpack/webpack.config.dev.js +0 -69
- package/tools/dist/webpack/webpack.config.dev.shell.js +0 -103
- package/types.ts +0 -119
- /package/{runtime/react/hooks/theme/index.ts → dist/runtime/react/hooks/theme/index.d.ts} +0 -0
- /package/{runtime/slots/index.ts → dist/runtime/slots/index.d.ts} +0 -0
- /package/{runtime/slots/layout/index.ts → dist/runtime/slots/layout/index.d.ts} +0 -0
- /package/{runtime/slots/widget/index.ts → dist/runtime/slots/widget/index.d.ts} +0 -0
- /package/{shell/dev/devFooter/index.ts → dist/shell/dev/devFooter/index.d.ts} +0 -0
- /package/{shell/dev/devHeader/index.ts → dist/shell/dev/devHeader/index.d.ts} +0 -0
- /package/{shell/dev/devHome/index.ts → dist/shell/dev/devHome/index.d.ts} +0 -0
- /package/{shell/dev/slotShowcase/index.ts → dist/shell/dev/slotShowcase/index.d.ts} +0 -0
- /package/{shell/footer/index.ts → dist/shell/footer/index.d.ts} +0 -0
- /package/{config → dist/tools}/babel/babel.config.js +0 -0
- /package/{tools/dist → dist/tools}/cli/commands/serve.js +0 -0
- /package/{tools/dist → dist/tools}/cli/utils/ensureConfigFilenameOption.js +0 -0
- /package/{tools/dist → dist/tools}/cli/utils/getResolvedConfigPath.js +0 -0
- /package/{tools/dist → dist/tools}/cli/utils/prettyPrintTitle.js +0 -0
- /package/{config → dist/tools}/config-helpers/createConfig.js +0 -0
- /package/{config → dist/tools}/config-helpers/createLintConfig.js +0 -0
- /package/{config → dist/tools}/config-helpers/getBaseConfig.js +0 -0
- /package/{config → dist/tools}/defaultConfigPaths.js +0 -0
- /package/{tools/dist → dist/tools}/eslint.config.js +0 -0
- /package/{config → dist/tools}/index.js +0 -0
- /package/{config → dist/tools}/jest/jest.config.js +0 -0
- /package/{tools/dist → dist/tools}/jest.config.js +0 -0
- /package/{config → dist/tools}/webpack/common-config/all/getCodeRules.js +0 -0
- /package/{config → dist/tools}/webpack/common-config/all/getFileLoaderRules.js +0 -0
- /package/{config → dist/tools}/webpack/common-config/all/getImageMinimizer.js +0 -0
- /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/HtmlWebpackNewRelicPlugin.js +0 -0
- /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/index.js +0 -0
- /package/{config → dist/tools}/webpack/plugins/html-webpack-new-relic-plugin/test/fixtures/entry.js +0 -0
- /package/{config → dist/tools}/webpack/utils/getResolvedSiteConfigPath.js +0 -0
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A React hook that allows functional components to subscribe to application events. This should
|
|
3
|
+
* be used sparingly - for the most part, Context should be used higher-up in the application to
|
|
4
|
+
* provide necessary data to a given component, rather than utilizing a non-React-like Pub/Sub
|
|
5
|
+
* mechanism.
|
|
6
|
+
*
|
|
7
|
+
* @memberof module:React
|
|
8
|
+
* @param {string} type
|
|
9
|
+
* @param {function} callback
|
|
10
|
+
*/
|
|
11
|
+
declare const useSiteEvent: (type: any, callback: any) => void;
|
|
12
|
+
export default useSiteEvent;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { subscribe, unsubscribe } from '../../subscriptions';
|
|
3
|
+
/**
|
|
4
|
+
* A React hook that allows functional components to subscribe to application events. This should
|
|
5
|
+
* be used sparingly - for the most part, Context should be used higher-up in the application to
|
|
6
|
+
* provide necessary data to a given component, rather than utilizing a non-React-like Pub/Sub
|
|
7
|
+
* mechanism.
|
|
8
|
+
*
|
|
9
|
+
* @memberof module:React
|
|
10
|
+
* @param {string} type
|
|
11
|
+
* @param {function} callback
|
|
12
|
+
*/
|
|
13
|
+
const useSiteEvent = (type, callback) => {
|
|
14
|
+
useEffect(() => {
|
|
15
|
+
subscribe(type, callback);
|
|
16
|
+
return () => {
|
|
17
|
+
unsubscribe(type, callback);
|
|
18
|
+
};
|
|
19
|
+
}, [callback, type]);
|
|
20
|
+
};
|
|
21
|
+
export default useSiteEvent;
|
|
22
|
+
//# sourceMappingURL=useSiteEvent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSiteEvent.js","sourceRoot":"","sources":["../../../../runtime/react/hooks/useSiteEvent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE7D;;;;;;;;;GASG;AACH,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE;IACtC,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE1B,OAAO,GAAG,EAAE;YACV,WAAW,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAC9B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;AACvB,CAAC,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["import { useEffect } from 'react';\nimport { subscribe, unsubscribe } from '../../subscriptions';\n\n/**\n * A React hook that allows functional components to subscribe to application events. This should\n * be used sparingly - for the most part, Context should be used higher-up in the application to\n * provide necessary data to a given component, rather than utilizing a non-React-like Pub/Sub\n * mechanism.\n *\n * @memberof module:React\n * @param {string} type\n * @param {function} callback\n */\nconst useSiteEvent = (type, callback) => {\n useEffect(() => {\n subscribe(type, callback);\n\n return () => {\n unsubscribe(type, callback);\n };\n }, [callback, type]);\n};\n\nexport default useSiteEvent;\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #### Import members from **@openedx/frontend-base** React
|
|
3
|
+
* The React module provides a variety of React components, hooks, and contexts for use in an
|
|
4
|
+
* application.
|
|
5
|
+
*
|
|
6
|
+
* @module React
|
|
7
|
+
*/
|
|
8
|
+
export { default as CurrentAppContext } from './CurrentAppContext';
|
|
9
|
+
export { default as CurrentAppProvider } from './CurrentAppProvider';
|
|
10
|
+
export { default as SiteContext } from './SiteContext';
|
|
11
|
+
export { default as SiteProvider } from './SiteProvider';
|
|
12
|
+
export { default as AuthenticatedPageRoute } from './AuthenticatedPageRoute';
|
|
13
|
+
export { default as Divider } from './Divider';
|
|
14
|
+
export { default as ErrorBoundary } from './ErrorBoundary';
|
|
15
|
+
export { default as ErrorPage } from './ErrorPage';
|
|
16
|
+
export { default as NotFoundPage } from './NotFoundPage';
|
|
17
|
+
export { useSiteEvent, useAuthenticatedUser, useSiteConfig, useAppConfig } from './hooks';
|
|
18
|
+
export { default as LoginRedirect } from './LoginRedirect';
|
|
19
|
+
export { default as PageWrap } from './PageWrap';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #### Import members from **@openedx/frontend-base** React
|
|
3
|
+
* The React module provides a variety of React components, hooks, and contexts for use in an
|
|
4
|
+
* application.
|
|
5
|
+
*
|
|
6
|
+
* @module React
|
|
7
|
+
*/
|
|
8
|
+
export { default as CurrentAppContext } from './CurrentAppContext';
|
|
9
|
+
export { default as CurrentAppProvider } from './CurrentAppProvider';
|
|
10
|
+
export { default as SiteContext } from './SiteContext';
|
|
11
|
+
export { default as SiteProvider } from './SiteProvider';
|
|
12
|
+
export { default as AuthenticatedPageRoute } from './AuthenticatedPageRoute';
|
|
13
|
+
export { default as Divider } from './Divider';
|
|
14
|
+
export { default as ErrorBoundary } from './ErrorBoundary';
|
|
15
|
+
export { default as ErrorPage } from './ErrorPage';
|
|
16
|
+
export { default as NotFoundPage } from './NotFoundPage';
|
|
17
|
+
export { useSiteEvent, useAuthenticatedUser, useSiteConfig, useAppConfig } from './hooks';
|
|
18
|
+
export { default as LoginRedirect } from './LoginRedirect';
|
|
19
|
+
export { default as PageWrap } from './PageWrap';
|
|
20
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../runtime/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC","sourcesContent":["/**\n * #### Import members from **@openedx/frontend-base** React\n * The React module provides a variety of React components, hooks, and contexts for use in an\n * application.\n *\n * @module React\n */\n\nexport { default as CurrentAppContext } from './CurrentAppContext';\nexport { default as CurrentAppProvider } from './CurrentAppProvider';\nexport { default as SiteContext } from './SiteContext';\nexport { default as SiteProvider } from './SiteProvider';\nexport { default as AuthenticatedPageRoute } from './AuthenticatedPageRoute';\nexport { default as Divider } from './Divider';\nexport { default as ErrorBoundary } from './ErrorBoundary';\nexport { default as ErrorPage } from './ErrorPage';\nexport { default as NotFoundPage } from './NotFoundPage';\nexport { useSiteEvent, useAuthenticatedUser, useSiteConfig, useAppConfig } from './hooks';\nexport { default as LoginRedirect } from './LoginRedirect';\nexport { default as PageWrap } from './PageWrap';\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function themeReducer(state: any, action: any): any;
|
|
2
|
+
export declare const themeActions: {
|
|
3
|
+
setThemeVariant: (payload: any) => {
|
|
4
|
+
type: string;
|
|
5
|
+
payload: any;
|
|
6
|
+
};
|
|
7
|
+
setThemeLoaded: (payload: any) => {
|
|
8
|
+
type: string;
|
|
9
|
+
payload: any;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { SET_THEME_VARIANT, SET_IS_THEME_LOADED, } from './constants';
|
|
2
|
+
export function themeReducer(state, action) {
|
|
3
|
+
switch (action.type) {
|
|
4
|
+
case SET_THEME_VARIANT: {
|
|
5
|
+
const requestedThemeVariant = action.payload;
|
|
6
|
+
return Object.assign(Object.assign({}, state), { themeVariant: requestedThemeVariant });
|
|
7
|
+
}
|
|
8
|
+
case SET_IS_THEME_LOADED: {
|
|
9
|
+
const requestedIsThemeLoaded = action.payload;
|
|
10
|
+
return Object.assign(Object.assign({}, state), { isThemeLoaded: requestedIsThemeLoaded });
|
|
11
|
+
}
|
|
12
|
+
default:
|
|
13
|
+
return state;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
const setThemeVariant = (payload) => ({
|
|
17
|
+
type: SET_THEME_VARIANT,
|
|
18
|
+
payload,
|
|
19
|
+
});
|
|
20
|
+
const setThemeLoaded = (payload) => ({
|
|
21
|
+
type: SET_IS_THEME_LOADED,
|
|
22
|
+
payload,
|
|
23
|
+
});
|
|
24
|
+
export const themeActions = {
|
|
25
|
+
setThemeVariant,
|
|
26
|
+
setThemeLoaded,
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=reducers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reducers.js","sourceRoot":"","sources":["../../../runtime/react/reducers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,MAAM,UAAU,YAAY,CAAC,KAAK,EAAE,MAAM;IACxC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,MAAM,qBAAqB,GAAG,MAAM,CAAC,OAAO,CAAC;YAC7C,uCACK,KAAK,KACR,YAAY,EAAE,qBAAqB,IACnC;QACJ,CAAC;QACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,sBAAsB,GAAG,MAAM,CAAC,OAAO,CAAC;YAC9C,uCACK,KAAK,KACR,aAAa,EAAE,sBAAsB,IACrC;QACJ,CAAC;QACD;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACpC,IAAI,EAAE,iBAAiB;IACvB,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,EAAE,mBAAmB;IACzB,OAAO;CACR,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,eAAe;IACf,cAAc;CACf,CAAC","sourcesContent":["import {\n SET_THEME_VARIANT,\n SET_IS_THEME_LOADED,\n} from './constants';\n\nexport function themeReducer(state, action) {\n switch (action.type) {\n case SET_THEME_VARIANT: {\n const requestedThemeVariant = action.payload;\n return {\n ...state,\n themeVariant: requestedThemeVariant,\n };\n }\n case SET_IS_THEME_LOADED: {\n const requestedIsThemeLoaded = action.payload;\n return {\n ...state,\n isThemeLoaded: requestedIsThemeLoaded,\n };\n }\n default:\n return state;\n }\n}\n\nconst setThemeVariant = (payload) => ({\n type: SET_THEME_VARIANT,\n payload,\n});\n\nconst setThemeLoaded = (payload) => ({\n type: SET_IS_THEME_LOADED,\n payload,\n});\n\nexport const themeActions = {\n setThemeVariant,\n setThemeLoaded,\n};\n"]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { redirect } from 'react-router';
|
|
2
|
+
import { getAuthenticatedUser, getLoginRedirectUrl } from '../auth';
|
|
3
|
+
import { getUrlByRouteRole } from './utils';
|
|
4
|
+
const loginRole = 'org.openedx.frontend.role.login';
|
|
5
|
+
export default function authenticatedLoader({ request }) {
|
|
6
|
+
const authenticatedUser = getAuthenticatedUser();
|
|
7
|
+
if (authenticatedUser !== null) {
|
|
8
|
+
return null;
|
|
9
|
+
}
|
|
10
|
+
const requestUrl = new URL(request.url);
|
|
11
|
+
const loginUrl = getUrlByRouteRole(loginRole);
|
|
12
|
+
// Internal login route → SPA redirect with a relative ?next so the login
|
|
13
|
+
// page can navigate() back without a full page refresh.
|
|
14
|
+
if (loginUrl === null || loginUrl === void 0 ? void 0 : loginUrl.startsWith('/')) {
|
|
15
|
+
return redirect(`${loginUrl}?next=${encodeURIComponent(requestUrl.pathname)}`);
|
|
16
|
+
}
|
|
17
|
+
// No login role found (or it's defined as an external route, which is not
|
|
18
|
+
// supported). Use loginUrl from siteConfig and the full href for the return
|
|
19
|
+
// path so the login service redirects back to the correct origin after
|
|
20
|
+
// login.
|
|
21
|
+
const fullLoginUrl = getLoginRedirectUrl(requestUrl.href);
|
|
22
|
+
// Return a never-resolving promise so React Router keeps waiting (and does
|
|
23
|
+
// not attempt to render the route) while the browser navigates away.
|
|
24
|
+
global.location.assign(fullLoginUrl);
|
|
25
|
+
return new Promise(() => { });
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=authenticatedLoader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authenticatedLoader.js","sourceRoot":"","sources":["../../../runtime/routing/authenticatedLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAE5C,MAAM,SAAS,GAAG,iCAAiC,CAAC;AAEpD,MAAM,CAAC,OAAO,UAAU,mBAAmB,CAAC,EAAE,OAAO,EAAsB;IACzE,MAAM,iBAAiB,GAAG,oBAAoB,EAAE,CAAC;IACjD,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;IAE9C,yEAAyE;IACzE,wDAAwD;IACxD,IAAI,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC9B,OAAO,QAAQ,CAAC,GAAG,QAAQ,SAAS,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjF,CAAC;IAED,0EAA0E;IAC1E,4EAA4E;IAC5E,uEAAuE;IACvE,SAAS;IACT,MAAM,YAAY,GAAG,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAE1D,2EAA2E;IAC3E,qEAAqE;IACrE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACrC,OAAO,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAChC,CAAC","sourcesContent":["import { LoaderFunctionArgs, redirect } from 'react-router';\nimport { getAuthenticatedUser, getLoginRedirectUrl } from '../auth';\nimport { getUrlByRouteRole } from './utils';\n\nconst loginRole = 'org.openedx.frontend.role.login';\n\nexport default function authenticatedLoader({ request }: LoaderFunctionArgs) {\n const authenticatedUser = getAuthenticatedUser();\n if (authenticatedUser !== null) {\n return null;\n }\n\n const requestUrl = new URL(request.url);\n const loginUrl = getUrlByRouteRole(loginRole);\n\n // Internal login route → SPA redirect with a relative ?next so the login\n // page can navigate() back without a full page refresh.\n if (loginUrl?.startsWith('/')) {\n return redirect(`${loginUrl}?next=${encodeURIComponent(requestUrl.pathname)}`);\n }\n\n // No login role found (or it's defined as an external route, which is not\n // supported). Use loginUrl from siteConfig and the full href for the return\n // path so the login service redirects back to the correct origin after\n // login.\n const fullLoginUrl = getLoginRedirectUrl(requestUrl.href);\n\n // Return a never-resolving promise so React Router keeps waiting (and does\n // not attempt to render the route) while the browser navigates away.\n global.location.assign(fullLoginUrl);\n return new Promise(() => { });\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../runtime/routing/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,cAAc,SAAS,CAAC","sourcesContent":["export { default as authenticatedLoader } from './authenticatedLoader';\nexport * from './utils';\n"]}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { getSiteConfig } from '../config';
|
|
2
|
+
function findRoleInRoutes(routes, role, prefix = '') {
|
|
3
|
+
var _a, _b, _c;
|
|
4
|
+
for (const route of routes) {
|
|
5
|
+
const segment = (_a = route.path) !== null && _a !== void 0 ? _a : '';
|
|
6
|
+
const fullPath = segment.startsWith('/') ? segment : `${prefix}/${segment}`.replace(/\/+/g, '/');
|
|
7
|
+
if ((_c = (_b = route.handle) === null || _b === void 0 ? void 0 : _b.roles) === null || _c === void 0 ? void 0 : _c.includes(role)) {
|
|
8
|
+
return fullPath || null;
|
|
9
|
+
}
|
|
10
|
+
if (Array.isArray(route.children)) {
|
|
11
|
+
const found = findRoleInRoutes(route.children, role, fullPath);
|
|
12
|
+
if (found !== null) {
|
|
13
|
+
return found;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
export function getUrlByRouteRole(role) {
|
|
20
|
+
const { apps, externalRoutes } = getSiteConfig();
|
|
21
|
+
if (apps) {
|
|
22
|
+
for (const app of apps) {
|
|
23
|
+
if (Array.isArray(app.routes)) {
|
|
24
|
+
const found = findRoleInRoutes(app.routes, role);
|
|
25
|
+
if (found !== null) {
|
|
26
|
+
return found;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (externalRoutes) {
|
|
32
|
+
for (const externalRoute of externalRoutes) {
|
|
33
|
+
if (externalRoute.role === role) {
|
|
34
|
+
return externalRoute.url;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
export function isRoleRouteObject(match) {
|
|
41
|
+
return match.handle !== undefined && 'roles' in match.handle;
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../runtime/routing/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,SAAS,gBAAgB,CAAC,MAAqB,EAAE,IAAY,EAAE,MAAM,GAAG,EAAE;;IACxE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,MAAA,KAAK,CAAC,IAAI,mCAAI,EAAE,CAAC;QACjC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,IAAI,OAAO,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAEjG,IAAI,MAAA,MAAA,KAAK,CAAC,MAAM,0CAAE,KAAK,0CAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,OAAO,QAAQ,IAAI,IAAI,CAAC;QAC1B,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;YAC/D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,OAAO,KAAK,CAAC;YACf,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,aAAa,EAAE,CAAC;IAEjD,IAAI,IAAI,EAAE,CAAC;QACT,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9B,MAAM,KAAK,GAAG,gBAAgB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACjD,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBACnB,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,cAAc,EAAE,CAAC;QACnB,KAAK,MAAM,aAAa,IAAI,cAAc,EAAE,CAAC;YAC3C,IAAI,aAAa,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBAChC,OAAO,aAAa,CAAC,GAAG,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAkB;IAClD,OAAO,KAAK,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,CAAC,MAAM,CAAC;AAC/D,CAAC","sourcesContent":["import { RouteObject } from 'react-router';\n\nimport { RoleRouteObject } from '../../types';\nimport { getSiteConfig } from '../config';\n\nfunction findRoleInRoutes(routes: RouteObject[], role: string, prefix = ''): string | null {\n for (const route of routes) {\n const segment = route.path ?? '';\n const fullPath = segment.startsWith('/') ? segment : `${prefix}/${segment}`.replace(/\\/+/g, '/');\n\n if (route.handle?.roles?.includes(role)) {\n return fullPath || null;\n }\n\n if (Array.isArray(route.children)) {\n const found = findRoleInRoutes(route.children, role, fullPath);\n if (found !== null) {\n return found;\n }\n }\n }\n return null;\n}\n\nexport function getUrlByRouteRole(role: string) {\n const { apps, externalRoutes } = getSiteConfig();\n\n if (apps) {\n for (const app of apps) {\n if (Array.isArray(app.routes)) {\n const found = findRoleInRoutes(app.routes, role);\n if (found !== null) {\n return found;\n }\n }\n }\n }\n\n if (externalRoutes) {\n for (const externalRoute of externalRoutes) {\n if (externalRoute.role === role) {\n return externalRoute.url;\n }\n }\n }\n\n return null;\n}\n\nexport function isRoleRouteObject(match: RouteObject): match is RoleRouteObject {\n return match.handle !== undefined && 'roles' in match.handle;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function loadExternalScripts(): void;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { getAppConfig, getSiteConfig } from '../config';
|
|
2
|
+
export function loadExternalScripts() {
|
|
3
|
+
var _a;
|
|
4
|
+
const apps = (_a = getSiteConfig().apps) !== null && _a !== void 0 ? _a : [];
|
|
5
|
+
apps.forEach(app => {
|
|
6
|
+
var _a, _b;
|
|
7
|
+
const config = (_a = getAppConfig(app.appId)) !== null && _a !== void 0 ? _a : {};
|
|
8
|
+
((_b = app.externalScripts) !== null && _b !== void 0 ? _b : []).forEach(ExternalScript => {
|
|
9
|
+
const script = new ExternalScript({ config });
|
|
10
|
+
script.loadScript();
|
|
11
|
+
});
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../runtime/scripts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAExD,MAAM,UAAU,mBAAmB;;IACjC,MAAM,IAAI,GAAG,MAAA,aAAa,EAAE,CAAC,IAAI,mCAAI,EAAE,CAAC;IACxC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;;QACjB,MAAM,MAAM,GAAG,MAAA,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,mCAAI,EAAE,CAAC;QAC7C,CAAC,MAAA,GAAG,CAAC,eAAe,mCAAI,EAAE,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE;YACnD,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC9C,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC","sourcesContent":["import { getAppConfig, getSiteConfig } from '../config';\n\nexport function loadExternalScripts() {\n const apps = getSiteConfig().apps ?? [];\n apps.forEach(app => {\n const config = getAppConfig(app.appId) ?? {};\n (app.externalScripts ?? []).forEach(ExternalScript => {\n const script = new ExternalScript({ config });\n script.loadScript();\n });\n });\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import '@testing-library/jest-dom';
|
|
2
|
+
import siteConfig from 'site.config';
|
|
3
|
+
import { mergeSiteConfig } from './config';
|
|
4
|
+
jest.mock('universal-cookie', () => {
|
|
5
|
+
const mCookie = {
|
|
6
|
+
get: jest.fn(),
|
|
7
|
+
remove: jest.fn(),
|
|
8
|
+
};
|
|
9
|
+
return jest.fn(() => mCookie);
|
|
10
|
+
});
|
|
11
|
+
mergeSiteConfig(siteConfig);
|
|
12
|
+
//# sourceMappingURL=setupTest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setupTest.js","sourceRoot":"","sources":["../../runtime/setupTest.js"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC;AAEnC,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE;IACjC,MAAM,OAAO,GAAG;QACd,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE;QACd,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;KAClB,CAAC;IACF,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC,CAAC,CAAC;AAEH,eAAe,CAAC,UAAU,CAAC,CAAC","sourcesContent":["import '@testing-library/jest-dom';\n\nimport siteConfig from 'site.config';\nimport { mergeSiteConfig } from './config';\n\njest.mock('universal-cookie', () => {\n const mCookie = {\n get: jest.fn(),\n remove: jest.fn(),\n };\n return jest.fn(() => mCookie);\n});\n\nmergeSiteConfig(siteConfig);\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ComponentType, ReactNode } from 'react';
|
|
2
|
+
interface SlotProps {
|
|
3
|
+
id: string;
|
|
4
|
+
idAliases?: string[];
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
layout?: ComponentType | ReactNode;
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
}
|
|
9
|
+
declare function Slot({ id, idAliases, children, layout, ...props }: SlotProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare const _default: import("react").MemoExoticComponent<typeof Slot>;
|
|
11
|
+
export default _default;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
import { createElement, isValidElement, memo } from 'react';
|
|
14
|
+
import DefaultSlotLayout from './layout/DefaultSlotLayout';
|
|
15
|
+
import { useLayoutForSlotId } from './layout/hooks';
|
|
16
|
+
import SlotContext from './SlotContext';
|
|
17
|
+
import { useSlotContext } from './hooks';
|
|
18
|
+
function SlotRenderer({ layout }) {
|
|
19
|
+
const { id } = useSlotContext();
|
|
20
|
+
let layoutElement = layout;
|
|
21
|
+
const overrideLayout = useLayoutForSlotId(id);
|
|
22
|
+
// Weed out any ReactNode types that aren't actually JSX.
|
|
23
|
+
if (overrideLayout && overrideLayout !== null && overrideLayout !== undefined && typeof overrideLayout !== 'boolean') {
|
|
24
|
+
layoutElement = overrideLayout;
|
|
25
|
+
}
|
|
26
|
+
if (!isValidElement(layoutElement)) {
|
|
27
|
+
layoutElement = createElement(layoutElement);
|
|
28
|
+
}
|
|
29
|
+
return _jsx(_Fragment, { children: layoutElement });
|
|
30
|
+
}
|
|
31
|
+
function Slot(_a) {
|
|
32
|
+
var { id, idAliases, children, layout = DefaultSlotLayout } = _a, props = __rest(_a, ["id", "idAliases", "children", "layout"]);
|
|
33
|
+
return (_jsx(SlotContext.Provider, { value: Object.assign({ id, idAliases, children }, props), children: _jsx(SlotRenderer, { layout: layout }) }));
|
|
34
|
+
}
|
|
35
|
+
/* memo so parent re-renders don't cascade through Slot when props are shallow-equal. */
|
|
36
|
+
export default memo(Slot);
|
|
37
|
+
//# sourceMappingURL=Slot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Slot.js","sourceRoot":"","sources":["../../../runtime/slots/Slot.tsx"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAiB,aAAa,EAAE,cAAc,EAAE,IAAI,EAAa,MAAM,OAAO,CAAC;AACtF,OAAO,iBAAiB,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAUzC,SAAS,YAAY,CAAC,EAAE,MAAM,EAAyC;IACrE,MAAM,EAAE,EAAE,EAAE,GAAG,cAAc,EAAE,CAAC;IAChC,IAAI,aAAa,GAA8B,MAAM,CAAC;IAEtD,MAAM,cAAc,GAAG,kBAAkB,CAAC,EAAE,CAAC,CAAC;IAE9C,yDAAyD;IACzD,IAAI,cAAc,IAAI,cAAc,KAAK,IAAI,IAAI,cAAc,KAAK,SAAS,IAAI,OAAO,cAAc,KAAK,SAAS,EAAE,CAAC;QACrH,aAAa,GAAG,cAAc,CAAC;IACjC,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,CAAC;QACnC,aAAa,GAAG,aAAa,CAAC,aAA8B,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,4BAAG,aAAa,GAAI,CAAC;AAC9B,CAAC;AAED,SAAS,IAAI,CAAC,EAA4E;QAA5E,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,iBAAiB,OAAuB,EAAlB,KAAK,cAA/D,yCAAiE,CAAF;IAC3E,OAAO,CACL,KAAC,WAAW,CAAC,QAAQ,IAAC,KAAK,kBAAI,EAAE,EAAE,SAAS,EAAE,QAAQ,IAAK,KAAK,aAC9D,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,GAAI,GACX,CACxB,CAAC;AACJ,CAAC;AAED,wFAAwF;AACxF,eAAe,IAAI,CAAC,IAAI,CAAC,CAAC","sourcesContent":["import { ComponentType, createElement, isValidElement, memo, ReactNode } from 'react';\nimport DefaultSlotLayout from './layout/DefaultSlotLayout';\nimport { useLayoutForSlotId } from './layout/hooks';\nimport SlotContext from './SlotContext';\nimport { useSlotContext } from './hooks';\n\ninterface SlotProps {\n id: string,\n idAliases?: string[],\n children?: ReactNode,\n layout?: ComponentType | ReactNode,\n [key: string]: unknown,\n}\n\nfunction SlotRenderer({ layout }: { layout: ComponentType | ReactNode }) {\n const { id } = useSlotContext();\n let layoutElement: ComponentType | ReactNode = layout;\n\n const overrideLayout = useLayoutForSlotId(id);\n\n // Weed out any ReactNode types that aren't actually JSX.\n if (overrideLayout && overrideLayout !== null && overrideLayout !== undefined && typeof overrideLayout !== 'boolean') {\n layoutElement = overrideLayout;\n }\n\n if (!isValidElement(layoutElement)) {\n layoutElement = createElement(layoutElement as ComponentType);\n }\n\n return <>{layoutElement}</>;\n}\n\nfunction Slot({ id, idAliases, children, layout = DefaultSlotLayout, ...props }: SlotProps) {\n return (\n <SlotContext.Provider value={{ id, idAliases, children, ...props }}>\n <SlotRenderer layout={layout} />\n </SlotContext.Provider>\n );\n}\n\n/* memo so parent re-renders don't cascade through Slot when props are shallow-equal. */\nexport default memo(Slot);\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SlotContext.js","sourceRoot":"","sources":["../../../runtime/slots/SlotContext.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAa,MAAM,OAAO,CAAC;AAEjD,MAAM,WAAW,GAAG,aAAa,CAAqF;IACpH,EAAE,EAAE,EAAE;IACN,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH,eAAe,WAAW,CAAC","sourcesContent":["import { createContext, ReactNode } from 'react';\n\nconst SlotContext = createContext<{ id: string, idAliases?: string[], children?: ReactNode, [key: string]: unknown }>({\n id: '',\n children: null,\n});\n\nexport default SlotContext;\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves the operations registered for a given slot id (plus any aliases),
|
|
3
|
+
* prepended with a default-content operation built from the slot's children.
|
|
4
|
+
*/
|
|
5
|
+
export declare function useSlotOperations(id: string): import("./types").SlotOperation[];
|
|
6
|
+
export declare function useSlotContext(): {
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
id: string;
|
|
9
|
+
idAliases?: string[];
|
|
10
|
+
children?: import("react").ReactNode;
|
|
11
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useContext, useMemo } from 'react';
|
|
2
|
+
import { getSlotOperations } from './utils';
|
|
3
|
+
import SlotContext from './SlotContext';
|
|
4
|
+
import { createWidgetAppendOperation } from './widget';
|
|
5
|
+
/**
|
|
6
|
+
* Resolves the operations registered for a given slot id (plus any aliases),
|
|
7
|
+
* prepended with a default-content operation built from the slot's children.
|
|
8
|
+
*/
|
|
9
|
+
export function useSlotOperations(id) {
|
|
10
|
+
const { children, idAliases } = useSlotContext();
|
|
11
|
+
return useMemo(() => {
|
|
12
|
+
const defaultOperation = createWidgetAppendOperation('defaultContent', id, children);
|
|
13
|
+
return getSlotOperations([id, ...(idAliases !== null && idAliases !== void 0 ? idAliases : [])], defaultOperation);
|
|
14
|
+
}, [id, children, idAliases]);
|
|
15
|
+
}
|
|
16
|
+
export function useSlotContext() {
|
|
17
|
+
return useContext(SlotContext);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../runtime/slots/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,WAAW,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAEvD;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,cAAc,EAAE,CAAC;IAEjD,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,MAAM,gBAAgB,GAAG,2BAA2B,CAAC,gBAAgB,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;QACrF,OAAO,iBAAiB,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC,CAAC,EAAE,gBAAgB,CAAC,CAAC;IACzE,CAAC,EAAE,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,OAAO,UAAU,CAAC,WAAW,CAAC,CAAC;AACjC,CAAC","sourcesContent":["import { useContext, useMemo } from 'react';\n\nimport { getSlotOperations } from './utils';\nimport SlotContext from './SlotContext';\nimport { createWidgetAppendOperation } from './widget';\n\n/**\n * Resolves the operations registered for a given slot id (plus any aliases),\n * prepended with a default-content operation built from the slot's children.\n */\nexport function useSlotOperations(id: string) {\n const { children, idAliases } = useSlotContext();\n\n return useMemo(() => {\n const defaultOperation = createWidgetAppendOperation('defaultContent', id, children);\n return getSlotOperations([id, ...(idAliases ?? [])], defaultOperation);\n }, [id, children, idAliases]);\n}\n\nexport function useSlotContext() {\n return useContext(SlotContext);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../runtime/slots/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AAExB,cAAc,UAAU,CAAC;AACzB,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,QAAQ,CAAC;AACzC,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,eAAe,CAAC;AACvD,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC","sourcesContent":["export * from './hooks';\nexport type * from './types';\nexport * from './layout';\nexport { default as Slot } from './Slot';\nexport { default as SlotContext } from './SlotContext';\nexport * from './utils';\nexport * from './widget';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function DefaultSlotLayout(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useWidgets } from '../widget/hooks';
|
|
3
|
+
export default function DefaultSlotLayout() {
|
|
4
|
+
const widgets = useWidgets();
|
|
5
|
+
return (_jsx(_Fragment, { children: widgets }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=DefaultSlotLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultSlotLayout.js","sourceRoot":"","sources":["../../../../runtime/slots/layout/DefaultSlotLayout.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,CAAC,OAAO,UAAU,iBAAiB;IACvC,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAE7B,OAAO,CACL,4BAAG,OAAO,GAAI,CACf,CAAC;AACJ,CAAC","sourcesContent":["import { useWidgets } from '../widget/hooks';\n\nexport default function DefaultSlotLayout() {\n const widgets = useWidgets();\n\n return (\n <>{widgets}</>\n );\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ComponentType, ReactNode } from 'react';
|
|
2
|
+
export declare function useLayoutForSlotId(id: string): ReactNode | ComponentType;
|
|
3
|
+
/**
|
|
4
|
+
* useLayoutOptions iterates through the slot's operations to find any which are "layout
|
|
5
|
+
* options" operations. It merges these into a single object and returns them - operations are
|
|
6
|
+
* merged in declaration order, meaning last one in wins.
|
|
7
|
+
*/
|
|
8
|
+
export declare function useLayoutOptions(): Record<string, unknown>;
|
|
9
|
+
export declare function useLayoutOptionsForId(id: string): Record<string, unknown>;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import useActiveRoles from '../../react/hooks/useActiveRoles';
|
|
3
|
+
import { useSlotContext, useSlotOperations } from '../hooks';
|
|
4
|
+
import { isSlotOperationConditionSatisfied } from '../utils';
|
|
5
|
+
import { isLayoutOperation, isLayoutOptionsOperation, isLayoutReplaceOperation } from './utils';
|
|
6
|
+
function hasLayoutComponentProps(operation) {
|
|
7
|
+
return isLayoutOperation(operation) && 'component' in operation;
|
|
8
|
+
}
|
|
9
|
+
function hasLayoutElementProps(operation) {
|
|
10
|
+
return isLayoutOperation(operation) && 'element' in operation;
|
|
11
|
+
}
|
|
12
|
+
export function useLayoutForSlotId(id) {
|
|
13
|
+
const operations = useSlotOperations(id);
|
|
14
|
+
const activeRoles = useActiveRoles();
|
|
15
|
+
return useMemo(() => {
|
|
16
|
+
let layoutElement = null;
|
|
17
|
+
for (const operation of operations) {
|
|
18
|
+
if (isSlotOperationConditionSatisfied(operation, activeRoles) && isLayoutReplaceOperation(operation)) {
|
|
19
|
+
if (hasLayoutComponentProps(operation)) {
|
|
20
|
+
layoutElement = operation.component;
|
|
21
|
+
}
|
|
22
|
+
else if (hasLayoutElementProps(operation)) {
|
|
23
|
+
layoutElement = operation.element;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return layoutElement;
|
|
28
|
+
}, [operations, activeRoles]);
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* useLayoutOptions iterates through the slot's operations to find any which are "layout
|
|
32
|
+
* options" operations. It merges these into a single object and returns them - operations are
|
|
33
|
+
* merged in declaration order, meaning last one in wins.
|
|
34
|
+
*/
|
|
35
|
+
export function useLayoutOptions() {
|
|
36
|
+
const { id } = useSlotContext();
|
|
37
|
+
return useLayoutOptionsForId(id);
|
|
38
|
+
}
|
|
39
|
+
export function useLayoutOptionsForId(id) {
|
|
40
|
+
const operations = useSlotOperations(id);
|
|
41
|
+
const activeRoles = useActiveRoles();
|
|
42
|
+
return useMemo(() => {
|
|
43
|
+
let options = {};
|
|
44
|
+
for (const operation of operations) {
|
|
45
|
+
if (isSlotOperationConditionSatisfied(operation, activeRoles) && isLayoutOptionsOperation(operation)) {
|
|
46
|
+
options = Object.assign(Object.assign({}, options), operation.options);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return options;
|
|
50
|
+
}, [operations, activeRoles]);
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=hooks.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../../../runtime/slots/layout/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,OAAO,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,cAAc,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,iCAAiC,EAAE,MAAM,UAAU,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAEhG,SAAS,uBAAuB,CAAC,SAA0B;IACzD,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,WAAW,IAAI,SAAS,CAAC;AAClE,CAAC;AAED,SAAS,qBAAqB,CAAC,SAA0B;IACvD,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,SAAS,IAAI,SAAS,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAC3C,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO,OAAO,CAA4B,GAAG,EAAE;QAC7C,IAAI,aAAa,GAA8B,IAAI,CAAC;QACpD,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,iCAAiC,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,wBAAwB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrG,IAAI,uBAAuB,CAAC,SAAS,CAAC,EAAE,CAAC;oBACvC,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC;gBACtC,CAAC;qBAAM,IAAI,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC5C,aAAa,GAAG,SAAS,CAAC,OAAO,CAAC;gBACpC,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,aAAa,CAAC;IACvB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB;IAC9B,MAAM,EAAE,EAAE,EAAE,GAAG,cAAc,EAAE,CAAC;IAChC,OAAO,qBAAqB,CAAC,EAAE,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,EAAU;IAC9C,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IACzC,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO,OAAO,CAAC,GAAG,EAAE;QAClB,IAAI,OAAO,GAA4B,EAAE,CAAC;QAC1C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;YACnC,IAAI,iCAAiC,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,wBAAwB,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrG,OAAO,mCAAQ,OAAO,GAAK,SAAS,CAAC,OAAO,CAAE,CAAC;YACjD,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;AAChC,CAAC","sourcesContent":["import { ComponentType, ReactNode, useMemo } from 'react';\nimport useActiveRoles from '../../react/hooks/useActiveRoles';\nimport { useSlotContext, useSlotOperations } from '../hooks';\nimport { isSlotOperationConditionSatisfied } from '../utils';\nimport { LayoutComponentProps, LayoutElementProps, LayoutOperation } from './types';\nimport { isLayoutOperation, isLayoutOptionsOperation, isLayoutReplaceOperation } from './utils';\n\nfunction hasLayoutComponentProps(operation: LayoutOperation): operation is (LayoutOperation & LayoutComponentProps) {\n return isLayoutOperation(operation) && 'component' in operation;\n}\n\nfunction hasLayoutElementProps(operation: LayoutOperation): operation is (LayoutOperation & LayoutElementProps) {\n return isLayoutOperation(operation) && 'element' in operation;\n}\n\nexport function useLayoutForSlotId(id: string) {\n const operations = useSlotOperations(id);\n const activeRoles = useActiveRoles();\n\n return useMemo<ReactNode | ComponentType>(() => {\n let layoutElement: ReactNode | ComponentType = null;\n for (const operation of operations) {\n if (isSlotOperationConditionSatisfied(operation, activeRoles) && isLayoutReplaceOperation(operation)) {\n if (hasLayoutComponentProps(operation)) {\n layoutElement = operation.component;\n } else if (hasLayoutElementProps(operation)) {\n layoutElement = operation.element;\n }\n }\n }\n return layoutElement;\n }, [operations, activeRoles]);\n}\n\n/**\n * useLayoutOptions iterates through the slot's operations to find any which are \"layout\n * options\" operations. It merges these into a single object and returns them - operations are\n * merged in declaration order, meaning last one in wins.\n */\nexport function useLayoutOptions() {\n const { id } = useSlotContext();\n return useLayoutOptionsForId(id);\n}\n\nexport function useLayoutOptionsForId(id: string) {\n const operations = useSlotOperations(id);\n const activeRoles = useActiveRoles();\n\n return useMemo(() => {\n let options: Record<string, unknown> = {};\n for (const operation of operations) {\n if (isSlotOperationConditionSatisfied(operation, activeRoles) && isLayoutOptionsOperation(operation)) {\n options = { ...options, ...operation.options };\n }\n }\n return options;\n }, [operations, activeRoles]);\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../runtime/slots/layout/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACnE,cAAc,SAAS,CAAC;AAExB,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAC/C,cAAc,SAAS,CAAC","sourcesContent":["export { default as DefaultSlotLayout } from './DefaultSlotLayout';\nexport * from './hooks';\nexport type * from './types';\nexport { LayoutOperationTypes } from './types';\nexport * from './utils';\n"]}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base UI Layout Operations
|
|
3
|
+
*
|
|
4
|
+
* "Layout" operations are a sub-type of UI operations which affect the layout component of a UI
|
|
5
|
+
* slot. They have no effect on the widgets loaded into a UI slot.
|
|
6
|
+
*/
|
|
7
|
+
import { ReactNode } from 'react';
|
|
8
|
+
import { BaseSlotOperation } from '../types';
|
|
9
|
+
export declare enum LayoutOperationTypes {
|
|
10
|
+
OPTIONS = "layoutOptions",
|
|
11
|
+
REPLACE = "layoutReplace"
|
|
12
|
+
}
|
|
13
|
+
export interface BaseLayoutOperation extends BaseSlotOperation {
|
|
14
|
+
op: LayoutOperationTypes;
|
|
15
|
+
}
|
|
16
|
+
export type LayoutOptionsOperation = BaseLayoutOperation & {
|
|
17
|
+
op: LayoutOperationTypes.OPTIONS;
|
|
18
|
+
options: Record<string, unknown>;
|
|
19
|
+
};
|
|
20
|
+
export interface LayoutComponentProps {
|
|
21
|
+
component: React.ComponentType;
|
|
22
|
+
}
|
|
23
|
+
export interface LayoutElementProps {
|
|
24
|
+
element: ReactNode;
|
|
25
|
+
}
|
|
26
|
+
export type LayoutRendererProps = (LayoutComponentProps | LayoutElementProps);
|
|
27
|
+
export type LayoutReplaceOperation = BaseLayoutOperation & LayoutRendererProps & {
|
|
28
|
+
op: LayoutOperationTypes.REPLACE;
|
|
29
|
+
};
|
|
30
|
+
export type LayoutOperation = LayoutOptionsOperation | LayoutReplaceOperation;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Base UI Layout Operations
|
|
3
|
+
*
|
|
4
|
+
* "Layout" operations are a sub-type of UI operations which affect the layout component of a UI
|
|
5
|
+
* slot. They have no effect on the widgets loaded into a UI slot.
|
|
6
|
+
*/
|
|
7
|
+
export var LayoutOperationTypes;
|
|
8
|
+
(function (LayoutOperationTypes) {
|
|
9
|
+
LayoutOperationTypes["OPTIONS"] = "layoutOptions";
|
|
10
|
+
LayoutOperationTypes["REPLACE"] = "layoutReplace";
|
|
11
|
+
})(LayoutOperationTypes || (LayoutOperationTypes = {}));
|
|
12
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../runtime/slots/layout/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,MAAM,CAAN,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,iDAAyB,CAAA;IACzB,iDAAyB,CAAA;AAC3B,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,QAG/B","sourcesContent":["/**\n * Base UI Layout Operations\n *\n * \"Layout\" operations are a sub-type of UI operations which affect the layout component of a UI\n * slot. They have no effect on the widgets loaded into a UI slot.\n */\n\nimport { ReactNode } from 'react';\nimport { BaseSlotOperation } from '../types';\n\nexport enum LayoutOperationTypes {\n OPTIONS = 'layoutOptions',\n REPLACE = 'layoutReplace',\n}\n\nexport interface BaseLayoutOperation extends BaseSlotOperation {\n op: LayoutOperationTypes,\n}\n\n// Concrete UI Layout Operations\n\nexport type LayoutOptionsOperation = BaseLayoutOperation & {\n op: LayoutOperationTypes.OPTIONS,\n options: Record<string, unknown>,\n};\n\nexport interface LayoutComponentProps {\n component: React.ComponentType,\n}\n\nexport interface LayoutElementProps {\n element: ReactNode,\n}\n\nexport type LayoutRendererProps = (\n LayoutComponentProps | LayoutElementProps\n);\n\nexport type LayoutReplaceOperation = BaseLayoutOperation & LayoutRendererProps & {\n op: LayoutOperationTypes.REPLACE,\n};\n\n// Aggregate UI Layout Operations\n\nexport type LayoutOperation = LayoutOptionsOperation | LayoutReplaceOperation;\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { SlotOperation } from '../types';
|
|
2
|
+
import { LayoutOperation, LayoutOptionsOperation, LayoutReplaceOperation } from './types';
|
|
3
|
+
export declare function isLayoutOperation(operation: SlotOperation): operation is LayoutOperation;
|
|
4
|
+
export declare function isLayoutOptionsOperation(operation: SlotOperation): operation is LayoutOptionsOperation;
|
|
5
|
+
export declare function isLayoutReplaceOperation(operation: SlotOperation): operation is LayoutReplaceOperation;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { LayoutOperationTypes } from './types';
|
|
2
|
+
export function isLayoutOperation(operation) {
|
|
3
|
+
return Object.values(LayoutOperationTypes).includes(operation.op);
|
|
4
|
+
}
|
|
5
|
+
export function isLayoutOptionsOperation(operation) {
|
|
6
|
+
return isLayoutOperation(operation) && operation.op === LayoutOperationTypes.OPTIONS;
|
|
7
|
+
}
|
|
8
|
+
export function isLayoutReplaceOperation(operation) {
|
|
9
|
+
return isLayoutOperation(operation) && operation.op === LayoutOperationTypes.REPLACE;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../runtime/slots/layout/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,oBAAoB,EAAkD,MAAM,SAAS,CAAC;AAEhH,MAAM,UAAU,iBAAiB,CAAC,SAAwB;IACxD,OAAO,MAAM,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAA0B,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,SAAwB;IAC/D,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,EAAE,KAAK,oBAAoB,CAAC,OAAO,CAAC;AACvF,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,SAAwB;IAC/D,OAAO,iBAAiB,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,EAAE,KAAK,oBAAoB,CAAC,OAAO,CAAC;AACvF,CAAC","sourcesContent":["import { SlotOperation } from '../types';\nimport { LayoutOperation, LayoutOperationTypes, LayoutOptionsOperation, LayoutReplaceOperation } from './types';\n\nexport function isLayoutOperation(operation: SlotOperation): operation is LayoutOperation {\n return Object.values(LayoutOperationTypes).includes(operation.op as LayoutOperationTypes);\n}\n\nexport function isLayoutOptionsOperation(operation: SlotOperation): operation is LayoutOptionsOperation {\n return isLayoutOperation(operation) && operation.op === LayoutOperationTypes.OPTIONS;\n}\n\nexport function isLayoutReplaceOperation(operation: SlotOperation): operation is LayoutReplaceOperation {\n return isLayoutOperation(operation) && operation.op === LayoutOperationTypes.REPLACE;\n}\n"]}
|