keycloakify 10.1.4 → 11.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/account/KcContext/kcContextMocks.js +18 -6
- package/account/KcContext/kcContextMocks.js.map +1 -1
- package/account/Template.js +8 -26
- package/account/Template.js.map +1 -1
- package/account/Template.useInitialize.d.ts +12 -0
- package/account/Template.useInitialize.js +20 -0
- package/account/Template.useInitialize.js.map +1 -0
- package/account/i18n/index.d.ts +5 -5
- package/account/i18n/index.js +1 -1
- package/account/i18n/index.js.map +1 -1
- package/account/i18n/messages_defaultSet/types.d.ts +3 -0
- package/account/i18n/messages_defaultSet/types.js +26 -0
- package/account/i18n/messages_defaultSet/types.js.map +1 -0
- package/account/i18n/noJsx/GenericI18n_noJsx.d.ts +63 -0
- package/account/i18n/noJsx/GenericI18n_noJsx.js +2 -0
- package/account/i18n/noJsx/GenericI18n_noJsx.js.map +1 -0
- package/account/i18n/noJsx/getI18n.d.ts +41 -0
- package/account/i18n/noJsx/getI18n.js +207 -0
- package/account/i18n/noJsx/getI18n.js.map +1 -0
- package/account/i18n/noJsx/i18nBuilder.d.ts +18 -0
- package/account/i18n/noJsx/i18nBuilder.js +27 -0
- package/account/i18n/noJsx/i18nBuilder.js.map +1 -0
- package/account/i18n/noJsx/index.d.ts +3 -0
- package/account/i18n/noJsx/index.js +2 -0
- package/account/i18n/noJsx/index.js.map +1 -0
- package/account/i18n/withJsx/GenericI18n.d.ts +72 -0
- package/account/i18n/withJsx/GenericI18n.js +5 -0
- package/account/i18n/withJsx/GenericI18n.js.map +1 -0
- package/account/i18n/withJsx/i18nBuilder.d.ts +18 -0
- package/account/i18n/withJsx/i18nBuilder.js +27 -0
- package/account/i18n/withJsx/i18nBuilder.js.map +1 -0
- package/account/i18n/withJsx/index.d.ts +3 -0
- package/account/i18n/withJsx/index.js +2 -0
- package/account/i18n/withJsx/index.js.map +1 -0
- package/account/i18n/withJsx/useI18n.d.ts +27 -0
- package/account/i18n/{useI18n.js → withJsx/useI18n.js} +6 -4
- package/account/i18n/withJsx/useI18n.js.map +1 -0
- package/account/index.d.ts +1 -1
- package/account/index.js +1 -1
- package/account/index.js.map +1 -1
- package/account/pages/Totp.js +3 -2
- package/account/pages/Totp.js.map +1 -1
- package/bin/246.index.js +191 -191
- package/bin/499.index.js +288 -71
- package/bin/main.js +1 -1
- package/lib/kcSanitize/HtmlPolicyBuilder.d.ts +28 -0
- package/lib/kcSanitize/HtmlPolicyBuilder.js +209 -0
- package/lib/kcSanitize/HtmlPolicyBuilder.js.map +1 -0
- package/lib/kcSanitize/KcSanitizer.d.ts +12 -0
- package/lib/kcSanitize/KcSanitizer.js +46 -0
- package/lib/kcSanitize/KcSanitizer.js.map +1 -0
- package/lib/kcSanitize/KcSanitizerPolicy.d.ts +24 -0
- package/lib/kcSanitize/KcSanitizerPolicy.js +149 -0
- package/lib/kcSanitize/KcSanitizerPolicy.js.map +1 -0
- package/lib/kcSanitize/index.d.ts +1 -0
- package/lib/kcSanitize/index.js +5 -0
- package/lib/kcSanitize/index.js.map +1 -0
- package/login/KcContext/kcContextMocks.js +24 -6
- package/login/KcContext/kcContextMocks.js.map +1 -1
- package/login/Template.js +7 -7
- package/login/Template.js.map +1 -1
- package/login/{Template.useStylesAndScripts.d.ts → Template.useInitialize.d.ts} +1 -4
- package/login/{Template.useStylesAndScripts.js → Template.useInitialize.js} +4 -15
- package/login/Template.useInitialize.js.map +1 -0
- package/login/i18n/index.d.ts +5 -5
- package/login/i18n/index.js +1 -1
- package/login/i18n/index.js.map +1 -1
- package/login/i18n/messages_defaultSet/types.d.ts +3 -0
- package/login/i18n/messages_defaultSet/types.js +33 -0
- package/login/i18n/messages_defaultSet/types.js.map +1 -0
- package/login/i18n/noJsx/GenericI18n_noJsx.d.ts +63 -0
- package/login/i18n/noJsx/GenericI18n_noJsx.js +2 -0
- package/login/i18n/noJsx/GenericI18n_noJsx.js.map +1 -0
- package/login/i18n/noJsx/getI18n.d.ts +41 -0
- package/login/i18n/noJsx/getI18n.js +207 -0
- package/login/i18n/noJsx/getI18n.js.map +1 -0
- package/login/i18n/noJsx/i18nBuilder.d.ts +18 -0
- package/login/i18n/noJsx/i18nBuilder.js +27 -0
- package/login/i18n/noJsx/i18nBuilder.js.map +1 -0
- package/login/i18n/noJsx/index.d.ts +3 -0
- package/login/i18n/noJsx/index.js +2 -0
- package/login/i18n/noJsx/index.js.map +1 -0
- package/login/i18n/withJsx/GenericI18n.d.ts +72 -0
- package/login/i18n/withJsx/GenericI18n.js +5 -0
- package/login/i18n/withJsx/GenericI18n.js.map +1 -0
- package/login/i18n/withJsx/i18nBuilder.d.ts +18 -0
- package/login/i18n/withJsx/i18nBuilder.js +27 -0
- package/login/i18n/withJsx/i18nBuilder.js.map +1 -0
- package/login/i18n/withJsx/index.d.ts +3 -0
- package/login/i18n/withJsx/index.js +2 -0
- package/login/i18n/withJsx/index.js.map +1 -0
- package/login/i18n/withJsx/useI18n.d.ts +27 -0
- package/login/i18n/{useI18n.js → withJsx/useI18n.js} +6 -4
- package/login/i18n/withJsx/useI18n.js.map +1 -0
- package/login/index.d.ts +1 -1
- package/login/index.js +1 -1
- package/login/index.js.map +1 -1
- package/login/lib/useUserProfileForm.d.ts +1 -1
- package/login/lib/useUserProfileForm.js +2 -1
- package/login/lib/useUserProfileForm.js.map +1 -1
- package/login/pages/Error.js +2 -1
- package/login/pages/Error.js.map +1 -1
- package/login/pages/Info.js +4 -3
- package/login/pages/Info.js.map +1 -1
- package/login/pages/Login.js +4 -3
- package/login/pages/Login.js.map +1 -1
- package/login/pages/LoginConfigTotp.js +3 -2
- package/login/pages/LoginConfigTotp.js.map +1 -1
- package/login/pages/LoginOtp.js +2 -1
- package/login/pages/LoginOtp.js.map +1 -1
- package/login/pages/LoginPassword.js +2 -1
- package/login/pages/LoginPassword.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.js +2 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
- package/login/pages/LoginResetPassword.js +2 -1
- package/login/pages/LoginResetPassword.js.map +1 -1
- package/login/pages/LoginUpdatePassword.js +3 -2
- package/login/pages/LoginUpdatePassword.js.map +1 -1
- package/login/pages/Register.js +2 -1
- package/login/pages/Register.js.map +1 -1
- package/package.json +110 -31
- package/src/account/KcContext/kcContextMocks.ts +49 -29
- package/src/account/Template.tsx +11 -32
- package/src/account/Template.useInitialize.ts +35 -0
- package/src/account/i18n/index.ts +5 -5
- package/src/account/i18n/messages_defaultSet/types.ts +30 -0
- package/src/account/i18n/noJsx/GenericI18n_noJsx.ts +64 -0
- package/src/account/i18n/noJsx/getI18n.tsx +341 -0
- package/src/account/i18n/noJsx/i18nBuilder.ts +117 -0
- package/src/account/i18n/noJsx/index.ts +3 -0
- package/src/account/i18n/withJsx/GenericI18n.tsx +81 -0
- package/src/account/i18n/withJsx/i18nBuilder.ts +117 -0
- package/src/account/i18n/withJsx/index.ts +3 -0
- package/src/{login/i18n → account/i18n/withJsx}/useI18n.tsx +43 -11
- package/src/account/index.ts +1 -1
- package/src/account/pages/Totp.tsx +3 -2
- package/src/bin/initialize-account-theme/src/multi-page/i18n.ts +10 -3
- package/src/bin/keycloakify/buildJars/buildJar.ts +44 -34
- package/src/bin/keycloakify/generateFtl/kcContextDeclarationTemplate.ftl +11 -9
- package/src/bin/keycloakify/generateResources/generateMessageProperties.ts +371 -121
- package/src/bin/keycloakify/generateResources/generateResources.ts +8 -6
- package/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts +61 -29
- package/src/bin/keycloakify/generateResources/generateResourcesForThemeVariant.ts +15 -9
- package/src/lib/kcSanitize/HtmlPolicyBuilder.ts +252 -0
- package/src/lib/kcSanitize/KcSanitizer.ts +60 -0
- package/src/lib/kcSanitize/KcSanitizerPolicy.ts +294 -0
- package/src/lib/kcSanitize/index.ts +5 -0
- package/src/login/KcContext/kcContextMocks.ts +54 -29
- package/src/login/Template.tsx +11 -17
- package/src/login/{Template.useStylesAndScripts.ts → Template.useInitialize.ts} +4 -21
- package/src/login/i18n/index.ts +5 -5
- package/src/login/i18n/messages_defaultSet/types.ts +37 -0
- package/src/login/i18n/noJsx/GenericI18n_noJsx.ts +64 -0
- package/src/login/i18n/noJsx/getI18n.tsx +341 -0
- package/src/login/i18n/noJsx/i18nBuilder.ts +117 -0
- package/src/login/i18n/noJsx/index.ts +3 -0
- package/src/login/i18n/withJsx/GenericI18n.tsx +81 -0
- package/src/login/i18n/withJsx/i18nBuilder.ts +117 -0
- package/src/login/i18n/withJsx/index.ts +3 -0
- package/src/{account/i18n → login/i18n/withJsx}/useI18n.tsx +43 -11
- package/src/login/index.ts +1 -1
- package/src/login/lib/useUserProfileForm.tsx +3 -2
- package/src/login/pages/Error.tsx +2 -1
- package/src/login/pages/Info.tsx +13 -10
- package/src/login/pages/Login.tsx +4 -3
- package/src/login/pages/LoginConfigTotp.tsx +3 -2
- package/src/login/pages/LoginOtp.tsx +2 -1
- package/src/login/pages/LoginPassword.tsx +2 -1
- package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +2 -1
- package/src/login/pages/LoginResetPassword.tsx +2 -1
- package/src/login/pages/LoginUpdatePassword.tsx +3 -2
- package/src/login/pages/Register.tsx +2 -1
- package/src/tools/vendor/dompurify.ts +3 -0
- package/stories/intro/intro.stories.tsx +0 -1
- package/tools/vendor/dompurify.d.ts +2 -0
- package/tools/vendor/dompurify.js +2 -0
- package/account/i18n/GenericI18n.d.ts +0 -6
- package/account/i18n/GenericI18n.js +0 -2
- package/account/i18n/GenericI18n.js.map +0 -1
- package/account/i18n/i18n.d.ts +0 -87
- package/account/i18n/i18n.js +0 -111
- package/account/i18n/i18n.js.map +0 -1
- package/account/i18n/useI18n.d.ts +0 -14
- package/account/i18n/useI18n.js.map +0 -1
- package/login/Template.useStylesAndScripts.js.map +0 -1
- package/login/i18n/GenericI18n.d.ts +0 -6
- package/login/i18n/GenericI18n.js +0 -2
- package/login/i18n/GenericI18n.js.map +0 -1
- package/login/i18n/i18n.d.ts +0 -87
- package/login/i18n/i18n.js +0 -113
- package/login/i18n/i18n.js.map +0 -1
- package/login/i18n/useI18n.d.ts +0 -14
- package/login/i18n/useI18n.js.map +0 -1
- package/src/account/i18n/GenericI18n.tsx +0 -6
- package/src/account/i18n/i18n.tsx +0 -250
- package/src/login/i18n/GenericI18n.tsx +0 -6
- package/src/login/i18n/i18n.tsx +0 -252
package/login/Template.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/login/Template.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/login/Template.tsx"],"names":[],"mappings":"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"}
|
@@ -4,12 +4,9 @@ export type KcContextLike = {
|
|
4
4
|
resourcesPath: string;
|
5
5
|
ssoLoginInOtherTabsUrl: string;
|
6
6
|
};
|
7
|
-
locale?: {
|
8
|
-
currentLanguageTag: string;
|
9
|
-
};
|
10
7
|
scripts: string[];
|
11
8
|
};
|
12
|
-
export declare function
|
9
|
+
export declare function useInitialize(params: {
|
13
10
|
kcContext: KcContextLike;
|
14
11
|
doUseDefaultCss: boolean;
|
15
12
|
}): {
|
@@ -4,18 +4,9 @@ import { useInsertScriptTags } from "../tools/useInsertScriptTags";
|
|
4
4
|
import { useInsertLinkTags } from "../tools/useInsertLinkTags";
|
5
5
|
assert();
|
6
6
|
assert();
|
7
|
-
export function
|
7
|
+
export function useInitialize(params) {
|
8
8
|
const { kcContext, doUseDefaultCss } = params;
|
9
|
-
const { url,
|
10
|
-
useEffect(() => {
|
11
|
-
const { currentLanguageTag } = locale !== null && locale !== void 0 ? locale : {};
|
12
|
-
if (currentLanguageTag === undefined) {
|
13
|
-
return;
|
14
|
-
}
|
15
|
-
const html = document.querySelector("html");
|
16
|
-
assert(html !== null);
|
17
|
-
html.lang = currentLanguageTag;
|
18
|
-
}, []);
|
9
|
+
const { url, scripts } = kcContext;
|
19
10
|
const { areAllStyleSheetsLoaded } = useInsertLinkTags({
|
20
11
|
componentOrHookName: "Template",
|
21
12
|
hrefs: !doUseDefaultCss
|
@@ -45,9 +36,7 @@ export function useStylesAndScripts(params) {
|
|
45
36
|
textContent: `
|
46
37
|
import { checkCookiesAndSetTimer } from "${url.resourcesPath}/js/authChecker.js";
|
47
38
|
|
48
|
-
checkCookiesAndSetTimer(
|
49
|
-
"${url.ssoLoginInOtherTabsUrl}"
|
50
|
-
);
|
39
|
+
checkCookiesAndSetTimer("${url.ssoLoginInOtherTabsUrl}");
|
51
40
|
`
|
52
41
|
}
|
53
42
|
]
|
@@ -59,4 +48,4 @@ export function useStylesAndScripts(params) {
|
|
59
48
|
}, [areAllStyleSheetsLoaded]);
|
60
49
|
return { isReadyToRender: areAllStyleSheetsLoaded };
|
61
50
|
}
|
62
|
-
//# sourceMappingURL=Template.
|
51
|
+
//# sourceMappingURL=Template.useInitialize.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Template.useInitialize.js","sourceRoot":"","sources":["../src/login/Template.useInitialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAYxE,MAAM,EAA8D,CAAC;AACrE,MAAM,EAAkD,CAAC;AAEzD,MAAM,UAAU,aAAa,CAAC,MAG7B;IACG,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,MAAM,CAAC;IAE9C,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,SAAS,CAAC;IAEnC,MAAM,EAAE,uBAAuB,EAAE,GAAG,iBAAiB,CAAC;QAClD,mBAAmB,EAAE,UAAU;QAC/B,KAAK,EAAE,CAAC,eAAe;YACnB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC;gBACI,GAAG,GAAG,CAAC,mBAAmB,yDAAyD;gBACnF,GAAG,GAAG,CAAC,mBAAmB,sDAAsD;gBAChF,GAAG,GAAG,CAAC,mBAAmB,gEAAgE;gBAC1F,GAAG,GAAG,CAAC,mBAAmB,wBAAwB;gBAClD,GAAG,GAAG,CAAC,aAAa,gBAAgB;aACvC;KACV,CAAC,CAAC;IAEH,MAAM,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,CAAC;QAC7C,mBAAmB,EAAE,UAAU;QAC/B,UAAU,EAAE;YACR,0FAA0F;YAC1F;gBACI,IAAI,EAAE,QAAQ;gBACd,GAAG,EAAE,GAAG,GAAG,CAAC,aAAa,0BAA0B;aACtD;YACD,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;gBACnB,IAAI,EAAE,iBAA0B;gBAChC,GAAG;aACN,CAAC,CAAC;YACH;gBACI,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE;+DACkC,GAAG,CAAC,aAAa;;+CAEjC,GAAG,CAAC,sBAAsB;iBACxD;aACJ;SACJ;KACJ,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,uBAAuB,EAAE;YACzB,gBAAgB,EAAE,CAAC;SACtB;IACL,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAE9B,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,CAAC;AACxD,CAAC"}
|
package/login/i18n/index.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
|
2
|
-
import type {
|
3
|
-
|
4
|
-
|
5
|
-
export
|
1
|
+
export * from "./withJsx";
|
2
|
+
import type { GenericI18n } from "./withJsx/GenericI18n";
|
3
|
+
import type { MessageKey as MessageKey_defaultSet } from "./messages_defaultSet/types";
|
4
|
+
/** INTERNAL: DO NOT IMPORT THIS */
|
5
|
+
export type I18n = GenericI18n<MessageKey_defaultSet, string>;
|
package/login/i18n/index.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export
|
1
|
+
export * from "./withJsx";
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/login/i18n/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/login/i18n/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/login/i18n/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export declare const languageTags: readonly ["ar", "ca", "cs", "da", "de", "el", "en", "es", "fa", "fi", "fr", "hu", "it", "ja", "ka", "lt", "lv", "nl", "no", "pl", "pt", "pt-BR", "ru", "sk", "sv", "th", "tr", "uk", "zh-CN", "zh-TW"];
|
2
|
+
export type LanguageTag = typeof languageTags[number];
|
3
|
+
export type MessageKey = keyof typeof import("./en")["default"];
|
@@ -0,0 +1,33 @@
|
|
1
|
+
export const languageTags = [
|
2
|
+
"ar",
|
3
|
+
"ca",
|
4
|
+
"cs",
|
5
|
+
"da",
|
6
|
+
"de",
|
7
|
+
"el",
|
8
|
+
"en",
|
9
|
+
"es",
|
10
|
+
"fa",
|
11
|
+
"fi",
|
12
|
+
"fr",
|
13
|
+
"hu",
|
14
|
+
"it",
|
15
|
+
"ja",
|
16
|
+
"ka",
|
17
|
+
"lt",
|
18
|
+
"lv",
|
19
|
+
"nl",
|
20
|
+
"no",
|
21
|
+
"pl",
|
22
|
+
"pt",
|
23
|
+
"pt-BR",
|
24
|
+
"ru",
|
25
|
+
"sk",
|
26
|
+
"sv",
|
27
|
+
"th",
|
28
|
+
"tr",
|
29
|
+
"uk",
|
30
|
+
"zh-CN",
|
31
|
+
"zh-TW"
|
32
|
+
];
|
33
|
+
//# sourceMappingURL=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/login/i18n/messages_defaultSet/types.ts"],"names":[],"mappings":"AACA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,OAAO;CACC,CAAC"}
|
@@ -0,0 +1,63 @@
|
|
1
|
+
export type GenericI18n_noJsx<MessageKey extends string, LanguageTag extends string> = {
|
2
|
+
currentLanguage: {
|
3
|
+
/**
|
4
|
+
* e.g: "en", "fr", "zh-CN"
|
5
|
+
*
|
6
|
+
* The current language
|
7
|
+
*/
|
8
|
+
languageTag: LanguageTag;
|
9
|
+
/**
|
10
|
+
* e.g: "English", "Français", "中文(简体)"
|
11
|
+
*
|
12
|
+
* The current language
|
13
|
+
*/
|
14
|
+
label: string;
|
15
|
+
};
|
16
|
+
/**
|
17
|
+
* Array of languages enabled on the realm.
|
18
|
+
*/
|
19
|
+
enabledLanguages: {
|
20
|
+
languageTag: LanguageTag;
|
21
|
+
label: string;
|
22
|
+
href: string;
|
23
|
+
}[];
|
24
|
+
/**
|
25
|
+
*
|
26
|
+
* Examples assuming currentLanguageTag === "en"
|
27
|
+
* {
|
28
|
+
* en: {
|
29
|
+
* "access-denied": "Access denied",
|
30
|
+
* "impersonateTitleHtml": "<strong>{0}</strong> Impersonate User",
|
31
|
+
* "bar": "Bar {0}"
|
32
|
+
* }
|
33
|
+
* }
|
34
|
+
*
|
35
|
+
* msgStr("access-denied") === "Access denied"
|
36
|
+
* msgStr("not-a-message-key") Throws an error
|
37
|
+
* msgStr("impersonateTitleHtml", "Foo") === "<strong>Foo</strong> Impersonate User"
|
38
|
+
* msgStr("${bar}", "<strong>c</strong>") === "Bar <strong>XXX</strong>"
|
39
|
+
* The html in the arg is partially escaped for security reasons, it might come from an untrusted source, it's not safe to render it as html.
|
40
|
+
*/
|
41
|
+
msgStr: (key: MessageKey, ...args: (string | undefined)[]) => string;
|
42
|
+
/**
|
43
|
+
* This is meant to be used when the key argument is variable, something that might have been configured by the user
|
44
|
+
* in the Keycloak admin for example.
|
45
|
+
*
|
46
|
+
* Examples assuming currentLanguageTag === "en"
|
47
|
+
* {
|
48
|
+
* en: {
|
49
|
+
* "access-denied": "Access denied",
|
50
|
+
* }
|
51
|
+
* }
|
52
|
+
*
|
53
|
+
* advancedMsgStr("${access-denied}") === advancedMsgStr("access-denied") === msgStr("access-denied") === "Access denied"
|
54
|
+
* advancedMsgStr("${not-a-message-key}") === advancedMsgStr("not-a-message-key") === "not-a-message-key"
|
55
|
+
*/
|
56
|
+
advancedMsgStr: (key: string, ...args: (string | undefined)[]) => string;
|
57
|
+
/**
|
58
|
+
* Initially the messages are in english (fallback language).
|
59
|
+
* The translations in the current language are being fetched dynamically.
|
60
|
+
* This property is true while the translations are being fetched.
|
61
|
+
*/
|
62
|
+
isFetchingTranslations: boolean;
|
63
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"GenericI18n_noJsx.js","sourceRoot":"","sources":["../../../src/login/i18n/noJsx/GenericI18n_noJsx.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,41 @@
|
|
1
|
+
import "../../../tools/Object.fromEntries";
|
2
|
+
import { type LanguageTag as LanguageTag_defaultSet, type MessageKey as MessageKey_defaultSet } from "../messages_defaultSet/types";
|
3
|
+
import type { GenericI18n_noJsx } from "./GenericI18n_noJsx";
|
4
|
+
export type KcContextLike = {
|
5
|
+
themeName: string;
|
6
|
+
locale?: {
|
7
|
+
currentLanguageTag: string;
|
8
|
+
supported: {
|
9
|
+
languageTag: string;
|
10
|
+
url: string;
|
11
|
+
label: string;
|
12
|
+
}[];
|
13
|
+
};
|
14
|
+
"x-keycloakify": {
|
15
|
+
messages: Record<string, string>;
|
16
|
+
};
|
17
|
+
};
|
18
|
+
export type ReturnTypeOfCreateGetI18n<MessageKey_themeDefined extends string, LanguageTag_notInDefaultSet extends string> = {
|
19
|
+
getI18n: (params: {
|
20
|
+
kcContext: KcContextLike;
|
21
|
+
}) => {
|
22
|
+
i18n: GenericI18n_noJsx<MessageKey_defaultSet | MessageKey_themeDefined, LanguageTag_defaultSet | LanguageTag_notInDefaultSet>;
|
23
|
+
prI18n_currentLanguage: Promise<GenericI18n_noJsx<MessageKey_defaultSet | MessageKey_themeDefined, LanguageTag_defaultSet | LanguageTag_notInDefaultSet>> | undefined;
|
24
|
+
};
|
25
|
+
ofTypeI18n: GenericI18n_noJsx<MessageKey_defaultSet | MessageKey_themeDefined, LanguageTag_defaultSet | LanguageTag_notInDefaultSet>;
|
26
|
+
};
|
27
|
+
export declare function createGetI18n<ThemeName extends string = string, MessageKey_themeDefined extends string = never, LanguageTag_notInDefaultSet extends string = never>(params: {
|
28
|
+
extraLanguageTranslations: {
|
29
|
+
[languageTag in LanguageTag_notInDefaultSet]: {
|
30
|
+
label: string;
|
31
|
+
getMessages: () => Promise<{
|
32
|
+
default: Record<MessageKey_defaultSet, string>;
|
33
|
+
}>;
|
34
|
+
};
|
35
|
+
};
|
36
|
+
messagesByLanguageTag_themeDefined: Partial<{
|
37
|
+
[languageTag in LanguageTag_defaultSet | LanguageTag_notInDefaultSet]: {
|
38
|
+
[key in MessageKey_themeDefined]: string | Record<ThemeName, string>;
|
39
|
+
};
|
40
|
+
}>;
|
41
|
+
}): ReturnTypeOfCreateGetI18n<MessageKey_themeDefined, LanguageTag_notInDefaultSet>;
|
@@ -0,0 +1,207 @@
|
|
1
|
+
import "../../../tools/Object.fromEntries";
|
2
|
+
import { assert } from "tsafe/assert";
|
3
|
+
import messages_defaultSet_fallbackLanguage from "../messages_defaultSet/en";
|
4
|
+
import { fetchMessages_defaultSet } from "../messages_defaultSet";
|
5
|
+
import { FALLBACK_LANGUAGE_TAG } from "../../../bin/shared/constants";
|
6
|
+
import { id } from "tsafe/id";
|
7
|
+
import { is } from "tsafe/is";
|
8
|
+
import { Reflect } from "tsafe/Reflect";
|
9
|
+
import { languageTags as languageTags_defaultSet } from "../messages_defaultSet/types";
|
10
|
+
assert();
|
11
|
+
export function createGetI18n(params) {
|
12
|
+
const { extraLanguageTranslations, messagesByLanguageTag_themeDefined } = params;
|
13
|
+
Object.keys(extraLanguageTranslations).forEach(languageTag_notInDefaultSet => {
|
14
|
+
if (id(languageTags_defaultSet).includes(languageTag_notInDefaultSet)) {
|
15
|
+
throw new Error([
|
16
|
+
`Language "${languageTag_notInDefaultSet}" is already in the default set, you don't need to provide your own base translations for it`,
|
17
|
+
`If you want to override some translations for this language, you can use the "withCustomTranslations" method`
|
18
|
+
].join(" "));
|
19
|
+
}
|
20
|
+
});
|
21
|
+
const cachedResultByKcContext = new WeakMap();
|
22
|
+
function getI18n(params) {
|
23
|
+
var _a, _b, _c, _d;
|
24
|
+
const { kcContext } = params;
|
25
|
+
use_cache: {
|
26
|
+
const cachedResult = cachedResultByKcContext.get(kcContext);
|
27
|
+
if (cachedResult === undefined) {
|
28
|
+
break use_cache;
|
29
|
+
}
|
30
|
+
return cachedResult;
|
31
|
+
}
|
32
|
+
{
|
33
|
+
const currentLanguageTag = (_b = (_a = kcContext.locale) === null || _a === void 0 ? void 0 : _a.currentLanguageTag) !== null && _b !== void 0 ? _b : FALLBACK_LANGUAGE_TAG;
|
34
|
+
const html = document.querySelector("html");
|
35
|
+
assert(html !== null);
|
36
|
+
html.lang = currentLanguageTag;
|
37
|
+
}
|
38
|
+
const getLanguageLabel = (languageTag) => {
|
39
|
+
form_user_added_languages: {
|
40
|
+
if (!(languageTag in extraLanguageTranslations)) {
|
41
|
+
break form_user_added_languages;
|
42
|
+
}
|
43
|
+
assert(is(languageTag));
|
44
|
+
const entry = extraLanguageTranslations[languageTag];
|
45
|
+
return entry.label;
|
46
|
+
}
|
47
|
+
from_server: {
|
48
|
+
if (kcContext.locale === undefined) {
|
49
|
+
break from_server;
|
50
|
+
}
|
51
|
+
const supportedEntry = kcContext.locale.supported.find(entry => entry.languageTag === languageTag);
|
52
|
+
if (supportedEntry === undefined) {
|
53
|
+
break from_server;
|
54
|
+
}
|
55
|
+
// cspell: disable-next-line
|
56
|
+
// from "Espagnol (Español)" we want to extract "Español"
|
57
|
+
const match = supportedEntry.label.match(/[^(]+\(([^)]+)\)/);
|
58
|
+
if (match !== null) {
|
59
|
+
return match[1];
|
60
|
+
}
|
61
|
+
return supportedEntry.label;
|
62
|
+
}
|
63
|
+
// NOTE: This should never happen
|
64
|
+
return languageTag;
|
65
|
+
};
|
66
|
+
const currentLanguage = (() => {
|
67
|
+
var _a, _b;
|
68
|
+
const languageTag = id((_b = (_a = kcContext.locale) === null || _a === void 0 ? void 0 : _a.currentLanguageTag) !== null && _b !== void 0 ? _b : FALLBACK_LANGUAGE_TAG);
|
69
|
+
return {
|
70
|
+
languageTag,
|
71
|
+
label: getLanguageLabel(languageTag)
|
72
|
+
};
|
73
|
+
})();
|
74
|
+
const enabledLanguages = (() => {
|
75
|
+
var _a;
|
76
|
+
const enabledLanguages = [];
|
77
|
+
if (kcContext.locale !== undefined) {
|
78
|
+
for (const entry of (_a = kcContext.locale.supported) !== null && _a !== void 0 ? _a : []) {
|
79
|
+
const languageTag = id(entry.languageTag);
|
80
|
+
enabledLanguages.push({
|
81
|
+
languageTag,
|
82
|
+
label: getLanguageLabel(languageTag),
|
83
|
+
href: entry.url
|
84
|
+
});
|
85
|
+
}
|
86
|
+
}
|
87
|
+
if (enabledLanguages.find(({ languageTag }) => languageTag === currentLanguage.languageTag) === undefined) {
|
88
|
+
enabledLanguages.push({
|
89
|
+
languageTag: currentLanguage.languageTag,
|
90
|
+
label: getLanguageLabel(currentLanguage.languageTag),
|
91
|
+
href: "#"
|
92
|
+
});
|
93
|
+
}
|
94
|
+
return enabledLanguages;
|
95
|
+
})();
|
96
|
+
const { createI18nTranslationFunctions } = createI18nTranslationFunctionsFactory({
|
97
|
+
themeName: kcContext.themeName,
|
98
|
+
messages_themeDefined: (_d = (_c = messagesByLanguageTag_themeDefined[currentLanguage.languageTag]) !== null && _c !== void 0 ? _c : messagesByLanguageTag_themeDefined[id(FALLBACK_LANGUAGE_TAG)]) !== null && _d !== void 0 ? _d : (() => {
|
99
|
+
const firstLanguageTag = Object.keys(messagesByLanguageTag_themeDefined)[0];
|
100
|
+
if (firstLanguageTag === undefined) {
|
101
|
+
return undefined;
|
102
|
+
}
|
103
|
+
return messagesByLanguageTag_themeDefined[firstLanguageTag];
|
104
|
+
})(),
|
105
|
+
messages_fromKcServer: kcContext["x-keycloakify"].messages
|
106
|
+
});
|
107
|
+
const isCurrentLanguageFallbackLanguage = currentLanguage.languageTag === FALLBACK_LANGUAGE_TAG;
|
108
|
+
const result = {
|
109
|
+
i18n: Object.assign(Object.assign({ currentLanguage,
|
110
|
+
enabledLanguages }, createI18nTranslationFunctions({
|
111
|
+
messages_defaultSet_currentLanguage: isCurrentLanguageFallbackLanguage ? messages_defaultSet_fallbackLanguage : undefined
|
112
|
+
})), { isFetchingTranslations: !isCurrentLanguageFallbackLanguage }),
|
113
|
+
prI18n_currentLanguage: isCurrentLanguageFallbackLanguage
|
114
|
+
? undefined
|
115
|
+
: (async () => {
|
116
|
+
const messages_defaultSet_currentLanguage = await (async () => {
|
117
|
+
const currentLanguageTag = currentLanguage.languageTag;
|
118
|
+
const fromDefaultSet = await fetchMessages_defaultSet(currentLanguageTag);
|
119
|
+
const isEmpty = (() => {
|
120
|
+
for (let _key in fromDefaultSet) {
|
121
|
+
return false;
|
122
|
+
}
|
123
|
+
return true;
|
124
|
+
})();
|
125
|
+
if (isEmpty) {
|
126
|
+
assert(is(currentLanguageTag));
|
127
|
+
const entry = extraLanguageTranslations[currentLanguageTag];
|
128
|
+
assert(entry !== undefined);
|
129
|
+
return entry.getMessages().then(({ default: messages }) => messages);
|
130
|
+
}
|
131
|
+
return fromDefaultSet;
|
132
|
+
})();
|
133
|
+
const i18n_currentLanguage = Object.assign(Object.assign({ currentLanguage,
|
134
|
+
enabledLanguages }, createI18nTranslationFunctions({ messages_defaultSet_currentLanguage })), { isFetchingTranslations: false });
|
135
|
+
// NOTE: This promise.resolve is just because without it we TypeScript
|
136
|
+
// gives a Variable 'result' is used before being assigned. error
|
137
|
+
await Promise.resolve().then(() => {
|
138
|
+
result.i18n = i18n_currentLanguage;
|
139
|
+
result.prI18n_currentLanguage = undefined;
|
140
|
+
});
|
141
|
+
return i18n_currentLanguage;
|
142
|
+
})()
|
143
|
+
};
|
144
|
+
cachedResultByKcContext.set(kcContext, result);
|
145
|
+
return result;
|
146
|
+
}
|
147
|
+
return {
|
148
|
+
getI18n,
|
149
|
+
ofTypeI18n: Reflect()
|
150
|
+
};
|
151
|
+
}
|
152
|
+
function createI18nTranslationFunctionsFactory(params) {
|
153
|
+
const { themeName, messages_themeDefined, messages_fromKcServer } = params;
|
154
|
+
function createI18nTranslationFunctions(params) {
|
155
|
+
const { messages_defaultSet_currentLanguage } = params;
|
156
|
+
function resolveMsg(props) {
|
157
|
+
var _a, _b, _c, _d, _e;
|
158
|
+
const { key, args } = props;
|
159
|
+
const message = (_d = (_b = (_a = id(messages_fromKcServer)[key]) !== null && _a !== void 0 ? _a : (() => {
|
160
|
+
var _a;
|
161
|
+
const messageOrMap = (_a = id(messages_themeDefined)) === null || _a === void 0 ? void 0 : _a[key];
|
162
|
+
if (messageOrMap === undefined) {
|
163
|
+
return undefined;
|
164
|
+
}
|
165
|
+
if (typeof messageOrMap === "string") {
|
166
|
+
return messageOrMap;
|
167
|
+
}
|
168
|
+
const message = messageOrMap[themeName];
|
169
|
+
assert(message !== undefined, `No translation for theme variant "${themeName}" for key "${key}"`);
|
170
|
+
return message;
|
171
|
+
})()) !== null && _b !== void 0 ? _b : (_c = id(messages_defaultSet_currentLanguage)) === null || _c === void 0 ? void 0 : _c[key]) !== null && _d !== void 0 ? _d : id(messages_defaultSet_fallbackLanguage)[key];
|
172
|
+
if (message === undefined) {
|
173
|
+
return undefined;
|
174
|
+
}
|
175
|
+
const startIndex = (_e = message
|
176
|
+
.match(/{[0-9]+}/g)) === null || _e === void 0 ? void 0 : _e.map(g => g.match(/{([0-9]+)}/)[1]).map(indexStr => parseInt(indexStr)).sort((a, b) => a - b)[0];
|
177
|
+
if (startIndex === undefined) {
|
178
|
+
// No {0} in message (no arguments expected)
|
179
|
+
return message;
|
180
|
+
}
|
181
|
+
let messageWithArgsInjected = message;
|
182
|
+
args.forEach((arg, i) => {
|
183
|
+
if (arg === undefined) {
|
184
|
+
return;
|
185
|
+
}
|
186
|
+
messageWithArgsInjected = messageWithArgsInjected.replace(new RegExp(`\\{${i + startIndex}\\}`, "g"), arg);
|
187
|
+
});
|
188
|
+
return messageWithArgsInjected;
|
189
|
+
}
|
190
|
+
function resolveMsgAdvanced(props) {
|
191
|
+
var _a;
|
192
|
+
const { key, args } = props;
|
193
|
+
const match = key.match(/^\$\{(.+)\}$/);
|
194
|
+
return (_a = resolveMsg({ key: match !== null ? match[1] : key, args })) !== null && _a !== void 0 ? _a : key;
|
195
|
+
}
|
196
|
+
return {
|
197
|
+
msgStr: (key, ...args) => {
|
198
|
+
const resolvedMessage = resolveMsg({ key, args });
|
199
|
+
assert(resolvedMessage !== undefined, `Message with key "${key}" not found`);
|
200
|
+
return resolvedMessage;
|
201
|
+
},
|
202
|
+
advancedMsgStr: (key, ...args) => resolveMsgAdvanced({ key, args })
|
203
|
+
};
|
204
|
+
}
|
205
|
+
return { createI18nTranslationFunctions };
|
206
|
+
}
|
207
|
+
//# sourceMappingURL=getI18n.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getI18n.js","sourceRoot":"","sources":["../../../src/login/i18n/noJsx/getI18n.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
import type { LanguageTag as LanguageTag_defaultSet, MessageKey as MessageKey_defaultSet } from "../messages_defaultSet/types";
|
2
|
+
import { type ReturnTypeOfCreateGetI18n } from "./getI18n";
|
3
|
+
export type I18nBuilder<ThemeName extends string = never, MessageKey_themeDefined extends string = never, LanguageTag_notInDefaultSet extends string = never, ExcludedMethod extends "withThemeName" | "withExtraLanguages" | "withCustomTranslations" = never> = Omit<{
|
4
|
+
withThemeName: <ThemeName extends string>() => I18nBuilder<ThemeName, MessageKey_themeDefined, LanguageTag_notInDefaultSet, ExcludedMethod | "withThemeName">;
|
5
|
+
withExtraLanguages: <LanguageTag_notInDefaultSet extends string>(extraLanguageTranslations: {
|
6
|
+
[LanguageTag in LanguageTag_notInDefaultSet]: {
|
7
|
+
label: string;
|
8
|
+
getMessages: () => Promise<{
|
9
|
+
default: Record<MessageKey_defaultSet, string>;
|
10
|
+
}>;
|
11
|
+
};
|
12
|
+
}) => I18nBuilder<ThemeName, MessageKey_themeDefined, LanguageTag_notInDefaultSet, ExcludedMethod | "withExtraLanguages">;
|
13
|
+
withCustomTranslations: <MessageKey_themeDefined extends string>(messagesByLanguageTag_themeDefined: Partial<{
|
14
|
+
[LanguageTag in LanguageTag_defaultSet | LanguageTag_notInDefaultSet]: Record<MessageKey_themeDefined, string | Record<ThemeName, string>>;
|
15
|
+
}>) => I18nBuilder<ThemeName, MessageKey_themeDefined, LanguageTag_notInDefaultSet, ExcludedMethod | "withCustomTranslations">;
|
16
|
+
build: () => ReturnTypeOfCreateGetI18n<MessageKey_themeDefined, LanguageTag_notInDefaultSet>;
|
17
|
+
}, ExcludedMethod>;
|
18
|
+
export declare const i18nBuilder: I18nBuilder<never, never, never, never>;
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import { createGetI18n } from "./getI18n";
|
2
|
+
function createI18nBuilder(params) {
|
3
|
+
const i18nBuilder = {
|
4
|
+
withThemeName: () => createI18nBuilder({
|
5
|
+
extraLanguageTranslations: params.extraLanguageTranslations,
|
6
|
+
messagesByLanguageTag_themeDefined: params.messagesByLanguageTag_themeDefined
|
7
|
+
}),
|
8
|
+
withExtraLanguages: extraLanguageTranslations => createI18nBuilder({
|
9
|
+
extraLanguageTranslations,
|
10
|
+
messagesByLanguageTag_themeDefined: params.messagesByLanguageTag_themeDefined
|
11
|
+
}),
|
12
|
+
withCustomTranslations: messagesByLanguageTag_themeDefined => createI18nBuilder({
|
13
|
+
extraLanguageTranslations: params.extraLanguageTranslations,
|
14
|
+
messagesByLanguageTag_themeDefined
|
15
|
+
}),
|
16
|
+
build: () => createGetI18n({
|
17
|
+
extraLanguageTranslations: params.extraLanguageTranslations,
|
18
|
+
messagesByLanguageTag_themeDefined: params.messagesByLanguageTag_themeDefined
|
19
|
+
})
|
20
|
+
};
|
21
|
+
return i18nBuilder;
|
22
|
+
}
|
23
|
+
export const i18nBuilder = createI18nBuilder({
|
24
|
+
extraLanguageTranslations: {},
|
25
|
+
messagesByLanguageTag_themeDefined: {}
|
26
|
+
});
|
27
|
+
//# sourceMappingURL=i18nBuilder.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"i18nBuilder.js","sourceRoot":"","sources":["../../../src/login/i18n/noJsx/i18nBuilder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAkC,aAAa,EAAE,MAAM,WAAW,CAAC;AAwD1E,SAAS,iBAAiB,CAIxB,MAeD;IACG,MAAM,WAAW,GAIb;QACA,aAAa,EAAE,GAAG,EAAE,CAChB,iBAAiB,CAAC;YACd,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;YAC3D,kCAAkC,EAC9B,MAAM,CAAC,kCAAyC;SACvD,CAAC;QACN,kBAAkB,EAAE,yBAAyB,CAAC,EAAE,CAC5C,iBAAiB,CAAC;YACd,yBAAyB;YACzB,kCAAkC,EAC9B,MAAM,CAAC,kCAAyC;SACvD,CAAC;QACN,sBAAsB,EAAE,kCAAkC,CAAC,EAAE,CACzD,iBAAiB,CAAC;YACd,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;YAC3D,kCAAkC;SACrC,CAAC;QACN,KAAK,EAAE,GAAG,EAAE,CACR,aAAa,CAAC;YACV,yBAAyB,EAAE,MAAM,CAAC,yBAAyB;YAC3D,kCAAkC,EAC9B,MAAM,CAAC,kCAAkC;SAChD,CAAC;KACT,CAAC;IAEF,OAAO,WAAW,CAAC;AACvB,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAC;IACzC,yBAAyB,EAAE,EAAE;IAC7B,kCAAkC,EAAE,EAAE;CACzC,CAAC,CAAC"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/login/i18n/noJsx/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC"}
|
@@ -0,0 +1,72 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
export type GenericI18n<MessageKey extends string, LanguageTag extends string> = {
|
3
|
+
currentLanguage: {
|
4
|
+
/**
|
5
|
+
* e.g: "en", "fr", "zh-CN"
|
6
|
+
*
|
7
|
+
* The current language
|
8
|
+
*/
|
9
|
+
languageTag: LanguageTag;
|
10
|
+
/**
|
11
|
+
* e.g: "English", "Français", "中文(简体)"
|
12
|
+
*
|
13
|
+
* The current language
|
14
|
+
*/
|
15
|
+
label: string;
|
16
|
+
};
|
17
|
+
/**
|
18
|
+
* Array of languages enabled on the realm.
|
19
|
+
*/
|
20
|
+
enabledLanguages: {
|
21
|
+
languageTag: LanguageTag;
|
22
|
+
label: string;
|
23
|
+
href: string;
|
24
|
+
}[];
|
25
|
+
/**
|
26
|
+
*
|
27
|
+
* Examples assuming currentLanguageTag === "en"
|
28
|
+
* {
|
29
|
+
* en: {
|
30
|
+
* "access-denied": "Access denied",
|
31
|
+
* "impersonateTitleHtml": "<strong>{0}</strong> Impersonate User",
|
32
|
+
* "bar": "Bar {0}"
|
33
|
+
* }
|
34
|
+
* }
|
35
|
+
*
|
36
|
+
* msgStr("access-denied") === "Access denied"
|
37
|
+
* msgStr("not-a-message-key") Throws an error
|
38
|
+
* msgStr("impersonateTitleHtml", "Foo") === "<strong>Foo</strong> Impersonate User"
|
39
|
+
* msgStr("${bar}", "<strong>c</strong>") === "Bar <strong>XXX</strong>"
|
40
|
+
* The html in the arg is partially escaped for security reasons, it might come from an untrusted source, it's not safe to render it as html.
|
41
|
+
*/
|
42
|
+
msgStr: (key: MessageKey, ...args: (string | undefined)[]) => string;
|
43
|
+
/**
|
44
|
+
* This is meant to be used when the key argument is variable, something that might have been configured by the user
|
45
|
+
* in the Keycloak admin for example.
|
46
|
+
*
|
47
|
+
* Examples assuming currentLanguageTag === "en"
|
48
|
+
* {
|
49
|
+
* en: {
|
50
|
+
* "access-denied": "Access denied",
|
51
|
+
* }
|
52
|
+
* }
|
53
|
+
*
|
54
|
+
* advancedMsgStr("${access-denied}") === advancedMsgStr("access-denied") === msgStr("access-denied") === "Access denied"
|
55
|
+
* advancedMsgStr("${not-a-message-key}") === advancedMsgStr("not-a-message-key") === "not-a-message-key"
|
56
|
+
*/
|
57
|
+
advancedMsgStr: (key: string, ...args: (string | undefined)[]) => string;
|
58
|
+
/**
|
59
|
+
* Initially the messages are in english (fallback language).
|
60
|
+
* The translations in the current language are being fetched dynamically.
|
61
|
+
* This property is true while the translations are being fetched.
|
62
|
+
*/
|
63
|
+
isFetchingTranslations: boolean;
|
64
|
+
/**
|
65
|
+
* Same as msgStr but returns a JSX.Element with the html string rendered as html.
|
66
|
+
*/
|
67
|
+
msg: (key: MessageKey, ...args: (string | undefined)[]) => JSX.Element;
|
68
|
+
/**
|
69
|
+
* Same as advancedMsgStr but returns a JSX.Element with the html string rendered as html.
|
70
|
+
*/
|
71
|
+
advancedMsg: (key: string, ...args: (string | undefined)[]) => JSX.Element;
|
72
|
+
};
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"GenericI18n.js","sourceRoot":"","sources":["../../../src/login/i18n/withJsx/GenericI18n.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAe,MAAM,cAAc,CAAC;AA0EnD;IAII,MAAoB,CAAC;CACxB"}
|