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/README.md
CHANGED
@@ -132,6 +132,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
|
|
132
132
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/oliviergoulet5"><img src="https://avatars.githubusercontent.com/u/17685861?v=4?s=100" width="100px;" alt="Olivier Goulet"/><br /><sub><b>Olivier Goulet</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=oliviergoulet5" title="Code">💻</a></td>
|
133
133
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/liamlows"><img src="https://avatars.githubusercontent.com/u/1365914?v=4?s=100" width="100px;" alt="Liam Lowsley-Williams"/><br /><sub><b>Liam Lowsley-Williams</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=liamlows" title="Code">💻</a> <a href="https://github.com/keycloakify/keycloakify/commits?author=liamlows" title="Documentation">📖</a></td>
|
134
134
|
</tr>
|
135
|
+
<tr>
|
136
|
+
<td align="center" valign="top" width="14.28%"><a href="https://www.linkedin.com/in/oes-rioniz/"><img src="https://avatars.githubusercontent.com/u/5172296?v=4?s=100" width="100px;" alt="Omid"/><br /><sub><b>Omid</b></sub></a><br /><a href="https://github.com/keycloakify/keycloakify/commits?author=uchar" title="Tests">⚠️</a> <a href="https://github.com/keycloakify/keycloakify/commits?author=uchar" title="Code">💻</a></td>
|
137
|
+
</tr>
|
135
138
|
</tbody>
|
136
139
|
</table>
|
137
140
|
|
@@ -2,6 +2,7 @@ import "../../tools/Object.fromEntries";
|
|
2
2
|
import { WELL_KNOWN_DIRECTORY_BASE_NAME } from "../../bin/shared/constants";
|
3
3
|
import { id } from "tsafe/id";
|
4
4
|
import { BASE_URL } from "../../lib/BASE_URL";
|
5
|
+
import { assert } from "tsafe/assert";
|
5
6
|
const resourcesPath = `${BASE_URL}${WELL_KNOWN_DIRECTORY_BASE_NAME.KEYCLOAKIFY_DEV_RESOURCES}/account`;
|
6
7
|
export const kcContextCommonMock = {
|
7
8
|
themeVersion: "0.0.0",
|
@@ -54,13 +55,24 @@ export const kcContextCommonMock = {
|
|
54
55
|
["pl", "Polski"],
|
55
56
|
["ca", "Català"],
|
56
57
|
["nl", "Nederlands"],
|
57
|
-
["tr", "Türkçe"]
|
58
|
+
["tr", "Türkçe"],
|
59
|
+
["ar", "العربية"],
|
60
|
+
["da", "Dansk"],
|
61
|
+
["fi", "Suomi"],
|
62
|
+
["hu", "Magyar"],
|
63
|
+
["lv", "Latviešu"]
|
58
64
|
/* spell-checker: enable */
|
59
|
-
].map(([languageTag, label]) =>
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
65
|
+
].map(([languageTag, label]) => {
|
66
|
+
{
|
67
|
+
assert;
|
68
|
+
assert;
|
69
|
+
}
|
70
|
+
return {
|
71
|
+
languageTag,
|
72
|
+
label,
|
73
|
+
url: "https://gist.github.com/garronej/52baaca1bb925f2296ab32741e062b8e"
|
74
|
+
};
|
75
|
+
}),
|
64
76
|
currentLanguageTag: "en"
|
65
77
|
},
|
66
78
|
features: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"kcContextMocks.js","sourceRoot":"","sources":["../../src/account/KcContext/kcContextMocks.ts"],"names":[],"mappings":"AAAA,OAAO,sCAAsC,CAAC;AAC9C,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,EAAE,EAAE,MAAM,UAAU,CAAC;AAE9B,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;
|
1
|
+
{"version":3,"file":"kcContextMocks.js","sourceRoot":"","sources":["../../src/account/KcContext/kcContextMocks.ts"],"names":[],"mappings":"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"}
|
package/account/Template.js
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
2
2
|
import { useEffect } from "react";
|
3
|
-
import { assert } from "../tools/assert";
|
4
3
|
import { clsx } from "../tools/clsx";
|
4
|
+
import { kcSanitize } from "../lib/kcSanitize";
|
5
5
|
import { getKcClsx } from "../account/lib/kcClsx";
|
6
|
-
import { useInsertLinkTags } from "../tools/useInsertLinkTags";
|
7
6
|
import { useSetClassName } from "../tools/useSetClassName";
|
7
|
+
import { useInitialize } from "../account/Template.useInitialize";
|
8
8
|
export default function Template(props) {
|
9
9
|
const { kcContext, i18n, doUseDefaultCss, active, classes, children } = props;
|
10
10
|
const { kcClsx } = getKcClsx({ doUseDefaultCss, classes });
|
11
|
-
const { msg, msgStr,
|
12
|
-
const {
|
11
|
+
const { msg, msgStr, currentLanguage, enabledLanguages } = i18n;
|
12
|
+
const { url, features, realm, message, referrer } = kcContext;
|
13
13
|
useEffect(() => {
|
14
14
|
document.title = msgStr("accountManagementTitle");
|
15
15
|
}, []);
|
@@ -21,30 +21,12 @@ export default function Template(props) {
|
|
21
21
|
qualifiedName: "body",
|
22
22
|
className: clsx("admin-console", "user", kcClsx("kcBodyClass"))
|
23
23
|
});
|
24
|
-
|
25
|
-
|
26
|
-
if (currentLanguageTag === undefined) {
|
27
|
-
return;
|
28
|
-
}
|
29
|
-
const html = document.querySelector("html");
|
30
|
-
assert(html !== null);
|
31
|
-
html.lang = currentLanguageTag;
|
32
|
-
}, []);
|
33
|
-
const { areAllStyleSheetsLoaded } = useInsertLinkTags({
|
34
|
-
componentOrHookName: "Template",
|
35
|
-
hrefs: !doUseDefaultCss
|
36
|
-
? []
|
37
|
-
: [
|
38
|
-
`${url.resourcesCommonPath}/node_modules/patternfly/dist/css/patternfly.min.css`,
|
39
|
-
`${url.resourcesCommonPath}/node_modules/patternfly/dist/css/patternfly-additions.min.css`,
|
40
|
-
`${url.resourcesPath}/css/account.css`
|
41
|
-
]
|
42
|
-
});
|
43
|
-
if (!areAllStyleSheetsLoaded) {
|
24
|
+
const { isReadyToRender } = useInitialize({ kcContext, doUseDefaultCss });
|
25
|
+
if (!isReadyToRender) {
|
44
26
|
return null;
|
45
27
|
}
|
46
|
-
return (_jsxs(_Fragment, { children: [_jsx("header", Object.assign({ className: "navbar navbar-default navbar-pf navbar-main header" }, { children: _jsxs("nav", Object.assign({ className: "navbar", role: "navigation" }, { children: [_jsx("div", Object.assign({ className: "navbar-header" }, { children: _jsx("div", Object.assign({ className: "container" }, { children: _jsx("h1", Object.assign({ className: "navbar-title" }, { children: "Keycloak" })) })) })), _jsx("div", Object.assign({ className: "navbar-collapse navbar-collapse-1" }, { children: _jsx("div", Object.assign({ className: "container" }, { children: _jsxs("ul", Object.assign({ className: "nav navbar-nav navbar-utility" }, { children: [
|
47
|
-
__html: message.summary
|
28
|
+
return (_jsxs(_Fragment, { children: [_jsx("header", Object.assign({ className: "navbar navbar-default navbar-pf navbar-main header" }, { children: _jsxs("nav", Object.assign({ className: "navbar", role: "navigation" }, { children: [_jsx("div", Object.assign({ className: "navbar-header" }, { children: _jsx("div", Object.assign({ className: "container" }, { children: _jsx("h1", Object.assign({ className: "navbar-title" }, { children: "Keycloak" })) })) })), _jsx("div", Object.assign({ className: "navbar-collapse navbar-collapse-1" }, { children: _jsx("div", Object.assign({ className: "container" }, { children: _jsxs("ul", Object.assign({ className: "nav navbar-nav navbar-utility" }, { children: [enabledLanguages.length > 1 && (_jsx("li", { children: _jsxs("div", Object.assign({ className: "kc-dropdown", id: "kc-locale-dropdown" }, { children: [_jsx("a", Object.assign({ href: "#", id: "kc-current-locale-link" }, { children: currentLanguage.label })), _jsx("ul", { children: enabledLanguages.map(({ languageTag, label, href }) => (_jsx("li", Object.assign({ className: "kc-dropdown-item" }, { children: _jsx("a", Object.assign({ href: href }, { children: label })) }), languageTag))) })] })) })), (referrer === null || referrer === void 0 ? void 0 : referrer.url) && (_jsx("li", { children: _jsx("a", Object.assign({ href: referrer.url, id: "referrer" }, { children: msg("backTo", referrer.name) })) })), _jsx("li", { children: _jsx("a", Object.assign({ href: url.getLogoutUrl() }, { children: msg("doSignOut") })) })] })) })) }))] })) })), _jsxs("div", Object.assign({ className: "container" }, { children: [_jsx("div", Object.assign({ className: "bs-sidebar col-sm-3" }, { children: _jsxs("ul", { children: [_jsx("li", Object.assign({ className: clsx(active === "account" && "active") }, { children: _jsx("a", Object.assign({ href: url.accountUrl }, { children: msg("account") })) })), features.passwordUpdateSupported && (_jsx("li", Object.assign({ className: clsx(active === "password" && "active") }, { children: _jsx("a", Object.assign({ href: url.passwordUrl }, { children: msg("password") })) }))), _jsx("li", Object.assign({ className: clsx(active === "totp" && "active") }, { children: _jsx("a", Object.assign({ href: url.totpUrl }, { children: msg("authenticator") })) })), features.identityFederation && (_jsx("li", Object.assign({ className: clsx(active === "social" && "active") }, { children: _jsx("a", Object.assign({ href: url.socialUrl }, { children: msg("federatedIdentity") })) }))), _jsx("li", Object.assign({ className: clsx(active === "sessions" && "active") }, { children: _jsx("a", Object.assign({ href: url.sessionsUrl }, { children: msg("sessions") })) })), _jsx("li", Object.assign({ className: clsx(active === "applications" && "active") }, { children: _jsx("a", Object.assign({ href: url.applicationsUrl }, { children: msg("applications") })) })), features.log && (_jsx("li", Object.assign({ className: clsx(active === "log" && "active") }, { children: _jsx("a", Object.assign({ href: url.logUrl }, { children: msg("log") })) }))), realm.userManagedAccessAllowed && features.authorization && (_jsx("li", Object.assign({ className: clsx(active === "authorization" && "active") }, { children: _jsx("a", Object.assign({ href: url.resourceUrl }, { children: msg("myResources") })) })))] }) })), _jsxs("div", Object.assign({ className: "col-sm-9 content-area" }, { children: [message !== undefined && (_jsxs("div", Object.assign({ className: clsx("alert", `alert-${message.type}`) }, { children: [message.type === "success" && _jsx("span", { className: "pficon pficon-ok" }), message.type === "error" && _jsx("span", { className: "pficon pficon-error-circle-o" }), _jsx("span", { className: "kc-feedback-text", dangerouslySetInnerHTML: {
|
29
|
+
__html: kcSanitize(message.summary)
|
48
30
|
} })] }))), children] }))] }))] }));
|
49
31
|
}
|
50
32
|
//# sourceMappingURL=Template.js.map
|
package/account/Template.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/account/Template.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/account/Template.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import { assert } from "../tools/assert";
|
2
|
+
import { useInsertLinkTags } from "../tools/useInsertLinkTags";
|
3
|
+
assert();
|
4
|
+
assert();
|
5
|
+
export function useInitialize(params) {
|
6
|
+
const { kcContext, doUseDefaultCss } = params;
|
7
|
+
const { url } = kcContext;
|
8
|
+
const { areAllStyleSheetsLoaded } = useInsertLinkTags({
|
9
|
+
componentOrHookName: "Template",
|
10
|
+
hrefs: !doUseDefaultCss
|
11
|
+
? []
|
12
|
+
: [
|
13
|
+
`${url.resourcesCommonPath}/node_modules/patternfly/dist/css/patternfly.min.css`,
|
14
|
+
`${url.resourcesCommonPath}/node_modules/patternfly/dist/css/patternfly-additions.min.css`,
|
15
|
+
`${url.resourcesPath}/css/account.css`
|
16
|
+
]
|
17
|
+
});
|
18
|
+
return { isReadyToRender: areAllStyleSheetsLoaded };
|
19
|
+
}
|
20
|
+
//# sourceMappingURL=Template.useInitialize.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"Template.useInitialize.js","sourceRoot":"","sources":["../src/account/Template.useInitialize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAUxE,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,GAAG,SAAS,CAAC;IAE1B,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,sDAAsD;gBAChF,GAAG,GAAG,CAAC,mBAAmB,gEAAgE;gBAC1F,GAAG,GAAG,CAAC,aAAa,kBAAkB;aACzC;KACV,CAAC,CAAC;IAEH,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,CAAC;AACxD,CAAC"}
|
package/account/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/account/i18n/index.js
CHANGED
@@ -1,2 +1,2 @@
|
|
1
|
-
export
|
1
|
+
export * from "./withJsx";
|
2
2
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/account/i18n/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/account/i18n/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC"}
|
@@ -0,0 +1,3 @@
|
|
1
|
+
export declare const languageTags: readonly ["ar", "ca", "cs", "da", "de", "en", "es", "fi", "fr", "hu", "it", "ja", "lt", "lv", "nl", "no", "pl", "pt-BR", "ru", "sk", "sv", "tr", "zh-CN"];
|
2
|
+
export type LanguageTag = typeof languageTags[number];
|
3
|
+
export type MessageKey = keyof typeof import("./en")["default"];
|
@@ -0,0 +1,26 @@
|
|
1
|
+
export const languageTags = [
|
2
|
+
"ar",
|
3
|
+
"ca",
|
4
|
+
"cs",
|
5
|
+
"da",
|
6
|
+
"de",
|
7
|
+
"en",
|
8
|
+
"es",
|
9
|
+
"fi",
|
10
|
+
"fr",
|
11
|
+
"hu",
|
12
|
+
"it",
|
13
|
+
"ja",
|
14
|
+
"lt",
|
15
|
+
"lv",
|
16
|
+
"nl",
|
17
|
+
"no",
|
18
|
+
"pl",
|
19
|
+
"pt-BR",
|
20
|
+
"ru",
|
21
|
+
"sk",
|
22
|
+
"sv",
|
23
|
+
"tr",
|
24
|
+
"zh-CN"
|
25
|
+
];
|
26
|
+
//# sourceMappingURL=types.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/account/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,OAAO;IACP,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,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/account/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/account/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>;
|