keycloakify 6.11.9 → 6.12.0
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 +5 -0
- package/lib/{components/Template.js → Template.js} +12 -14
- 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} +23 -38
- 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,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";
|
package/lib/i18n/index.js
CHANGED
@@ -1,160 +1,2 @@
|
|
1
|
-
|
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
|
-
};
|
1
|
+
export * from "./i18n";
|
160
2
|
//# sourceMappingURL=index.js.map
|
package/lib/i18n/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/i18n/index.tsx"],"names":[],"mappings":"AAAA,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lib/i18n/index.tsx"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC"}
|
package/lib/index.d.ts
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
export * from "./getKcContext";
|
2
2
|
export * from "./i18n";
|
3
|
-
export { useDownloadTerms } from "./
|
4
|
-
export * from "./
|
3
|
+
export { useDownloadTerms } from "./pages/Terms";
|
4
|
+
export * from "./KcProps";
|
5
5
|
export * from "./keycloakJsAdapter";
|
6
6
|
export * from "./useFormValidationSlice";
|
7
|
-
import KcApp from "./
|
7
|
+
import KcApp from "./KcApp";
|
8
8
|
export default KcApp;
|
package/lib/index.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
export * from "./getKcContext";
|
2
2
|
export * from "./i18n";
|
3
|
-
export { useDownloadTerms } from "./
|
4
|
-
export * from "./
|
3
|
+
export { useDownloadTerms } from "./pages/Terms";
|
4
|
+
export * from "./KcProps";
|
5
5
|
export * from "./keycloakJsAdapter";
|
6
6
|
export * from "./useFormValidationSlice";
|
7
|
-
import KcApp from "./
|
7
|
+
import KcApp from "./KcApp";
|
8
8
|
export default KcApp;
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAE/B,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAE/B,cAAc,QAAQ,CAAC;AAEvB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AAEzC,OAAO,KAAK,MAAM,SAAS,CAAC;AAE5B,eAAe,KAAK,CAAC"}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/// <reference types="react" />
|
2
|
+
import type { KcContextBase } from "../getKcContext";
|
3
|
+
import type { PageProps } from "../KcProps";
|
4
|
+
import type { I18nBase } from "../i18n";
|
5
|
+
export default function Error(props: PageProps<KcContextBase.Error, I18nBase>): JSX.Element;
|