keycloakify 6.11.9 → 6.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +10 -7
- package/bin/create-keycloak-email-directory.js +1 -1
- package/bin/download-builtin-keycloak-theme.js +1 -1
- package/bin/keycloakify/BuildOptions.d.ts +2 -2
- package/bin/keycloakify/BuildOptions.js.map +1 -1
- package/bin/keycloakify/generateFtl/generateFtl.d.ts +2 -2
- package/bin/keycloakify/generateJavaStackFiles.d.ts +1 -1
- package/bin/keycloakify/generateKeycloakThemeResources.d.ts +1 -1
- package/bin/keycloakify/generateKeycloakThemeResources.js +1 -1
- package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +1 -1
- package/bin/keycloakify/keycloakify.js +1 -1
- package/bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.d.ts +1 -1
- package/bin/keycloakify/replacers/replaceImportsInCssCode.d.ts +1 -1
- package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.d.ts +1 -1
- package/bin/promptKeycloakVersion.js +1 -1
- package/bin/tools/NpmModuleVersion.d.ts +1 -1
- package/bin/tools/cliOptions.d.ts +1 -1
- package/bin/tools/deflate.js +1 -1
- package/bin/tools/downloadAndUnzip.js +51 -44
- package/bin/tools/downloadAndUnzip.js.map +1 -1
- package/bin/tools/grant-exec-perms.js +3 -2
- package/bin/tools/grant-exec-perms.js.map +1 -1
- package/bin/tools/jar.d.ts +1 -1
- package/bin/tools/jar.js +1 -1
- package/bin/tools/logger.d.ts +2 -2
- package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js +34 -27
- package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js.map +1 -1
- package/bin/tools/octokit-addons/listTags.js +1 -1
- package/bin/tools/transformCodebase.d.ts +1 -1
- package/bin/tools/walk.js +1 -1
- package/bin/tools/zip.d.ts +2 -2
- package/bin/tools/zip.js +1 -1
- package/bin/tsconfig.tsbuildinfo +1 -1
- package/lib/KcApp.d.ts +6 -0
- package/lib/{components/KcApp.js → KcApp.js} +25 -26
- package/lib/KcApp.js.map +1 -0
- package/lib/{components/KcProps.d.ts → KcProps.d.ts} +30 -6
- package/lib/{components/KcProps.js → KcProps.js} +1 -1
- package/lib/KcProps.js.map +1 -0
- package/lib/Template.d.ts +18 -0
- package/lib/{components/Template.js → Template.js} +67 -55
- package/lib/Template.js.map +1 -0
- package/lib/getKcContext/KcContextBase.d.ts +6 -6
- package/lib/getKcContext/getKcContextFromWindow.d.ts +1 -1
- package/lib/getKcContext/{kcContextMocks/kcContextMocks.d.ts → kcContextMocks.d.ts} +1 -1
- package/lib/getKcContext/{kcContextMocks/kcContextMocks.js → kcContextMocks.js} +8 -5
- package/lib/getKcContext/kcContextMocks.js.map +1 -0
- package/lib/i18n/i18n.d.ts +100 -0
- package/lib/i18n/i18n.js +160 -0
- package/lib/i18n/i18n.js.map +1 -0
- package/lib/i18n/index.d.ts +1 -99
- package/lib/i18n/index.js +1 -159
- package/lib/i18n/index.js.map +1 -1
- package/lib/index.d.ts +3 -3
- package/lib/index.js +3 -3
- package/lib/index.js.map +1 -1
- package/lib/pages/Error.d.ts +5 -0
- package/lib/{components → pages}/Error.js +4 -6
- package/lib/pages/Error.js.map +1 -0
- package/lib/pages/IdpReviewUserProfile.d.ts +5 -0
- package/lib/{components → pages}/IdpReviewUserProfile.js +4 -6
- package/lib/pages/IdpReviewUserProfile.js.map +1 -0
- package/lib/pages/Info.d.ts +5 -0
- package/lib/{components → pages}/Info.js +4 -6
- package/lib/pages/Info.js.map +1 -0
- package/lib/pages/Login.d.ts +5 -0
- package/lib/{components → pages}/Login.js +5 -7
- package/lib/pages/Login.js.map +1 -0
- package/lib/pages/LoginConfigTotp.d.ts +5 -0
- package/lib/{components → pages}/LoginConfigTotp.js +4 -6
- package/lib/pages/LoginConfigTotp.js.map +1 -0
- package/lib/pages/LoginIdpLinkConfirm.d.ts +5 -0
- package/lib/{components → pages}/LoginIdpLinkConfirm.js +4 -6
- package/lib/pages/LoginIdpLinkConfirm.js.map +1 -0
- package/lib/pages/LoginIdpLinkEmail.d.ts +5 -0
- package/lib/{components → pages}/LoginIdpLinkEmail.js +4 -6
- package/lib/pages/LoginIdpLinkEmail.js.map +1 -0
- package/lib/pages/LoginOtp.d.ts +5 -0
- package/lib/{components → pages}/LoginOtp.js +4 -6
- package/lib/pages/LoginOtp.js.map +1 -0
- package/lib/pages/LoginPageExpired.d.ts +5 -0
- package/lib/{components → pages}/LoginPageExpired.js +4 -6
- package/lib/pages/LoginPageExpired.js.map +1 -0
- package/lib/pages/LoginPassword.d.ts +5 -0
- package/lib/{components → pages}/LoginPassword.js +5 -7
- package/lib/pages/LoginPassword.js.map +1 -0
- package/lib/pages/LoginResetPassword.d.ts +5 -0
- package/lib/{components → pages}/LoginResetPassword.js +4 -6
- package/lib/pages/LoginResetPassword.js.map +1 -0
- package/lib/pages/LoginUpdatePassword.d.ts +5 -0
- package/lib/{components → pages}/LoginUpdatePassword.js +4 -6
- package/lib/pages/LoginUpdatePassword.js.map +1 -0
- package/lib/pages/LoginUpdateProfile.d.ts +5 -0
- package/lib/{components → pages}/LoginUpdateProfile.js +4 -6
- package/lib/pages/LoginUpdateProfile.js.map +1 -0
- package/lib/pages/LoginUsername.d.ts +5 -0
- package/lib/{components → pages}/LoginUsername.js +5 -7
- package/lib/pages/LoginUsername.js.map +1 -0
- package/lib/pages/LoginVerifyEmail.d.ts +5 -0
- package/lib/{components → pages}/LoginVerifyEmail.js +4 -6
- package/lib/pages/LoginVerifyEmail.js.map +1 -0
- package/lib/pages/LogoutConfirm.d.ts +5 -0
- package/lib/{components → pages}/LogoutConfirm.js +4 -6
- package/lib/pages/LogoutConfirm.js.map +1 -0
- package/lib/pages/Register.d.ts +5 -0
- package/lib/{components → pages}/Register.js +4 -6
- package/lib/pages/Register.js.map +1 -0
- package/lib/pages/RegisterUserProfile.d.ts +5 -0
- package/lib/{components → pages}/RegisterUserProfile.js +4 -6
- package/lib/pages/RegisterUserProfile.js.map +1 -0
- package/lib/pages/Terms.d.ts +19 -0
- package/lib/{components → pages}/Terms.js +20 -22
- package/lib/pages/Terms.js.map +1 -0
- package/lib/pages/UpdateUserProfile.d.ts +5 -0
- package/lib/{components → pages}/UpdateUserProfile.js +4 -6
- package/lib/pages/UpdateUserProfile.js.map +1 -0
- package/lib/pages/WebauthnAuthenticate.d.ts +5 -0
- package/lib/{components → pages}/WebauthnAuthenticate.js +5 -7
- package/lib/pages/WebauthnAuthenticate.js.map +1 -0
- package/lib/{components → pages}/shared/UserProfileCommons.d.ts +6 -6
- package/lib/{components → pages}/shared/UserProfileCommons.js +4 -4
- package/lib/pages/shared/UserProfileCommons.js.map +1 -0
- package/lib/tools/AndByDiscriminatingKey.d.ts +1 -1
- package/lib/tools/DeepPartial.d.ts +1 -1
- package/lib/tools/ReactComponent.d.ts +1 -1
- package/lib/tools/SetOptional.d.ts +1 -0
- package/lib/tools/SetOptional.js +2 -0
- package/lib/tools/SetOptional.js.map +1 -0
- package/lib/tools/clsx.d.ts +2 -3
- package/lib/tools/clsx.js +39 -3
- package/lib/tools/clsx.js.map +1 -1
- package/lib/tools/deepAssign.js +1 -1
- package/lib/tools/deepAssign.js.map +1 -1
- package/lib/tools/memoize.d.ts +7 -0
- package/lib/tools/memoize.js +38 -0
- package/lib/tools/memoize.js.map +1 -0
- package/lib/tools/useCallbackFactory.d.ts +15 -0
- package/lib/tools/useCallbackFactory.js +28 -0
- package/lib/tools/useCallbackFactory.js.map +1 -0
- package/lib/tools/useConst.d.ts +5 -0
- package/lib/tools/useConst.js +10 -0
- package/lib/tools/useConst.js.map +1 -0
- package/lib/tools/useConstCallback.d.ts +2 -0
- package/lib/tools/useConstCallback.js +8 -0
- package/lib/tools/useConstCallback.js.map +1 -0
- package/lib/tools/useCssAndCx.d.ts +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/lib/useFormValidationSlice.d.ts +4 -4
- package/lib/useFormValidationSlice.js +1 -1
- package/lib/useFormValidationSlice.js.map +1 -1
- package/package.json +133 -124
- package/src/bin/keycloakify/BuildOptions.ts +2 -2
- package/src/bin/keycloakify/generateFtl/generateFtl.ts +1 -1
- package/src/lib/{components/KcApp.tsx → KcApp.tsx} +29 -38
- package/src/lib/{components/KcProps.ts → KcProps.ts} +27 -1
- package/src/lib/{components/Template.tsx → Template.tsx} +111 -95
- package/src/lib/getKcContext/KcContextBase.ts +1 -1
- package/src/lib/getKcContext/{kcContextMocks/kcContextMocks.ts → kcContextMocks.ts} +9 -6
- package/src/lib/i18n/i18n.tsx +292 -0
- package/src/lib/i18n/index.tsx +1 -290
- package/src/lib/index.ts +3 -3
- package/src/lib/{components → pages}/Error.tsx +7 -18
- package/src/lib/{components → pages}/IdpReviewUserProfile.tsx +7 -18
- package/src/lib/{components → pages}/Info.tsx +7 -18
- package/src/lib/{components → pages}/Login.tsx +8 -20
- package/src/lib/{components → pages}/LoginConfigTotp.tsx +7 -18
- package/src/lib/{components → pages}/LoginIdpLinkConfirm.tsx +7 -18
- package/src/lib/{components → pages}/LoginIdpLinkEmail.tsx +7 -18
- package/src/lib/{components → pages}/LoginOtp.tsx +7 -18
- package/src/lib/{components → pages}/LoginPageExpired.tsx +7 -18
- package/src/lib/{components → pages}/LoginPassword.tsx +8 -19
- package/src/lib/{components → pages}/LoginResetPassword.tsx +7 -18
- package/src/lib/{components → pages}/LoginUpdatePassword.tsx +7 -18
- package/src/lib/{components → pages}/LoginUpdateProfile.tsx +7 -18
- package/src/lib/{components → pages}/LoginUsername.tsx +8 -19
- package/src/lib/{components → pages}/LoginVerifyEmail.tsx +7 -18
- package/src/lib/{components → pages}/LogoutConfirm.tsx +7 -18
- package/src/lib/{components → pages}/Register.tsx +7 -18
- package/src/lib/{components → pages}/RegisterUserProfile.tsx +7 -18
- package/src/lib/{components → pages}/Terms.tsx +50 -61
- package/src/lib/{components → pages}/UpdateUserProfile.tsx +7 -18
- package/src/lib/{components → pages}/WebauthnAuthenticate.tsx +9 -19
- package/src/lib/pages/shared/UserProfileCommons.tsx +178 -0
- package/src/lib/tools/SetOptional.ts +1 -0
- package/src/lib/tools/clsx.ts +42 -5
- package/src/lib/tools/deepAssign.ts +1 -1
- package/src/lib/tools/memoize.ts +55 -0
- package/src/lib/tools/useCallbackFactory.ts +45 -0
- package/src/lib/tools/useConst.ts +10 -0
- package/src/lib/tools/useConstCallback.ts +15 -0
- package/src/lib/useFormValidationSlice.tsx +4 -4
- package/bin/generate-i18n-messages.d.ts +0 -1
- package/bin/generate-i18n-messages.js +0 -126
- package/bin/generate-i18n-messages.js.map +0 -1
- package/bin/link_in_test_app.d.ts +0 -1
- package/bin/link_in_test_app.js +0 -141
- package/bin/link_in_test_app.js.map +0 -1
- package/lib/components/Error.d.ts +0 -13
- package/lib/components/Error.js.map +0 -1
- package/lib/components/IdpReviewUserProfile.d.ts +0 -13
- package/lib/components/IdpReviewUserProfile.js.map +0 -1
- package/lib/components/Info.d.ts +0 -13
- package/lib/components/Info.js.map +0 -1
- package/lib/components/KcApp.d.ts +0 -13
- package/lib/components/KcApp.js.map +0 -1
- package/lib/components/KcProps.js.map +0 -1
- package/lib/components/Login.d.ts +0 -13
- package/lib/components/Login.js.map +0 -1
- package/lib/components/LoginConfigTotp.d.ts +0 -13
- package/lib/components/LoginConfigTotp.js.map +0 -1
- package/lib/components/LoginIdpLinkConfirm.d.ts +0 -13
- package/lib/components/LoginIdpLinkConfirm.js.map +0 -1
- package/lib/components/LoginIdpLinkEmail.d.ts +0 -13
- package/lib/components/LoginIdpLinkEmail.js.map +0 -1
- package/lib/components/LoginOtp.d.ts +0 -13
- package/lib/components/LoginOtp.js.map +0 -1
- package/lib/components/LoginPageExpired.d.ts +0 -13
- package/lib/components/LoginPageExpired.js.map +0 -1
- package/lib/components/LoginPassword.d.ts +0 -13
- package/lib/components/LoginPassword.js.map +0 -1
- package/lib/components/LoginResetPassword.d.ts +0 -13
- package/lib/components/LoginResetPassword.js.map +0 -1
- package/lib/components/LoginUpdatePassword.d.ts +0 -13
- package/lib/components/LoginUpdatePassword.js.map +0 -1
- package/lib/components/LoginUpdateProfile.d.ts +0 -13
- package/lib/components/LoginUpdateProfile.js.map +0 -1
- package/lib/components/LoginUsername.d.ts +0 -13
- package/lib/components/LoginUsername.js.map +0 -1
- package/lib/components/LoginVerifyEmail.d.ts +0 -13
- package/lib/components/LoginVerifyEmail.js.map +0 -1
- package/lib/components/LogoutConfirm.d.ts +0 -13
- package/lib/components/LogoutConfirm.js.map +0 -1
- package/lib/components/Register.d.ts +0 -13
- package/lib/components/Register.js.map +0 -1
- package/lib/components/RegisterUserProfile.d.ts +0 -13
- package/lib/components/RegisterUserProfile.js.map +0 -1
- package/lib/components/Template.d.ts +0 -25
- package/lib/components/Template.js.map +0 -1
- package/lib/components/Terms.d.ts +0 -27
- package/lib/components/Terms.js.map +0 -1
- package/lib/components/UpdateUserProfile.d.ts +0 -13
- package/lib/components/UpdateUserProfile.js.map +0 -1
- package/lib/components/WebauthnAuthenticate.d.ts +0 -13
- package/lib/components/WebauthnAuthenticate.js.map +0 -1
- package/lib/components/shared/UserProfileCommons.js.map +0 -1
- package/lib/getKcContext/kcContextMocks/index.d.ts +0 -1
- package/lib/getKcContext/kcContextMocks/index.js +0 -2
- package/lib/getKcContext/kcContextMocks/index.js.map +0 -1
- package/lib/getKcContext/kcContextMocks/kcContextMocks.js.map +0 -1
- package/src/bin/generate-i18n-messages.ts +0 -86
- package/src/bin/link_in_test_app.ts +0 -128
- package/src/lib/components/shared/UserProfileCommons.tsx +0 -173
- package/src/lib/getKcContext/kcContextMocks/index.ts +0 -1
@@ -1,56 +1,21 @@
|
|
1
|
-
import React, { useReducer, useEffect
|
2
|
-
import { assert } from "
|
3
|
-
import {
|
4
|
-
import {
|
5
|
-
import {
|
6
|
-
|
7
|
-
|
8
|
-
const Template = memo((props) => {
|
9
|
-
const { displayInfo = false, displayMessage = true, displayRequiredFields = false, displayWide = false, showAnotherWayIfPresent = true, headerNode, showUsernameNode = null, formNode, infoNode = null, kcContext, i18n, doFetchDefaultThemeResources } = props;
|
1
|
+
import React, { useReducer, useEffect } from "react";
|
2
|
+
import { assert } from "./tools/assert";
|
3
|
+
import { headInsert } from "./tools/headInsert";
|
4
|
+
import { pathJoin } from "../bin/tools/pathJoin";
|
5
|
+
import { clsx } from "./tools/clsx";
|
6
|
+
export default function Template(props) {
|
7
|
+
const { displayInfo = false, displayMessage = true, displayRequiredFields = false, displayWide = false, showAnotherWayIfPresent = true, headerNode, showUsernameNode = null, formNode, infoNode = null, kcContext, i18n, doFetchDefaultThemeResources, stylesCommon, styles, scripts, kcHtmlClass } = props;
|
10
8
|
const { msg, changeLocale, labelBySupportedLanguageTag, currentLanguageTag } = i18n;
|
11
|
-
const onChangeLanguageClickFactory = useCallbackFactory(([kcLanguageTag]) => changeLocale(kcLanguageTag));
|
12
|
-
const onTryAnotherWayClick = useConstCallback(() => (document.forms["kc-select-try-another-way-form"].submit(), false));
|
13
9
|
const { realm, locale, auth, url, message, isAppInitiatedAction } = kcContext;
|
14
|
-
const
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
Promise.all([
|
24
|
-
...toArr(props.stylesCommon).map(relativePath => pathJoin(url.resourcesCommonPath, relativePath)),
|
25
|
-
...toArr(props.styles).map(relativePath => pathJoin(url.resourcesPath, relativePath))
|
26
|
-
]
|
27
|
-
.reverse()
|
28
|
-
.map(href => headInsert({
|
29
|
-
"type": "css",
|
30
|
-
href,
|
31
|
-
"position": "prepend"
|
32
|
-
}))).then(() => {
|
33
|
-
if (isUnmounted) {
|
34
|
-
return;
|
35
|
-
}
|
36
|
-
setExtraCssLoaded();
|
37
|
-
});
|
38
|
-
toArr(props.scripts).forEach(relativePath => headInsert({
|
39
|
-
"type": "javascript",
|
40
|
-
"src": pathJoin(url.resourcesPath, relativePath)
|
41
|
-
}));
|
42
|
-
if (props.kcHtmlClass !== undefined) {
|
43
|
-
const htmlClassList = document.getElementsByTagName("html")[0].classList;
|
44
|
-
const tokens = clsx(props.kcHtmlClass).split(" ");
|
45
|
-
htmlClassList.add(...tokens);
|
46
|
-
cleanups.push(() => htmlClassList.remove(...tokens));
|
47
|
-
}
|
48
|
-
return () => {
|
49
|
-
isUnmounted = true;
|
50
|
-
cleanups.forEach(f => f());
|
51
|
-
};
|
52
|
-
}, [props.kcHtmlClass]);
|
53
|
-
if (!isExtraCssLoaded) {
|
10
|
+
const { isReady } = usePrepareTemplate({
|
11
|
+
doFetchDefaultThemeResources,
|
12
|
+
stylesCommon,
|
13
|
+
styles,
|
14
|
+
scripts,
|
15
|
+
url,
|
16
|
+
kcHtmlClass
|
17
|
+
});
|
18
|
+
if (!isReady) {
|
54
19
|
return null;
|
55
20
|
}
|
56
21
|
return (React.createElement("div", { className: clsx(props.kcLoginClass) },
|
@@ -63,7 +28,7 @@ const Template = memo((props) => {
|
|
63
28
|
React.createElement("div", { className: "kc-dropdown", id: "kc-locale-dropdown" },
|
64
29
|
React.createElement("a", { href: "#", id: "kc-current-locale-link" }, labelBySupportedLanguageTag[currentLanguageTag]),
|
65
30
|
React.createElement("ul", null, locale.supported.map(({ languageTag }) => (React.createElement("li", { key: languageTag, className: "kc-dropdown-item" },
|
66
|
-
React.createElement("a", { href: "#", onClick:
|
31
|
+
React.createElement("a", { href: "#", onClick: () => changeLocale(languageTag) }, labelBySupportedLanguageTag[languageTag]))))))))),
|
67
32
|
!(auth !== undefined && auth.showUsername && !auth.showResetCredentials) ? (displayRequiredFields ? (React.createElement("div", { className: clsx(props.kcContentWrapperClass) },
|
68
33
|
React.createElement("div", { className: clsx(props.kcLabelWrapperClass, "subtitle") },
|
69
34
|
React.createElement("span", { className: "subtitle" },
|
@@ -108,9 +73,56 @@ const Template = memo((props) => {
|
|
108
73
|
React.createElement("div", { className: clsx(displayWide && [props.kcFormSocialAccountContentClass, props.kcFormSocialAccountClass]) },
|
109
74
|
React.createElement("div", { className: clsx(props.kcFormGroupClass) },
|
110
75
|
React.createElement("input", { type: "hidden", name: "tryAnotherWay", value: "on" }),
|
111
|
-
React.createElement("a", { href: "#", id: "try-another-way", onClick:
|
76
|
+
React.createElement("a", { href: "#", id: "try-another-way", onClick: () => {
|
77
|
+
document.forms["kc-select-try-another-way-form"].submit();
|
78
|
+
return false;
|
79
|
+
} }, msg("doTryAnotherWay")))))),
|
112
80
|
displayInfo && (React.createElement("div", { id: "kc-info", className: clsx(props.kcSignUpClass) },
|
113
81
|
React.createElement("div", { id: "kc-info-wrapper", className: clsx(props.kcInfoAreaWrapperClass) }, infoNode))))))));
|
114
|
-
}
|
115
|
-
export
|
82
|
+
}
|
83
|
+
export function usePrepareTemplate(params) {
|
84
|
+
const { doFetchDefaultThemeResources, stylesCommon, styles, url, scripts, kcHtmlClass } = params;
|
85
|
+
const [isReady, setReady] = useReducer(() => true, !doFetchDefaultThemeResources);
|
86
|
+
useEffect(() => {
|
87
|
+
if (!doFetchDefaultThemeResources) {
|
88
|
+
return;
|
89
|
+
}
|
90
|
+
let isUnmounted = false;
|
91
|
+
const toArr = (x) => (typeof x === "string" ? x.split(" ") : x !== null && x !== void 0 ? x : []);
|
92
|
+
Promise.all([
|
93
|
+
...toArr(stylesCommon).map(relativePath => pathJoin(url.resourcesCommonPath, relativePath)),
|
94
|
+
...toArr(styles).map(relativePath => pathJoin(url.resourcesPath, relativePath))
|
95
|
+
]
|
96
|
+
.reverse()
|
97
|
+
.map(href => headInsert({
|
98
|
+
"type": "css",
|
99
|
+
href,
|
100
|
+
"position": "prepend"
|
101
|
+
}))).then(() => {
|
102
|
+
if (isUnmounted) {
|
103
|
+
return;
|
104
|
+
}
|
105
|
+
setReady();
|
106
|
+
});
|
107
|
+
toArr(scripts).forEach(relativePath => headInsert({
|
108
|
+
"type": "javascript",
|
109
|
+
"src": pathJoin(url.resourcesPath, relativePath)
|
110
|
+
}));
|
111
|
+
return () => {
|
112
|
+
isUnmounted = true;
|
113
|
+
};
|
114
|
+
}, [kcHtmlClass]);
|
115
|
+
useEffect(() => {
|
116
|
+
if (kcHtmlClass === undefined) {
|
117
|
+
return;
|
118
|
+
}
|
119
|
+
const htmlClassList = document.getElementsByTagName("html")[0].classList;
|
120
|
+
const tokens = clsx(kcHtmlClass).split(" ");
|
121
|
+
htmlClassList.add(...tokens);
|
122
|
+
return () => {
|
123
|
+
htmlClassList.remove(...tokens);
|
124
|
+
};
|
125
|
+
}, [kcHtmlClass]);
|
126
|
+
return { isReady };
|
127
|
+
}
|
116
128
|
//# sourceMappingURL=Template.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/lib/Template.tsx"],"names":[],"mappings":"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"}
|
@@ -1,12 +1,12 @@
|
|
1
1
|
import type { MessageKeyBase } from "../i18n";
|
2
|
-
import type { KcTemplateClassKey } from "../
|
3
|
-
|
2
|
+
import type { KcTemplateClassKey } from "../KcProps";
|
3
|
+
type ExtractAfterStartingWith<Prefix extends string, StrEnum> = StrEnum extends `${Prefix}${infer U}` ? U : never;
|
4
4
|
/** Take theses type definition with a grain of salt.
|
5
5
|
* Some values might be undefined on some pages.
|
6
6
|
* (ex: url.loginAction is undefined on error.ftl)
|
7
7
|
*/
|
8
|
-
export
|
9
|
-
export
|
8
|
+
export type KcContextBase = KcContextBase.Login | KcContextBase.Register | KcContextBase.RegisterUserProfile | KcContextBase.Info | KcContextBase.Error | KcContextBase.LoginResetPassword | KcContextBase.LoginVerifyEmail | KcContextBase.Terms | KcContextBase.LoginOtp | KcContextBase.LoginUsername | KcContextBase.WebauthnAuthenticate | KcContextBase.LoginPassword | KcContextBase.LoginUpdatePassword | KcContextBase.LoginUpdateProfile | KcContextBase.LoginIdpLinkConfirm | KcContextBase.LoginIdpLinkEmail | KcContextBase.LoginPageExpired | KcContextBase.LoginConfigTotp | KcContextBase.LogoutConfirm | KcContextBase.UpdateUserProfile | KcContextBase.IdpReviewUserProfile;
|
9
|
+
export type WebauthnAuthenticator = {
|
10
10
|
credentialId: string;
|
11
11
|
transports: {
|
12
12
|
iconClass: KcTemplateClassKey;
|
@@ -326,7 +326,7 @@ export declare namespace KcContextBase {
|
|
326
326
|
};
|
327
327
|
};
|
328
328
|
}
|
329
|
-
export
|
329
|
+
export type Attribute = {
|
330
330
|
name: string;
|
331
331
|
displayName?: string;
|
332
332
|
required: boolean;
|
@@ -340,7 +340,7 @@ export declare type Attribute = {
|
|
340
340
|
groupAnnotations: Record<string, string>;
|
341
341
|
autocomplete?: "on" | "off" | "name" | "honorific-prefix" | "given-name" | "additional-name" | "family-name" | "honorific-suffix" | "nickname" | "email" | "username" | "new-password" | "current-password" | "one-time-code" | "organization-title" | "organization" | "street-address" | "address-line1" | "address-line2" | "address-line3" | "address-level4" | "address-level3" | "address-level2" | "address-level1" | "country" | "country-name" | "postal-code" | "cc-name" | "cc-given-name" | "cc-additional-name" | "cc-family-name" | "cc-number" | "cc-exp" | "cc-exp-month" | "cc-exp-year" | "cc-csc" | "cc-type" | "transaction-currency" | "transaction-amount" | "language" | "bday" | "bday-day" | "bday-month" | "bday-year" | "sex" | "tel" | "tel-country-code" | "tel-national" | "tel-area-code" | "tel-local" | "tel-extension" | "impp" | "url" | "photo";
|
342
342
|
};
|
343
|
-
export
|
343
|
+
export type Validators = Partial<{
|
344
344
|
length: Validators.DoIgnoreEmpty & Validators.Range;
|
345
345
|
double: Validators.DoIgnoreEmpty & Validators.Range;
|
346
346
|
integer: Validators.DoIgnoreEmpty & Validators.Range;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import type { KcContextBase } from "./KcContextBase";
|
2
2
|
import type { AndByDiscriminatingKey } from "../tools/AndByDiscriminatingKey";
|
3
|
-
export
|
3
|
+
export type ExtendsKcContextBase<KcContextExtended extends {
|
4
4
|
pageId: string;
|
5
5
|
}> = [KcContextExtended] extends [never] ? KcContextBase : AndByDiscriminatingKey<"pageId", KcContextExtended & KcContextBase.Common, KcContextBase>;
|
6
6
|
export declare function getKcContextFromWindow<KcContextExtended extends {
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import "minimal-polyfills/Object.fromEntries";
|
2
|
-
import type { KcContextBase } from "
|
2
|
+
import type { KcContextBase } from "./KcContextBase";
|
3
3
|
export declare const kcContextCommonMock: KcContextBase.Common;
|
4
4
|
export declare const kcContextMocks: KcContextBase[];
|
@@ -1,9 +1,9 @@
|
|
1
1
|
var _a;
|
2
2
|
import "minimal-polyfills/Object.fromEntries";
|
3
3
|
//NOTE: Aside because we want to be able to import them from node
|
4
|
-
import { mockTestingResourcesCommonPath, mockTestingResourcesPath } from "
|
4
|
+
import { mockTestingResourcesCommonPath, mockTestingResourcesPath } from "../../bin/mockTestingResourcesPath";
|
5
5
|
import { id } from "tsafe/id";
|
6
|
-
import { pathJoin } from "
|
6
|
+
import { pathJoin } from "../../bin/tools/pathJoin";
|
7
7
|
const PUBLIC_URL = (_a = process.env["PUBLIC_URL"]) !== null && _a !== void 0 ? _a : "/";
|
8
8
|
const attributes = [
|
9
9
|
{
|
@@ -113,10 +113,13 @@ export const kcContextCommonMock = {
|
|
113
113
|
"registrationEmailAsUsername": false
|
114
114
|
},
|
115
115
|
"messagesPerField": {
|
116
|
-
"printIfExists": (
|
117
|
-
|
116
|
+
"printIfExists": () => {
|
117
|
+
console.log("coucou");
|
118
|
+
return undefined;
|
119
|
+
},
|
120
|
+
"existsError": () => false,
|
118
121
|
"get": key => `Fake error for ${key}`,
|
119
|
-
"exists": () =>
|
122
|
+
"exists": () => false
|
120
123
|
},
|
121
124
|
"locale": {
|
122
125
|
"supported": [
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"kcContextMocks.js","sourceRoot":"","sources":["../../src/lib/getKcContext/kcContextMocks.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,100 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
import "minimal-polyfills/Object.fromEntries";
|
3
|
+
import type baseMessages from "./generated_messages/18.0.1/login/en";
|
4
|
+
export declare const fallbackLanguageTag = "en";
|
5
|
+
export type KcContextLike = {
|
6
|
+
locale?: {
|
7
|
+
currentLanguageTag: string;
|
8
|
+
supported: {
|
9
|
+
languageTag: string;
|
10
|
+
url: string;
|
11
|
+
label: string;
|
12
|
+
}[];
|
13
|
+
};
|
14
|
+
};
|
15
|
+
export type MessageKeyBase = keyof typeof baseMessages | keyof (typeof keycloakifyExtraMessages)[typeof fallbackLanguageTag];
|
16
|
+
export type I18n<MessageKey extends string> = {
|
17
|
+
/**
|
18
|
+
* e.g: "en", "fr", "zh-CN"
|
19
|
+
*
|
20
|
+
* The current language
|
21
|
+
*/
|
22
|
+
currentLanguageTag: string;
|
23
|
+
/**
|
24
|
+
* To call when the user switch language.
|
25
|
+
* This will cause the page to be reloaded,
|
26
|
+
* on next load currentLanguageTag === newLanguageTag
|
27
|
+
*/
|
28
|
+
changeLocale: (newLanguageTag: string) => never;
|
29
|
+
/**
|
30
|
+
* e.g. "en" => "English", "fr" => "Français", ...
|
31
|
+
*
|
32
|
+
* Used to render a select that enable user to switch language.
|
33
|
+
* ex: https://user-images.githubusercontent.com/6702424/186044799-38801eec-4e89-483b-81dd-8e9233e8c0eb.png
|
34
|
+
* */
|
35
|
+
labelBySupportedLanguageTag: Record<string, string>;
|
36
|
+
/**
|
37
|
+
* Examples assuming currentLanguageTag === "en"
|
38
|
+
*
|
39
|
+
* msg("access-denied") === <span>Access denied</span>
|
40
|
+
* msg("impersonateTitleHtml", "Foo") === <span><strong>Foo</strong> Impersonate User</span>
|
41
|
+
*/
|
42
|
+
msg: (key: MessageKey, ...args: (string | undefined)[]) => JSX.Element;
|
43
|
+
/**
|
44
|
+
* It's the same thing as msg() but instead of returning a JSX.Element it returns a string.
|
45
|
+
* It can be more convenient to manipulate strings but if there are HTML tags it wont render.
|
46
|
+
* msgStr("impersonateTitleHtml", "Foo") === "<strong>Foo</strong> Impersonate User"
|
47
|
+
*/
|
48
|
+
msgStr: (key: MessageKey, ...args: (string | undefined)[]) => string;
|
49
|
+
/**
|
50
|
+
* Examples assuming currentLanguageTag === "en"
|
51
|
+
* advancedMsg("${access-denied} foo bar") === <span>${msgStr("access-denied")} foo bar<span> === <span>Access denied foo bar</span>
|
52
|
+
* advancedMsg("${access-denied}") === advancedMsg("access-denied") === msg("access-denied") === <span>Access denied</span>
|
53
|
+
* advancedMsg("${not-a-message-key}") === advancedMsg(not-a-message-key") === <span>not-a-message-key</span>
|
54
|
+
*/
|
55
|
+
advancedMsg: (key: string, ...args: (string | undefined)[]) => JSX.Element;
|
56
|
+
/**
|
57
|
+
* Examples assuming currentLanguageTag === "en"
|
58
|
+
* advancedMsg("${access-denied} foo bar") === msg("access-denied") + " foo bar" === "Access denied foo bar"
|
59
|
+
* advancedMsg("${not-a-message-key}") === advancedMsg(not-a-message-key") === "not-a-message-key"
|
60
|
+
*/
|
61
|
+
advancedMsgStr: (key: string, ...args: (string | undefined)[]) => string;
|
62
|
+
};
|
63
|
+
export type I18nBase = I18n<MessageKeyBase>;
|
64
|
+
export declare function __unsafe_useI18n<ExtraMessageKey extends string = never>(params: {
|
65
|
+
kcContext: KcContextLike;
|
66
|
+
extraMessages: {
|
67
|
+
[languageTag: string]: {
|
68
|
+
[key in ExtraMessageKey]: string;
|
69
|
+
};
|
70
|
+
};
|
71
|
+
doSkip: boolean;
|
72
|
+
}): I18n<MessageKeyBase | ExtraMessageKey> | null;
|
73
|
+
export declare function useI18n<ExtraMessageKey extends string = never>(params: {
|
74
|
+
kcContext: KcContextLike;
|
75
|
+
extraMessages: {
|
76
|
+
[languageTag: string]: {
|
77
|
+
[key in ExtraMessageKey]: string;
|
78
|
+
};
|
79
|
+
};
|
80
|
+
}): I18n<MessageKeyBase | ExtraMessageKey> | null;
|
81
|
+
declare const keycloakifyExtraMessages: {
|
82
|
+
en: {
|
83
|
+
shouldBeEqual: string;
|
84
|
+
shouldBeDifferent: string;
|
85
|
+
shouldMatchPattern: string;
|
86
|
+
mustBeAnInteger: string;
|
87
|
+
notAValidOption: string;
|
88
|
+
};
|
89
|
+
fr: {
|
90
|
+
shouldBeEqual: string;
|
91
|
+
shouldBeDifferent: string;
|
92
|
+
shouldMatchPattern: string;
|
93
|
+
mustBeAnInteger: string;
|
94
|
+
notAValidOption: string;
|
95
|
+
logoutConfirmTitle: string;
|
96
|
+
logoutConfirmHeader: string;
|
97
|
+
doLogout: string;
|
98
|
+
};
|
99
|
+
};
|
100
|
+
export {};
|
package/lib/i18n/i18n.js
ADDED
@@ -0,0 +1,160 @@
|
|
1
|
+
import "minimal-polyfills/Object.fromEntries";
|
2
|
+
//NOTE for later: https://github.com/remarkjs/react-markdown/blob/236182ecf30bd89c1e5a7652acaf8d0bf81e6170/src/renderers.js#L7-L35
|
3
|
+
import React, { useEffect, useState, useRef } from "react";
|
4
|
+
import { assert } from "tsafe/assert";
|
5
|
+
import { Markdown } from "../tools/Markdown";
|
6
|
+
export const fallbackLanguageTag = "en";
|
7
|
+
assert();
|
8
|
+
export function __unsafe_useI18n(params) {
|
9
|
+
const { kcContext, extraMessages, doSkip } = params;
|
10
|
+
const [i18n, setI18n] = useState(undefined);
|
11
|
+
const refHasStartedFetching = useRef(false);
|
12
|
+
useEffect(() => {
|
13
|
+
if (doSkip || refHasStartedFetching.current) {
|
14
|
+
return;
|
15
|
+
}
|
16
|
+
refHasStartedFetching.current = true;
|
17
|
+
(async () => {
|
18
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
19
|
+
const { currentLanguageTag = fallbackLanguageTag } = (_a = kcContext.locale) !== null && _a !== void 0 ? _a : {};
|
20
|
+
const [fallbackMessages, messages] = await Promise.all([
|
21
|
+
import("./generated_messages/18.0.1/login/en"),
|
22
|
+
(() => {
|
23
|
+
switch (currentLanguageTag) {
|
24
|
+
case "ca":
|
25
|
+
return import("./generated_messages/18.0.1/login/ca");
|
26
|
+
case "cs":
|
27
|
+
return import("./generated_messages/18.0.1/login/cs");
|
28
|
+
case "da":
|
29
|
+
return import("./generated_messages/18.0.1/login/da");
|
30
|
+
case "de":
|
31
|
+
return import("./generated_messages/18.0.1/login/de");
|
32
|
+
case "en":
|
33
|
+
return import("./generated_messages/18.0.1/login/en");
|
34
|
+
case "es":
|
35
|
+
return import("./generated_messages/18.0.1/login/es");
|
36
|
+
case "fi":
|
37
|
+
return import("./generated_messages/18.0.1/login/fi");
|
38
|
+
case "fr":
|
39
|
+
return import("./generated_messages/18.0.1/login/fr");
|
40
|
+
case "hu":
|
41
|
+
return import("./generated_messages/18.0.1/login/hu");
|
42
|
+
case "it":
|
43
|
+
return import("./generated_messages/18.0.1/login/it");
|
44
|
+
case "ja":
|
45
|
+
return import("./generated_messages/18.0.1/login/ja");
|
46
|
+
case "lt":
|
47
|
+
return import("./generated_messages/18.0.1/login/lt");
|
48
|
+
case "lv":
|
49
|
+
return import("./generated_messages/18.0.1/login/lv");
|
50
|
+
case "nl":
|
51
|
+
return import("./generated_messages/18.0.1/login/nl");
|
52
|
+
case "no":
|
53
|
+
return import("./generated_messages/18.0.1/login/no");
|
54
|
+
case "pl":
|
55
|
+
return import("./generated_messages/18.0.1/login/pl");
|
56
|
+
case "pt-BR":
|
57
|
+
return import("./generated_messages/18.0.1/login/pt-BR");
|
58
|
+
case "ru":
|
59
|
+
return import("./generated_messages/18.0.1/login/ru");
|
60
|
+
case "sk":
|
61
|
+
return import("./generated_messages/18.0.1/login/sk");
|
62
|
+
case "sv":
|
63
|
+
return import("./generated_messages/18.0.1/login/sv");
|
64
|
+
case "tr":
|
65
|
+
return import("./generated_messages/18.0.1/login/tr");
|
66
|
+
case "zh-CN":
|
67
|
+
return import("./generated_messages/18.0.1/login/zh-CN");
|
68
|
+
default:
|
69
|
+
return { "default": {} };
|
70
|
+
}
|
71
|
+
})()
|
72
|
+
]).then(modules => modules.map(module => module.default));
|
73
|
+
setI18n(Object.assign(Object.assign({}, createI18nTranslationFunctions({
|
74
|
+
"fallbackMessages": Object.assign(Object.assign(Object.assign({}, fallbackMessages), ((_b = keycloakifyExtraMessages[fallbackLanguageTag]) !== null && _b !== void 0 ? _b : {})), ((_c = extraMessages[fallbackLanguageTag]) !== null && _c !== void 0 ? _c : {})),
|
75
|
+
"messages": Object.assign(Object.assign(Object.assign({}, messages), ((_d = keycloakifyExtraMessages[currentLanguageTag]) !== null && _d !== void 0 ? _d : {})), ((_e = extraMessages[currentLanguageTag]) !== null && _e !== void 0 ? _e : {}))
|
76
|
+
})), { currentLanguageTag, "changeLocale": newLanguageTag => {
|
77
|
+
const { locale } = kcContext;
|
78
|
+
assert(locale !== undefined, "Internationalization not enabled");
|
79
|
+
const targetSupportedLocale = locale.supported.find(({ languageTag }) => languageTag === newLanguageTag);
|
80
|
+
assert(targetSupportedLocale !== undefined, `${newLanguageTag} need to be enabled in Keycloak admin`);
|
81
|
+
window.location.href = targetSupportedLocale.url;
|
82
|
+
assert(false, "never");
|
83
|
+
}, "labelBySupportedLanguageTag": Object.fromEntries(((_g = (_f = kcContext.locale) === null || _f === void 0 ? void 0 : _f.supported) !== null && _g !== void 0 ? _g : []).map(({ languageTag, label }) => [languageTag, label])) }));
|
84
|
+
})();
|
85
|
+
}, []);
|
86
|
+
return i18n !== null && i18n !== void 0 ? i18n : null;
|
87
|
+
}
|
88
|
+
const useI18n_private = __unsafe_useI18n;
|
89
|
+
export function useI18n(params) {
|
90
|
+
return useI18n_private(Object.assign(Object.assign({}, params), { "doSkip": false }));
|
91
|
+
}
|
92
|
+
function createI18nTranslationFunctions(params) {
|
93
|
+
const { fallbackMessages, messages } = params;
|
94
|
+
function resolveMsg(props) {
|
95
|
+
var _a;
|
96
|
+
const { key, args, doRenderMarkdown } = props;
|
97
|
+
const messageOrUndefined = (_a = messages[key]) !== null && _a !== void 0 ? _a : fallbackMessages[key];
|
98
|
+
if (messageOrUndefined === undefined) {
|
99
|
+
return undefined;
|
100
|
+
}
|
101
|
+
const message = messageOrUndefined;
|
102
|
+
const messageWithArgsInjectedIfAny = (() => {
|
103
|
+
var _a;
|
104
|
+
const startIndex = (_a = message
|
105
|
+
.match(/{[0-9]+}/g)) === null || _a === void 0 ? void 0 : _a.map(g => g.match(/{([0-9]+)}/)[1]).map(indexStr => parseInt(indexStr)).sort((a, b) => a - b)[0];
|
106
|
+
if (startIndex === undefined) {
|
107
|
+
// No {0} in message (no arguments expected)
|
108
|
+
return message;
|
109
|
+
}
|
110
|
+
let messageWithArgsInjected = message;
|
111
|
+
args.forEach((arg, i) => {
|
112
|
+
if (arg === undefined) {
|
113
|
+
return;
|
114
|
+
}
|
115
|
+
messageWithArgsInjected = messageWithArgsInjected.replace(new RegExp(`\\{${i + startIndex}\\}`, "g"), arg);
|
116
|
+
});
|
117
|
+
return messageWithArgsInjected;
|
118
|
+
})();
|
119
|
+
return doRenderMarkdown ? (React.createElement(Markdown, { allowDangerousHtml: true, renderers: { "paragraph": "span" } }, messageWithArgsInjectedIfAny)) : (messageWithArgsInjectedIfAny);
|
120
|
+
}
|
121
|
+
function resolveMsgAdvanced(props) {
|
122
|
+
const { key, args, doRenderMarkdown } = props;
|
123
|
+
const match = key.match(/^\$\{([^{]+)\}$/);
|
124
|
+
const keyUnwrappedFromCurlyBraces = match === null ? key : match[1];
|
125
|
+
const out = resolveMsg({
|
126
|
+
"key": keyUnwrappedFromCurlyBraces,
|
127
|
+
args,
|
128
|
+
doRenderMarkdown
|
129
|
+
});
|
130
|
+
return (out !== undefined ? out : doRenderMarkdown ? React.createElement("span", null, keyUnwrappedFromCurlyBraces) : keyUnwrappedFromCurlyBraces);
|
131
|
+
}
|
132
|
+
return {
|
133
|
+
"msgStr": (key, ...args) => resolveMsg({ key, args, "doRenderMarkdown": false }),
|
134
|
+
"msg": (key, ...args) => resolveMsg({ key, args, "doRenderMarkdown": true }),
|
135
|
+
"advancedMsg": (key, ...args) => resolveMsgAdvanced({ key, args, "doRenderMarkdown": true }),
|
136
|
+
"advancedMsgStr": (key, ...args) => resolveMsgAdvanced({ key, args, "doRenderMarkdown": false })
|
137
|
+
};
|
138
|
+
}
|
139
|
+
const keycloakifyExtraMessages = {
|
140
|
+
"en": {
|
141
|
+
"shouldBeEqual": "{0} should be equal to {1}",
|
142
|
+
"shouldBeDifferent": "{0} should be different to {1}",
|
143
|
+
"shouldMatchPattern": "Pattern should match: `/{0}/`",
|
144
|
+
"mustBeAnInteger": "Must be an integer",
|
145
|
+
"notAValidOption": "Not a valid option"
|
146
|
+
},
|
147
|
+
"fr": {
|
148
|
+
/* spell-checker: disable */
|
149
|
+
"shouldBeEqual": "{0} doit être égal à {1}",
|
150
|
+
"shouldBeDifferent": "{0} doit être différent de {1}",
|
151
|
+
"shouldMatchPattern": "Dois respecter le schéma: `/{0}/`",
|
152
|
+
"mustBeAnInteger": "Doit être un nombre entier",
|
153
|
+
"notAValidOption": "N'est pas une option valide",
|
154
|
+
"logoutConfirmTitle": "Déconnexion",
|
155
|
+
"logoutConfirmHeader": "Êtes-vous sûr(e) de vouloir vous déconnecter ?",
|
156
|
+
"doLogout": "Se déconnecter"
|
157
|
+
/* spell-checker: enable */
|
158
|
+
}
|
159
|
+
};
|
160
|
+
//# sourceMappingURL=i18n.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../../src/lib/i18n/i18n.tsx"],"names":[],"mappings":"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"}
|
package/lib/i18n/index.d.ts
CHANGED
@@ -1,99 +1 @@
|
|
1
|
-
|
2
|
-
import "minimal-polyfills/Object.fromEntries";
|
3
|
-
import type baseMessages from "./generated_messages/18.0.1/login/en";
|
4
|
-
export declare const fallbackLanguageTag = "en";
|
5
|
-
export declare type KcContextLike = {
|
6
|
-
locale?: {
|
7
|
-
currentLanguageTag: string;
|
8
|
-
supported: {
|
9
|
-
languageTag: string;
|
10
|
-
url: string;
|
11
|
-
label: string;
|
12
|
-
}[];
|
13
|
-
};
|
14
|
-
};
|
15
|
-
export declare type MessageKeyBase = keyof typeof baseMessages | keyof typeof keycloakifyExtraMessages[typeof fallbackLanguageTag];
|
16
|
-
export declare type I18n<MessageKey extends string = MessageKeyBase> = {
|
17
|
-
/**
|
18
|
-
* e.g: "en", "fr", "zh-CN"
|
19
|
-
*
|
20
|
-
* The current language
|
21
|
-
*/
|
22
|
-
currentLanguageTag: string;
|
23
|
-
/**
|
24
|
-
* To call when the user switch language.
|
25
|
-
* This will cause the page to be reloaded,
|
26
|
-
* on next load currentLanguageTag === newLanguageTag
|
27
|
-
*/
|
28
|
-
changeLocale: (newLanguageTag: string) => never;
|
29
|
-
/**
|
30
|
-
* e.g. "en" => "English", "fr" => "Français", ...
|
31
|
-
*
|
32
|
-
* Used to render a select that enable user to switch language.
|
33
|
-
* ex: https://user-images.githubusercontent.com/6702424/186044799-38801eec-4e89-483b-81dd-8e9233e8c0eb.png
|
34
|
-
* */
|
35
|
-
labelBySupportedLanguageTag: Record<string, string>;
|
36
|
-
/**
|
37
|
-
* Examples assuming currentLanguageTag === "en"
|
38
|
-
*
|
39
|
-
* msg("access-denied") === <span>Access denied</span>
|
40
|
-
* msg("impersonateTitleHtml", "Foo") === <span><strong>Foo</strong> Impersonate User</span>
|
41
|
-
*/
|
42
|
-
msg: (key: MessageKey, ...args: (string | undefined)[]) => JSX.Element;
|
43
|
-
/**
|
44
|
-
* It's the same thing as msg() but instead of returning a JSX.Element it returns a string.
|
45
|
-
* It can be more convenient to manipulate strings but if there are HTML tags it wont render.
|
46
|
-
* msgStr("impersonateTitleHtml", "Foo") === "<strong>Foo</strong> Impersonate User"
|
47
|
-
*/
|
48
|
-
msgStr: (key: MessageKey, ...args: (string | undefined)[]) => string;
|
49
|
-
/**
|
50
|
-
* Examples assuming currentLanguageTag === "en"
|
51
|
-
* advancedMsg("${access-denied} foo bar") === <span>${msgStr("access-denied")} foo bar<span> === <span>Access denied foo bar</span>
|
52
|
-
* advancedMsg("${access-denied}") === advancedMsg("access-denied") === msg("access-denied") === <span>Access denied</span>
|
53
|
-
* advancedMsg("${not-a-message-key}") === advancedMsg(not-a-message-key") === <span>not-a-message-key</span>
|
54
|
-
*/
|
55
|
-
advancedMsg: (key: string, ...args: (string | undefined)[]) => JSX.Element;
|
56
|
-
/**
|
57
|
-
* Examples assuming currentLanguageTag === "en"
|
58
|
-
* advancedMsg("${access-denied} foo bar") === msg("access-denied") + " foo bar" === "Access denied foo bar"
|
59
|
-
* advancedMsg("${not-a-message-key}") === advancedMsg(not-a-message-key") === "not-a-message-key"
|
60
|
-
*/
|
61
|
-
advancedMsgStr: (key: string, ...args: (string | undefined)[]) => string;
|
62
|
-
};
|
63
|
-
export declare function __unsafe_useI18n<ExtraMessageKey extends string = never>(params: {
|
64
|
-
kcContext: KcContextLike;
|
65
|
-
extraMessages: {
|
66
|
-
[languageTag: string]: {
|
67
|
-
[key in ExtraMessageKey]: string;
|
68
|
-
};
|
69
|
-
};
|
70
|
-
doSkip: boolean;
|
71
|
-
}): I18n<MessageKeyBase | ExtraMessageKey> | null;
|
72
|
-
export declare function useI18n<ExtraMessageKey extends string = never>(params: {
|
73
|
-
kcContext: KcContextLike;
|
74
|
-
extraMessages: {
|
75
|
-
[languageTag: string]: {
|
76
|
-
[key in ExtraMessageKey]: string;
|
77
|
-
};
|
78
|
-
};
|
79
|
-
}): I18n<MessageKeyBase | ExtraMessageKey> | null;
|
80
|
-
declare const keycloakifyExtraMessages: {
|
81
|
-
en: {
|
82
|
-
shouldBeEqual: string;
|
83
|
-
shouldBeDifferent: string;
|
84
|
-
shouldMatchPattern: string;
|
85
|
-
mustBeAnInteger: string;
|
86
|
-
notAValidOption: string;
|
87
|
-
};
|
88
|
-
fr: {
|
89
|
-
shouldBeEqual: string;
|
90
|
-
shouldBeDifferent: string;
|
91
|
-
shouldMatchPattern: string;
|
92
|
-
mustBeAnInteger: string;
|
93
|
-
notAValidOption: string;
|
94
|
-
logoutConfirmTitle: string;
|
95
|
-
logoutConfirmHeader: string;
|
96
|
-
doLogout: string;
|
97
|
-
};
|
98
|
-
};
|
99
|
-
export {};
|
1
|
+
export * from "./i18n";
|