@openedx/frontend-app-authn 1.0.0-alpha.4 → 1.0.0-alpha.6
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/dist/Main.d.ts +3 -0
- package/{src/Main.tsx → dist/Main.js} +4 -15
- package/dist/Main.js.map +1 -0
- package/dist/app.d.ts +3 -0
- package/dist/app.js +41 -0
- package/dist/app.js.map +1 -0
- package/dist/app.scss +2 -0
- package/dist/base-container/components/default-layout/LargeLayout.d.ts +2 -0
- package/dist/base-container/components/default-layout/LargeLayout.js +11 -0
- package/dist/base-container/components/default-layout/LargeLayout.js.map +1 -0
- package/dist/base-container/components/default-layout/MediumLayout.d.ts +2 -0
- package/dist/base-container/components/default-layout/MediumLayout.js +11 -0
- package/dist/base-container/components/default-layout/MediumLayout.js.map +1 -0
- package/dist/base-container/components/default-layout/SmallLayout.d.ts +2 -0
- package/dist/base-container/components/default-layout/SmallLayout.js +11 -0
- package/dist/base-container/components/default-layout/SmallLayout.js.map +1 -0
- package/dist/base-container/components/default-layout/index.d.ts +3 -0
- package/{src/base-container/components/default-layout/index.jsx → dist/base-container/components/default-layout/index.js} +1 -0
- package/dist/base-container/components/default-layout/index.js.map +1 -0
- package/dist/base-container/components/default-layout/messages.d.ts +13 -0
- package/dist/base-container/components/default-layout/messages.js +15 -0
- package/dist/base-container/components/default-layout/messages.js.map +1 -0
- package/dist/base-container/components/image-layout/ExtraSmallLayout.d.ts +2 -0
- package/dist/base-container/components/image-layout/ExtraSmallLayout.js +10 -0
- package/dist/base-container/components/image-layout/ExtraSmallLayout.js.map +1 -0
- package/dist/base-container/components/image-layout/LargeLayout.d.ts +2 -0
- package/dist/base-container/components/image-layout/LargeLayout.js +11 -0
- package/dist/base-container/components/image-layout/LargeLayout.js.map +1 -0
- package/dist/base-container/components/image-layout/MediumLayout.d.ts +2 -0
- package/dist/base-container/components/image-layout/MediumLayout.js +11 -0
- package/dist/base-container/components/image-layout/MediumLayout.js.map +1 -0
- package/dist/base-container/components/image-layout/SmallLayout.d.ts +2 -0
- package/dist/base-container/components/image-layout/SmallLayout.js +10 -0
- package/dist/base-container/components/image-layout/SmallLayout.js.map +1 -0
- package/dist/base-container/components/image-layout/index.d.ts +4 -0
- package/{src/base-container/components/image-layout/index.jsx → dist/base-container/components/image-layout/index.js} +1 -0
- package/dist/base-container/components/image-layout/index.js.map +1 -0
- package/dist/base-container/components/image-layout/messages.d.ts +13 -0
- package/dist/base-container/components/image-layout/messages.js +15 -0
- package/dist/base-container/components/image-layout/messages.js.map +1 -0
- package/dist/base-container/components/welcome-page-layout/LargeLayout.d.ts +10 -0
- package/dist/base-container/components/welcome-page-layout/LargeLayout.js +14 -0
- package/dist/base-container/components/welcome-page-layout/LargeLayout.js.map +1 -0
- package/dist/base-container/components/welcome-page-layout/MediumLayout.d.ts +10 -0
- package/dist/base-container/components/welcome-page-layout/MediumLayout.js +14 -0
- package/dist/base-container/components/welcome-page-layout/MediumLayout.js.map +1 -0
- package/dist/base-container/components/welcome-page-layout/SmallLayout.d.ts +10 -0
- package/dist/base-container/components/welcome-page-layout/SmallLayout.js +14 -0
- package/dist/base-container/components/welcome-page-layout/SmallLayout.js.map +1 -0
- package/dist/base-container/components/welcome-page-layout/index.d.ts +3 -0
- package/{src/base-container/components/welcome-page-layout/index.jsx → dist/base-container/components/welcome-page-layout/index.js} +1 -0
- package/dist/base-container/components/welcome-page-layout/index.js.map +1 -0
- package/dist/base-container/components/welcome-page-layout/messages.d.ts +18 -0
- package/dist/base-container/components/welcome-page-layout/messages.js +20 -0
- package/dist/base-container/components/welcome-page-layout/messages.js.map +1 -0
- package/dist/base-container/index.d.ts +20 -0
- package/dist/base-container/index.js +27 -0
- package/dist/base-container/index.js.map +1 -0
- package/dist/common-components/EmbeddedRegistrationRoute.d.ts +14 -0
- package/{src/common-components/EmbeddedRegistrationRoute.jsx → dist/common-components/EmbeddedRegistrationRoute.js} +9 -13
- package/dist/common-components/EmbeddedRegistrationRoute.js.map +1 -0
- package/dist/common-components/EnterpriseSSO.d.ts +29 -0
- package/dist/common-components/EnterpriseSSO.js +55 -0
- package/dist/common-components/EnterpriseSSO.js.map +1 -0
- package/dist/common-components/FormGroup.d.ts +60 -0
- package/dist/common-components/FormGroup.js +66 -0
- package/dist/common-components/FormGroup.js.map +1 -0
- package/dist/common-components/InstitutionLogistration.d.ts +34 -0
- package/dist/common-components/InstitutionLogistration.js +38 -0
- package/dist/common-components/InstitutionLogistration.js.map +1 -0
- package/dist/common-components/NotFoundPage.d.ts +2 -0
- package/dist/common-components/NotFoundPage.js +5 -0
- package/dist/common-components/NotFoundPage.js.map +1 -0
- package/dist/common-components/PasswordField.d.ts +39 -0
- package/dist/common-components/PasswordField.js +94 -0
- package/dist/common-components/PasswordField.js.map +1 -0
- package/dist/common-components/RedirectLogistration.d.ts +39 -0
- package/dist/common-components/RedirectLogistration.js +68 -0
- package/dist/common-components/RedirectLogistration.js.map +1 -0
- package/dist/common-components/RegisterFaIcons.d.ts +1 -0
- package/dist/common-components/RegisterFaIcons.js +6 -0
- package/dist/common-components/RegisterFaIcons.js.map +1 -0
- package/dist/common-components/SocialAuthProviders.d.ts +23 -0
- package/dist/common-components/SocialAuthProviders.js +42 -0
- package/dist/common-components/SocialAuthProviders.js.map +1 -0
- package/dist/common-components/ThirdPartyAuth.d.ts +42 -0
- package/dist/common-components/ThirdPartyAuth.js +56 -0
- package/dist/common-components/ThirdPartyAuth.js.map +1 -0
- package/dist/common-components/ThirdPartyAuthAlert.d.ts +15 -0
- package/dist/common-components/ThirdPartyAuthAlert.js +32 -0
- package/dist/common-components/ThirdPartyAuthAlert.js.map +1 -0
- package/dist/common-components/UnAuthOnlyRoute.d.ts +14 -0
- package/dist/common-components/UnAuthOnlyRoute.js +31 -0
- package/dist/common-components/UnAuthOnlyRoute.js.map +1 -0
- package/dist/common-components/data/actions.d.ts +26 -0
- package/{src → dist}/common-components/data/actions.js +8 -13
- package/dist/common-components/data/actions.js.map +1 -0
- package/dist/common-components/data/reducers.d.ts +62 -0
- package/dist/common-components/data/reducers.js +39 -0
- package/dist/common-components/data/reducers.js.map +1 -0
- package/dist/common-components/data/sagas.d.ts +12 -0
- package/dist/common-components/data/sagas.js +21 -0
- package/dist/common-components/data/sagas.js.map +1 -0
- package/dist/common-components/data/selectors.d.ts +98 -0
- package/dist/common-components/data/selectors.js +11 -0
- package/dist/common-components/data/selectors.js.map +1 -0
- package/dist/common-components/data/service.d.ts +5 -0
- package/dist/common-components/data/service.js +31 -0
- package/dist/common-components/data/service.js.map +1 -0
- package/dist/common-components/index.d.ts +13 -0
- package/{src/common-components/index.jsx → dist/common-components/index.js} +1 -0
- package/dist/common-components/index.js.map +1 -0
- package/dist/common-components/messages.d.ts +113 -0
- package/dist/common-components/messages.js +126 -0
- package/dist/common-components/messages.js.map +1 -0
- package/dist/constants.d.ts +1 -0
- package/{src/constants.ts → dist/constants.js} +1 -0
- package/dist/constants.js.map +1 -0
- package/dist/data/configureStore.d.ts +3 -0
- package/{src → dist}/data/configureStore.js +11 -20
- package/dist/data/configureStore.js.map +1 -0
- package/dist/data/constants.d.ts +24 -0
- package/{src → dist}/data/constants.js +4 -8
- package/dist/data/constants.js.map +1 -0
- package/dist/data/countries.d.ts +26 -0
- package/{src/data/countries.ts → dist/data/countries.js} +6 -9
- package/dist/data/countries.js.map +1 -0
- package/dist/data/oneTrust.d.ts +2 -0
- package/dist/data/oneTrust.js +3 -0
- package/dist/data/oneTrust.js.map +1 -0
- package/dist/data/reducers.d.ts +254 -0
- package/dist/data/reducers.js +17 -0
- package/dist/data/reducers.js.map +1 -0
- package/dist/data/sagas.d.ts +1 -0
- package/{src → dist}/data/sagas.js +9 -10
- package/dist/data/sagas.js.map +1 -0
- package/dist/data/utils/cookies.d.ts +1 -0
- package/dist/data/utils/cookies.js +12 -0
- package/dist/data/utils/cookies.js.map +1 -0
- package/dist/data/utils/dataUtils.d.ts +11 -0
- package/dist/data/utils/dataUtils.js +67 -0
- package/dist/data/utils/dataUtils.js.map +1 -0
- package/dist/data/utils/index.d.ts +3 -0
- package/dist/data/utils/index.js +4 -0
- package/dist/data/utils/index.js.map +1 -0
- package/dist/data/utils/reduxUtils.d.ts +15 -0
- package/dist/data/utils/reduxUtils.js +29 -0
- package/dist/data/utils/reduxUtils.js.map +1 -0
- package/dist/data/utils/useMobileResponsive.d.ts +7 -0
- package/dist/data/utils/useMobileResponsive.js +22 -0
- package/dist/data/utils/useMobileResponsive.js.map +1 -0
- package/dist/field-renderer/FieldRenderer.d.ts +34 -0
- package/dist/field-renderer/FieldRenderer.js +70 -0
- package/dist/field-renderer/FieldRenderer.js.map +1 -0
- package/dist/field-renderer/index.d.ts +1 -0
- package/{src/field-renderer/index.jsx → dist/field-renderer/index.js} +1 -0
- package/dist/field-renderer/index.js.map +1 -0
- package/dist/forgot-password/ForgotPasswordAlert.d.ts +16 -0
- package/dist/forgot-password/ForgotPasswordAlert.js +66 -0
- package/dist/forgot-password/ForgotPasswordAlert.js.map +1 -0
- package/dist/forgot-password/ForgotPasswordPage.d.ts +36 -0
- package/dist/forgot-password/ForgotPasswordPage.js +91 -0
- package/dist/forgot-password/ForgotPasswordPage.js.map +1 -0
- package/dist/forgot-password/data/actions.d.ts +30 -0
- package/{src → dist}/forgot-password/data/actions.js +10 -16
- package/dist/forgot-password/data/actions.js.map +1 -0
- package/dist/forgot-password/data/reducers.d.ts +13 -0
- package/dist/forgot-password/data/reducers.js +46 -0
- package/dist/forgot-password/data/reducers.js.map +1 -0
- package/dist/forgot-password/data/sagas.d.ts +4 -0
- package/dist/forgot-password/data/sagas.js +28 -0
- package/dist/forgot-password/data/sagas.js.map +1 -0
- package/dist/forgot-password/data/selectors.d.ts +23 -0
- package/dist/forgot-password/data/selectors.js +5 -0
- package/dist/forgot-password/data/selectors.js.map +1 -0
- package/dist/forgot-password/data/service.d.ts +1 -0
- package/dist/forgot-password/data/service.js +26 -0
- package/dist/forgot-password/data/service.js.map +1 -0
- package/dist/forgot-password/index.d.ts +5 -0
- package/{src → dist}/forgot-password/index.js +1 -0
- package/dist/forgot-password/index.js.map +1 -0
- package/dist/forgot-password/messages.d.ts +123 -0
- package/dist/forgot-password/messages.js +128 -0
- package/dist/forgot-password/messages.js.map +1 -0
- package/dist/i18n/index.d.ts +25 -0
- package/dist/i18n/index.js +26 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/login/AccountActivationMessage.d.ts +14 -0
- package/dist/login/AccountActivationMessage.js +49 -0
- package/dist/login/AccountActivationMessage.js.map +1 -0
- package/dist/login/ChangePasswordPrompt.d.ts +18 -0
- package/dist/login/ChangePasswordPrompt.js +45 -0
- package/dist/login/ChangePasswordPrompt.js.map +1 -0
- package/dist/login/LoginFailure.d.ts +25 -0
- package/dist/login/LoginFailure.js +109 -0
- package/dist/login/LoginFailure.js.map +1 -0
- package/dist/login/LoginPage.d.ts +10 -0
- package/dist/login/LoginPage.js +216 -0
- package/dist/login/LoginPage.js.map +1 -0
- package/dist/login/data/actions.d.ts +36 -0
- package/{src → dist}/login/data/actions.js +12 -19
- package/dist/login/data/actions.js.map +1 -0
- package/dist/login/data/constants.d.ts +17 -0
- package/{src → dist}/login/data/constants.js +4 -4
- package/dist/login/data/constants.js.map +1 -0
- package/dist/login/data/reducers.d.ts +82 -0
- package/dist/login/data/reducers.js +44 -0
- package/dist/login/data/reducers.js.map +1 -0
- package/dist/login/data/sagas.d.ts +10 -0
- package/dist/login/data/sagas.js +34 -0
- package/dist/login/data/sagas.js.map +1 -0
- package/dist/login/data/service.d.ts +4 -0
- package/dist/login/data/service.js +32 -0
- package/dist/login/data/service.js.map +1 -0
- package/dist/login/index.d.ts +4 -0
- package/{src → dist}/login/index.js +1 -1
- package/dist/login/index.js.map +1 -0
- package/dist/login/messages.d.ts +198 -0
- package/dist/login/messages.js +210 -0
- package/dist/login/messages.js.map +1 -0
- package/dist/logistration/Logistration.d.ts +32 -0
- package/dist/logistration/Logistration.js +106 -0
- package/dist/logistration/Logistration.js.map +1 -0
- package/dist/progressive-profiling/ProgressiveProfiling.d.ts +46 -0
- package/dist/progressive-profiling/ProgressiveProfiling.js +167 -0
- package/dist/progressive-profiling/ProgressiveProfiling.js.map +1 -0
- package/dist/progressive-profiling/ProgressiveProfilingPageModal.d.ts +13 -0
- package/dist/progressive-profiling/ProgressiveProfilingPageModal.js +24 -0
- package/dist/progressive-profiling/ProgressiveProfilingPageModal.js.map +1 -0
- package/dist/progressive-profiling/data/actions.d.ts +19 -0
- package/{src → dist}/progressive-profiling/data/actions.js +6 -10
- package/dist/progressive-profiling/data/actions.js.map +1 -0
- package/dist/progressive-profiling/data/reducers.d.ts +22 -0
- package/dist/progressive-profiling/data/reducers.js +23 -0
- package/dist/progressive-profiling/data/reducers.js.map +1 -0
- package/dist/progressive-profiling/data/sagas.d.ts +4 -0
- package/dist/progressive-profiling/data/sagas.js +17 -0
- package/dist/progressive-profiling/data/sagas.js.map +1 -0
- package/dist/progressive-profiling/data/selectors.d.ts +39 -0
- package/{src → dist}/progressive-profiling/data/selectors.js +4 -9
- package/dist/progressive-profiling/data/selectors.js.map +1 -0
- package/dist/progressive-profiling/data/service.d.ts +1 -0
- package/dist/progressive-profiling/data/service.js +23 -0
- package/dist/progressive-profiling/data/service.js.map +1 -0
- package/dist/progressive-profiling/index.d.ts +4 -0
- package/{src → dist}/progressive-profiling/index.js +1 -1
- package/dist/progressive-profiling/index.js.map +1 -0
- package/dist/progressive-profiling/messages.d.ts +53 -0
- package/dist/progressive-profiling/messages.js +57 -0
- package/dist/progressive-profiling/messages.js.map +1 -0
- package/dist/register/RegistrationFields/CountryField/CountryField.d.ts +38 -0
- package/dist/register/RegistrationFields/CountryField/CountryField.js +95 -0
- package/dist/register/RegistrationFields/CountryField/CountryField.js.map +1 -0
- package/dist/register/RegistrationFields/CountryField/validator.d.ts +8 -0
- package/dist/register/RegistrationFields/CountryField/validator.js +29 -0
- package/dist/register/RegistrationFields/CountryField/validator.js.map +1 -0
- package/dist/register/RegistrationFields/EmailField/EmailField.d.ts +30 -0
- package/dist/register/RegistrationFields/EmailField/EmailField.js +80 -0
- package/dist/register/RegistrationFields/EmailField/EmailField.js.map +1 -0
- package/dist/register/RegistrationFields/EmailField/constants.d.ts +3 -0
- package/dist/register/RegistrationFields/EmailField/constants.js +130 -0
- package/dist/register/RegistrationFields/EmailField/constants.js.map +1 -0
- package/dist/register/RegistrationFields/EmailField/validator.d.ts +17 -0
- package/dist/register/RegistrationFields/EmailField/validator.js +107 -0
- package/dist/register/RegistrationFields/EmailField/validator.js.map +1 -0
- package/dist/register/RegistrationFields/HonorCodeField/HonorCode.d.ts +21 -0
- package/dist/register/RegistrationFields/HonorCodeField/HonorCode.js +40 -0
- package/dist/register/RegistrationFields/HonorCodeField/HonorCode.js.map +1 -0
- package/dist/register/RegistrationFields/NameField/NameField.d.ts +29 -0
- package/dist/register/RegistrationFields/NameField/NameField.js +52 -0
- package/dist/register/RegistrationFields/NameField/NameField.js.map +1 -0
- package/dist/register/RegistrationFields/NameField/validator.d.ts +5 -0
- package/{src → dist}/register/RegistrationFields/NameField/validator.js +9 -12
- package/dist/register/RegistrationFields/NameField/validator.js.map +1 -0
- package/dist/register/RegistrationFields/TermsOfServiceField/TermsOfService.d.ts +16 -0
- package/dist/register/RegistrationFields/TermsOfServiceField/TermsOfService.js +24 -0
- package/dist/register/RegistrationFields/TermsOfServiceField/TermsOfService.js.map +1 -0
- package/dist/register/RegistrationFields/UsernameField/UsernameField.d.ts +31 -0
- package/dist/register/RegistrationFields/UsernameField/UsernameField.js +113 -0
- package/dist/register/RegistrationFields/UsernameField/UsernameField.js.map +1 -0
- package/dist/register/RegistrationFields/UsernameField/validator.d.ts +4 -0
- package/dist/register/RegistrationFields/UsernameField/validator.js +15 -0
- package/dist/register/RegistrationFields/UsernameField/validator.js.map +1 -0
- package/dist/register/RegistrationFields/index.d.ts +6 -0
- package/{src → dist}/register/RegistrationFields/index.js +1 -0
- package/dist/register/RegistrationFields/index.js.map +1 -0
- package/dist/register/RegistrationPage.d.ts +18 -0
- package/dist/register/RegistrationPage.js +216 -0
- package/dist/register/RegistrationPage.js.map +1 -0
- package/dist/register/components/ConfigurableRegistrationForm.d.ts +37 -0
- package/dist/register/components/ConfigurableRegistrationForm.js +145 -0
- package/dist/register/components/ConfigurableRegistrationForm.js.map +1 -0
- package/dist/register/components/RegistrationFailure.d.ts +19 -0
- package/dist/register/components/RegistrationFailure.js +57 -0
- package/dist/register/components/RegistrationFailure.js.map +1 -0
- package/dist/register/data/actions.d.ts +80 -0
- package/{src → dist}/register/data/actions.js +26 -42
- package/dist/register/data/actions.js.map +1 -0
- package/dist/register/data/constants.d.ts +10 -0
- package/{src → dist}/register/data/constants.js +4 -4
- package/dist/register/data/constants.js.map +1 -0
- package/dist/register/data/reducers.d.ts +237 -0
- package/dist/register/data/reducers.js +86 -0
- package/dist/register/data/reducers.js.map +1 -0
- package/dist/register/data/sagas.d.ts +19 -0
- package/dist/register/data/sagas.js +45 -0
- package/dist/register/data/sagas.js.map +1 -0
- package/dist/register/data/selectors.d.ts +26 -0
- package/dist/register/data/selectors.js +25 -0
- package/dist/register/data/selectors.js.map +1 -0
- package/dist/register/data/service.d.ts +8 -0
- package/dist/register/data/service.js +46 -0
- package/dist/register/data/service.js.map +1 -0
- package/dist/register/data/utils.d.ts +6 -0
- package/dist/register/data/utils.js +128 -0
- package/dist/register/data/utils.js.map +1 -0
- package/dist/register/index.d.ts +3 -0
- package/{src → dist}/register/index.js +1 -0
- package/dist/register/index.js.map +1 -0
- package/dist/register/messages.d.ts +193 -0
- package/dist/register/messages.js +205 -0
- package/dist/register/messages.js.map +1 -0
- package/dist/reset-password/ResetPasswordFailure.d.ts +15 -0
- package/dist/reset-password/ResetPasswordFailure.js +44 -0
- package/dist/reset-password/ResetPasswordFailure.js.map +1 -0
- package/dist/reset-password/ResetPasswordPage.d.ts +32 -0
- package/dist/reset-password/ResetPasswordPage.js +150 -0
- package/dist/reset-password/ResetPasswordPage.js.map +1 -0
- package/dist/reset-password/ResetPasswordSuccess.d.ts +2 -0
- package/dist/reset-password/ResetPasswordSuccess.js +10 -0
- package/dist/reset-password/ResetPasswordSuccess.js.map +1 -0
- package/dist/reset-password/data/actions.d.ts +56 -0
- package/{src → dist}/reset-password/data/actions.js +17 -26
- package/dist/reset-password/data/actions.js.map +1 -0
- package/dist/reset-password/data/constants.d.ts +13 -0
- package/{src → dist}/reset-password/data/constants.js +6 -7
- package/dist/reset-password/data/constants.js.map +1 -0
- package/dist/reset-password/data/reducers.d.ts +19 -0
- package/dist/reset-password/data/reducers.js +25 -0
- package/dist/reset-password/data/reducers.js.map +1 -0
- package/dist/reset-password/data/sagas.d.ts +7 -0
- package/dist/reset-password/data/sagas.js +63 -0
- package/dist/reset-password/data/sagas.js.map +1 -0
- package/dist/reset-password/data/selectors.d.ts +23 -0
- package/dist/reset-password/data/selectors.js +5 -0
- package/dist/reset-password/data/selectors.js.map +1 -0
- package/dist/reset-password/data/service.d.ts +3 -0
- package/dist/reset-password/data/service.js +62 -0
- package/dist/reset-password/data/service.js.map +1 -0
- package/dist/reset-password/index.d.ts +5 -0
- package/{src → dist}/reset-password/index.js +1 -0
- package/dist/reset-password/index.js.map +1 -0
- package/dist/reset-password/messages.d.ts +83 -0
- package/dist/reset-password/messages.js +87 -0
- package/dist/reset-password/messages.js.map +1 -0
- package/dist/routes.d.ts +18 -0
- package/dist/routes.js +75 -0
- package/dist/routes.js.map +1 -0
- package/{src → dist}/sass/_base_component.scss +57 -54
- package/{src → dist}/sass/_progressive_profiling_page.scss +1 -3
- package/{src → dist}/sass/_registration.scss +7 -8
- package/{src → dist}/sass/_style.scss +40 -43
- package/package.json +17 -6
- package/src/__mocks__/file.js +0 -1
- package/src/__mocks__/svg.js +0 -1
- package/src/app.scss +0 -6
- package/src/app.ts +0 -43
- package/src/base-container/components/default-layout/DefaultLayout.test.jsx +0 -48
- package/src/base-container/components/default-layout/LargeLayout.jsx +0 -42
- package/src/base-container/components/default-layout/MediumLayout.jsx +0 -49
- package/src/base-container/components/default-layout/SmallLayout.jsx +0 -37
- package/src/base-container/components/default-layout/messages.js +0 -16
- package/src/base-container/components/image-layout/ExtraSmallLayout.jsx +0 -31
- package/src/base-container/components/image-layout/LargeLayout.jsx +0 -32
- package/src/base-container/components/image-layout/MediumLayout.jsx +0 -32
- package/src/base-container/components/image-layout/SmallLayout.jsx +0 -31
- package/src/base-container/components/image-layout/messages.js +0 -16
- package/src/base-container/components/welcome-page-layout/LargeLayout.jsx +0 -46
- package/src/base-container/components/welcome-page-layout/MediumLayout.jsx +0 -49
- package/src/base-container/components/welcome-page-layout/SmallLayout.jsx +0 -38
- package/src/base-container/components/welcome-page-layout/messages.js +0 -21
- package/src/base-container/index.jsx +0 -70
- package/src/base-container/tests/BaseContainer.test.jsx +0 -44
- package/src/common-components/EnterpriseSSO.jsx +0 -110
- package/src/common-components/FormGroup.jsx +0 -106
- package/src/common-components/InstitutionLogistration.jsx +0 -102
- package/src/common-components/NotFoundPage.jsx +0 -15
- package/src/common-components/PasswordField.jsx +0 -175
- package/src/common-components/RedirectLogistration.jsx +0 -94
- package/src/common-components/RegisterFaIcons.jsx +0 -8
- package/src/common-components/SocialAuthProviders.jsx +0 -75
- package/src/common-components/ThirdPartyAuth.jsx +0 -123
- package/src/common-components/ThirdPartyAuthAlert.jsx +0 -49
- package/src/common-components/UnAuthOnlyRoute.jsx +0 -41
- package/src/common-components/data/reducers.js +0 -63
- package/src/common-components/data/sagas.js +0 -32
- package/src/common-components/data/selectors.js +0 -28
- package/src/common-components/data/service.js +0 -23
- package/src/common-components/data/tests/reducer.test.js +0 -82
- package/src/common-components/data/tests/sagas.test.js +0 -71
- package/src/common-components/messages.jsx +0 -127
- package/src/common-components/tests/EmbeddedRegistrationRoute.test.jsx +0 -76
- package/src/common-components/tests/FormField.test.jsx +0 -289
- package/src/common-components/tests/SocialAuthProviders.test.jsx +0 -75
- package/src/common-components/tests/ThirdPartyAuthAlert.test.jsx +0 -39
- package/src/common-components/tests/UnAuthOnlyRoute.test.jsx +0 -73
- package/src/common-components/tests/__snapshots__/SocialAuthProviders.test.jsx.snap +0 -156
- package/src/common-components/tests/__snapshots__/ThirdPartyAuthAlert.test.jsx.snap +0 -53
- package/src/data/oneTrust.js +0 -3
- package/src/data/reducers.js +0 -36
- package/src/data/tests/cookies.test.js +0 -42
- package/src/data/tests/dataUtils.test.js +0 -19
- package/src/data/tests/reduxUtils.test.js +0 -14
- package/src/data/utils/cookies.js +0 -12
- package/src/data/utils/dataUtils.js +0 -81
- package/src/data/utils/index.js +0 -11
- package/src/data/utils/reduxUtils.js +0 -34
- package/src/data/utils/useMobileResponsive.js +0 -24
- package/src/field-renderer/FieldRenderer.jsx +0 -156
- package/src/field-renderer/tests/FieldRenderer.test.jsx +0 -201
- package/src/forgot-password/ForgotPasswordAlert.jsx +0 -97
- package/src/forgot-password/ForgotPasswordPage.jsx +0 -193
- package/src/forgot-password/data/reducers.js +0 -58
- package/src/forgot-password/data/sagas.js +0 -35
- package/src/forgot-password/data/selectors.js +0 -10
- package/src/forgot-password/data/service.js +0 -21
- package/src/forgot-password/data/tests/reducers.test.js +0 -34
- package/src/forgot-password/data/tests/sagas.test.js +0 -67
- package/src/forgot-password/messages.js +0 -128
- package/src/forgot-password/tests/ForgotPasswordPage.test.jsx +0 -269
- package/src/i18n/index.js +0 -25
- package/src/login/AccountActivationMessage.jsx +0 -78
- package/src/login/ChangePasswordPrompt.jsx +0 -91
- package/src/login/LoginFailure.jsx +0 -231
- package/src/login/LoginPage.jsx +0 -368
- package/src/login/data/reducers.js +0 -76
- package/src/login/data/sagas.js +0 -45
- package/src/login/data/service.js +0 -27
- package/src/login/data/tests/reducers.test.js +0 -155
- package/src/login/data/tests/sagas.test.js +0 -110
- package/src/login/messages.jsx +0 -211
- package/src/login/tests/AccountActivationMessage.test.jsx +0 -122
- package/src/login/tests/ChangePasswordPrompt.test.jsx +0 -75
- package/src/login/tests/LoginFailure.test.jsx +0 -323
- package/src/login/tests/LoginPage.test.jsx +0 -839
- package/src/logistration/Logistration.jsx +0 -189
- package/src/logistration/Logistration.test.jsx +0 -275
- package/src/progressive-profiling/ProgressiveProfiling.jsx +0 -313
- package/src/progressive-profiling/ProgressiveProfilingPageModal.jsx +0 -56
- package/src/progressive-profiling/data/reducers.js +0 -38
- package/src/progressive-profiling/data/sagas.js +0 -24
- package/src/progressive-profiling/data/service.js +0 -17
- package/src/progressive-profiling/messages.jsx +0 -57
- package/src/progressive-profiling/tests/ProgressiveProfiling.test.jsx +0 -322
- package/src/register/RegistrationFields/CountryField/CountryField.jsx +0 -164
- package/src/register/RegistrationFields/CountryField/CountryField.test.jsx +0 -204
- package/src/register/RegistrationFields/CountryField/validator.js +0 -32
- package/src/register/RegistrationFields/EmailField/EmailField.jsx +0 -140
- package/src/register/RegistrationFields/EmailField/EmailField.test.jsx +0 -236
- package/src/register/RegistrationFields/EmailField/constants.js +0 -131
- package/src/register/RegistrationFields/EmailField/validator.js +0 -126
- package/src/register/RegistrationFields/EmailField/validator.test.js +0 -39
- package/src/register/RegistrationFields/HonorCodeField/HonorCode.jsx +0 -104
- package/src/register/RegistrationFields/HonorCodeField/HonorCode.test.jsx +0 -70
- package/src/register/RegistrationFields/NameField/NameField.jsx +0 -68
- package/src/register/RegistrationFields/NameField/NameField.test.jsx +0 -146
- package/src/register/RegistrationFields/TermsOfServiceField/TermsOfService.jsx +0 -58
- package/src/register/RegistrationFields/TermsOfServiceField/TermsOfService.test.jsx +0 -55
- package/src/register/RegistrationFields/UsernameField/UsernameField.jsx +0 -162
- package/src/register/RegistrationFields/UsernameField/UsernameField.test.jsx +0 -319
- package/src/register/RegistrationFields/UsernameField/validator.js +0 -16
- package/src/register/RegistrationPage.jsx +0 -428
- package/src/register/RegistrationPage.test.jsx +0 -854
- package/src/register/components/ConfigurableRegistrationForm.jsx +0 -244
- package/src/register/components/RegistrationFailure.jsx +0 -80
- package/src/register/components/tests/ConfigurableRegistrationForm.test.jsx +0 -401
- package/src/register/components/tests/RegistrationFailure.test.jsx +0 -212
- package/src/register/components/tests/ThirdPartyAuth.test.jsx +0 -439
- package/src/register/data/reducers.js +0 -140
- package/src/register/data/sagas.js +0 -58
- package/src/register/data/selectors.js +0 -34
- package/src/register/data/service.js +0 -45
- package/src/register/data/tests/reducers.test.js +0 -277
- package/src/register/data/tests/sagas.test.js +0 -239
- package/src/register/data/tests/utils.test.js +0 -98
- package/src/register/data/utils.js +0 -153
- package/src/register/messages.jsx +0 -206
- package/src/reset-password/ResetPasswordFailure.jsx +0 -55
- package/src/reset-password/ResetPasswordPage.jsx +0 -224
- package/src/reset-password/ResetPasswordSuccess.jsx +0 -19
- package/src/reset-password/data/reducers.js +0 -44
- package/src/reset-password/data/sagas.js +0 -67
- package/src/reset-password/data/selectors.js +0 -10
- package/src/reset-password/data/service.js +0 -61
- package/src/reset-password/data/tests/sagas.test.js +0 -185
- package/src/reset-password/messages.js +0 -88
- package/src/reset-password/tests/ResetPasswordPage.test.jsx +0 -241
- package/src/routes.jsx +0 -79
- package/src/setupTest.js +0 -68
- /package/{src → dist}/base-container/components/image-layout/index.scss +0 -0
- /package/{src/index.ts → dist/index.d.ts} +0 -0
- /package/{src → dist}/sass/_forgot_password.scss +0 -0
- /package/{src → dist}/sass/_login_page.scss +0 -0
- /package/{src → dist}/sass/_reset_password.scss +0 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export default BaseContainer;
|
|
2
|
+
declare function BaseContainer({ children, showWelcomeBanner, fullName }: {
|
|
3
|
+
children: any;
|
|
4
|
+
showWelcomeBanner: any;
|
|
5
|
+
fullName: any;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare namespace BaseContainer {
|
|
8
|
+
namespace defaultProps {
|
|
9
|
+
let showWelcomeBanner: boolean;
|
|
10
|
+
let fullName: null;
|
|
11
|
+
}
|
|
12
|
+
namespace propTypes {
|
|
13
|
+
export let children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
|
|
14
|
+
let showWelcomeBanner_1: PropTypes.Requireable<boolean>;
|
|
15
|
+
export { showWelcomeBanner_1 as showWelcomeBanner };
|
|
16
|
+
let fullName_1: PropTypes.Requireable<string>;
|
|
17
|
+
export { fullName_1 as fullName };
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
import PropTypes from 'prop-types';
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { useAppConfig } from '@openedx/frontend-base';
|
|
3
|
+
import { breakpoints } from '@openedx/paragon';
|
|
4
|
+
import classNames from 'classnames';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import MediaQuery from 'react-responsive';
|
|
7
|
+
import { DefaultLargeLayout, DefaultMediumLayout, DefaultSmallLayout } from './components/default-layout';
|
|
8
|
+
import { ImageExtraSmallLayout, ImageLargeLayout, ImageMediumLayout, ImageSmallLayout, } from './components/image-layout';
|
|
9
|
+
import { AuthLargeLayout, AuthMediumLayout, AuthSmallLayout } from './components/welcome-page-layout';
|
|
10
|
+
const BaseContainer = ({ children, showWelcomeBanner, fullName }) => {
|
|
11
|
+
const enableImageLayout = useAppConfig().ENABLE_IMAGE_LAYOUT;
|
|
12
|
+
if (enableImageLayout) {
|
|
13
|
+
return (_jsxs("div", { className: "layout", children: [_jsx(MediaQuery, { maxWidth: breakpoints.extraSmall.maxWidth - 1, children: showWelcomeBanner ? _jsx(AuthSmallLayout, { fullName: fullName }) : _jsx(ImageExtraSmallLayout, {}) }), _jsx(MediaQuery, { minWidth: breakpoints.small.minWidth, maxWidth: breakpoints.small.maxWidth - 1, children: showWelcomeBanner ? _jsx(AuthSmallLayout, { fullName: fullName }) : _jsx(ImageSmallLayout, {}) }), _jsx(MediaQuery, { minWidth: breakpoints.medium.minWidth, maxWidth: breakpoints.large.maxWidth - 1, children: showWelcomeBanner ? _jsx(AuthMediumLayout, { fullName: fullName }) : _jsx(ImageMediumLayout, {}) }), _jsx(MediaQuery, { minWidth: breakpoints.extraLarge.minWidth, children: showWelcomeBanner ? _jsx(AuthLargeLayout, { fullName: fullName }) : _jsx(ImageLargeLayout, {}) }), _jsx("div", { className: classNames('content', { 'align-items-center mt-0': showWelcomeBanner }), children: children })] }));
|
|
14
|
+
}
|
|
15
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "col-md-12 extra-large-screen-top-stripe" }), _jsxs("div", { className: "layout", children: [_jsx(MediaQuery, { maxWidth: breakpoints.small.maxWidth - 1, children: showWelcomeBanner ? _jsx(AuthSmallLayout, { fullName: fullName }) : _jsx(DefaultSmallLayout, {}) }), _jsx(MediaQuery, { minWidth: breakpoints.medium.minWidth, maxWidth: breakpoints.large.maxWidth - 1, children: showWelcomeBanner ? _jsx(AuthMediumLayout, { fullName: fullName }) : _jsx(DefaultMediumLayout, {}) }), _jsx(MediaQuery, { minWidth: breakpoints.extraLarge.minWidth, children: showWelcomeBanner ? _jsx(AuthLargeLayout, { fullName: fullName }) : _jsx(DefaultLargeLayout, {}) }), _jsx("div", { className: classNames('content', { 'align-items-center mt-0': showWelcomeBanner }), children: children })] })] }));
|
|
16
|
+
};
|
|
17
|
+
BaseContainer.defaultProps = {
|
|
18
|
+
showWelcomeBanner: false,
|
|
19
|
+
fullName: null,
|
|
20
|
+
};
|
|
21
|
+
BaseContainer.propTypes = {
|
|
22
|
+
children: PropTypes.node.isRequired,
|
|
23
|
+
showWelcomeBanner: PropTypes.bool,
|
|
24
|
+
fullName: PropTypes.string,
|
|
25
|
+
};
|
|
26
|
+
export default BaseContainer;
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/base-container/index.jsx"],"names":[],"mappings":"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","sourcesContent":["import { useAppConfig } from '@openedx/frontend-base';\nimport { breakpoints } from '@openedx/paragon';\nimport classNames from 'classnames';\nimport PropTypes from 'prop-types';\nimport MediaQuery from 'react-responsive';\n\nimport { DefaultLargeLayout, DefaultMediumLayout, DefaultSmallLayout } from './components/default-layout';\nimport {\n ImageExtraSmallLayout, ImageLargeLayout, ImageMediumLayout, ImageSmallLayout,\n} from './components/image-layout';\nimport { AuthLargeLayout, AuthMediumLayout, AuthSmallLayout } from './components/welcome-page-layout';\n\nconst BaseContainer = ({ children, showWelcomeBanner, fullName }) => {\n const enableImageLayout = useAppConfig().ENABLE_IMAGE_LAYOUT;\n\n if (enableImageLayout) {\n return (\n <div className=\"layout\">\n <MediaQuery maxWidth={breakpoints.extraSmall.maxWidth - 1}>\n {showWelcomeBanner ? <AuthSmallLayout fullName={fullName} /> : <ImageExtraSmallLayout />}\n </MediaQuery>\n <MediaQuery minWidth={breakpoints.small.minWidth} maxWidth={breakpoints.small.maxWidth - 1}>\n {showWelcomeBanner ? <AuthSmallLayout fullName={fullName} /> : <ImageSmallLayout />}\n </MediaQuery>\n <MediaQuery minWidth={breakpoints.medium.minWidth} maxWidth={breakpoints.large.maxWidth - 1}>\n {showWelcomeBanner ? <AuthMediumLayout fullName={fullName} /> : <ImageMediumLayout />}\n </MediaQuery>\n <MediaQuery minWidth={breakpoints.extraLarge.minWidth}>\n {showWelcomeBanner ? <AuthLargeLayout fullName={fullName} /> : <ImageLargeLayout />}\n </MediaQuery>\n <div className={classNames('content', { 'align-items-center mt-0': showWelcomeBanner })}>\n {children}\n </div>\n </div>\n );\n }\n\n return (\n <>\n <div className=\"col-md-12 extra-large-screen-top-stripe\" />\n <div className=\"layout\">\n <MediaQuery maxWidth={breakpoints.small.maxWidth - 1}>\n {showWelcomeBanner ? <AuthSmallLayout fullName={fullName} /> : <DefaultSmallLayout />}\n </MediaQuery>\n <MediaQuery minWidth={breakpoints.medium.minWidth} maxWidth={breakpoints.large.maxWidth - 1}>\n {showWelcomeBanner ? <AuthMediumLayout fullName={fullName} /> : <DefaultMediumLayout />}\n </MediaQuery>\n <MediaQuery minWidth={breakpoints.extraLarge.minWidth}>\n {showWelcomeBanner ? <AuthLargeLayout fullName={fullName} /> : <DefaultLargeLayout />}\n </MediaQuery>\n <div className={classNames('content', { 'align-items-center mt-0': showWelcomeBanner })}>\n {children}\n </div>\n </div>\n </>\n );\n};\n\nBaseContainer.defaultProps = {\n showWelcomeBanner: false,\n fullName: null,\n};\n\nBaseContainer.propTypes = {\n children: PropTypes.node.isRequired,\n showWelcomeBanner: PropTypes.bool,\n fullName: PropTypes.string,\n};\n\nexport default BaseContainer;\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export default EmbeddedRegistrationRoute;
|
|
2
|
+
/**
|
|
3
|
+
* This wrapper redirects the requester to embedded register page only if host
|
|
4
|
+
* query param is present.
|
|
5
|
+
*/
|
|
6
|
+
declare function EmbeddedRegistrationRoute({ children }: {
|
|
7
|
+
children: any;
|
|
8
|
+
}): any;
|
|
9
|
+
declare namespace EmbeddedRegistrationRoute {
|
|
10
|
+
namespace propTypes {
|
|
11
|
+
let children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
import PropTypes from 'prop-types';
|
|
@@ -1,26 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
2
|
import PropTypes from 'prop-types';
|
|
2
3
|
import { Navigate } from 'react-router-dom';
|
|
3
|
-
|
|
4
4
|
import { PAGE_NOT_FOUND } from '../data/constants';
|
|
5
5
|
import { isHostAvailableInQueryParams } from '../data/utils';
|
|
6
|
-
|
|
7
6
|
/**
|
|
8
7
|
* This wrapper redirects the requester to embedded register page only if host
|
|
9
8
|
* query param is present.
|
|
10
9
|
*/
|
|
11
10
|
const EmbeddedRegistrationRoute = ({ children }) => {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
return <Navigate to={PAGE_NOT_FOUND} replace />;
|
|
11
|
+
const registrationEmbedded = isHostAvailableInQueryParams();
|
|
12
|
+
// Show registration page for embedded experience even if the user is authenticated
|
|
13
|
+
if (registrationEmbedded) {
|
|
14
|
+
return children;
|
|
15
|
+
}
|
|
16
|
+
return _jsx(Navigate, { to: PAGE_NOT_FOUND, replace: true });
|
|
20
17
|
};
|
|
21
|
-
|
|
22
18
|
EmbeddedRegistrationRoute.propTypes = {
|
|
23
|
-
|
|
19
|
+
children: PropTypes.node.isRequired,
|
|
24
20
|
};
|
|
25
|
-
|
|
26
21
|
export default EmbeddedRegistrationRoute;
|
|
22
|
+
//# sourceMappingURL=EmbeddedRegistrationRoute.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmbeddedRegistrationRoute.js","sourceRoot":"","sources":["../../src/common-components/EmbeddedRegistrationRoute.jsx"],"names":[],"mappings":";AAAA,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAE7D;;;GAGG;AACH,MAAM,yBAAyB,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE;IACjD,MAAM,oBAAoB,GAAG,4BAA4B,EAAE,CAAC;IAE5D,mFAAmF;IACnF,IAAI,oBAAoB,EAAE,CAAC;QACzB,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,KAAC,QAAQ,IAAC,EAAE,EAAE,cAAc,EAAE,OAAO,SAAG,CAAC;AAClD,CAAC,CAAC;AAEF,yBAAyB,CAAC,SAAS,GAAG;IACpC,QAAQ,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU;CACpC,CAAC;AAEF,eAAe,yBAAyB,CAAC","sourcesContent":["import PropTypes from 'prop-types';\nimport { Navigate } from 'react-router-dom';\n\nimport { PAGE_NOT_FOUND } from '../data/constants';\nimport { isHostAvailableInQueryParams } from '../data/utils';\n\n/**\n * This wrapper redirects the requester to embedded register page only if host\n * query param is present.\n */\nconst EmbeddedRegistrationRoute = ({ children }) => {\n const registrationEmbedded = isHostAvailableInQueryParams();\n\n // Show registration page for embedded experience even if the user is authenticated\n if (registrationEmbedded) {\n return children;\n }\n\n return <Navigate to={PAGE_NOT_FOUND} replace />;\n};\n\nEmbeddedRegistrationRoute.propTypes = {\n children: PropTypes.node.isRequired,\n};\n\nexport default EmbeddedRegistrationRoute;\n"]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export default EnterpriseSSO;
|
|
2
|
+
/**
|
|
3
|
+
* This component renders the Single sign-on (SSO) button only for the tpa provider passed
|
|
4
|
+
* */
|
|
5
|
+
declare function EnterpriseSSO(props: any): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare namespace EnterpriseSSO {
|
|
7
|
+
namespace defaultProps {
|
|
8
|
+
namespace provider {
|
|
9
|
+
let id: string;
|
|
10
|
+
let name: string;
|
|
11
|
+
let iconClass: string;
|
|
12
|
+
let iconImage: string;
|
|
13
|
+
let loginUrl: string;
|
|
14
|
+
let registerUrl: string;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
namespace propTypes {
|
|
18
|
+
let provider_1: PropTypes.Requireable<PropTypes.InferProps<{
|
|
19
|
+
id: PropTypes.Requireable<string>;
|
|
20
|
+
name: PropTypes.Requireable<string>;
|
|
21
|
+
iconClass: PropTypes.Requireable<string>;
|
|
22
|
+
iconImage: PropTypes.Requireable<string>;
|
|
23
|
+
loginUrl: PropTypes.Requireable<string>;
|
|
24
|
+
registerUrl: PropTypes.Requireable<string>;
|
|
25
|
+
}>>;
|
|
26
|
+
export { provider_1 as provider };
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
import PropTypes from 'prop-types';
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
3
|
+
import { useAppConfig, getSiteConfig, useIntl } from '@openedx/frontend-base';
|
|
4
|
+
import { Button, Form, Icon, } from '@openedx/paragon';
|
|
5
|
+
import { Login } from '@openedx/paragon/icons';
|
|
6
|
+
import PropTypes from 'prop-types';
|
|
7
|
+
import { LOGIN_PAGE, SUPPORTED_ICON_CLASSES } from '../data/constants';
|
|
8
|
+
import messages from './messages';
|
|
9
|
+
/**
|
|
10
|
+
* This component renders the Single sign-on (SSO) button only for the tpa provider passed
|
|
11
|
+
* */
|
|
12
|
+
const EnterpriseSSO = (props) => {
|
|
13
|
+
const { formatMessage } = useIntl();
|
|
14
|
+
const tpaProvider = props.provider;
|
|
15
|
+
const hideRegistrationLink = useAppConfig().ALLOW_PUBLIC_ACCOUNT_CREATION === false
|
|
16
|
+
|| useAppConfig().SHOW_REGISTRATION_LINKS === false;
|
|
17
|
+
const handleSubmit = (e, url) => {
|
|
18
|
+
e.preventDefault();
|
|
19
|
+
window.location.href = getSiteConfig().lmsBaseUrl + url;
|
|
20
|
+
};
|
|
21
|
+
const handleClick = (e) => {
|
|
22
|
+
e.preventDefault();
|
|
23
|
+
window.location.href = LOGIN_PAGE;
|
|
24
|
+
};
|
|
25
|
+
if (tpaProvider) {
|
|
26
|
+
return (_jsx("div", { className: "d-flex justify-content-center m-4", children: _jsx("div", { className: "d-flex flex-column", children: _jsx("div", { className: "mw-450", children: _jsxs(Form, { className: "m-0", children: [_jsx("p", { children: formatMessage(messages['enterprisetpa.title.heading'], { providerName: tpaProvider.name }) }), _jsx(Button, { id: tpaProvider.id, type: "submit", variant: "link", className: `btn-tpa btn-${tpaProvider.id}`, onClick: (e) => handleSubmit(e, tpaProvider.loginUrl), children: tpaProvider.iconImage ? (_jsxs("div", { "aria-hidden": "true", children: [_jsx("img", { className: "btn-tpa__image-icon", src: tpaProvider.iconImage, alt: `icon ${tpaProvider.name}` }), _jsx("span", { className: "pl-2", "aria-hidden": "true", children: tpaProvider.name })] }))
|
|
27
|
+
: (_jsxs(_Fragment, { children: [_jsx("div", { className: "btn-tpa__font-container", "aria-hidden": "true", children: SUPPORTED_ICON_CLASSES.includes(tpaProvider.iconClass) ? (_jsx(FontAwesomeIcon, { icon: ['fab', tpaProvider.iconClass] }))
|
|
28
|
+
: (_jsx(Icon, { className: "h-75", src: Login })) }), _jsx("span", { className: "pl-2", "aria-hidden": "true", children: tpaProvider.name })] })) }, tpaProvider.id), _jsx("div", { className: "mb-4" }), _jsx(Button, { type: "submit", id: "other-ways-to-sign-in", variant: "outline-primary", state: "Complete", className: "w-100", onClick: (e) => handleClick(e), children: hideRegistrationLink
|
|
29
|
+
? formatMessage(messages['enterprisetpa.login.button.text.public.account.creation.disabled'])
|
|
30
|
+
: formatMessage(messages['enterprisetpa.login.button.text']) })] }) }) }) }));
|
|
31
|
+
}
|
|
32
|
+
return _jsx("div", {});
|
|
33
|
+
};
|
|
34
|
+
EnterpriseSSO.defaultProps = {
|
|
35
|
+
provider: {
|
|
36
|
+
id: '',
|
|
37
|
+
name: '',
|
|
38
|
+
iconClass: '',
|
|
39
|
+
iconImage: '',
|
|
40
|
+
loginUrl: '',
|
|
41
|
+
registerUrl: '',
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
EnterpriseSSO.propTypes = {
|
|
45
|
+
provider: PropTypes.shape({
|
|
46
|
+
id: PropTypes.string,
|
|
47
|
+
name: PropTypes.string,
|
|
48
|
+
iconClass: PropTypes.string,
|
|
49
|
+
iconImage: PropTypes.string,
|
|
50
|
+
loginUrl: PropTypes.string,
|
|
51
|
+
registerUrl: PropTypes.string,
|
|
52
|
+
}),
|
|
53
|
+
};
|
|
54
|
+
export default EnterpriseSSO;
|
|
55
|
+
//# sourceMappingURL=EnterpriseSSO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnterpriseSSO.js","sourceRoot":"","sources":["../../src/common-components/EnterpriseSSO.jsx"],"names":[],"mappings":"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","sourcesContent":["import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { useAppConfig, getSiteConfig, useIntl } from '@openedx/frontend-base';\nimport {\n Button, Form,\n Icon,\n} from '@openedx/paragon';\nimport { Login } from '@openedx/paragon/icons';\nimport PropTypes from 'prop-types';\n\nimport { LOGIN_PAGE, SUPPORTED_ICON_CLASSES } from '../data/constants';\nimport messages from './messages';\n\n/**\n * This component renders the Single sign-on (SSO) button only for the tpa provider passed\n * */\nconst EnterpriseSSO = (props) => {\n const { formatMessage } = useIntl();\n const tpaProvider = props.provider;\n const hideRegistrationLink = useAppConfig().ALLOW_PUBLIC_ACCOUNT_CREATION === false\n || useAppConfig().SHOW_REGISTRATION_LINKS === false;\n\n const handleSubmit = (e, url) => {\n e.preventDefault();\n window.location.href = getSiteConfig().lmsBaseUrl + url;\n };\n\n const handleClick = (e) => {\n e.preventDefault();\n window.location.href = LOGIN_PAGE;\n };\n\n if (tpaProvider) {\n return (\n <div className=\"d-flex justify-content-center m-4\">\n <div className=\"d-flex flex-column\">\n <div className=\"mw-450\">\n <Form className=\"m-0\">\n <p>{formatMessage(messages['enterprisetpa.title.heading'], { providerName: tpaProvider.name })}</p>\n <Button\n id={tpaProvider.id}\n key={tpaProvider.id}\n type=\"submit\"\n variant=\"link\"\n className={`btn-tpa btn-${tpaProvider.id}`}\n onClick={(e) => handleSubmit(e, tpaProvider.loginUrl)}\n >\n {tpaProvider.iconImage ? (\n <div aria-hidden=\"true\">\n <img className=\"btn-tpa__image-icon\" src={tpaProvider.iconImage} alt={`icon ${tpaProvider.name}`} />\n <span className=\"pl-2\" aria-hidden=\"true\">{tpaProvider.name}</span>\n </div>\n )\n : (\n <>\n <div className=\"btn-tpa__font-container\" aria-hidden=\"true\">\n {SUPPORTED_ICON_CLASSES.includes(tpaProvider.iconClass) ? (\n <FontAwesomeIcon icon={['fab', tpaProvider.iconClass]} />)\n : (\n <Icon className=\"h-75\" src={Login} />\n )}\n </div>\n <span className=\"pl-2\" aria-hidden=\"true\">{tpaProvider.name}</span>\n </>\n )}\n </Button>\n <div className=\"mb-4\" />\n <Button\n type=\"submit\"\n id=\"other-ways-to-sign-in\"\n variant=\"outline-primary\"\n state=\"Complete\"\n className=\"w-100\"\n onClick={(e) => handleClick(e)}\n >\n {hideRegistrationLink\n ? formatMessage(messages['enterprisetpa.login.button.text.public.account.creation.disabled'])\n : formatMessage(messages['enterprisetpa.login.button.text'])}\n </Button>\n </Form>\n </div>\n </div>\n </div>\n );\n }\n return <div />;\n};\n\nEnterpriseSSO.defaultProps = {\n provider: {\n id: '',\n name: '',\n iconClass: '',\n iconImage: '',\n loginUrl: '',\n registerUrl: '',\n },\n};\n\nEnterpriseSSO.propTypes = {\n provider: PropTypes.shape({\n id: PropTypes.string,\n name: PropTypes.string,\n iconClass: PropTypes.string,\n iconImage: PropTypes.string,\n loginUrl: PropTypes.string,\n registerUrl: PropTypes.string,\n }),\n};\n\nexport default EnterpriseSSO;\n"]}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
export default FormGroup;
|
|
2
|
+
declare function FormGroup(props: any): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare namespace FormGroup {
|
|
4
|
+
namespace defaultProps {
|
|
5
|
+
let as: string;
|
|
6
|
+
let autoComplete: null;
|
|
7
|
+
let borderClass: string;
|
|
8
|
+
let children: null;
|
|
9
|
+
let className: string;
|
|
10
|
+
let errorMessage: string;
|
|
11
|
+
let handleBlur: null;
|
|
12
|
+
function handleChange(): void;
|
|
13
|
+
let handleClick: null;
|
|
14
|
+
let handleFocus: null;
|
|
15
|
+
let helpText: never[];
|
|
16
|
+
let options: null;
|
|
17
|
+
let readOnly: boolean;
|
|
18
|
+
let spellCheck: null;
|
|
19
|
+
let trailingElement: null;
|
|
20
|
+
let type: string;
|
|
21
|
+
}
|
|
22
|
+
namespace propTypes {
|
|
23
|
+
let as_1: PropTypes.Requireable<string>;
|
|
24
|
+
export { as_1 as as };
|
|
25
|
+
let autoComplete_1: PropTypes.Requireable<string>;
|
|
26
|
+
export { autoComplete_1 as autoComplete };
|
|
27
|
+
let borderClass_1: PropTypes.Requireable<string>;
|
|
28
|
+
export { borderClass_1 as borderClass };
|
|
29
|
+
let children_1: PropTypes.Requireable<PropTypes.ReactElementLike>;
|
|
30
|
+
export { children_1 as children };
|
|
31
|
+
let className_1: PropTypes.Requireable<string>;
|
|
32
|
+
export { className_1 as className };
|
|
33
|
+
let errorMessage_1: PropTypes.Requireable<string>;
|
|
34
|
+
export { errorMessage_1 as errorMessage };
|
|
35
|
+
export let floatingLabel: PropTypes.Validator<string>;
|
|
36
|
+
let handleBlur_1: PropTypes.Requireable<(...args: any[]) => any>;
|
|
37
|
+
export { handleBlur_1 as handleBlur };
|
|
38
|
+
let handleChange_1: PropTypes.Requireable<(...args: any[]) => any>;
|
|
39
|
+
export { handleChange_1 as handleChange };
|
|
40
|
+
let handleClick_1: PropTypes.Requireable<(...args: any[]) => any>;
|
|
41
|
+
export { handleClick_1 as handleClick };
|
|
42
|
+
let handleFocus_1: PropTypes.Requireable<(...args: any[]) => any>;
|
|
43
|
+
export { handleFocus_1 as handleFocus };
|
|
44
|
+
let helpText_1: PropTypes.Requireable<(string | null | undefined)[]>;
|
|
45
|
+
export { helpText_1 as helpText };
|
|
46
|
+
export let name: PropTypes.Validator<string>;
|
|
47
|
+
let options_1: PropTypes.Requireable<(...args: any[]) => any>;
|
|
48
|
+
export { options_1 as options };
|
|
49
|
+
let readOnly_1: PropTypes.Requireable<boolean>;
|
|
50
|
+
export { readOnly_1 as readOnly };
|
|
51
|
+
let spellCheck_1: PropTypes.Requireable<string>;
|
|
52
|
+
export { spellCheck_1 as spellCheck };
|
|
53
|
+
let trailingElement_1: PropTypes.Requireable<PropTypes.ReactElementLike>;
|
|
54
|
+
export { trailingElement_1 as trailingElement };
|
|
55
|
+
let type_1: PropTypes.Requireable<string>;
|
|
56
|
+
export { type_1 as type };
|
|
57
|
+
export let value: PropTypes.Validator<string>;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
import PropTypes from 'prop-types';
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Form, TransitionReplace, } from '@openedx/paragon';
|
|
4
|
+
import PropTypes from 'prop-types';
|
|
5
|
+
const FormGroup = (props) => {
|
|
6
|
+
const [hasFocus, setHasFocus] = useState(false);
|
|
7
|
+
const handleFocus = (e) => {
|
|
8
|
+
setHasFocus(true);
|
|
9
|
+
if (props.handleFocus) {
|
|
10
|
+
props.handleFocus(e);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
const handleClick = (e) => {
|
|
14
|
+
if (props.handleClick) {
|
|
15
|
+
props.handleClick(e);
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
const handleOnBlur = (e) => {
|
|
19
|
+
setHasFocus(false);
|
|
20
|
+
if (props.handleBlur) {
|
|
21
|
+
props.handleBlur(e);
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
return (_jsxs(Form.Group, { controlId: props.name, className: props.className, isInvalid: props.errorMessage !== '', children: [_jsx(Form.Control, { as: props.as, readOnly: props.readOnly, type: props.type, "aria-invalid": props.errorMessage !== '', className: "form-group__form-field", autoComplete: props.autoComplete, spellCheck: props.spellCheck, name: props.name, value: props.value, onFocus: handleFocus, onBlur: handleOnBlur, onClick: handleClick, onChange: props.handleChange, controlClassName: props.borderClass, trailingElement: props.trailingElement, floatingLabel: props.floatingLabel, children: props.options ? props.options() : null }), _jsx(TransitionReplace, { children: hasFocus && props.helpText ? (_jsx(Form.Control.Feedback, { type: "default", className: "d-block form-text-size", children: props.helpText.map((message, index) => (_jsxs("span", { children: [message, _jsx("br", {})] }, `help-text-${index.toString()}`))) }, "help-text")) : _jsx("div", {}, "empty") }), props.errorMessage !== '' && (_jsx(Form.Control.Feedback, { className: "form-text-size", hasIcon: false, "feedback-for": props.name, type: "invalid", children: props.errorMessage }, "error")), props.children] }));
|
|
25
|
+
};
|
|
26
|
+
FormGroup.defaultProps = {
|
|
27
|
+
as: 'input',
|
|
28
|
+
autoComplete: null,
|
|
29
|
+
borderClass: '',
|
|
30
|
+
children: null,
|
|
31
|
+
className: '',
|
|
32
|
+
errorMessage: '',
|
|
33
|
+
handleBlur: null,
|
|
34
|
+
handleChange: () => { },
|
|
35
|
+
handleClick: null,
|
|
36
|
+
handleFocus: null,
|
|
37
|
+
helpText: [],
|
|
38
|
+
options: null,
|
|
39
|
+
readOnly: false,
|
|
40
|
+
spellCheck: null,
|
|
41
|
+
trailingElement: null,
|
|
42
|
+
type: 'text',
|
|
43
|
+
};
|
|
44
|
+
FormGroup.propTypes = {
|
|
45
|
+
as: PropTypes.string,
|
|
46
|
+
autoComplete: PropTypes.string,
|
|
47
|
+
borderClass: PropTypes.string,
|
|
48
|
+
children: PropTypes.element,
|
|
49
|
+
className: PropTypes.string,
|
|
50
|
+
errorMessage: PropTypes.string,
|
|
51
|
+
floatingLabel: PropTypes.string.isRequired,
|
|
52
|
+
handleBlur: PropTypes.func,
|
|
53
|
+
handleChange: PropTypes.func,
|
|
54
|
+
handleClick: PropTypes.func,
|
|
55
|
+
handleFocus: PropTypes.func,
|
|
56
|
+
helpText: PropTypes.arrayOf(PropTypes.string),
|
|
57
|
+
name: PropTypes.string.isRequired,
|
|
58
|
+
options: PropTypes.func,
|
|
59
|
+
readOnly: PropTypes.bool,
|
|
60
|
+
spellCheck: PropTypes.string,
|
|
61
|
+
trailingElement: PropTypes.element,
|
|
62
|
+
type: PropTypes.string,
|
|
63
|
+
value: PropTypes.string.isRequired,
|
|
64
|
+
};
|
|
65
|
+
export default FormGroup;
|
|
66
|
+
//# sourceMappingURL=FormGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FormGroup.js","sourceRoot":"","sources":["../../src/common-components/FormGroup.jsx"],"names":[],"mappings":"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","sourcesContent":["import { useState } from 'react';\n\nimport {\n Form, TransitionReplace,\n} from '@openedx/paragon';\nimport PropTypes from 'prop-types';\n\nconst FormGroup = (props) => {\n const [hasFocus, setHasFocus] = useState(false);\n\n const handleFocus = (e) => {\n setHasFocus(true);\n if (props.handleFocus) { props.handleFocus(e); }\n };\n const handleClick = (e) => {\n if (props.handleClick) { props.handleClick(e); }\n };\n const handleOnBlur = (e) => {\n setHasFocus(false);\n if (props.handleBlur) { props.handleBlur(e); }\n };\n\n return (\n <Form.Group controlId={props.name} className={props.className} isInvalid={props.errorMessage !== ''}>\n <Form.Control\n as={props.as}\n readOnly={props.readOnly}\n type={props.type}\n aria-invalid={props.errorMessage !== ''}\n className=\"form-group__form-field\"\n autoComplete={props.autoComplete}\n spellCheck={props.spellCheck}\n name={props.name}\n value={props.value}\n onFocus={handleFocus}\n onBlur={handleOnBlur}\n onClick={handleClick}\n onChange={props.handleChange}\n controlClassName={props.borderClass}\n trailingElement={props.trailingElement}\n floatingLabel={props.floatingLabel}\n >\n {props.options ? props.options() : null}\n </Form.Control>\n <TransitionReplace>\n {hasFocus && props.helpText ? (\n <Form.Control.Feedback type=\"default\" key=\"help-text\" className=\"d-block form-text-size\">\n {props.helpText.map((message, index) => (\n <span key={`help-text-${index.toString()}`}>\n {message}\n <br />\n </span>\n ))}\n </Form.Control.Feedback>\n ) : <div key=\"empty\" />}\n </TransitionReplace>\n {props.errorMessage !== '' && (\n <Form.Control.Feedback key=\"error\" className=\"form-text-size\" hasIcon={false} feedback-for={props.name} type=\"invalid\">{props.errorMessage}</Form.Control.Feedback>\n )}\n {props.children}\n </Form.Group>\n );\n};\n\nFormGroup.defaultProps = {\n as: 'input',\n autoComplete: null,\n borderClass: '',\n children: null,\n className: '',\n errorMessage: '',\n handleBlur: null,\n handleChange: () => {},\n handleClick: null,\n handleFocus: null,\n helpText: [],\n options: null,\n readOnly: false,\n spellCheck: null,\n trailingElement: null,\n type: 'text',\n};\n\nFormGroup.propTypes = {\n as: PropTypes.string,\n autoComplete: PropTypes.string,\n borderClass: PropTypes.string,\n children: PropTypes.element,\n className: PropTypes.string,\n errorMessage: PropTypes.string,\n floatingLabel: PropTypes.string.isRequired,\n handleBlur: PropTypes.func,\n handleChange: PropTypes.func,\n handleClick: PropTypes.func,\n handleFocus: PropTypes.func,\n helpText: PropTypes.arrayOf(PropTypes.string),\n name: PropTypes.string.isRequired,\n options: PropTypes.func,\n readOnly: PropTypes.bool,\n spellCheck: PropTypes.string,\n trailingElement: PropTypes.element,\n type: PropTypes.string,\n value: PropTypes.string.isRequired,\n};\n\nexport default FormGroup;\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export function RenderInstitutionButton(props: any): import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export namespace RenderInstitutionButton {
|
|
3
|
+
namespace propTypes {
|
|
4
|
+
let buttonTitle: PropTypes.Requireable<string>;
|
|
5
|
+
let onSubmitHandler: PropTypes.Validator<(...args: any[]) => any>;
|
|
6
|
+
let secondaryProviders: PropTypes.Requireable<(PropTypes.InferProps<{
|
|
7
|
+
name: PropTypes.Validator<string>;
|
|
8
|
+
loginUrl: PropTypes.Validator<string>;
|
|
9
|
+
}> | null | undefined)[]>;
|
|
10
|
+
}
|
|
11
|
+
namespace defaultProps {
|
|
12
|
+
let secondaryProviders_1: never[];
|
|
13
|
+
export { secondaryProviders_1 as secondaryProviders };
|
|
14
|
+
let buttonTitle_1: string;
|
|
15
|
+
export { buttonTitle_1 as buttonTitle };
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export default InstitutionLogistration;
|
|
19
|
+
import PropTypes from 'prop-types';
|
|
20
|
+
/**
|
|
21
|
+
* This component renders the page list of available institutions for login
|
|
22
|
+
* */
|
|
23
|
+
declare function InstitutionLogistration(props: any): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
declare namespace InstitutionLogistration {
|
|
25
|
+
export namespace propTypes_1 {
|
|
26
|
+
let headingTitle: PropTypes.Requireable<string>;
|
|
27
|
+
}
|
|
28
|
+
export { propTypes_1 as propTypes };
|
|
29
|
+
export namespace defaultProps_1 {
|
|
30
|
+
let headingTitle_1: string;
|
|
31
|
+
export { headingTitle_1 as headingTitle };
|
|
32
|
+
}
|
|
33
|
+
export { defaultProps_1 as defaultProps };
|
|
34
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { getSiteConfig, useIntl } from '@openedx/frontend-base';
|
|
3
|
+
import { Button, Hyperlink, Icon } from '@openedx/paragon';
|
|
4
|
+
import { Institution } from '@openedx/paragon/icons';
|
|
5
|
+
import PropTypes from 'prop-types';
|
|
6
|
+
import messages from './messages';
|
|
7
|
+
/**
|
|
8
|
+
* This component renders the Institution login button
|
|
9
|
+
* */
|
|
10
|
+
export const RenderInstitutionButton = props => {
|
|
11
|
+
const { onSubmitHandler, buttonTitle } = props;
|
|
12
|
+
return (_jsxs(Button, { className: "btn-sm text-body p-0 mb-4 border-0", variant: "link", "data-event-name": "institution_login", onClick: onSubmitHandler, children: [_jsx(Icon, { src: Institution, className: "institute-icon" }), buttonTitle] }));
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* This component renders the page list of available institutions for login
|
|
16
|
+
* */
|
|
17
|
+
const InstitutionLogistration = props => {
|
|
18
|
+
const lmsBaseUrl = getSiteConfig().lmsBaseUrl;
|
|
19
|
+
const { formatMessage } = useIntl();
|
|
20
|
+
const { secondaryProviders, headingTitle, } = props;
|
|
21
|
+
return (_jsxs(_Fragment, { children: [_jsx("div", { className: "d-flex justify-content-left mb-4 mt-2", children: _jsxs("div", { className: "flex-column", children: [_jsx("h4", { className: "mb-2 font-weight-bold institutions__heading", children: headingTitle }), _jsx("p", { className: "mb-2", children: formatMessage(messages['institution.login.page.sub.heading']) })] }) }), _jsx("div", { className: "mb-5", children: _jsx("table", { className: "pgn__data-table table-striped table-borderless", children: _jsx("tbody", { children: secondaryProviders.map(provider => (_jsx("tr", { className: "pgn__data-table-row", children: _jsx("td", { children: _jsx(Hyperlink, { className: "btn nav-item p-0 mb-1 institutions--provider-link", destination: lmsBaseUrl + provider.loginUrl, children: provider.name }) }) }, provider))) }) }) })] }));
|
|
22
|
+
};
|
|
23
|
+
const LogistrationDefaultProps = {
|
|
24
|
+
secondaryProviders: [],
|
|
25
|
+
buttonTitle: '',
|
|
26
|
+
};
|
|
27
|
+
const LogistrationProps = {
|
|
28
|
+
secondaryProviders: PropTypes.arrayOf(PropTypes.shape({
|
|
29
|
+
name: PropTypes.string.isRequired,
|
|
30
|
+
loginUrl: PropTypes.string.isRequired,
|
|
31
|
+
})),
|
|
32
|
+
};
|
|
33
|
+
RenderInstitutionButton.propTypes = Object.assign(Object.assign({}, LogistrationProps), { buttonTitle: PropTypes.string, onSubmitHandler: PropTypes.func.isRequired });
|
|
34
|
+
RenderInstitutionButton.defaultProps = Object.assign({}, LogistrationDefaultProps);
|
|
35
|
+
InstitutionLogistration.propTypes = Object.assign(Object.assign({}, LogistrationProps), { headingTitle: PropTypes.string });
|
|
36
|
+
InstitutionLogistration.defaultProps = Object.assign(Object.assign({}, LogistrationDefaultProps), { headingTitle: '' });
|
|
37
|
+
export default InstitutionLogistration;
|
|
38
|
+
//# sourceMappingURL=InstitutionLogistration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InstitutionLogistration.js","sourceRoot":"","sources":["../../src/common-components/InstitutionLogistration.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC;;KAEK;AACL,MAAM,CAAC,MAAM,uBAAuB,GAAG,KAAK,CAAC,EAAE;IAC7C,MAAM,EAAE,eAAe,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;IAE/C,OAAO,CACL,MAAC,MAAM,IACL,SAAS,EAAC,oCAAoC,EAC9C,OAAO,EAAC,MAAM,qBACE,mBAAmB,EACnC,OAAO,EAAE,eAAe,aAExB,KAAC,IAAI,IAAC,GAAG,EAAE,WAAW,EAAE,SAAS,EAAC,gBAAgB,GAAG,EACpD,WAAW,IACL,CACV,CAAC;AACJ,CAAC,CAAC;AAEF;;KAEK;AACL,MAAM,uBAAuB,GAAG,KAAK,CAAC,EAAE;IACtC,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC,UAAU,CAAC;IAC9C,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,EAAE,CAAC;IACpC,MAAM,EACJ,kBAAkB,EAClB,YAAY,GACb,GAAG,KAAK,CAAC;IAEV,OAAO,CACL,8BACE,cAAK,SAAS,EAAC,uCAAuC,YACpD,eAAK,SAAS,EAAC,aAAa,aAC1B,aAAI,SAAS,EAAC,6CAA6C,YACxD,YAAY,GACV,EACL,YAAG,SAAS,EAAC,MAAM,YAChB,aAAa,CAAC,QAAQ,CAAC,oCAAoC,CAAC,CAAC,GAC5D,IACA,GACF,EACN,cAAK,SAAS,EAAC,MAAM,YACnB,gBAAO,SAAS,EAAC,gDAAgD,YAC/D,0BACG,kBAAkB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAClC,aAAmB,SAAS,EAAC,qBAAqB,YAChD,uBACE,KAAC,SAAS,IACR,SAAS,EAAC,mDAAmD,EAC7D,WAAW,EAAE,UAAU,GAAG,QAAQ,CAAC,QAAQ,YAE1C,QAAQ,CAAC,IAAI,GACJ,GACT,IARE,QAAQ,CASZ,CACN,CAAC,GACI,GACF,GACJ,IACL,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,wBAAwB,GAAG;IAC/B,kBAAkB,EAAE,EAAE;IACtB,WAAW,EAAE,EAAE;CAChB,CAAC;AACF,MAAM,iBAAiB,GAAG;IACxB,kBAAkB,EAAE,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC;QACpD,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;QACjC,QAAQ,EAAE,SAAS,CAAC,MAAM,CAAC,UAAU;KACtC,CAAC,CAAC;CACJ,CAAC;AAEF,uBAAuB,CAAC,SAAS,mCAC5B,iBAAiB,KACpB,WAAW,EAAE,SAAS,CAAC,MAAM,EAC7B,eAAe,EAAE,SAAS,CAAC,IAAI,CAAC,UAAU,GAE3C,CAAC;AACF,uBAAuB,CAAC,YAAY,qBAC/B,wBAAwB,CAC5B,CAAC;AAEF,uBAAuB,CAAC,SAAS,mCAC5B,iBAAiB,KACpB,YAAY,EAAE,SAAS,CAAC,MAAM,GAC/B,CAAC;AACF,uBAAuB,CAAC,YAAY,mCAC/B,wBAAwB,KAC3B,YAAY,EAAE,EAAE,GACjB,CAAC;AAEF,eAAe,uBAAuB,CAAC","sourcesContent":["import { getSiteConfig, useIntl } from '@openedx/frontend-base';\nimport { Button, Hyperlink, Icon } from '@openedx/paragon';\nimport { Institution } from '@openedx/paragon/icons';\nimport PropTypes from 'prop-types';\n\nimport messages from './messages';\n\n/**\n * This component renders the Institution login button\n * */\nexport const RenderInstitutionButton = props => {\n const { onSubmitHandler, buttonTitle } = props;\n\n return (\n <Button\n className=\"btn-sm text-body p-0 mb-4 border-0\"\n variant=\"link\"\n data-event-name=\"institution_login\"\n onClick={onSubmitHandler}\n >\n <Icon src={Institution} className=\"institute-icon\" />\n {buttonTitle}\n </Button>\n );\n};\n\n/**\n * This component renders the page list of available institutions for login\n * */\nconst InstitutionLogistration = props => {\n const lmsBaseUrl = getSiteConfig().lmsBaseUrl;\n const { formatMessage } = useIntl();\n const {\n secondaryProviders,\n headingTitle,\n } = props;\n\n return (\n <>\n <div className=\"d-flex justify-content-left mb-4 mt-2\">\n <div className=\"flex-column\">\n <h4 className=\"mb-2 font-weight-bold institutions__heading\">\n {headingTitle}\n </h4>\n <p className=\"mb-2\">\n {formatMessage(messages['institution.login.page.sub.heading'])}\n </p>\n </div>\n </div>\n <div className=\"mb-5\">\n <table className=\"pgn__data-table table-striped table-borderless\">\n <tbody>\n {secondaryProviders.map(provider => (\n <tr key={provider} className=\"pgn__data-table-row\">\n <td>\n <Hyperlink\n className=\"btn nav-item p-0 mb-1 institutions--provider-link\"\n destination={lmsBaseUrl + provider.loginUrl}\n >\n {provider.name}\n </Hyperlink>\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n </>\n );\n};\n\nconst LogistrationDefaultProps = {\n secondaryProviders: [],\n buttonTitle: '',\n};\nconst LogistrationProps = {\n secondaryProviders: PropTypes.arrayOf(PropTypes.shape({\n name: PropTypes.string.isRequired,\n loginUrl: PropTypes.string.isRequired,\n })),\n};\n\nRenderInstitutionButton.propTypes = {\n ...LogistrationProps,\n buttonTitle: PropTypes.string,\n onSubmitHandler: PropTypes.func.isRequired,\n\n};\nRenderInstitutionButton.defaultProps = {\n ...LogistrationDefaultProps,\n};\n\nInstitutionLogistration.propTypes = {\n ...LogistrationProps,\n headingTitle: PropTypes.string,\n};\nInstitutionLogistration.defaultProps = {\n ...LogistrationDefaultProps,\n headingTitle: '',\n};\n\nexport default InstitutionLogistration;\n"]}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { FormattedMessage } from '@openedx/frontend-base';
|
|
3
|
+
const NotFoundPage = () => (_jsx("div", { className: "container-fluid d-flex py-5 justify-content-center align-items-start text-center", children: _jsx("p", { className: "my-0 py-5 text-muted mw-32em", children: _jsx(FormattedMessage, { id: "error.notfound.message", defaultMessage: "The page you're looking for is unavailable or there's an error in the URL. Please check the URL and try again.", description: "error message when a page does not exist" }) }) }));
|
|
4
|
+
export default NotFoundPage;
|
|
5
|
+
//# sourceMappingURL=NotFoundPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NotFoundPage.js","sourceRoot":"","sources":["../../src/common-components/NotFoundPage.jsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,CACzB,cAAK,SAAS,EAAC,kFAAkF,YAC/F,YAAG,SAAS,EAAC,8BAA8B,YACzC,KAAC,gBAAgB,IACf,EAAE,EAAC,wBAAwB,EAC3B,cAAc,EAAC,gHAAgH,EAC/H,WAAW,EAAC,0CAA0C,GACtD,GACA,GACA,CACP,CAAC;AAEF,eAAe,YAAY,CAAC","sourcesContent":["import { FormattedMessage } from '@openedx/frontend-base';\n\nconst NotFoundPage = () => (\n <div className=\"container-fluid d-flex py-5 justify-content-center align-items-start text-center\">\n <p className=\"my-0 py-5 text-muted mw-32em\">\n <FormattedMessage\n id=\"error.notfound.message\"\n defaultMessage=\"The page you're looking for is unavailable or there's an error in the URL. Please check the URL and try again.\"\n description=\"error message when a page does not exist\"\n />\n </p>\n </div>\n);\n\nexport default NotFoundPage;\n"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
export default PasswordField;
|
|
2
|
+
declare function PasswordField(props: any): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
declare namespace PasswordField {
|
|
4
|
+
namespace defaultProps {
|
|
5
|
+
let borderClass: string;
|
|
6
|
+
let errorMessage: string;
|
|
7
|
+
let handleBlur: null;
|
|
8
|
+
let handleFocus: null;
|
|
9
|
+
function handleChange(): void;
|
|
10
|
+
let handleErrorChange: null;
|
|
11
|
+
let showRequirements: boolean;
|
|
12
|
+
let showScreenReaderText: boolean;
|
|
13
|
+
let autoComplete: null;
|
|
14
|
+
}
|
|
15
|
+
namespace propTypes {
|
|
16
|
+
let borderClass_1: PropTypes.Requireable<string>;
|
|
17
|
+
export { borderClass_1 as borderClass };
|
|
18
|
+
let errorMessage_1: PropTypes.Requireable<string>;
|
|
19
|
+
export { errorMessage_1 as errorMessage };
|
|
20
|
+
export let floatingLabel: PropTypes.Validator<string>;
|
|
21
|
+
let handleBlur_1: PropTypes.Requireable<(...args: any[]) => any>;
|
|
22
|
+
export { handleBlur_1 as handleBlur };
|
|
23
|
+
let handleFocus_1: PropTypes.Requireable<(...args: any[]) => any>;
|
|
24
|
+
export { handleFocus_1 as handleFocus };
|
|
25
|
+
let handleChange_1: PropTypes.Requireable<(...args: any[]) => any>;
|
|
26
|
+
export { handleChange_1 as handleChange };
|
|
27
|
+
let handleErrorChange_1: PropTypes.Requireable<(...args: any[]) => any>;
|
|
28
|
+
export { handleErrorChange_1 as handleErrorChange };
|
|
29
|
+
export let name: PropTypes.Validator<string>;
|
|
30
|
+
let showRequirements_1: PropTypes.Requireable<boolean>;
|
|
31
|
+
export { showRequirements_1 as showRequirements };
|
|
32
|
+
export let value: PropTypes.Validator<string>;
|
|
33
|
+
let autoComplete_1: PropTypes.Requireable<string>;
|
|
34
|
+
export { autoComplete_1 as autoComplete };
|
|
35
|
+
let showScreenReaderText_1: PropTypes.Requireable<boolean>;
|
|
36
|
+
export { showScreenReaderText_1 as showScreenReaderText };
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
import PropTypes from 'prop-types';
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { useDispatch, useSelector } from 'react-redux';
|
|
4
|
+
import { useIntl } from '@openedx/frontend-base';
|
|
5
|
+
import { Form, Icon, IconButton, OverlayTrigger, Tooltip, useToggle, } from '@openedx/paragon';
|
|
6
|
+
import { Check, Remove, Visibility, VisibilityOff, } from '@openedx/paragon/icons';
|
|
7
|
+
import PropTypes from 'prop-types';
|
|
8
|
+
import { LETTER_REGEX, NUMBER_REGEX } from '../data/constants';
|
|
9
|
+
import { clearRegistrationBackendError, fetchRealtimeValidations } from '../register/data/actions';
|
|
10
|
+
import { validatePasswordField } from '../register/data/utils';
|
|
11
|
+
import messages from './messages';
|
|
12
|
+
const PasswordField = (props) => {
|
|
13
|
+
const { formatMessage } = useIntl();
|
|
14
|
+
const dispatch = useDispatch();
|
|
15
|
+
const validationApiRateLimited = useSelector(state => state.register.validationApiRateLimited);
|
|
16
|
+
const [isPasswordHidden, setHiddenTrue, setHiddenFalse] = useToggle(true);
|
|
17
|
+
const [showTooltip, setShowTooltip] = useState(false);
|
|
18
|
+
const handleBlur = (e) => {
|
|
19
|
+
var _a;
|
|
20
|
+
const { name, value } = e.target;
|
|
21
|
+
if (name === props.name && ((_a = e.relatedTarget) === null || _a === void 0 ? void 0 : _a.name) === 'passwordIcon') {
|
|
22
|
+
return; // Do not run validations on password icon click
|
|
23
|
+
}
|
|
24
|
+
let passwordValue = value;
|
|
25
|
+
if (name === 'passwordIcon') {
|
|
26
|
+
// To validate actual password value when onBlur is triggered by focusing out the password icon
|
|
27
|
+
passwordValue = props.value;
|
|
28
|
+
}
|
|
29
|
+
if (props.handleBlur) {
|
|
30
|
+
props.handleBlur({
|
|
31
|
+
target: {
|
|
32
|
+
name: props.name,
|
|
33
|
+
value: passwordValue,
|
|
34
|
+
},
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
setShowTooltip(props.showRequirements && false);
|
|
38
|
+
if (props.handleErrorChange) { // If rendering from register page
|
|
39
|
+
const fieldError = validatePasswordField(passwordValue, formatMessage);
|
|
40
|
+
if (fieldError) {
|
|
41
|
+
props.handleErrorChange('password', fieldError);
|
|
42
|
+
}
|
|
43
|
+
else if (!validationApiRateLimited) {
|
|
44
|
+
dispatch(fetchRealtimeValidations({ password: passwordValue }));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const handleFocus = (e) => {
|
|
49
|
+
var _a;
|
|
50
|
+
if (((_a = e.target) === null || _a === void 0 ? void 0 : _a.name) === 'passwordIcon') {
|
|
51
|
+
return; // Do not clear error on password icon focus
|
|
52
|
+
}
|
|
53
|
+
if (props.handleFocus) {
|
|
54
|
+
props.handleFocus(e);
|
|
55
|
+
}
|
|
56
|
+
if (props.handleErrorChange) {
|
|
57
|
+
props.handleErrorChange('password', '');
|
|
58
|
+
dispatch(clearRegistrationBackendError('password'));
|
|
59
|
+
}
|
|
60
|
+
setTimeout(() => setShowTooltip(props.showRequirements && true), 150);
|
|
61
|
+
};
|
|
62
|
+
const HideButton = (_jsx(IconButton, { onFocus: handleFocus, onBlur: handleBlur, name: "passwordIcon", src: VisibilityOff, iconAs: Icon, onClick: setHiddenTrue, size: "sm", variant: "secondary", alt: formatMessage(messages['hide.password']) }));
|
|
63
|
+
const ShowButton = (_jsx(IconButton, { onFocus: handleFocus, onBlur: handleBlur, name: "passwordIcon", src: Visibility, iconAs: Icon, onClick: setHiddenFalse, size: "sm", variant: "secondary", alt: formatMessage(messages['show.password']) }));
|
|
64
|
+
const placement = window.innerWidth < 768 ? 'top' : 'left';
|
|
65
|
+
const tooltip = (_jsxs(Tooltip, { id: `password-requirement-${placement}`, children: [_jsxs("span", { id: "letter-check", className: "d-flex align-items-center", children: [LETTER_REGEX.test(props.value) ? _jsx(Icon, { className: "text-success mr-1", src: Check }) : _jsx(Icon, { className: "mr-1 text-light-700", src: Remove }), formatMessage(messages['one.letter'])] }), _jsxs("span", { id: "number-check", className: "d-flex align-items-center", children: [NUMBER_REGEX.test(props.value) ? _jsx(Icon, { className: "text-success mr-1", src: Check }) : _jsx(Icon, { className: "mr-1 text-light-700", src: Remove }), formatMessage(messages['one.number'])] }), _jsxs("span", { id: "characters-check", className: "d-flex align-items-center", children: [props.value.length >= 8 ? _jsx(Icon, { className: "text-success mr-1", src: Check }) : _jsx(Icon, { className: "mr-1 text-light-700", src: Remove }), formatMessage(messages['eight.characters'])] })] }));
|
|
66
|
+
return (_jsxs(Form.Group, { controlId: props.name, isInvalid: props.errorMessage !== '', children: [_jsx(OverlayTrigger, { placement: placement, overlay: tooltip, show: showTooltip, children: _jsx(Form.Control, { as: "input", className: "form-group__form-field", type: isPasswordHidden ? 'password' : 'text', name: props.name, value: props.value, autoComplete: props.autoComplete, "aria-invalid": props.errorMessage !== '', onFocus: handleFocus, onBlur: handleBlur, onChange: props.handleChange, controlClassName: props.borderClass, trailingElement: isPasswordHidden ? ShowButton : HideButton, floatingLabel: props.floatingLabel }) }, "tooltip"), props.errorMessage !== '' && (_jsxs(Form.Control.Feedback, { className: "form-text-size", hasIcon: false, "feedback-for": props.name, type: "invalid", children: [props.errorMessage, props.showScreenReaderText && _jsx("span", { className: "sr-only", children: formatMessage(messages['password.sr.only.helping.text']) })] }, "error"))] }));
|
|
67
|
+
};
|
|
68
|
+
PasswordField.defaultProps = {
|
|
69
|
+
borderClass: '',
|
|
70
|
+
errorMessage: '',
|
|
71
|
+
handleBlur: null,
|
|
72
|
+
handleFocus: null,
|
|
73
|
+
handleChange: () => { },
|
|
74
|
+
handleErrorChange: null,
|
|
75
|
+
showRequirements: true,
|
|
76
|
+
showScreenReaderText: true,
|
|
77
|
+
autoComplete: null,
|
|
78
|
+
};
|
|
79
|
+
PasswordField.propTypes = {
|
|
80
|
+
borderClass: PropTypes.string,
|
|
81
|
+
errorMessage: PropTypes.string,
|
|
82
|
+
floatingLabel: PropTypes.string.isRequired,
|
|
83
|
+
handleBlur: PropTypes.func,
|
|
84
|
+
handleFocus: PropTypes.func,
|
|
85
|
+
handleChange: PropTypes.func,
|
|
86
|
+
handleErrorChange: PropTypes.func,
|
|
87
|
+
name: PropTypes.string.isRequired,
|
|
88
|
+
showRequirements: PropTypes.bool,
|
|
89
|
+
value: PropTypes.string.isRequired,
|
|
90
|
+
autoComplete: PropTypes.string,
|
|
91
|
+
showScreenReaderText: PropTypes.bool,
|
|
92
|
+
};
|
|
93
|
+
export default PasswordField;
|
|
94
|
+
//# sourceMappingURL=PasswordField.js.map
|