keycloakify 10.0.0-rc.77 → 10.0.0-rc.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/account/i18n/i18n.d.ts +4 -4
  2. package/account/i18n/i18n.js +12 -34
  3. package/account/i18n/i18n.js.map +1 -1
  4. package/account/i18n/index.d.ts +1 -1
  5. package/account/i18n/index.js +1 -1
  6. package/account/i18n/index.js.map +1 -1
  7. package/account/i18n/useI18n.d.ts +13 -0
  8. package/account/i18n/useI18n.js +26 -0
  9. package/account/i18n/useI18n.js.map +1 -0
  10. package/bin/440.index.js +15 -19
  11. package/bin/751.index.js +0 -2
  12. package/bin/shared/constants.d.ts +0 -1
  13. package/bin/shared/constants.js +0 -1
  14. package/bin/shared/constants.js.map +1 -1
  15. package/login/KcContext/KcContext.d.ts +5 -1
  16. package/login/KcContext/KcContext.js +0 -1
  17. package/login/KcContext/KcContext.js.map +1 -1
  18. package/login/KcContext/kcContextMocks.js +4 -1
  19. package/login/KcContext/kcContextMocks.js.map +1 -1
  20. package/login/i18n/i18n.d.ts +7 -4
  21. package/login/i18n/i18n.js +23 -38
  22. package/login/i18n/i18n.js.map +1 -1
  23. package/login/i18n/index.d.ts +1 -1
  24. package/login/i18n/index.js +1 -1
  25. package/login/i18n/index.js.map +1 -1
  26. package/login/i18n/useI18n.d.ts +13 -0
  27. package/login/i18n/useI18n.js +26 -0
  28. package/login/i18n/useI18n.js.map +1 -0
  29. package/login/lib/useDownloadTerms.d.ts +5 -4
  30. package/login/lib/useDownloadTerms.js +26 -5
  31. package/login/lib/useDownloadTerms.js.map +1 -1
  32. package/login/pages/Register.js +7 -6
  33. package/login/pages/Register.js.map +1 -1
  34. package/login/pages/Terms.d.ts +1 -1
  35. package/login/pages/Terms.js +6 -4
  36. package/login/pages/Terms.js.map +1 -1
  37. package/package.json +15 -7
  38. package/src/account/i18n/i18n.tsx +19 -53
  39. package/src/account/i18n/index.ts +1 -1
  40. package/src/account/i18n/useI18n.ts +44 -0
  41. package/src/bin/keycloakify/generateFtl/generateFtl.ts +1 -6
  42. package/src/bin/keycloakify/generateFtl/kcContextDeclarationTemplate.ftl +8 -1
  43. package/src/bin/keycloakify/generateResources/generateMessageProperties.ts +23 -17
  44. package/src/bin/shared/constants.ts +0 -2
  45. package/src/login/KcContext/KcContext.ts +6 -14
  46. package/src/login/KcContext/kcContextMocks.ts +4 -1
  47. package/src/login/i18n/i18n.tsx +37 -58
  48. package/src/login/i18n/index.ts +1 -1
  49. package/src/login/i18n/useI18n.ts +44 -0
  50. package/src/login/lib/useDownloadTerms.tsx +88 -0
  51. package/src/login/pages/Register.tsx +12 -12
  52. package/src/login/pages/Terms.tsx +12 -11
  53. package/src/tools/react-markdown.ts +3 -0
  54. package/tools/react-markdown.d.ts +3 -0
  55. package/tools/react-markdown.js +4 -0
  56. package/tools/react-markdown.js.map +1 -0
  57. package/vite-plugin/index.js +0 -2
  58. package/src/login/lib/useDownloadTerms.ts +0 -57
  59. package/src/tools/Markdown.ts +0 -3
  60. package/tools/Markdown.d.ts +0 -2
  61. package/tools/Markdown.js +0 -3
  62. package/tools/Markdown.js.map +0 -1
@@ -11,7 +11,10 @@ export type KcContextLike = {
11
11
  label: string;
12
12
  }[];
13
13
  };
14
- __localizationRealmOverridesUserProfile?: Record<string, string>;
14
+ "x-keycloakify": {
15
+ realmMessageBundleUserProfile: Record<string, string> | undefined;
16
+ realmMessageBundleTermsText: string | undefined;
17
+ };
15
18
  };
16
19
  export type MessageKey = keyof typeof messages_fallbackLanguage;
17
20
  export type GenericI18n<MessageKey extends string> = {
@@ -81,15 +84,15 @@ export type GenericI18n<MessageKey extends string> = {
81
84
  */
82
85
  isFetchingTranslations: boolean;
83
86
  };
84
- export declare function createUseI18n<ExtraMessageKey extends string = never>(extraMessages: {
87
+ export declare function createGetI18n<ExtraMessageKey extends string = never>(messageBundle: {
85
88
  [languageTag: string]: {
86
89
  [key in ExtraMessageKey]: string;
87
90
  };
88
91
  }): {
89
- useI18n: (params: {
92
+ getI18n: (params: {
90
93
  kcContext: KcContextLike;
91
94
  }) => {
92
95
  i18n: GenericI18n<"region" | "address" | "email" | "password" | "totpAppFreeOTPName" | "totpAppMicrosoftAuthenticatorName" | "totpAppGoogleName" | "doCancel" | "doLogIn" | "noAccessMessage" | "updatePasswordTitle" | "updatePasswordMessage" | "authenticatorCode" | "firstName" | "givenName" | "fullName" | "lastName" | "familyName" | "passwordConfirm" | "passwordNew" | "username" | "street" | "locality" | "postal_code" | "country" | "emailVerified" | "website" | "phoneNumber" | "phoneNumberVerified" | "gender" | "birthday" | "zoneinfo" | "gssDelegationCredential" | "profileScopeConsentText" | "emailScopeConsentText" | "addressScopeConsentText" | "phoneScopeConsentText" | "offlineAccessScopeConsentText" | "samlRoleListScopeConsentText" | "rolesScopeConsentText" | "role_admin" | "role_realm-admin" | "role_create-realm" | "role_view-realm" | "role_view-users" | "role_view-applications" | "role_view-clients" | "role_view-events" | "role_view-identity-providers" | "role_manage-realm" | "role_manage-users" | "role_manage-applications" | "role_manage-identity-providers" | "role_manage-clients" | "role_manage-events" | "role_view-profile" | "role_manage-account" | "role_manage-account-links" | "role_read-token" | "role_offline-access" | "client_account" | "client_account-console" | "client_security-admin-console" | "client_admin-cli" | "client_realm-management" | "client_broker" | "requiredFields" | "backToApplication" | "inResource" | "irreversibleAction" | "deletingImplies" | "errasingData" | "loggingOutImmediately" | "accountUnusable" | "missingUsernameMessage" | "missingFirstNameMessage" | "invalidEmailMessage" | "missingLastNameMessage" | "missingEmailMessage" | "missingPasswordMessage" | "notMatchPasswordMessage" | "invalidUserMessage" | "missingTotpMessage" | "missingTotpDeviceNameMessage" | "invalidPasswordExistingMessage" | "invalidPasswordConfirmMessage" | "invalidTotpMessage" | "usernameExistsMessage" | "emailExistsMessage" | "readOnlyUsernameMessage" | "accountUpdatedMessage" | "accountPasswordUpdatedMessage" | "identityProviderNotFoundMessage" | "identityProviderAlreadyLinkedMessage" | "consentDenied" | "access-denied-when-idp-auth" | "accountDisabledMessage" | "accountTemporarilyDisabledMessage" | "invalidPasswordMinLengthMessage" | "invalidPasswordMaxLengthMessage" | "invalidPasswordMinLowerCaseCharsMessage" | "invalidPasswordMinDigitsMessage" | "invalidPasswordMinUpperCaseCharsMessage" | "invalidPasswordMinSpecialCharsMessage" | "invalidPasswordNotUsernameMessage" | "invalidPasswordNotEmailMessage" | "invalidPasswordRegexPatternMessage" | "invalidPasswordHistoryMessage" | "invalidPasswordBlacklistedMessage" | "invalidPasswordGenericMessage" | "locale_ar" | "locale_ca" | "locale_cs" | "locale_de" | "locale_en" | "locale_es" | "locale_fr" | "locale_hu" | "locale_it" | "locale_ja" | "locale_lt" | "locale_nl" | "locale_no" | "locale_pl" | "locale_pt-BR" | "locale_ru" | "locale_sk" | "locale_sv" | "locale_th" | "locale_tr" | "locale_uk" | "locale_zh-CN" | "locale_fi" | "clientNotFoundMessage" | "openshift.scope.user_info" | "openshift.scope.user_check-access" | "openshift.scope.user_full" | "openshift.scope.list-projects" | "error-invalid-value" | "error-invalid-blank" | "error-empty" | "error-invalid-length" | "error-invalid-length-too-short" | "error-invalid-length-too-long" | "error-invalid-email" | "error-invalid-number" | "error-number-out-of-range" | "error-number-out-of-range-too-small" | "error-number-out-of-range-too-big" | "error-pattern-no-match" | "error-invalid-uri" | "error-invalid-uri-scheme" | "error-invalid-uri-fragment" | "error-user-attribute-required" | "error-invalid-date" | "error-user-attribute-read-only" | "error-username-invalid-character" | "error-person-name-invalid-character" | "remove" | "usb" | "nfc" | "bluetooth" | "doRegister" | "doRegisterSecurityKey" | "doSubmit" | "doBack" | "doYes" | "doNo" | "doContinue" | "doIgnore" | "doAccept" | "doDecline" | "doForgotPassword" | "doClickHere" | "doImpersonate" | "doTryAgain" | "doTryAnotherWay" | "doConfirmDelete" | "errorDeletingAccount" | "deletingAccountForbidden" | "kerberosNotConfigured" | "kerberosNotConfiguredTitle" | "bypassKerberosDetail" | "kerberosNotSetUp" | "registerTitle" | "loginAccountTitle" | "loginTitle" | "loginTitleHtml" | "impersonateTitle" | "impersonateTitleHtml" | "realmChoice" | "unknownUser" | "loginTotpTitle" | "loginProfileTitle" | "loginIdpReviewProfileTitle" | "loginTimeout" | "reauthenticate" | "authenticateStrong" | "oauthGrantTitle" | "oauthGrantTitleHtml" | "oauthGrantInformation" | "oauthGrantReview" | "oauthGrantTos" | "oauthGrantPolicy" | "errorTitle" | "errorTitleHtml" | "emailVerifyTitle" | "emailForgotTitle" | "updateEmailTitle" | "emailUpdateConfirmationSentTitle" | "emailUpdateConfirmationSent" | "emailUpdatedTitle" | "emailUpdated" | "codeSuccessTitle" | "codeErrorTitle" | "displayUnsupported" | "browserRequired" | "browserContinue" | "browserContinuePrompt" | "browserContinueAnswer" | "internal" | "unknown" | "termsTitle" | "termsText" | "termsPlainText" | "termsAcceptanceRequired" | "acceptTerms" | "deleteCredentialTitle" | "deleteCredentialMessage" | "recaptchaFailed" | "recaptchaNotConfigured" | "noAccount" | "usernameOrEmail" | "passwordNewConfirm" | "hidePassword" | "showPassword" | "rememberMe" | "logoutOtherSessions" | "restartLoginTooltip" | "loginTotpIntro" | "loginTotpStep1" | "loginTotpStep2" | "loginTotpStep3" | "loginTotpStep3DeviceName" | "loginTotpManualStep2" | "loginTotpManualStep3" | "loginTotpUnableToScan" | "loginTotpScanBarcode" | "loginCredential" | "loginOtpOneTime" | "loginTotpType" | "loginTotpAlgorithm" | "loginTotpDigits" | "loginTotpInterval" | "loginTotpCounter" | "loginTotpDeviceName" | "loginTotp.totp" | "loginTotp.hotp" | "loginChooseAuthenticator" | "oauthGrantRequest" | "oauth2DeviceVerificationTitle" | "verifyOAuth2DeviceUserCode" | "oauth2DeviceInvalidUserCodeMessage" | "oauth2DeviceExpiredUserCodeMessage" | "oauth2DeviceVerificationCompleteHeader" | "oauth2DeviceVerificationCompleteMessage" | "oauth2DeviceVerificationFailedHeader" | "oauth2DeviceVerificationFailedMessage" | "oauth2DeviceConsentDeniedMessage" | "oauth2DeviceAuthorizationGrantDisabledMessage" | "emailVerifyInstruction1" | "emailVerifyInstruction2" | "emailVerifyInstruction3" | "emailLinkIdpTitle" | "emailLinkIdp1" | "emailLinkIdp2" | "emailLinkIdp3" | "emailLinkIdp4" | "emailLinkIdp5" | "backToLogin" | "emailInstruction" | "emailInstructionUsername" | "copyCodeInstruction" | "pageExpiredTitle" | "pageExpiredMsg1" | "pageExpiredMsg2" | "personalInfo" | "role_create-client" | "invalidUsernameMessage" | "invalidUsernameOrEmailMessage" | "invalidPasswordMessage" | "expiredCodeMessage" | "expiredActionMessage" | "expiredActionTokenNoSessionMessage" | "expiredActionTokenSessionExistsMessage" | "sessionLimitExceeded" | "error-reset-otp-missing-id" | "federatedIdentityExistsMessage" | "federatedIdentityUnavailableMessage" | "federatedIdentityUnmatchedEssentialClaimMessage" | "confirmLinkIdpTitle" | "federatedIdentityConfirmLinkMessage" | "federatedIdentityConfirmReauthenticateMessage" | "nestedFirstBrokerFlowMessage" | "confirmLinkIdpReviewProfile" | "confirmLinkIdpContinue" | "configureTotpMessage" | "configureBackupCodesMessage" | "updateProfileMessage" | "updateEmailMessage" | "resetPasswordMessage" | "verifyEmailMessage" | "linkIdpMessage" | "emailSentMessage" | "emailSendErrorMessage" | "delegationCompleteHeader" | "delegationCompleteMessage" | "delegationFailedHeader" | "delegationFailedMessage" | "failedToProcessResponseMessage" | "httpsRequiredMessage" | "realmNotEnabledMessage" | "invalidRequestMessage" | "successLogout" | "failedLogout" | "unknownLoginRequesterMessage" | "loginRequesterNotEnabledMessage" | "bearerOnlyMessage" | "standardFlowDisabledMessage" | "implicitFlowDisabledMessage" | "invalidRedirectUriMessage" | "unsupportedNameIdFormatMessage" | "invalidRequesterMessage" | "registrationNotAllowedMessage" | "resetCredentialNotAllowedMessage" | "permissionNotApprovedMessage" | "noRelayStateInResponseMessage" | "insufficientPermissionMessage" | "couldNotProceedWithAuthenticationRequestMessage" | "couldNotObtainTokenMessage" | "unexpectedErrorRetrievingTokenMessage" | "unexpectedErrorHandlingResponseMessage" | "identityProviderAuthenticationFailedMessage" | "couldNotSendAuthenticationRequestMessage" | "unexpectedErrorHandlingRequestMessage" | "invalidAccessCodeMessage" | "sessionNotActiveMessage" | "invalidCodeMessage" | "cookieNotFoundMessage" | "insufficientLevelOfAuthentication" | "identityProviderUnexpectedErrorMessage" | "identityProviderMissingStateMessage" | "identityProviderMissingCodeOrErrorMessage" | "identityProviderInvalidResponseMessage" | "identityProviderInvalidSignatureMessage" | "identityProviderLinkSuccess" | "staleCodeMessage" | "realmSupportsNoCredentialsMessage" | "credentialSetupRequired" | "identityProviderNotUniqueMessage" | "emailVerifiedMessage" | "emailVerifiedAlreadyMessage" | "staleEmailVerificationLink" | "confirmAccountLinking" | "confirmEmailAddressVerification" | "confirmExecutionOfActions" | "locale_da" | "locale_lv" | "missingParameterMessage" | "clientDisabledMessage" | "invalidParameterMessage" | "alreadyLoggedIn" | "differentUserAuthenticated" | "brokerLinkingSessionExpired" | "proceedWithAction" | "acrNotFulfilled" | "requiredAction.CONFIGURE_TOTP" | "requiredAction.TERMS_AND_CONDITIONS" | "requiredAction.UPDATE_PASSWORD" | "requiredAction.UPDATE_PROFILE" | "requiredAction.VERIFY_EMAIL" | "requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES" | "requiredAction.webauthn-register-passwordless" | "invalidTokenRequiredActions" | "doX509Login" | "clientCertificate" | "noCertificate" | "pageNotFound" | "internalServerError" | "console-username" | "console-password" | "console-otp" | "console-new-password" | "console-confirm-password" | "console-update-password" | "console-verify-email" | "console-email-code" | "console-accept-terms" | "console-accept" | "saml.post-form.title" | "saml.post-form.message" | "saml.post-form.js-disabled" | "saml.artifactResolutionServiceInvalidResponse" | "otp-display-name" | "otp-help-text" | "otp-reset-description" | "password-display-name" | "password-help-text" | "auth-username-form-display-name" | "auth-username-form-help-text" | "auth-username-password-form-display-name" | "auth-username-password-form-help-text" | "auth-recovery-authn-code-form-display-name" | "auth-recovery-authn-code-form-help-text" | "auth-recovery-code-info-message" | "auth-recovery-code-prompt" | "auth-recovery-code-header" | "recovery-codes-error-invalid" | "recovery-code-config-header" | "recovery-code-config-warning-title" | "recovery-code-config-warning-message" | "recovery-codes-print" | "recovery-codes-download" | "recovery-codes-copy" | "recovery-codes-copied" | "recovery-codes-confirmation-message" | "recovery-codes-action-complete" | "recovery-codes-action-cancel" | "recovery-codes-download-file-header" | "recovery-codes-download-file-description" | "recovery-codes-download-file-date" | "recovery-codes-label-default" | "webauthn-display-name" | "webauthn-help-text" | "webauthn-passwordless-display-name" | "webauthn-passwordless-help-text" | "webauthn-login-title" | "webauthn-registration-title" | "webauthn-available-authenticators" | "webauthn-unsupported-browser-text" | "webauthn-doAuthenticate" | "webauthn-createdAt-label" | "webauthn-error-title" | "webauthn-error-registration" | "webauthn-error-api-get" | "webauthn-error-different-user" | "webauthn-error-auth-verification" | "webauthn-error-register-verification" | "webauthn-error-user-not-found" | "identity-provider-redirector" | "identity-provider-login-label" | "idp-email-verification-display-name" | "idp-email-verification-help-text" | "idp-username-password-form-display-name" | "idp-username-password-form-help-text" | "finalDeletionConfirmation" | "deleteAccountConfirm" | "userDeletedSuccessfully" | "access-denied" | "frontchannel-logout.title" | "frontchannel-logout.message" | "logoutConfirmTitle" | "logoutConfirmHeader" | "doLogout" | "error-invalid-multivalued-size" | "shouldBeEqual" | "shouldBeDifferent" | "shouldMatchPattern" | "mustBeAnInteger" | "notAValidOption" | "selectAnOption" | "addValue" | "languages" | ExtraMessageKey>;
96
+ prI18n_currentLanguage: Promise<GenericI18n<"region" | "address" | "email" | "password" | "totpAppFreeOTPName" | "totpAppMicrosoftAuthenticatorName" | "totpAppGoogleName" | "doCancel" | "doLogIn" | "noAccessMessage" | "updatePasswordTitle" | "updatePasswordMessage" | "authenticatorCode" | "firstName" | "givenName" | "fullName" | "lastName" | "familyName" | "passwordConfirm" | "passwordNew" | "username" | "street" | "locality" | "postal_code" | "country" | "emailVerified" | "website" | "phoneNumber" | "phoneNumberVerified" | "gender" | "birthday" | "zoneinfo" | "gssDelegationCredential" | "profileScopeConsentText" | "emailScopeConsentText" | "addressScopeConsentText" | "phoneScopeConsentText" | "offlineAccessScopeConsentText" | "samlRoleListScopeConsentText" | "rolesScopeConsentText" | "role_admin" | "role_realm-admin" | "role_create-realm" | "role_view-realm" | "role_view-users" | "role_view-applications" | "role_view-clients" | "role_view-events" | "role_view-identity-providers" | "role_manage-realm" | "role_manage-users" | "role_manage-applications" | "role_manage-identity-providers" | "role_manage-clients" | "role_manage-events" | "role_view-profile" | "role_manage-account" | "role_manage-account-links" | "role_read-token" | "role_offline-access" | "client_account" | "client_account-console" | "client_security-admin-console" | "client_admin-cli" | "client_realm-management" | "client_broker" | "requiredFields" | "backToApplication" | "inResource" | "irreversibleAction" | "deletingImplies" | "errasingData" | "loggingOutImmediately" | "accountUnusable" | "missingUsernameMessage" | "missingFirstNameMessage" | "invalidEmailMessage" | "missingLastNameMessage" | "missingEmailMessage" | "missingPasswordMessage" | "notMatchPasswordMessage" | "invalidUserMessage" | "missingTotpMessage" | "missingTotpDeviceNameMessage" | "invalidPasswordExistingMessage" | "invalidPasswordConfirmMessage" | "invalidTotpMessage" | "usernameExistsMessage" | "emailExistsMessage" | "readOnlyUsernameMessage" | "accountUpdatedMessage" | "accountPasswordUpdatedMessage" | "identityProviderNotFoundMessage" | "identityProviderAlreadyLinkedMessage" | "consentDenied" | "access-denied-when-idp-auth" | "accountDisabledMessage" | "accountTemporarilyDisabledMessage" | "invalidPasswordMinLengthMessage" | "invalidPasswordMaxLengthMessage" | "invalidPasswordMinLowerCaseCharsMessage" | "invalidPasswordMinDigitsMessage" | "invalidPasswordMinUpperCaseCharsMessage" | "invalidPasswordMinSpecialCharsMessage" | "invalidPasswordNotUsernameMessage" | "invalidPasswordNotEmailMessage" | "invalidPasswordRegexPatternMessage" | "invalidPasswordHistoryMessage" | "invalidPasswordBlacklistedMessage" | "invalidPasswordGenericMessage" | "locale_ar" | "locale_ca" | "locale_cs" | "locale_de" | "locale_en" | "locale_es" | "locale_fr" | "locale_hu" | "locale_it" | "locale_ja" | "locale_lt" | "locale_nl" | "locale_no" | "locale_pl" | "locale_pt-BR" | "locale_ru" | "locale_sk" | "locale_sv" | "locale_th" | "locale_tr" | "locale_uk" | "locale_zh-CN" | "locale_fi" | "clientNotFoundMessage" | "openshift.scope.user_info" | "openshift.scope.user_check-access" | "openshift.scope.user_full" | "openshift.scope.list-projects" | "error-invalid-value" | "error-invalid-blank" | "error-empty" | "error-invalid-length" | "error-invalid-length-too-short" | "error-invalid-length-too-long" | "error-invalid-email" | "error-invalid-number" | "error-number-out-of-range" | "error-number-out-of-range-too-small" | "error-number-out-of-range-too-big" | "error-pattern-no-match" | "error-invalid-uri" | "error-invalid-uri-scheme" | "error-invalid-uri-fragment" | "error-user-attribute-required" | "error-invalid-date" | "error-user-attribute-read-only" | "error-username-invalid-character" | "error-person-name-invalid-character" | "remove" | "usb" | "nfc" | "bluetooth" | "doRegister" | "doRegisterSecurityKey" | "doSubmit" | "doBack" | "doYes" | "doNo" | "doContinue" | "doIgnore" | "doAccept" | "doDecline" | "doForgotPassword" | "doClickHere" | "doImpersonate" | "doTryAgain" | "doTryAnotherWay" | "doConfirmDelete" | "errorDeletingAccount" | "deletingAccountForbidden" | "kerberosNotConfigured" | "kerberosNotConfiguredTitle" | "bypassKerberosDetail" | "kerberosNotSetUp" | "registerTitle" | "loginAccountTitle" | "loginTitle" | "loginTitleHtml" | "impersonateTitle" | "impersonateTitleHtml" | "realmChoice" | "unknownUser" | "loginTotpTitle" | "loginProfileTitle" | "loginIdpReviewProfileTitle" | "loginTimeout" | "reauthenticate" | "authenticateStrong" | "oauthGrantTitle" | "oauthGrantTitleHtml" | "oauthGrantInformation" | "oauthGrantReview" | "oauthGrantTos" | "oauthGrantPolicy" | "errorTitle" | "errorTitleHtml" | "emailVerifyTitle" | "emailForgotTitle" | "updateEmailTitle" | "emailUpdateConfirmationSentTitle" | "emailUpdateConfirmationSent" | "emailUpdatedTitle" | "emailUpdated" | "codeSuccessTitle" | "codeErrorTitle" | "displayUnsupported" | "browserRequired" | "browserContinue" | "browserContinuePrompt" | "browserContinueAnswer" | "internal" | "unknown" | "termsTitle" | "termsText" | "termsPlainText" | "termsAcceptanceRequired" | "acceptTerms" | "deleteCredentialTitle" | "deleteCredentialMessage" | "recaptchaFailed" | "recaptchaNotConfigured" | "noAccount" | "usernameOrEmail" | "passwordNewConfirm" | "hidePassword" | "showPassword" | "rememberMe" | "logoutOtherSessions" | "restartLoginTooltip" | "loginTotpIntro" | "loginTotpStep1" | "loginTotpStep2" | "loginTotpStep3" | "loginTotpStep3DeviceName" | "loginTotpManualStep2" | "loginTotpManualStep3" | "loginTotpUnableToScan" | "loginTotpScanBarcode" | "loginCredential" | "loginOtpOneTime" | "loginTotpType" | "loginTotpAlgorithm" | "loginTotpDigits" | "loginTotpInterval" | "loginTotpCounter" | "loginTotpDeviceName" | "loginTotp.totp" | "loginTotp.hotp" | "loginChooseAuthenticator" | "oauthGrantRequest" | "oauth2DeviceVerificationTitle" | "verifyOAuth2DeviceUserCode" | "oauth2DeviceInvalidUserCodeMessage" | "oauth2DeviceExpiredUserCodeMessage" | "oauth2DeviceVerificationCompleteHeader" | "oauth2DeviceVerificationCompleteMessage" | "oauth2DeviceVerificationFailedHeader" | "oauth2DeviceVerificationFailedMessage" | "oauth2DeviceConsentDeniedMessage" | "oauth2DeviceAuthorizationGrantDisabledMessage" | "emailVerifyInstruction1" | "emailVerifyInstruction2" | "emailVerifyInstruction3" | "emailLinkIdpTitle" | "emailLinkIdp1" | "emailLinkIdp2" | "emailLinkIdp3" | "emailLinkIdp4" | "emailLinkIdp5" | "backToLogin" | "emailInstruction" | "emailInstructionUsername" | "copyCodeInstruction" | "pageExpiredTitle" | "pageExpiredMsg1" | "pageExpiredMsg2" | "personalInfo" | "role_create-client" | "invalidUsernameMessage" | "invalidUsernameOrEmailMessage" | "invalidPasswordMessage" | "expiredCodeMessage" | "expiredActionMessage" | "expiredActionTokenNoSessionMessage" | "expiredActionTokenSessionExistsMessage" | "sessionLimitExceeded" | "error-reset-otp-missing-id" | "federatedIdentityExistsMessage" | "federatedIdentityUnavailableMessage" | "federatedIdentityUnmatchedEssentialClaimMessage" | "confirmLinkIdpTitle" | "federatedIdentityConfirmLinkMessage" | "federatedIdentityConfirmReauthenticateMessage" | "nestedFirstBrokerFlowMessage" | "confirmLinkIdpReviewProfile" | "confirmLinkIdpContinue" | "configureTotpMessage" | "configureBackupCodesMessage" | "updateProfileMessage" | "updateEmailMessage" | "resetPasswordMessage" | "verifyEmailMessage" | "linkIdpMessage" | "emailSentMessage" | "emailSendErrorMessage" | "delegationCompleteHeader" | "delegationCompleteMessage" | "delegationFailedHeader" | "delegationFailedMessage" | "failedToProcessResponseMessage" | "httpsRequiredMessage" | "realmNotEnabledMessage" | "invalidRequestMessage" | "successLogout" | "failedLogout" | "unknownLoginRequesterMessage" | "loginRequesterNotEnabledMessage" | "bearerOnlyMessage" | "standardFlowDisabledMessage" | "implicitFlowDisabledMessage" | "invalidRedirectUriMessage" | "unsupportedNameIdFormatMessage" | "invalidRequesterMessage" | "registrationNotAllowedMessage" | "resetCredentialNotAllowedMessage" | "permissionNotApprovedMessage" | "noRelayStateInResponseMessage" | "insufficientPermissionMessage" | "couldNotProceedWithAuthenticationRequestMessage" | "couldNotObtainTokenMessage" | "unexpectedErrorRetrievingTokenMessage" | "unexpectedErrorHandlingResponseMessage" | "identityProviderAuthenticationFailedMessage" | "couldNotSendAuthenticationRequestMessage" | "unexpectedErrorHandlingRequestMessage" | "invalidAccessCodeMessage" | "sessionNotActiveMessage" | "invalidCodeMessage" | "cookieNotFoundMessage" | "insufficientLevelOfAuthentication" | "identityProviderUnexpectedErrorMessage" | "identityProviderMissingStateMessage" | "identityProviderMissingCodeOrErrorMessage" | "identityProviderInvalidResponseMessage" | "identityProviderInvalidSignatureMessage" | "identityProviderLinkSuccess" | "staleCodeMessage" | "realmSupportsNoCredentialsMessage" | "credentialSetupRequired" | "identityProviderNotUniqueMessage" | "emailVerifiedMessage" | "emailVerifiedAlreadyMessage" | "staleEmailVerificationLink" | "confirmAccountLinking" | "confirmEmailAddressVerification" | "confirmExecutionOfActions" | "locale_da" | "locale_lv" | "missingParameterMessage" | "clientDisabledMessage" | "invalidParameterMessage" | "alreadyLoggedIn" | "differentUserAuthenticated" | "brokerLinkingSessionExpired" | "proceedWithAction" | "acrNotFulfilled" | "requiredAction.CONFIGURE_TOTP" | "requiredAction.TERMS_AND_CONDITIONS" | "requiredAction.UPDATE_PASSWORD" | "requiredAction.UPDATE_PROFILE" | "requiredAction.VERIFY_EMAIL" | "requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES" | "requiredAction.webauthn-register-passwordless" | "invalidTokenRequiredActions" | "doX509Login" | "clientCertificate" | "noCertificate" | "pageNotFound" | "internalServerError" | "console-username" | "console-password" | "console-otp" | "console-new-password" | "console-confirm-password" | "console-update-password" | "console-verify-email" | "console-email-code" | "console-accept-terms" | "console-accept" | "saml.post-form.title" | "saml.post-form.message" | "saml.post-form.js-disabled" | "saml.artifactResolutionServiceInvalidResponse" | "otp-display-name" | "otp-help-text" | "otp-reset-description" | "password-display-name" | "password-help-text" | "auth-username-form-display-name" | "auth-username-form-help-text" | "auth-username-password-form-display-name" | "auth-username-password-form-help-text" | "auth-recovery-authn-code-form-display-name" | "auth-recovery-authn-code-form-help-text" | "auth-recovery-code-info-message" | "auth-recovery-code-prompt" | "auth-recovery-code-header" | "recovery-codes-error-invalid" | "recovery-code-config-header" | "recovery-code-config-warning-title" | "recovery-code-config-warning-message" | "recovery-codes-print" | "recovery-codes-download" | "recovery-codes-copy" | "recovery-codes-copied" | "recovery-codes-confirmation-message" | "recovery-codes-action-complete" | "recovery-codes-action-cancel" | "recovery-codes-download-file-header" | "recovery-codes-download-file-description" | "recovery-codes-download-file-date" | "recovery-codes-label-default" | "webauthn-display-name" | "webauthn-help-text" | "webauthn-passwordless-display-name" | "webauthn-passwordless-help-text" | "webauthn-login-title" | "webauthn-registration-title" | "webauthn-available-authenticators" | "webauthn-unsupported-browser-text" | "webauthn-doAuthenticate" | "webauthn-createdAt-label" | "webauthn-error-title" | "webauthn-error-registration" | "webauthn-error-api-get" | "webauthn-error-different-user" | "webauthn-error-auth-verification" | "webauthn-error-register-verification" | "webauthn-error-user-not-found" | "identity-provider-redirector" | "identity-provider-login-label" | "idp-email-verification-display-name" | "idp-email-verification-help-text" | "idp-username-password-form-display-name" | "idp-username-password-form-help-text" | "finalDeletionConfirmation" | "deleteAccountConfirm" | "userDeletedSuccessfully" | "access-denied" | "frontchannel-logout.title" | "frontchannel-logout.message" | "logoutConfirmTitle" | "logoutConfirmHeader" | "doLogout" | "error-invalid-multivalued-size" | "shouldBeEqual" | "shouldBeDifferent" | "shouldMatchPattern" | "mustBeAnInteger" | "notAValidOption" | "selectAnOption" | "addValue" | "languages" | ExtraMessageKey>> | undefined;
93
97
  };
94
- ofTypeI18n: GenericI18n<"region" | "address" | "email" | "password" | "totpAppFreeOTPName" | "totpAppMicrosoftAuthenticatorName" | "totpAppGoogleName" | "doCancel" | "doLogIn" | "noAccessMessage" | "updatePasswordTitle" | "updatePasswordMessage" | "authenticatorCode" | "firstName" | "givenName" | "fullName" | "lastName" | "familyName" | "passwordConfirm" | "passwordNew" | "username" | "street" | "locality" | "postal_code" | "country" | "emailVerified" | "website" | "phoneNumber" | "phoneNumberVerified" | "gender" | "birthday" | "zoneinfo" | "gssDelegationCredential" | "profileScopeConsentText" | "emailScopeConsentText" | "addressScopeConsentText" | "phoneScopeConsentText" | "offlineAccessScopeConsentText" | "samlRoleListScopeConsentText" | "rolesScopeConsentText" | "role_admin" | "role_realm-admin" | "role_create-realm" | "role_view-realm" | "role_view-users" | "role_view-applications" | "role_view-clients" | "role_view-events" | "role_view-identity-providers" | "role_manage-realm" | "role_manage-users" | "role_manage-applications" | "role_manage-identity-providers" | "role_manage-clients" | "role_manage-events" | "role_view-profile" | "role_manage-account" | "role_manage-account-links" | "role_read-token" | "role_offline-access" | "client_account" | "client_account-console" | "client_security-admin-console" | "client_admin-cli" | "client_realm-management" | "client_broker" | "requiredFields" | "backToApplication" | "inResource" | "irreversibleAction" | "deletingImplies" | "errasingData" | "loggingOutImmediately" | "accountUnusable" | "missingUsernameMessage" | "missingFirstNameMessage" | "invalidEmailMessage" | "missingLastNameMessage" | "missingEmailMessage" | "missingPasswordMessage" | "notMatchPasswordMessage" | "invalidUserMessage" | "missingTotpMessage" | "missingTotpDeviceNameMessage" | "invalidPasswordExistingMessage" | "invalidPasswordConfirmMessage" | "invalidTotpMessage" | "usernameExistsMessage" | "emailExistsMessage" | "readOnlyUsernameMessage" | "accountUpdatedMessage" | "accountPasswordUpdatedMessage" | "identityProviderNotFoundMessage" | "identityProviderAlreadyLinkedMessage" | "consentDenied" | "access-denied-when-idp-auth" | "accountDisabledMessage" | "accountTemporarilyDisabledMessage" | "invalidPasswordMinLengthMessage" | "invalidPasswordMaxLengthMessage" | "invalidPasswordMinLowerCaseCharsMessage" | "invalidPasswordMinDigitsMessage" | "invalidPasswordMinUpperCaseCharsMessage" | "invalidPasswordMinSpecialCharsMessage" | "invalidPasswordNotUsernameMessage" | "invalidPasswordNotEmailMessage" | "invalidPasswordRegexPatternMessage" | "invalidPasswordHistoryMessage" | "invalidPasswordBlacklistedMessage" | "invalidPasswordGenericMessage" | "locale_ar" | "locale_ca" | "locale_cs" | "locale_de" | "locale_en" | "locale_es" | "locale_fr" | "locale_hu" | "locale_it" | "locale_ja" | "locale_lt" | "locale_nl" | "locale_no" | "locale_pl" | "locale_pt-BR" | "locale_ru" | "locale_sk" | "locale_sv" | "locale_th" | "locale_tr" | "locale_uk" | "locale_zh-CN" | "locale_fi" | "clientNotFoundMessage" | "openshift.scope.user_info" | "openshift.scope.user_check-access" | "openshift.scope.user_full" | "openshift.scope.list-projects" | "error-invalid-value" | "error-invalid-blank" | "error-empty" | "error-invalid-length" | "error-invalid-length-too-short" | "error-invalid-length-too-long" | "error-invalid-email" | "error-invalid-number" | "error-number-out-of-range" | "error-number-out-of-range-too-small" | "error-number-out-of-range-too-big" | "error-pattern-no-match" | "error-invalid-uri" | "error-invalid-uri-scheme" | "error-invalid-uri-fragment" | "error-user-attribute-required" | "error-invalid-date" | "error-user-attribute-read-only" | "error-username-invalid-character" | "error-person-name-invalid-character" | "remove" | "usb" | "nfc" | "bluetooth" | "doRegister" | "doRegisterSecurityKey" | "doSubmit" | "doBack" | "doYes" | "doNo" | "doContinue" | "doIgnore" | "doAccept" | "doDecline" | "doForgotPassword" | "doClickHere" | "doImpersonate" | "doTryAgain" | "doTryAnotherWay" | "doConfirmDelete" | "errorDeletingAccount" | "deletingAccountForbidden" | "kerberosNotConfigured" | "kerberosNotConfiguredTitle" | "bypassKerberosDetail" | "kerberosNotSetUp" | "registerTitle" | "loginAccountTitle" | "loginTitle" | "loginTitleHtml" | "impersonateTitle" | "impersonateTitleHtml" | "realmChoice" | "unknownUser" | "loginTotpTitle" | "loginProfileTitle" | "loginIdpReviewProfileTitle" | "loginTimeout" | "reauthenticate" | "authenticateStrong" | "oauthGrantTitle" | "oauthGrantTitleHtml" | "oauthGrantInformation" | "oauthGrantReview" | "oauthGrantTos" | "oauthGrantPolicy" | "errorTitle" | "errorTitleHtml" | "emailVerifyTitle" | "emailForgotTitle" | "updateEmailTitle" | "emailUpdateConfirmationSentTitle" | "emailUpdateConfirmationSent" | "emailUpdatedTitle" | "emailUpdated" | "codeSuccessTitle" | "codeErrorTitle" | "displayUnsupported" | "browserRequired" | "browserContinue" | "browserContinuePrompt" | "browserContinueAnswer" | "internal" | "unknown" | "termsTitle" | "termsText" | "termsPlainText" | "termsAcceptanceRequired" | "acceptTerms" | "deleteCredentialTitle" | "deleteCredentialMessage" | "recaptchaFailed" | "recaptchaNotConfigured" | "noAccount" | "usernameOrEmail" | "passwordNewConfirm" | "hidePassword" | "showPassword" | "rememberMe" | "logoutOtherSessions" | "restartLoginTooltip" | "loginTotpIntro" | "loginTotpStep1" | "loginTotpStep2" | "loginTotpStep3" | "loginTotpStep3DeviceName" | "loginTotpManualStep2" | "loginTotpManualStep3" | "loginTotpUnableToScan" | "loginTotpScanBarcode" | "loginCredential" | "loginOtpOneTime" | "loginTotpType" | "loginTotpAlgorithm" | "loginTotpDigits" | "loginTotpInterval" | "loginTotpCounter" | "loginTotpDeviceName" | "loginTotp.totp" | "loginTotp.hotp" | "loginChooseAuthenticator" | "oauthGrantRequest" | "oauth2DeviceVerificationTitle" | "verifyOAuth2DeviceUserCode" | "oauth2DeviceInvalidUserCodeMessage" | "oauth2DeviceExpiredUserCodeMessage" | "oauth2DeviceVerificationCompleteHeader" | "oauth2DeviceVerificationCompleteMessage" | "oauth2DeviceVerificationFailedHeader" | "oauth2DeviceVerificationFailedMessage" | "oauth2DeviceConsentDeniedMessage" | "oauth2DeviceAuthorizationGrantDisabledMessage" | "emailVerifyInstruction1" | "emailVerifyInstruction2" | "emailVerifyInstruction3" | "emailLinkIdpTitle" | "emailLinkIdp1" | "emailLinkIdp2" | "emailLinkIdp3" | "emailLinkIdp4" | "emailLinkIdp5" | "backToLogin" | "emailInstruction" | "emailInstructionUsername" | "copyCodeInstruction" | "pageExpiredTitle" | "pageExpiredMsg1" | "pageExpiredMsg2" | "personalInfo" | "role_create-client" | "invalidUsernameMessage" | "invalidUsernameOrEmailMessage" | "invalidPasswordMessage" | "expiredCodeMessage" | "expiredActionMessage" | "expiredActionTokenNoSessionMessage" | "expiredActionTokenSessionExistsMessage" | "sessionLimitExceeded" | "error-reset-otp-missing-id" | "federatedIdentityExistsMessage" | "federatedIdentityUnavailableMessage" | "federatedIdentityUnmatchedEssentialClaimMessage" | "confirmLinkIdpTitle" | "federatedIdentityConfirmLinkMessage" | "federatedIdentityConfirmReauthenticateMessage" | "nestedFirstBrokerFlowMessage" | "confirmLinkIdpReviewProfile" | "confirmLinkIdpContinue" | "configureTotpMessage" | "configureBackupCodesMessage" | "updateProfileMessage" | "updateEmailMessage" | "resetPasswordMessage" | "verifyEmailMessage" | "linkIdpMessage" | "emailSentMessage" | "emailSendErrorMessage" | "delegationCompleteHeader" | "delegationCompleteMessage" | "delegationFailedHeader" | "delegationFailedMessage" | "failedToProcessResponseMessage" | "httpsRequiredMessage" | "realmNotEnabledMessage" | "invalidRequestMessage" | "successLogout" | "failedLogout" | "unknownLoginRequesterMessage" | "loginRequesterNotEnabledMessage" | "bearerOnlyMessage" | "standardFlowDisabledMessage" | "implicitFlowDisabledMessage" | "invalidRedirectUriMessage" | "unsupportedNameIdFormatMessage" | "invalidRequesterMessage" | "registrationNotAllowedMessage" | "resetCredentialNotAllowedMessage" | "permissionNotApprovedMessage" | "noRelayStateInResponseMessage" | "insufficientPermissionMessage" | "couldNotProceedWithAuthenticationRequestMessage" | "couldNotObtainTokenMessage" | "unexpectedErrorRetrievingTokenMessage" | "unexpectedErrorHandlingResponseMessage" | "identityProviderAuthenticationFailedMessage" | "couldNotSendAuthenticationRequestMessage" | "unexpectedErrorHandlingRequestMessage" | "invalidAccessCodeMessage" | "sessionNotActiveMessage" | "invalidCodeMessage" | "cookieNotFoundMessage" | "insufficientLevelOfAuthentication" | "identityProviderUnexpectedErrorMessage" | "identityProviderMissingStateMessage" | "identityProviderMissingCodeOrErrorMessage" | "identityProviderInvalidResponseMessage" | "identityProviderInvalidSignatureMessage" | "identityProviderLinkSuccess" | "staleCodeMessage" | "realmSupportsNoCredentialsMessage" | "credentialSetupRequired" | "identityProviderNotUniqueMessage" | "emailVerifiedMessage" | "emailVerifiedAlreadyMessage" | "staleEmailVerificationLink" | "confirmAccountLinking" | "confirmEmailAddressVerification" | "confirmExecutionOfActions" | "locale_da" | "locale_lv" | "missingParameterMessage" | "clientDisabledMessage" | "invalidParameterMessage" | "alreadyLoggedIn" | "differentUserAuthenticated" | "brokerLinkingSessionExpired" | "proceedWithAction" | "acrNotFulfilled" | "requiredAction.CONFIGURE_TOTP" | "requiredAction.TERMS_AND_CONDITIONS" | "requiredAction.UPDATE_PASSWORD" | "requiredAction.UPDATE_PROFILE" | "requiredAction.VERIFY_EMAIL" | "requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES" | "requiredAction.webauthn-register-passwordless" | "invalidTokenRequiredActions" | "doX509Login" | "clientCertificate" | "noCertificate" | "pageNotFound" | "internalServerError" | "console-username" | "console-password" | "console-otp" | "console-new-password" | "console-confirm-password" | "console-update-password" | "console-verify-email" | "console-email-code" | "console-accept-terms" | "console-accept" | "saml.post-form.title" | "saml.post-form.message" | "saml.post-form.js-disabled" | "saml.artifactResolutionServiceInvalidResponse" | "otp-display-name" | "otp-help-text" | "otp-reset-description" | "password-display-name" | "password-help-text" | "auth-username-form-display-name" | "auth-username-form-help-text" | "auth-username-password-form-display-name" | "auth-username-password-form-help-text" | "auth-recovery-authn-code-form-display-name" | "auth-recovery-authn-code-form-help-text" | "auth-recovery-code-info-message" | "auth-recovery-code-prompt" | "auth-recovery-code-header" | "recovery-codes-error-invalid" | "recovery-code-config-header" | "recovery-code-config-warning-title" | "recovery-code-config-warning-message" | "recovery-codes-print" | "recovery-codes-download" | "recovery-codes-copy" | "recovery-codes-copied" | "recovery-codes-confirmation-message" | "recovery-codes-action-complete" | "recovery-codes-action-cancel" | "recovery-codes-download-file-header" | "recovery-codes-download-file-description" | "recovery-codes-download-file-date" | "recovery-codes-label-default" | "webauthn-display-name" | "webauthn-help-text" | "webauthn-passwordless-display-name" | "webauthn-passwordless-help-text" | "webauthn-login-title" | "webauthn-registration-title" | "webauthn-available-authenticators" | "webauthn-unsupported-browser-text" | "webauthn-doAuthenticate" | "webauthn-createdAt-label" | "webauthn-error-title" | "webauthn-error-registration" | "webauthn-error-api-get" | "webauthn-error-different-user" | "webauthn-error-auth-verification" | "webauthn-error-register-verification" | "webauthn-error-user-not-found" | "identity-provider-redirector" | "identity-provider-login-label" | "idp-email-verification-display-name" | "idp-email-verification-help-text" | "idp-username-password-form-display-name" | "idp-username-password-form-help-text" | "finalDeletionConfirmation" | "deleteAccountConfirm" | "userDeletedSuccessfully" | "access-denied" | "frontchannel-logout.title" | "frontchannel-logout.message" | "logoutConfirmTitle" | "logoutConfirmHeader" | "doLogout" | "error-invalid-multivalued-size" | "shouldBeEqual" | "shouldBeDifferent" | "shouldMatchPattern" | "mustBeAnInteger" | "notAValidOption" | "selectAnOption" | "addValue" | "languages" | ExtraMessageKey>;
95
98
  };
@@ -1,13 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import "../../tools/Object.fromEntries";
3
- import { useEffect, useState } from "react";
4
3
  import { assert } from "tsafe/assert";
5
4
  import messages_fallbackLanguage from "./baseMessages/en";
6
5
  import { getMessages } from "./baseMessages";
7
- import { Reflect } from "tsafe/Reflect";
8
6
  export const fallbackLanguageTag = "en";
9
7
  assert();
10
- function createGetI18n(extraMessages) {
8
+ export function createGetI18n(messageBundle) {
11
9
  const cachedResultByKcContext = new WeakMap();
12
10
  function getI18n(params) {
13
11
  var _a, _b, _c, _d;
@@ -32,18 +30,21 @@ function createGetI18n(extraMessages) {
32
30
  };
33
31
  const { createI18nTranslationFunctions } = createI18nTranslationFunctionsFactory({
34
32
  messages_fallbackLanguage,
35
- extraMessages_fallbackLanguage: extraMessages[fallbackLanguageTag],
36
- extraMessages: extraMessages[partialI18n.currentLanguageTag],
37
- __localizationRealmOverridesUserProfile: kcContext.__localizationRealmOverridesUserProfile
33
+ messageBundle_fallbackLanguage: messageBundle[fallbackLanguageTag],
34
+ messageBundle_currentLanguage: messageBundle[partialI18n.currentLanguageTag],
35
+ realmMessageBundleUserProfile: kcContext["x-keycloakify"].realmMessageBundleUserProfile,
36
+ realmMessageBundleTermsText: kcContext["x-keycloakify"].realmMessageBundleTermsText
38
37
  });
39
38
  const isCurrentLanguageFallbackLanguage = partialI18n.currentLanguageTag === fallbackLanguageTag;
40
39
  const result = {
41
- i18n: Object.assign(Object.assign(Object.assign({}, partialI18n), createI18nTranslationFunctions({ messages: undefined })), { isFetchingTranslations: !isCurrentLanguageFallbackLanguage }),
40
+ i18n: Object.assign(Object.assign(Object.assign({}, partialI18n), createI18nTranslationFunctions({
41
+ messages_currentLanguage: isCurrentLanguageFallbackLanguage ? messages_fallbackLanguage : undefined
42
+ })), { isFetchingTranslations: !isCurrentLanguageFallbackLanguage }),
42
43
  prI18n_currentLanguage: isCurrentLanguageFallbackLanguage
43
44
  ? undefined
44
45
  : (async () => {
45
- const messages = await getMessages(partialI18n.currentLanguageTag);
46
- const i18n_currentLanguage = Object.assign(Object.assign(Object.assign({}, partialI18n), createI18nTranslationFunctions({ messages })), { isFetchingTranslations: false });
46
+ const messages_currentLanguage = await getMessages(partialI18n.currentLanguageTag);
47
+ const i18n_currentLanguage = Object.assign(Object.assign(Object.assign({}, partialI18n), createI18nTranslationFunctions({ messages_currentLanguage })), { isFetchingTranslations: false });
47
48
  // NOTE: This promise.resolve is just because without it we TypeScript
48
49
  // gives a Variable 'result' is used before being assigned. error
49
50
  await Promise.resolve().then(() => {
@@ -58,37 +59,21 @@ function createGetI18n(extraMessages) {
58
59
  }
59
60
  return { getI18n };
60
61
  }
61
- export function createUseI18n(extraMessages) {
62
- const { getI18n } = createGetI18n(extraMessages);
63
- function useI18n(params) {
64
- const { kcContext } = params;
65
- const { i18n, prI18n_currentLanguage } = getI18n({ kcContext });
66
- const [i18n_toReturn, setI18n_toReturn] = useState(i18n);
67
- useEffect(() => {
68
- let isActive = true;
69
- prI18n_currentLanguage === null || prI18n_currentLanguage === void 0 ? void 0 : prI18n_currentLanguage.then(i18n => {
70
- if (!isActive) {
71
- return;
72
- }
73
- setI18n_toReturn(i18n);
74
- });
75
- return () => {
76
- isActive = false;
77
- };
78
- }, []);
79
- return { i18n: i18n_toReturn };
80
- }
81
- return { useI18n, ofTypeI18n: Reflect() };
82
- }
83
62
  function createI18nTranslationFunctionsFactory(params) {
84
- const { __localizationRealmOverridesUserProfile, extraMessages } = params;
85
- const messages_fallbackLanguage = Object.assign(Object.assign({}, params.messages_fallbackLanguage), params.extraMessages_fallbackLanguage);
63
+ const { messageBundle_currentLanguage, realmMessageBundleUserProfile, realmMessageBundleTermsText } = params;
64
+ const messages_fallbackLanguage = Object.assign(Object.assign({}, params.messages_fallbackLanguage), params.messageBundle_fallbackLanguage);
86
65
  function createI18nTranslationFunctions(params) {
87
- const messages = Object.assign(Object.assign({}, params.messages), extraMessages);
66
+ const messages_currentLanguage = Object.assign(Object.assign({}, params.messages_currentLanguage), messageBundle_currentLanguage);
88
67
  function resolveMsg(props) {
89
- var _a;
90
68
  const { key, args, doRenderAsHtml } = props;
91
- const messageOrUndefined = (_a = messages[key]) !== null && _a !== void 0 ? _a : messages_fallbackLanguage[key];
69
+ const messageOrUndefined = (() => {
70
+ var _a;
71
+ const messageOrUndefined = (_a = messages_currentLanguage[key]) !== null && _a !== void 0 ? _a : messages_fallbackLanguage[key];
72
+ if (key === "termsText") {
73
+ return realmMessageBundleTermsText;
74
+ }
75
+ return messageOrUndefined;
76
+ })();
92
77
  if (messageOrUndefined === undefined) {
93
78
  return undefined;
94
79
  }
@@ -118,8 +103,8 @@ function createI18nTranslationFunctionsFactory(params) {
118
103
  }
119
104
  function resolveMsgAdvanced(props) {
120
105
  const { key, args, doRenderAsHtml } = props;
121
- if (__localizationRealmOverridesUserProfile !== undefined && key in __localizationRealmOverridesUserProfile) {
122
- const resolvedMessage = __localizationRealmOverridesUserProfile[key];
106
+ if (realmMessageBundleUserProfile !== undefined && key in realmMessageBundleUserProfile) {
107
+ const resolvedMessage = realmMessageBundleUserProfile[key];
123
108
  return doRenderAsHtml ? (_jsx("span", {
124
109
  // NOTE: The message is trusted. The arguments are not but are escaped.
125
110
  dangerouslySetInnerHTML: {
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/login/i18n/i18n.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/login/i18n/i18n.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { GenericI18n, MessageKey, KcContextLike } from "./i18n";
2
2
  export type { MessageKey, KcContextLike };
3
3
  export type I18n = GenericI18n<MessageKey>;
4
- export { createUseI18n } from "./i18n";
4
+ export { createUseI18n } from "./useI18n";
5
5
  export { fallbackLanguageTag } from "./i18n";
@@ -1,3 +1,3 @@
1
- export { createUseI18n } from "./i18n";
1
+ export { createUseI18n } from "./useI18n";
2
2
  export { fallbackLanguageTag } from "./i18n";
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/login/i18n/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/login/i18n/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { type GenericI18n, type KcContextLike } from "./i18n";
2
+ export declare function createUseI18n<ExtraMessageKey extends string = never>(extraMessages: {
3
+ [languageTag: string]: {
4
+ [key in ExtraMessageKey]: string;
5
+ };
6
+ }): {
7
+ useI18n: (params: {
8
+ kcContext: KcContextLike;
9
+ }) => {
10
+ i18n: GenericI18n<"region" | "address" | "email" | "password" | "totpAppFreeOTPName" | "totpAppMicrosoftAuthenticatorName" | "totpAppGoogleName" | "doCancel" | "doLogIn" | "noAccessMessage" | "updatePasswordTitle" | "updatePasswordMessage" | "authenticatorCode" | "firstName" | "givenName" | "fullName" | "lastName" | "familyName" | "passwordConfirm" | "passwordNew" | "username" | "street" | "locality" | "postal_code" | "country" | "emailVerified" | "website" | "phoneNumber" | "phoneNumberVerified" | "gender" | "birthday" | "zoneinfo" | "gssDelegationCredential" | "profileScopeConsentText" | "emailScopeConsentText" | "addressScopeConsentText" | "phoneScopeConsentText" | "offlineAccessScopeConsentText" | "samlRoleListScopeConsentText" | "rolesScopeConsentText" | "role_admin" | "role_realm-admin" | "role_create-realm" | "role_view-realm" | "role_view-users" | "role_view-applications" | "role_view-clients" | "role_view-events" | "role_view-identity-providers" | "role_manage-realm" | "role_manage-users" | "role_manage-applications" | "role_manage-identity-providers" | "role_manage-clients" | "role_manage-events" | "role_view-profile" | "role_manage-account" | "role_manage-account-links" | "role_read-token" | "role_offline-access" | "client_account" | "client_account-console" | "client_security-admin-console" | "client_admin-cli" | "client_realm-management" | "client_broker" | "requiredFields" | "backToApplication" | "inResource" | "irreversibleAction" | "deletingImplies" | "errasingData" | "loggingOutImmediately" | "accountUnusable" | "missingUsernameMessage" | "missingFirstNameMessage" | "invalidEmailMessage" | "missingLastNameMessage" | "missingEmailMessage" | "missingPasswordMessage" | "notMatchPasswordMessage" | "invalidUserMessage" | "missingTotpMessage" | "missingTotpDeviceNameMessage" | "invalidPasswordExistingMessage" | "invalidPasswordConfirmMessage" | "invalidTotpMessage" | "usernameExistsMessage" | "emailExistsMessage" | "readOnlyUsernameMessage" | "accountUpdatedMessage" | "accountPasswordUpdatedMessage" | "identityProviderNotFoundMessage" | "identityProviderAlreadyLinkedMessage" | "consentDenied" | "access-denied-when-idp-auth" | "accountDisabledMessage" | "accountTemporarilyDisabledMessage" | "invalidPasswordMinLengthMessage" | "invalidPasswordMaxLengthMessage" | "invalidPasswordMinLowerCaseCharsMessage" | "invalidPasswordMinDigitsMessage" | "invalidPasswordMinUpperCaseCharsMessage" | "invalidPasswordMinSpecialCharsMessage" | "invalidPasswordNotUsernameMessage" | "invalidPasswordNotEmailMessage" | "invalidPasswordRegexPatternMessage" | "invalidPasswordHistoryMessage" | "invalidPasswordBlacklistedMessage" | "invalidPasswordGenericMessage" | "locale_ar" | "locale_ca" | "locale_cs" | "locale_de" | "locale_en" | "locale_es" | "locale_fr" | "locale_hu" | "locale_it" | "locale_ja" | "locale_lt" | "locale_nl" | "locale_no" | "locale_pl" | "locale_pt-BR" | "locale_ru" | "locale_sk" | "locale_sv" | "locale_th" | "locale_tr" | "locale_uk" | "locale_zh-CN" | "locale_fi" | "clientNotFoundMessage" | "openshift.scope.user_info" | "openshift.scope.user_check-access" | "openshift.scope.user_full" | "openshift.scope.list-projects" | "error-invalid-value" | "error-invalid-blank" | "error-empty" | "error-invalid-length" | "error-invalid-length-too-short" | "error-invalid-length-too-long" | "error-invalid-email" | "error-invalid-number" | "error-number-out-of-range" | "error-number-out-of-range-too-small" | "error-number-out-of-range-too-big" | "error-pattern-no-match" | "error-invalid-uri" | "error-invalid-uri-scheme" | "error-invalid-uri-fragment" | "error-user-attribute-required" | "error-invalid-date" | "error-user-attribute-read-only" | "error-username-invalid-character" | "error-person-name-invalid-character" | "remove" | "usb" | "nfc" | "bluetooth" | "doRegister" | "doRegisterSecurityKey" | "doSubmit" | "doBack" | "doYes" | "doNo" | "doContinue" | "doIgnore" | "doAccept" | "doDecline" | "doForgotPassword" | "doClickHere" | "doImpersonate" | "doTryAgain" | "doTryAnotherWay" | "doConfirmDelete" | "errorDeletingAccount" | "deletingAccountForbidden" | "kerberosNotConfigured" | "kerberosNotConfiguredTitle" | "bypassKerberosDetail" | "kerberosNotSetUp" | "registerTitle" | "loginAccountTitle" | "loginTitle" | "loginTitleHtml" | "impersonateTitle" | "impersonateTitleHtml" | "realmChoice" | "unknownUser" | "loginTotpTitle" | "loginProfileTitle" | "loginIdpReviewProfileTitle" | "loginTimeout" | "reauthenticate" | "authenticateStrong" | "oauthGrantTitle" | "oauthGrantTitleHtml" | "oauthGrantInformation" | "oauthGrantReview" | "oauthGrantTos" | "oauthGrantPolicy" | "errorTitle" | "errorTitleHtml" | "emailVerifyTitle" | "emailForgotTitle" | "updateEmailTitle" | "emailUpdateConfirmationSentTitle" | "emailUpdateConfirmationSent" | "emailUpdatedTitle" | "emailUpdated" | "codeSuccessTitle" | "codeErrorTitle" | "displayUnsupported" | "browserRequired" | "browserContinue" | "browserContinuePrompt" | "browserContinueAnswer" | "internal" | "unknown" | "termsTitle" | "termsText" | "termsPlainText" | "termsAcceptanceRequired" | "acceptTerms" | "deleteCredentialTitle" | "deleteCredentialMessage" | "recaptchaFailed" | "recaptchaNotConfigured" | "noAccount" | "usernameOrEmail" | "passwordNewConfirm" | "hidePassword" | "showPassword" | "rememberMe" | "logoutOtherSessions" | "restartLoginTooltip" | "loginTotpIntro" | "loginTotpStep1" | "loginTotpStep2" | "loginTotpStep3" | "loginTotpStep3DeviceName" | "loginTotpManualStep2" | "loginTotpManualStep3" | "loginTotpUnableToScan" | "loginTotpScanBarcode" | "loginCredential" | "loginOtpOneTime" | "loginTotpType" | "loginTotpAlgorithm" | "loginTotpDigits" | "loginTotpInterval" | "loginTotpCounter" | "loginTotpDeviceName" | "loginTotp.totp" | "loginTotp.hotp" | "loginChooseAuthenticator" | "oauthGrantRequest" | "oauth2DeviceVerificationTitle" | "verifyOAuth2DeviceUserCode" | "oauth2DeviceInvalidUserCodeMessage" | "oauth2DeviceExpiredUserCodeMessage" | "oauth2DeviceVerificationCompleteHeader" | "oauth2DeviceVerificationCompleteMessage" | "oauth2DeviceVerificationFailedHeader" | "oauth2DeviceVerificationFailedMessage" | "oauth2DeviceConsentDeniedMessage" | "oauth2DeviceAuthorizationGrantDisabledMessage" | "emailVerifyInstruction1" | "emailVerifyInstruction2" | "emailVerifyInstruction3" | "emailLinkIdpTitle" | "emailLinkIdp1" | "emailLinkIdp2" | "emailLinkIdp3" | "emailLinkIdp4" | "emailLinkIdp5" | "backToLogin" | "emailInstruction" | "emailInstructionUsername" | "copyCodeInstruction" | "pageExpiredTitle" | "pageExpiredMsg1" | "pageExpiredMsg2" | "personalInfo" | "role_create-client" | "invalidUsernameMessage" | "invalidUsernameOrEmailMessage" | "invalidPasswordMessage" | "expiredCodeMessage" | "expiredActionMessage" | "expiredActionTokenNoSessionMessage" | "expiredActionTokenSessionExistsMessage" | "sessionLimitExceeded" | "error-reset-otp-missing-id" | "federatedIdentityExistsMessage" | "federatedIdentityUnavailableMessage" | "federatedIdentityUnmatchedEssentialClaimMessage" | "confirmLinkIdpTitle" | "federatedIdentityConfirmLinkMessage" | "federatedIdentityConfirmReauthenticateMessage" | "nestedFirstBrokerFlowMessage" | "confirmLinkIdpReviewProfile" | "confirmLinkIdpContinue" | "configureTotpMessage" | "configureBackupCodesMessage" | "updateProfileMessage" | "updateEmailMessage" | "resetPasswordMessage" | "verifyEmailMessage" | "linkIdpMessage" | "emailSentMessage" | "emailSendErrorMessage" | "delegationCompleteHeader" | "delegationCompleteMessage" | "delegationFailedHeader" | "delegationFailedMessage" | "failedToProcessResponseMessage" | "httpsRequiredMessage" | "realmNotEnabledMessage" | "invalidRequestMessage" | "successLogout" | "failedLogout" | "unknownLoginRequesterMessage" | "loginRequesterNotEnabledMessage" | "bearerOnlyMessage" | "standardFlowDisabledMessage" | "implicitFlowDisabledMessage" | "invalidRedirectUriMessage" | "unsupportedNameIdFormatMessage" | "invalidRequesterMessage" | "registrationNotAllowedMessage" | "resetCredentialNotAllowedMessage" | "permissionNotApprovedMessage" | "noRelayStateInResponseMessage" | "insufficientPermissionMessage" | "couldNotProceedWithAuthenticationRequestMessage" | "couldNotObtainTokenMessage" | "unexpectedErrorRetrievingTokenMessage" | "unexpectedErrorHandlingResponseMessage" | "identityProviderAuthenticationFailedMessage" | "couldNotSendAuthenticationRequestMessage" | "unexpectedErrorHandlingRequestMessage" | "invalidAccessCodeMessage" | "sessionNotActiveMessage" | "invalidCodeMessage" | "cookieNotFoundMessage" | "insufficientLevelOfAuthentication" | "identityProviderUnexpectedErrorMessage" | "identityProviderMissingStateMessage" | "identityProviderMissingCodeOrErrorMessage" | "identityProviderInvalidResponseMessage" | "identityProviderInvalidSignatureMessage" | "identityProviderLinkSuccess" | "staleCodeMessage" | "realmSupportsNoCredentialsMessage" | "credentialSetupRequired" | "identityProviderNotUniqueMessage" | "emailVerifiedMessage" | "emailVerifiedAlreadyMessage" | "staleEmailVerificationLink" | "confirmAccountLinking" | "confirmEmailAddressVerification" | "confirmExecutionOfActions" | "locale_da" | "locale_lv" | "missingParameterMessage" | "clientDisabledMessage" | "invalidParameterMessage" | "alreadyLoggedIn" | "differentUserAuthenticated" | "brokerLinkingSessionExpired" | "proceedWithAction" | "acrNotFulfilled" | "requiredAction.CONFIGURE_TOTP" | "requiredAction.TERMS_AND_CONDITIONS" | "requiredAction.UPDATE_PASSWORD" | "requiredAction.UPDATE_PROFILE" | "requiredAction.VERIFY_EMAIL" | "requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES" | "requiredAction.webauthn-register-passwordless" | "invalidTokenRequiredActions" | "doX509Login" | "clientCertificate" | "noCertificate" | "pageNotFound" | "internalServerError" | "console-username" | "console-password" | "console-otp" | "console-new-password" | "console-confirm-password" | "console-update-password" | "console-verify-email" | "console-email-code" | "console-accept-terms" | "console-accept" | "saml.post-form.title" | "saml.post-form.message" | "saml.post-form.js-disabled" | "saml.artifactResolutionServiceInvalidResponse" | "otp-display-name" | "otp-help-text" | "otp-reset-description" | "password-display-name" | "password-help-text" | "auth-username-form-display-name" | "auth-username-form-help-text" | "auth-username-password-form-display-name" | "auth-username-password-form-help-text" | "auth-recovery-authn-code-form-display-name" | "auth-recovery-authn-code-form-help-text" | "auth-recovery-code-info-message" | "auth-recovery-code-prompt" | "auth-recovery-code-header" | "recovery-codes-error-invalid" | "recovery-code-config-header" | "recovery-code-config-warning-title" | "recovery-code-config-warning-message" | "recovery-codes-print" | "recovery-codes-download" | "recovery-codes-copy" | "recovery-codes-copied" | "recovery-codes-confirmation-message" | "recovery-codes-action-complete" | "recovery-codes-action-cancel" | "recovery-codes-download-file-header" | "recovery-codes-download-file-description" | "recovery-codes-download-file-date" | "recovery-codes-label-default" | "webauthn-display-name" | "webauthn-help-text" | "webauthn-passwordless-display-name" | "webauthn-passwordless-help-text" | "webauthn-login-title" | "webauthn-registration-title" | "webauthn-available-authenticators" | "webauthn-unsupported-browser-text" | "webauthn-doAuthenticate" | "webauthn-createdAt-label" | "webauthn-error-title" | "webauthn-error-registration" | "webauthn-error-api-get" | "webauthn-error-different-user" | "webauthn-error-auth-verification" | "webauthn-error-register-verification" | "webauthn-error-user-not-found" | "identity-provider-redirector" | "identity-provider-login-label" | "idp-email-verification-display-name" | "idp-email-verification-help-text" | "idp-username-password-form-display-name" | "idp-username-password-form-help-text" | "finalDeletionConfirmation" | "deleteAccountConfirm" | "userDeletedSuccessfully" | "access-denied" | "frontchannel-logout.title" | "frontchannel-logout.message" | "logoutConfirmTitle" | "logoutConfirmHeader" | "doLogout" | "error-invalid-multivalued-size" | "shouldBeEqual" | "shouldBeDifferent" | "shouldMatchPattern" | "mustBeAnInteger" | "notAValidOption" | "selectAnOption" | "addValue" | "languages" | ExtraMessageKey>;
11
+ };
12
+ ofTypeI18n: GenericI18n<"region" | "address" | "email" | "password" | "totpAppFreeOTPName" | "totpAppMicrosoftAuthenticatorName" | "totpAppGoogleName" | "doCancel" | "doLogIn" | "noAccessMessage" | "updatePasswordTitle" | "updatePasswordMessage" | "authenticatorCode" | "firstName" | "givenName" | "fullName" | "lastName" | "familyName" | "passwordConfirm" | "passwordNew" | "username" | "street" | "locality" | "postal_code" | "country" | "emailVerified" | "website" | "phoneNumber" | "phoneNumberVerified" | "gender" | "birthday" | "zoneinfo" | "gssDelegationCredential" | "profileScopeConsentText" | "emailScopeConsentText" | "addressScopeConsentText" | "phoneScopeConsentText" | "offlineAccessScopeConsentText" | "samlRoleListScopeConsentText" | "rolesScopeConsentText" | "role_admin" | "role_realm-admin" | "role_create-realm" | "role_view-realm" | "role_view-users" | "role_view-applications" | "role_view-clients" | "role_view-events" | "role_view-identity-providers" | "role_manage-realm" | "role_manage-users" | "role_manage-applications" | "role_manage-identity-providers" | "role_manage-clients" | "role_manage-events" | "role_view-profile" | "role_manage-account" | "role_manage-account-links" | "role_read-token" | "role_offline-access" | "client_account" | "client_account-console" | "client_security-admin-console" | "client_admin-cli" | "client_realm-management" | "client_broker" | "requiredFields" | "backToApplication" | "inResource" | "irreversibleAction" | "deletingImplies" | "errasingData" | "loggingOutImmediately" | "accountUnusable" | "missingUsernameMessage" | "missingFirstNameMessage" | "invalidEmailMessage" | "missingLastNameMessage" | "missingEmailMessage" | "missingPasswordMessage" | "notMatchPasswordMessage" | "invalidUserMessage" | "missingTotpMessage" | "missingTotpDeviceNameMessage" | "invalidPasswordExistingMessage" | "invalidPasswordConfirmMessage" | "invalidTotpMessage" | "usernameExistsMessage" | "emailExistsMessage" | "readOnlyUsernameMessage" | "accountUpdatedMessage" | "accountPasswordUpdatedMessage" | "identityProviderNotFoundMessage" | "identityProviderAlreadyLinkedMessage" | "consentDenied" | "access-denied-when-idp-auth" | "accountDisabledMessage" | "accountTemporarilyDisabledMessage" | "invalidPasswordMinLengthMessage" | "invalidPasswordMaxLengthMessage" | "invalidPasswordMinLowerCaseCharsMessage" | "invalidPasswordMinDigitsMessage" | "invalidPasswordMinUpperCaseCharsMessage" | "invalidPasswordMinSpecialCharsMessage" | "invalidPasswordNotUsernameMessage" | "invalidPasswordNotEmailMessage" | "invalidPasswordRegexPatternMessage" | "invalidPasswordHistoryMessage" | "invalidPasswordBlacklistedMessage" | "invalidPasswordGenericMessage" | "locale_ar" | "locale_ca" | "locale_cs" | "locale_de" | "locale_en" | "locale_es" | "locale_fr" | "locale_hu" | "locale_it" | "locale_ja" | "locale_lt" | "locale_nl" | "locale_no" | "locale_pl" | "locale_pt-BR" | "locale_ru" | "locale_sk" | "locale_sv" | "locale_th" | "locale_tr" | "locale_uk" | "locale_zh-CN" | "locale_fi" | "clientNotFoundMessage" | "openshift.scope.user_info" | "openshift.scope.user_check-access" | "openshift.scope.user_full" | "openshift.scope.list-projects" | "error-invalid-value" | "error-invalid-blank" | "error-empty" | "error-invalid-length" | "error-invalid-length-too-short" | "error-invalid-length-too-long" | "error-invalid-email" | "error-invalid-number" | "error-number-out-of-range" | "error-number-out-of-range-too-small" | "error-number-out-of-range-too-big" | "error-pattern-no-match" | "error-invalid-uri" | "error-invalid-uri-scheme" | "error-invalid-uri-fragment" | "error-user-attribute-required" | "error-invalid-date" | "error-user-attribute-read-only" | "error-username-invalid-character" | "error-person-name-invalid-character" | "remove" | "usb" | "nfc" | "bluetooth" | "doRegister" | "doRegisterSecurityKey" | "doSubmit" | "doBack" | "doYes" | "doNo" | "doContinue" | "doIgnore" | "doAccept" | "doDecline" | "doForgotPassword" | "doClickHere" | "doImpersonate" | "doTryAgain" | "doTryAnotherWay" | "doConfirmDelete" | "errorDeletingAccount" | "deletingAccountForbidden" | "kerberosNotConfigured" | "kerberosNotConfiguredTitle" | "bypassKerberosDetail" | "kerberosNotSetUp" | "registerTitle" | "loginAccountTitle" | "loginTitle" | "loginTitleHtml" | "impersonateTitle" | "impersonateTitleHtml" | "realmChoice" | "unknownUser" | "loginTotpTitle" | "loginProfileTitle" | "loginIdpReviewProfileTitle" | "loginTimeout" | "reauthenticate" | "authenticateStrong" | "oauthGrantTitle" | "oauthGrantTitleHtml" | "oauthGrantInformation" | "oauthGrantReview" | "oauthGrantTos" | "oauthGrantPolicy" | "errorTitle" | "errorTitleHtml" | "emailVerifyTitle" | "emailForgotTitle" | "updateEmailTitle" | "emailUpdateConfirmationSentTitle" | "emailUpdateConfirmationSent" | "emailUpdatedTitle" | "emailUpdated" | "codeSuccessTitle" | "codeErrorTitle" | "displayUnsupported" | "browserRequired" | "browserContinue" | "browserContinuePrompt" | "browserContinueAnswer" | "internal" | "unknown" | "termsTitle" | "termsText" | "termsPlainText" | "termsAcceptanceRequired" | "acceptTerms" | "deleteCredentialTitle" | "deleteCredentialMessage" | "recaptchaFailed" | "recaptchaNotConfigured" | "noAccount" | "usernameOrEmail" | "passwordNewConfirm" | "hidePassword" | "showPassword" | "rememberMe" | "logoutOtherSessions" | "restartLoginTooltip" | "loginTotpIntro" | "loginTotpStep1" | "loginTotpStep2" | "loginTotpStep3" | "loginTotpStep3DeviceName" | "loginTotpManualStep2" | "loginTotpManualStep3" | "loginTotpUnableToScan" | "loginTotpScanBarcode" | "loginCredential" | "loginOtpOneTime" | "loginTotpType" | "loginTotpAlgorithm" | "loginTotpDigits" | "loginTotpInterval" | "loginTotpCounter" | "loginTotpDeviceName" | "loginTotp.totp" | "loginTotp.hotp" | "loginChooseAuthenticator" | "oauthGrantRequest" | "oauth2DeviceVerificationTitle" | "verifyOAuth2DeviceUserCode" | "oauth2DeviceInvalidUserCodeMessage" | "oauth2DeviceExpiredUserCodeMessage" | "oauth2DeviceVerificationCompleteHeader" | "oauth2DeviceVerificationCompleteMessage" | "oauth2DeviceVerificationFailedHeader" | "oauth2DeviceVerificationFailedMessage" | "oauth2DeviceConsentDeniedMessage" | "oauth2DeviceAuthorizationGrantDisabledMessage" | "emailVerifyInstruction1" | "emailVerifyInstruction2" | "emailVerifyInstruction3" | "emailLinkIdpTitle" | "emailLinkIdp1" | "emailLinkIdp2" | "emailLinkIdp3" | "emailLinkIdp4" | "emailLinkIdp5" | "backToLogin" | "emailInstruction" | "emailInstructionUsername" | "copyCodeInstruction" | "pageExpiredTitle" | "pageExpiredMsg1" | "pageExpiredMsg2" | "personalInfo" | "role_create-client" | "invalidUsernameMessage" | "invalidUsernameOrEmailMessage" | "invalidPasswordMessage" | "expiredCodeMessage" | "expiredActionMessage" | "expiredActionTokenNoSessionMessage" | "expiredActionTokenSessionExistsMessage" | "sessionLimitExceeded" | "error-reset-otp-missing-id" | "federatedIdentityExistsMessage" | "federatedIdentityUnavailableMessage" | "federatedIdentityUnmatchedEssentialClaimMessage" | "confirmLinkIdpTitle" | "federatedIdentityConfirmLinkMessage" | "federatedIdentityConfirmReauthenticateMessage" | "nestedFirstBrokerFlowMessage" | "confirmLinkIdpReviewProfile" | "confirmLinkIdpContinue" | "configureTotpMessage" | "configureBackupCodesMessage" | "updateProfileMessage" | "updateEmailMessage" | "resetPasswordMessage" | "verifyEmailMessage" | "linkIdpMessage" | "emailSentMessage" | "emailSendErrorMessage" | "delegationCompleteHeader" | "delegationCompleteMessage" | "delegationFailedHeader" | "delegationFailedMessage" | "failedToProcessResponseMessage" | "httpsRequiredMessage" | "realmNotEnabledMessage" | "invalidRequestMessage" | "successLogout" | "failedLogout" | "unknownLoginRequesterMessage" | "loginRequesterNotEnabledMessage" | "bearerOnlyMessage" | "standardFlowDisabledMessage" | "implicitFlowDisabledMessage" | "invalidRedirectUriMessage" | "unsupportedNameIdFormatMessage" | "invalidRequesterMessage" | "registrationNotAllowedMessage" | "resetCredentialNotAllowedMessage" | "permissionNotApprovedMessage" | "noRelayStateInResponseMessage" | "insufficientPermissionMessage" | "couldNotProceedWithAuthenticationRequestMessage" | "couldNotObtainTokenMessage" | "unexpectedErrorRetrievingTokenMessage" | "unexpectedErrorHandlingResponseMessage" | "identityProviderAuthenticationFailedMessage" | "couldNotSendAuthenticationRequestMessage" | "unexpectedErrorHandlingRequestMessage" | "invalidAccessCodeMessage" | "sessionNotActiveMessage" | "invalidCodeMessage" | "cookieNotFoundMessage" | "insufficientLevelOfAuthentication" | "identityProviderUnexpectedErrorMessage" | "identityProviderMissingStateMessage" | "identityProviderMissingCodeOrErrorMessage" | "identityProviderInvalidResponseMessage" | "identityProviderInvalidSignatureMessage" | "identityProviderLinkSuccess" | "staleCodeMessage" | "realmSupportsNoCredentialsMessage" | "credentialSetupRequired" | "identityProviderNotUniqueMessage" | "emailVerifiedMessage" | "emailVerifiedAlreadyMessage" | "staleEmailVerificationLink" | "confirmAccountLinking" | "confirmEmailAddressVerification" | "confirmExecutionOfActions" | "locale_da" | "locale_lv" | "missingParameterMessage" | "clientDisabledMessage" | "invalidParameterMessage" | "alreadyLoggedIn" | "differentUserAuthenticated" | "brokerLinkingSessionExpired" | "proceedWithAction" | "acrNotFulfilled" | "requiredAction.CONFIGURE_TOTP" | "requiredAction.TERMS_AND_CONDITIONS" | "requiredAction.UPDATE_PASSWORD" | "requiredAction.UPDATE_PROFILE" | "requiredAction.VERIFY_EMAIL" | "requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES" | "requiredAction.webauthn-register-passwordless" | "invalidTokenRequiredActions" | "doX509Login" | "clientCertificate" | "noCertificate" | "pageNotFound" | "internalServerError" | "console-username" | "console-password" | "console-otp" | "console-new-password" | "console-confirm-password" | "console-update-password" | "console-verify-email" | "console-email-code" | "console-accept-terms" | "console-accept" | "saml.post-form.title" | "saml.post-form.message" | "saml.post-form.js-disabled" | "saml.artifactResolutionServiceInvalidResponse" | "otp-display-name" | "otp-help-text" | "otp-reset-description" | "password-display-name" | "password-help-text" | "auth-username-form-display-name" | "auth-username-form-help-text" | "auth-username-password-form-display-name" | "auth-username-password-form-help-text" | "auth-recovery-authn-code-form-display-name" | "auth-recovery-authn-code-form-help-text" | "auth-recovery-code-info-message" | "auth-recovery-code-prompt" | "auth-recovery-code-header" | "recovery-codes-error-invalid" | "recovery-code-config-header" | "recovery-code-config-warning-title" | "recovery-code-config-warning-message" | "recovery-codes-print" | "recovery-codes-download" | "recovery-codes-copy" | "recovery-codes-copied" | "recovery-codes-confirmation-message" | "recovery-codes-action-complete" | "recovery-codes-action-cancel" | "recovery-codes-download-file-header" | "recovery-codes-download-file-description" | "recovery-codes-download-file-date" | "recovery-codes-label-default" | "webauthn-display-name" | "webauthn-help-text" | "webauthn-passwordless-display-name" | "webauthn-passwordless-help-text" | "webauthn-login-title" | "webauthn-registration-title" | "webauthn-available-authenticators" | "webauthn-unsupported-browser-text" | "webauthn-doAuthenticate" | "webauthn-createdAt-label" | "webauthn-error-title" | "webauthn-error-registration" | "webauthn-error-api-get" | "webauthn-error-different-user" | "webauthn-error-auth-verification" | "webauthn-error-register-verification" | "webauthn-error-user-not-found" | "identity-provider-redirector" | "identity-provider-login-label" | "idp-email-verification-display-name" | "idp-email-verification-help-text" | "idp-username-password-form-display-name" | "idp-username-password-form-help-text" | "finalDeletionConfirmation" | "deleteAccountConfirm" | "userDeletedSuccessfully" | "access-denied" | "frontchannel-logout.title" | "frontchannel-logout.message" | "logoutConfirmTitle" | "logoutConfirmHeader" | "doLogout" | "error-invalid-multivalued-size" | "shouldBeEqual" | "shouldBeDifferent" | "shouldMatchPattern" | "mustBeAnInteger" | "notAValidOption" | "selectAnOption" | "addValue" | "languages" | ExtraMessageKey>;
13
+ };
@@ -0,0 +1,26 @@
1
+ import { useEffect, useState } from "react";
2
+ import { createGetI18n } from "./i18n";
3
+ import { Reflect } from "tsafe/Reflect";
4
+ export function createUseI18n(extraMessages) {
5
+ const { getI18n } = createGetI18n(extraMessages);
6
+ function useI18n(params) {
7
+ const { kcContext } = params;
8
+ const { i18n, prI18n_currentLanguage } = getI18n({ kcContext });
9
+ const [i18n_toReturn, setI18n_toReturn] = useState(i18n);
10
+ useEffect(() => {
11
+ let isActive = true;
12
+ prI18n_currentLanguage === null || prI18n_currentLanguage === void 0 ? void 0 : prI18n_currentLanguage.then(i18n => {
13
+ if (!isActive) {
14
+ return;
15
+ }
16
+ setI18n_toReturn(i18n);
17
+ });
18
+ return () => {
19
+ isActive = false;
20
+ };
21
+ }, []);
22
+ return { i18n: i18n_toReturn };
23
+ }
24
+ return { useI18n, ofTypeI18n: Reflect() };
25
+ }
26
+ //# sourceMappingURL=useI18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useI18n.js","sourceRoot":"","sources":["../../src/login/i18n/useI18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EACH,aAAa,EAIhB,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,MAAM,UAAU,aAAa,CAAyC,aAErE;IAGG,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC;IAEjD,SAAS,OAAO,CAAC,MAAoC;QACjD,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;QAE7B,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QAEhE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAO,IAAI,CAAC,CAAC;QAE/D,SAAS,CAAC,GAAG,EAAE;YACX,IAAI,QAAQ,GAAG,IAAI,CAAC;YAEpB,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAE,IAAI,CAAC,IAAI,CAAC,EAAE;gBAChC,IAAI,CAAC,QAAQ,EAAE;oBACX,OAAO;iBACV;gBAED,gBAAgB,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEH,OAAO,GAAG,EAAE;gBACR,QAAQ,GAAG,KAAK,CAAC;YACrB,CAAC,CAAC;QACN,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACnC,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAQ,EAAE,CAAC;AACpD,CAAC"}
@@ -1,4 +1,5 @@
1
- export type KcContextLike = {
1
+ /// <reference types="react" />
2
+ export type KcContextLike_useDownloadTerms = {
2
3
  pageId: string;
3
4
  locale?: {
4
5
  currentLanguageTag: string;
@@ -7,7 +8,7 @@ export type KcContextLike = {
7
8
  };
8
9
  /** Allow to avoid bundling the terms and download it on demand*/
9
10
  export declare function useDownloadTerms(params: {
10
- kcContext: KcContextLike;
11
+ kcContext: KcContextLike_useDownloadTerms;
11
12
  downloadTermsMarkdown: (params: {
12
13
  currentLanguageTag: string;
13
14
  }) => Promise<{
@@ -17,10 +18,10 @@ export declare function useDownloadTerms(params: {
17
18
  }): void;
18
19
  export declare function useTermsMarkdown(): {
19
20
  isDownloadComplete: false;
21
+ ReactMarkdown?: undefined;
20
22
  termsMarkdown?: undefined;
21
- termsLanguageTag?: undefined;
22
23
  } | {
23
24
  isDownloadComplete: boolean;
25
+ ReactMarkdown: (props: Readonly<import("react-markdown/lib").Options>) => JSX.Element;
24
26
  termsMarkdown: string;
25
- termsLanguageTag: string | undefined;
26
27
  };
@@ -1,3 +1,5 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect } from "react";
1
3
  import { fallbackLanguageTag } from "../../login/i18n";
2
4
  import { assert } from "tsafe/assert";
3
5
  import { createStatefulObservable, useRerenderOnChange } from "../../tools/StatefulObservable";
@@ -10,9 +12,28 @@ export function useDownloadTerms(params) {
10
12
  useOnFistMount(async () => {
11
13
  var _a, _b;
12
14
  if (kcContext.pageId === "terms.ftl" || kcContext.termsAcceptanceRequired) {
13
- obs.current = await downloadTermsMarkdown({
14
- currentLanguageTag: (_b = (_a = kcContext.locale) === null || _a === void 0 ? void 0 : _a.currentLanguageTag) !== null && _b !== void 0 ? _b : fallbackLanguageTag
15
- });
15
+ const currentLanguageTag = (_b = (_a = kcContext.locale) === null || _a === void 0 ? void 0 : _a.currentLanguageTag) !== null && _b !== void 0 ? _b : fallbackLanguageTag;
16
+ const [ReactMarkdown_base, { termsMarkdown, termsLanguageTag }] = await Promise.all([
17
+ import("../../tools/react-markdown").then(_ => _.default),
18
+ downloadTermsMarkdown({ currentLanguageTag })
19
+ ]);
20
+ const htmlLang = termsLanguageTag !== currentLanguageTag ? termsLanguageTag : undefined;
21
+ const ReactMarkdown = htmlLang === undefined
22
+ ? ReactMarkdown_base
23
+ : props => {
24
+ const [anchor, setAnchor] = useState(null);
25
+ useEffect(() => {
26
+ if (anchor === null) {
27
+ return;
28
+ }
29
+ const parent = anchor.parentElement;
30
+ assert(parent !== null);
31
+ parent.setAttribute("lang", htmlLang);
32
+ anchor.remove();
33
+ }, [anchor]);
34
+ return (_jsxs(_Fragment, { children: [_jsx(ReactMarkdown_base, Object.assign({}, props)), _jsx("div", { ref: setAnchor, style: { display: "none" }, "aria-hidden": true })] }));
35
+ };
36
+ obs.current = { ReactMarkdown, termsMarkdown };
16
37
  }
17
38
  });
18
39
  }
@@ -21,7 +42,7 @@ export function useTermsMarkdown() {
21
42
  if (obs.current === undefined) {
22
43
  return { isDownloadComplete: false };
23
44
  }
24
- const { termsMarkdown, termsLanguageTag } = obs.current;
25
- return { isDownloadComplete: true, termsMarkdown, termsLanguageTag };
45
+ const { ReactMarkdown, termsMarkdown } = obs.current;
46
+ return { isDownloadComplete: true, ReactMarkdown, termsMarkdown };
26
47
  }
27
48
  //# sourceMappingURL=useDownloadTerms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useDownloadTerms.js","sourceRoot":"","sources":["../../src/login/lib/useDownloadTerms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EACH,wBAAwB,EACxB,mBAAmB,EACtB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAGnE,MAAM,GAAG,GAAG,wBAAwB,CAMlC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAUnB,MAAM,EAAkD,CAAC;AAEzD,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,MAKhC;IACG,MAAM,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;IAEpD,cAAc,CAAC,KAAK,IAAI,EAAE;;QACtB,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,IAAI,SAAS,CAAC,uBAAuB,EAAE;YACvE,GAAG,CAAC,OAAO,GAAG,MAAM,qBAAqB,CAAC;gBACtC,kBAAkB,EACd,MAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,kBAAkB,mCAAI,mBAAmB;aAClE,CAAC,CAAC;SACN;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC5B,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAEzB,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE;QAC3B,OAAO,EAAE,kBAAkB,EAAE,KAAc,EAAE,CAAC;KACjD;IAED,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;IAExD,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;AACzE,CAAC"}
1
+ {"version":3,"file":"useDownloadTerms.js","sourceRoot":"","sources":["../../src/login/lib/useDownloadTerms.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AACrG,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAInE,MAAM,GAAG,GAAG,wBAAwB,CAMlC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;AAUnB,MAAM,EAAmE,CAAC;AAE1E,iEAAiE;AACjE,MAAM,UAAU,gBAAgB,CAAC,MAGhC;IACG,MAAM,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC;IAEpD,cAAc,CAAC,KAAK,IAAI,EAAE;;QACtB,IAAI,SAAS,CAAC,MAAM,KAAK,WAAW,IAAI,SAAS,CAAC,uBAAuB,EAAE;YACvE,MAAM,kBAAkB,GAAG,MAAA,MAAA,SAAS,CAAC,MAAM,0CAAE,kBAAkB,mCAAI,mBAAmB,CAAC;YAEvF,MAAM,CAAC,kBAAkB,EAAE,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChF,MAAM,CAAC,4BAA4B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;gBACzD,qBAAqB,CAAC,EAAE,kBAAkB,EAAE,CAAC;aACvC,CAAC,CAAC;YAEZ,MAAM,QAAQ,GAAG,gBAAgB,KAAK,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;YAExF,MAAM,aAAa,GACf,QAAQ,KAAK,SAAS;gBAClB,CAAC,CAAC,kBAAkB;gBACpB,CAAC,CAAC,KAAK,CAAC,EAAE;oBACJ,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAwB,IAAI,CAAC,CAAC;oBAElE,SAAS,CAAC,GAAG,EAAE;wBACX,IAAI,MAAM,KAAK,IAAI,EAAE;4BACjB,OAAO;yBACV;wBAED,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;wBAEpC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC;wBAExB,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;wBAEtC,MAAM,CAAC,MAAM,EAAE,CAAC;oBACpB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;oBAEb,OAAO,CACH,8BACI,KAAC,kBAAkB,oBAAK,KAAK,EAAI,EACjC,cAAK,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,wBAAgB,IAChE,CACN,CAAC;gBACN,CAAC,CAAC;YAEZ,GAAG,CAAC,OAAO,GAAG,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;SAClD;IACL,CAAC,CAAC,CAAC;AACP,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC5B,mBAAmB,CAAC,GAAG,CAAC,CAAC;IAEzB,IAAI,GAAG,CAAC,OAAO,KAAK,SAAS,EAAE;QAC3B,OAAO,EAAE,kBAAkB,EAAE,KAAc,EAAE,CAAC;KACjD;IAED,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC;IAErD,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,CAAC;AACtE,CAAC"}
@@ -1,6 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
- import { Markdown } from "../../tools/Markdown";
4
3
  import { useTermsMarkdown } from "../../login/lib/useDownloadTerms";
5
4
  import { getKcClsx } from "../../login/lib/kcClsx";
6
5
  export default function Register(props) {
@@ -16,12 +15,14 @@ export default function Register(props) {
16
15
  }
17
16
  function TermsAcceptance(props) {
18
17
  const { i18n, kcClsx, messagesPerField } = props;
19
- const { msg } = i18n;
20
- // NOTE: Refer to https://docs.keycloakify.dev/terms-and-conditions to load your terms and conditions.
21
- const { termsMarkdown } = useTermsMarkdown();
22
- if (termsMarkdown === undefined) {
18
+ const { msg, msgStr } = i18n;
19
+ return (_jsxs(_Fragment, { children: [_jsx("div", Object.assign({ className: "form-group" }, { children: _jsxs("div", Object.assign({ className: kcClsx("kcInputWrapperClass") }, { children: [msg("termsTitle"), _jsx("div", Object.assign({ id: "kc-registration-terms-text" }, { children: msgStr("termsText") ? msg("termsText") : _jsx(TermsMarkdown, {}) }))] })) })), _jsxs("div", Object.assign({ className: "form-group" }, { children: [_jsxs("div", Object.assign({ className: kcClsx("kcLabelWrapperClass") }, { children: [_jsx("input", { type: "checkbox", id: "termsAccepted", name: "termsAccepted", className: kcClsx("kcCheckboxInputClass"), "aria-invalid": messagesPerField.existsError("termsAccepted") }), _jsx("label", Object.assign({ htmlFor: "termsAccepted", className: kcClsx("kcLabelClass") }, { children: msg("acceptTerms") }))] })), messagesPerField.existsError("termsAccepted") && (_jsx("div", Object.assign({ className: kcClsx("kcLabelWrapperClass") }, { children: _jsx("span", Object.assign({ id: "input-error-terms-accepted", className: kcClsx("kcInputErrorMessageClass"), "aria-live": "polite" }, { children: messagesPerField.get("termsAccepted") })) })))] }))] }));
20
+ }
21
+ function TermsMarkdown() {
22
+ const { isDownloadComplete, termsMarkdown, ReactMarkdown } = useTermsMarkdown();
23
+ if (!isDownloadComplete) {
23
24
  return null;
24
25
  }
25
- return (_jsxs(_Fragment, { children: [_jsx("div", Object.assign({ className: "form-group" }, { children: _jsxs("div", Object.assign({ className: kcClsx("kcInputWrapperClass") }, { children: [msg("termsTitle"), _jsx("div", Object.assign({ id: "kc-registration-terms-text" }, { children: _jsx(Markdown, { children: termsMarkdown }) }))] })) })), _jsxs("div", Object.assign({ className: "form-group" }, { children: [_jsxs("div", Object.assign({ className: kcClsx("kcLabelWrapperClass") }, { children: [_jsx("input", { type: "checkbox", id: "termsAccepted", name: "termsAccepted", className: kcClsx("kcCheckboxInputClass"), "aria-invalid": messagesPerField.existsError("termsAccepted") }), _jsx("label", Object.assign({ htmlFor: "termsAccepted", className: kcClsx("kcLabelClass") }, { children: msg("acceptTerms") }))] })), messagesPerField.existsError("termsAccepted") && (_jsx("div", Object.assign({ className: kcClsx("kcLabelWrapperClass") }, { children: _jsx("span", Object.assign({ id: "input-error-terms-accepted", className: kcClsx("kcInputErrorMessageClass"), "aria-live": "polite" }, { children: messagesPerField.get("termsAccepted") })) })))] }))] }));
26
+ return _jsx(ReactMarkdown, { children: termsMarkdown });
26
27
  }
27
28
  //# sourceMappingURL=Register.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Register.js","sourceRoot":"","sources":["../../src/login/pages/Register.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Register.js","sourceRoot":"","sources":["../../src/login/pages/Register.tsx"],"names":[],"mappings":"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"}
@@ -4,4 +4,4 @@ import type { KcContext } from "../KcContext";
4
4
  import type { I18n } from "../i18n";
5
5
  export default function Terms(props: PageProps<Extract<KcContext, {
6
6
  pageId: "terms.ftl";
7
- }>, I18n>): JSX.Element | null;
7
+ }>, I18n>): JSX.Element;
@@ -1,5 +1,4 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Markdown } from "../../tools/Markdown";
3
2
  import { getKcClsx } from "../../login/lib/kcClsx";
4
3
  import { useTermsMarkdown } from "../../login/lib/useDownloadTerms";
5
4
  export default function Terms(props) {
@@ -9,11 +8,14 @@ export default function Terms(props) {
9
8
  classes
10
9
  });
11
10
  const { msg, msgStr } = i18n;
12
- const { locale, url } = kcContext;
13
- const { isDownloadComplete, termsMarkdown, termsLanguageTag } = useTermsMarkdown();
11
+ const { url } = kcContext;
12
+ return (_jsxs(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, displayMessage: false, headerNode: msg("termsTitle") }, { children: [_jsx("div", Object.assign({ id: "kc-terms-text" }, { children: msgStr("termsText") ? msg("termsText") : _jsx(TermsMarkdown, {}) })), _jsxs("form", Object.assign({ className: "form-actions", action: url.loginAction, method: "POST" }, { children: [_jsx("input", { className: kcClsx("kcButtonClass", "kcButtonClass", "kcButtonClass", "kcButtonPrimaryClass", "kcButtonLargeClass"), name: "accept", id: "kc-accept", type: "submit", value: msgStr("doAccept") }), _jsx("input", { className: kcClsx("kcButtonClass", "kcButtonDefaultClass", "kcButtonLargeClass"), name: "cancel", id: "kc-decline", type: "submit", value: msgStr("doDecline") })] })), _jsx("div", { className: "clearfix" })] })));
13
+ }
14
+ function TermsMarkdown() {
15
+ const { isDownloadComplete, termsMarkdown, ReactMarkdown } = useTermsMarkdown();
14
16
  if (!isDownloadComplete) {
15
17
  return null;
16
18
  }
17
- return (_jsxs(Template, Object.assign({ kcContext: kcContext, i18n: i18n, doUseDefaultCss: doUseDefaultCss, classes: classes, displayMessage: false, headerNode: msg("termsTitle") }, { children: [_jsx("div", Object.assign({ id: "kc-terms-text", lang: termsLanguageTag !== (locale === null || locale === void 0 ? void 0 : locale.currentLanguageTag) ? termsLanguageTag : undefined }, { children: _jsx(Markdown, { children: termsMarkdown }) })), _jsxs("form", Object.assign({ className: "form-actions", action: url.loginAction, method: "POST" }, { children: [_jsx("input", { className: kcClsx("kcButtonClass", "kcButtonClass", "kcButtonClass", "kcButtonPrimaryClass", "kcButtonLargeClass"), name: "accept", id: "kc-accept", type: "submit", value: msgStr("doAccept") }), _jsx("input", { className: kcClsx("kcButtonClass", "kcButtonDefaultClass", "kcButtonLargeClass"), name: "cancel", id: "kc-decline", type: "submit", value: msgStr("doDecline") })] })), _jsx("div", { className: "clearfix" })] })));
19
+ return _jsx(ReactMarkdown, { children: termsMarkdown });
18
20
  }
19
21
  //# sourceMappingURL=Terms.js.map