keycloakify 6.11.9 → 6.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/README.md +10 -7
  2. package/bin/create-keycloak-email-directory.js +1 -1
  3. package/bin/download-builtin-keycloak-theme.js +1 -1
  4. package/bin/keycloakify/BuildOptions.d.ts +2 -2
  5. package/bin/keycloakify/BuildOptions.js.map +1 -1
  6. package/bin/keycloakify/generateFtl/generateFtl.d.ts +2 -2
  7. package/bin/keycloakify/generateJavaStackFiles.d.ts +1 -1
  8. package/bin/keycloakify/generateKeycloakThemeResources.d.ts +1 -1
  9. package/bin/keycloakify/generateKeycloakThemeResources.js +1 -1
  10. package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +1 -1
  11. package/bin/keycloakify/keycloakify.js +1 -1
  12. package/bin/keycloakify/replacers/replaceImportsFromStaticInJsCode.d.ts +1 -1
  13. package/bin/keycloakify/replacers/replaceImportsInCssCode.d.ts +1 -1
  14. package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.d.ts +1 -1
  15. package/bin/promptKeycloakVersion.js +1 -1
  16. package/bin/tools/NpmModuleVersion.d.ts +1 -1
  17. package/bin/tools/cliOptions.d.ts +1 -1
  18. package/bin/tools/deflate.js +1 -1
  19. package/bin/tools/downloadAndUnzip.js +51 -44
  20. package/bin/tools/downloadAndUnzip.js.map +1 -1
  21. package/bin/tools/grant-exec-perms.js +3 -2
  22. package/bin/tools/grant-exec-perms.js.map +1 -1
  23. package/bin/tools/jar.d.ts +1 -1
  24. package/bin/tools/jar.js +1 -1
  25. package/bin/tools/logger.d.ts +2 -2
  26. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js +34 -27
  27. package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js.map +1 -1
  28. package/bin/tools/octokit-addons/listTags.js +1 -1
  29. package/bin/tools/transformCodebase.d.ts +1 -1
  30. package/bin/tools/walk.js +1 -1
  31. package/bin/tools/zip.d.ts +2 -2
  32. package/bin/tools/zip.js +1 -1
  33. package/bin/tsconfig.tsbuildinfo +1 -1
  34. package/lib/KcApp.d.ts +6 -0
  35. package/lib/{components/KcApp.js → KcApp.js} +25 -26
  36. package/lib/KcApp.js.map +1 -0
  37. package/lib/{components/KcProps.d.ts → KcProps.d.ts} +30 -6
  38. package/lib/{components/KcProps.js → KcProps.js} +1 -1
  39. package/lib/KcProps.js.map +1 -0
  40. package/lib/Template.d.ts +18 -0
  41. package/lib/{components/Template.js → Template.js} +67 -55
  42. package/lib/Template.js.map +1 -0
  43. package/lib/getKcContext/KcContextBase.d.ts +6 -6
  44. package/lib/getKcContext/getKcContextFromWindow.d.ts +1 -1
  45. package/lib/getKcContext/{kcContextMocks/kcContextMocks.d.ts → kcContextMocks.d.ts} +1 -1
  46. package/lib/getKcContext/{kcContextMocks/kcContextMocks.js → kcContextMocks.js} +8 -5
  47. package/lib/getKcContext/kcContextMocks.js.map +1 -0
  48. package/lib/i18n/i18n.d.ts +100 -0
  49. package/lib/i18n/i18n.js +160 -0
  50. package/lib/i18n/i18n.js.map +1 -0
  51. package/lib/i18n/index.d.ts +1 -99
  52. package/lib/i18n/index.js +1 -159
  53. package/lib/i18n/index.js.map +1 -1
  54. package/lib/index.d.ts +3 -3
  55. package/lib/index.js +3 -3
  56. package/lib/index.js.map +1 -1
  57. package/lib/pages/Error.d.ts +5 -0
  58. package/lib/{components → pages}/Error.js +4 -6
  59. package/lib/pages/Error.js.map +1 -0
  60. package/lib/pages/IdpReviewUserProfile.d.ts +5 -0
  61. package/lib/{components → pages}/IdpReviewUserProfile.js +4 -6
  62. package/lib/pages/IdpReviewUserProfile.js.map +1 -0
  63. package/lib/pages/Info.d.ts +5 -0
  64. package/lib/{components → pages}/Info.js +4 -6
  65. package/lib/pages/Info.js.map +1 -0
  66. package/lib/pages/Login.d.ts +5 -0
  67. package/lib/{components → pages}/Login.js +5 -7
  68. package/lib/pages/Login.js.map +1 -0
  69. package/lib/pages/LoginConfigTotp.d.ts +5 -0
  70. package/lib/{components → pages}/LoginConfigTotp.js +4 -6
  71. package/lib/pages/LoginConfigTotp.js.map +1 -0
  72. package/lib/pages/LoginIdpLinkConfirm.d.ts +5 -0
  73. package/lib/{components → pages}/LoginIdpLinkConfirm.js +4 -6
  74. package/lib/pages/LoginIdpLinkConfirm.js.map +1 -0
  75. package/lib/pages/LoginIdpLinkEmail.d.ts +5 -0
  76. package/lib/{components → pages}/LoginIdpLinkEmail.js +4 -6
  77. package/lib/pages/LoginIdpLinkEmail.js.map +1 -0
  78. package/lib/pages/LoginOtp.d.ts +5 -0
  79. package/lib/{components → pages}/LoginOtp.js +4 -6
  80. package/lib/pages/LoginOtp.js.map +1 -0
  81. package/lib/pages/LoginPageExpired.d.ts +5 -0
  82. package/lib/{components → pages}/LoginPageExpired.js +4 -6
  83. package/lib/pages/LoginPageExpired.js.map +1 -0
  84. package/lib/pages/LoginPassword.d.ts +5 -0
  85. package/lib/{components → pages}/LoginPassword.js +5 -7
  86. package/lib/pages/LoginPassword.js.map +1 -0
  87. package/lib/pages/LoginResetPassword.d.ts +5 -0
  88. package/lib/{components → pages}/LoginResetPassword.js +4 -6
  89. package/lib/pages/LoginResetPassword.js.map +1 -0
  90. package/lib/pages/LoginUpdatePassword.d.ts +5 -0
  91. package/lib/{components → pages}/LoginUpdatePassword.js +4 -6
  92. package/lib/pages/LoginUpdatePassword.js.map +1 -0
  93. package/lib/pages/LoginUpdateProfile.d.ts +5 -0
  94. package/lib/{components → pages}/LoginUpdateProfile.js +4 -6
  95. package/lib/pages/LoginUpdateProfile.js.map +1 -0
  96. package/lib/pages/LoginUsername.d.ts +5 -0
  97. package/lib/{components → pages}/LoginUsername.js +5 -7
  98. package/lib/pages/LoginUsername.js.map +1 -0
  99. package/lib/pages/LoginVerifyEmail.d.ts +5 -0
  100. package/lib/{components → pages}/LoginVerifyEmail.js +4 -6
  101. package/lib/pages/LoginVerifyEmail.js.map +1 -0
  102. package/lib/pages/LogoutConfirm.d.ts +5 -0
  103. package/lib/{components → pages}/LogoutConfirm.js +4 -6
  104. package/lib/pages/LogoutConfirm.js.map +1 -0
  105. package/lib/pages/Register.d.ts +5 -0
  106. package/lib/{components → pages}/Register.js +4 -6
  107. package/lib/pages/Register.js.map +1 -0
  108. package/lib/pages/RegisterUserProfile.d.ts +5 -0
  109. package/lib/{components → pages}/RegisterUserProfile.js +4 -6
  110. package/lib/pages/RegisterUserProfile.js.map +1 -0
  111. package/lib/pages/Terms.d.ts +19 -0
  112. package/lib/{components → pages}/Terms.js +20 -22
  113. package/lib/pages/Terms.js.map +1 -0
  114. package/lib/pages/UpdateUserProfile.d.ts +5 -0
  115. package/lib/{components → pages}/UpdateUserProfile.js +4 -6
  116. package/lib/pages/UpdateUserProfile.js.map +1 -0
  117. package/lib/pages/WebauthnAuthenticate.d.ts +5 -0
  118. package/lib/{components → pages}/WebauthnAuthenticate.js +5 -7
  119. package/lib/pages/WebauthnAuthenticate.js.map +1 -0
  120. package/lib/{components → pages}/shared/UserProfileCommons.d.ts +6 -6
  121. package/lib/{components → pages}/shared/UserProfileCommons.js +4 -4
  122. package/lib/pages/shared/UserProfileCommons.js.map +1 -0
  123. package/lib/tools/AndByDiscriminatingKey.d.ts +1 -1
  124. package/lib/tools/DeepPartial.d.ts +1 -1
  125. package/lib/tools/ReactComponent.d.ts +1 -1
  126. package/lib/tools/SetOptional.d.ts +1 -0
  127. package/lib/tools/SetOptional.js +2 -0
  128. package/lib/tools/SetOptional.js.map +1 -0
  129. package/lib/tools/clsx.d.ts +2 -3
  130. package/lib/tools/clsx.js +39 -3
  131. package/lib/tools/clsx.js.map +1 -1
  132. package/lib/tools/deepAssign.js +1 -1
  133. package/lib/tools/deepAssign.js.map +1 -1
  134. package/lib/tools/memoize.d.ts +7 -0
  135. package/lib/tools/memoize.js +38 -0
  136. package/lib/tools/memoize.js.map +1 -0
  137. package/lib/tools/useCallbackFactory.d.ts +15 -0
  138. package/lib/tools/useCallbackFactory.js +28 -0
  139. package/lib/tools/useCallbackFactory.js.map +1 -0
  140. package/lib/tools/useConst.d.ts +5 -0
  141. package/lib/tools/useConst.js +10 -0
  142. package/lib/tools/useConst.js.map +1 -0
  143. package/lib/tools/useConstCallback.d.ts +2 -0
  144. package/lib/tools/useConstCallback.js +8 -0
  145. package/lib/tools/useConstCallback.js.map +1 -0
  146. package/lib/tools/useCssAndCx.d.ts +1 -1
  147. package/lib/tsconfig.tsbuildinfo +1 -1
  148. package/lib/useFormValidationSlice.d.ts +4 -4
  149. package/lib/useFormValidationSlice.js +1 -1
  150. package/lib/useFormValidationSlice.js.map +1 -1
  151. package/package.json +133 -124
  152. package/src/bin/keycloakify/BuildOptions.ts +2 -2
  153. package/src/bin/keycloakify/generateFtl/generateFtl.ts +1 -1
  154. package/src/lib/{components/KcApp.tsx → KcApp.tsx} +29 -38
  155. package/src/lib/{components/KcProps.ts → KcProps.ts} +27 -1
  156. package/src/lib/{components/Template.tsx → Template.tsx} +111 -95
  157. package/src/lib/getKcContext/KcContextBase.ts +1 -1
  158. package/src/lib/getKcContext/{kcContextMocks/kcContextMocks.ts → kcContextMocks.ts} +9 -6
  159. package/src/lib/i18n/i18n.tsx +292 -0
  160. package/src/lib/i18n/index.tsx +1 -290
  161. package/src/lib/index.ts +3 -3
  162. package/src/lib/{components → pages}/Error.tsx +7 -18
  163. package/src/lib/{components → pages}/IdpReviewUserProfile.tsx +7 -18
  164. package/src/lib/{components → pages}/Info.tsx +7 -18
  165. package/src/lib/{components → pages}/Login.tsx +8 -20
  166. package/src/lib/{components → pages}/LoginConfigTotp.tsx +7 -18
  167. package/src/lib/{components → pages}/LoginIdpLinkConfirm.tsx +7 -18
  168. package/src/lib/{components → pages}/LoginIdpLinkEmail.tsx +7 -18
  169. package/src/lib/{components → pages}/LoginOtp.tsx +7 -18
  170. package/src/lib/{components → pages}/LoginPageExpired.tsx +7 -18
  171. package/src/lib/{components → pages}/LoginPassword.tsx +8 -19
  172. package/src/lib/{components → pages}/LoginResetPassword.tsx +7 -18
  173. package/src/lib/{components → pages}/LoginUpdatePassword.tsx +7 -18
  174. package/src/lib/{components → pages}/LoginUpdateProfile.tsx +7 -18
  175. package/src/lib/{components → pages}/LoginUsername.tsx +8 -19
  176. package/src/lib/{components → pages}/LoginVerifyEmail.tsx +7 -18
  177. package/src/lib/{components → pages}/LogoutConfirm.tsx +7 -18
  178. package/src/lib/{components → pages}/Register.tsx +7 -18
  179. package/src/lib/{components → pages}/RegisterUserProfile.tsx +7 -18
  180. package/src/lib/{components → pages}/Terms.tsx +50 -61
  181. package/src/lib/{components → pages}/UpdateUserProfile.tsx +7 -18
  182. package/src/lib/{components → pages}/WebauthnAuthenticate.tsx +9 -19
  183. package/src/lib/pages/shared/UserProfileCommons.tsx +178 -0
  184. package/src/lib/tools/SetOptional.ts +1 -0
  185. package/src/lib/tools/clsx.ts +42 -5
  186. package/src/lib/tools/deepAssign.ts +1 -1
  187. package/src/lib/tools/memoize.ts +55 -0
  188. package/src/lib/tools/useCallbackFactory.ts +45 -0
  189. package/src/lib/tools/useConst.ts +10 -0
  190. package/src/lib/tools/useConstCallback.ts +15 -0
  191. package/src/lib/useFormValidationSlice.tsx +4 -4
  192. package/bin/generate-i18n-messages.d.ts +0 -1
  193. package/bin/generate-i18n-messages.js +0 -126
  194. package/bin/generate-i18n-messages.js.map +0 -1
  195. package/bin/link_in_test_app.d.ts +0 -1
  196. package/bin/link_in_test_app.js +0 -141
  197. package/bin/link_in_test_app.js.map +0 -1
  198. package/lib/components/Error.d.ts +0 -13
  199. package/lib/components/Error.js.map +0 -1
  200. package/lib/components/IdpReviewUserProfile.d.ts +0 -13
  201. package/lib/components/IdpReviewUserProfile.js.map +0 -1
  202. package/lib/components/Info.d.ts +0 -13
  203. package/lib/components/Info.js.map +0 -1
  204. package/lib/components/KcApp.d.ts +0 -13
  205. package/lib/components/KcApp.js.map +0 -1
  206. package/lib/components/KcProps.js.map +0 -1
  207. package/lib/components/Login.d.ts +0 -13
  208. package/lib/components/Login.js.map +0 -1
  209. package/lib/components/LoginConfigTotp.d.ts +0 -13
  210. package/lib/components/LoginConfigTotp.js.map +0 -1
  211. package/lib/components/LoginIdpLinkConfirm.d.ts +0 -13
  212. package/lib/components/LoginIdpLinkConfirm.js.map +0 -1
  213. package/lib/components/LoginIdpLinkEmail.d.ts +0 -13
  214. package/lib/components/LoginIdpLinkEmail.js.map +0 -1
  215. package/lib/components/LoginOtp.d.ts +0 -13
  216. package/lib/components/LoginOtp.js.map +0 -1
  217. package/lib/components/LoginPageExpired.d.ts +0 -13
  218. package/lib/components/LoginPageExpired.js.map +0 -1
  219. package/lib/components/LoginPassword.d.ts +0 -13
  220. package/lib/components/LoginPassword.js.map +0 -1
  221. package/lib/components/LoginResetPassword.d.ts +0 -13
  222. package/lib/components/LoginResetPassword.js.map +0 -1
  223. package/lib/components/LoginUpdatePassword.d.ts +0 -13
  224. package/lib/components/LoginUpdatePassword.js.map +0 -1
  225. package/lib/components/LoginUpdateProfile.d.ts +0 -13
  226. package/lib/components/LoginUpdateProfile.js.map +0 -1
  227. package/lib/components/LoginUsername.d.ts +0 -13
  228. package/lib/components/LoginUsername.js.map +0 -1
  229. package/lib/components/LoginVerifyEmail.d.ts +0 -13
  230. package/lib/components/LoginVerifyEmail.js.map +0 -1
  231. package/lib/components/LogoutConfirm.d.ts +0 -13
  232. package/lib/components/LogoutConfirm.js.map +0 -1
  233. package/lib/components/Register.d.ts +0 -13
  234. package/lib/components/Register.js.map +0 -1
  235. package/lib/components/RegisterUserProfile.d.ts +0 -13
  236. package/lib/components/RegisterUserProfile.js.map +0 -1
  237. package/lib/components/Template.d.ts +0 -25
  238. package/lib/components/Template.js.map +0 -1
  239. package/lib/components/Terms.d.ts +0 -27
  240. package/lib/components/Terms.js.map +0 -1
  241. package/lib/components/UpdateUserProfile.d.ts +0 -13
  242. package/lib/components/UpdateUserProfile.js.map +0 -1
  243. package/lib/components/WebauthnAuthenticate.d.ts +0 -13
  244. package/lib/components/WebauthnAuthenticate.js.map +0 -1
  245. package/lib/components/shared/UserProfileCommons.js.map +0 -1
  246. package/lib/getKcContext/kcContextMocks/index.d.ts +0 -1
  247. package/lib/getKcContext/kcContextMocks/index.js +0 -2
  248. package/lib/getKcContext/kcContextMocks/index.js.map +0 -1
  249. package/lib/getKcContext/kcContextMocks/kcContextMocks.js.map +0 -1
  250. package/src/bin/generate-i18n-messages.ts +0 -86
  251. package/src/bin/link_in_test_app.ts +0 -128
  252. package/src/lib/components/shared/UserProfileCommons.tsx +0 -173
  253. package/src/lib/getKcContext/kcContextMocks/index.ts +0 -1
@@ -1,56 +1,21 @@
1
- import React, { useReducer, useEffect, memo } from "react";
2
- import { assert } from "../tools/assert";
3
- import { useCallbackFactory } from "powerhooks/useCallbackFactory";
4
- import { headInsert } from "../tools/headInsert";
5
- import { pathJoin } from "../../bin/tools/pathJoin";
6
- import { useConstCallback } from "powerhooks/useConstCallback";
7
- import { clsx } from "../tools/clsx";
8
- const Template = memo((props) => {
9
- const { displayInfo = false, displayMessage = true, displayRequiredFields = false, displayWide = false, showAnotherWayIfPresent = true, headerNode, showUsernameNode = null, formNode, infoNode = null, kcContext, i18n, doFetchDefaultThemeResources } = props;
1
+ import React, { useReducer, useEffect } from "react";
2
+ import { assert } from "./tools/assert";
3
+ import { headInsert } from "./tools/headInsert";
4
+ import { pathJoin } from "../bin/tools/pathJoin";
5
+ import { clsx } from "./tools/clsx";
6
+ export default function Template(props) {
7
+ const { displayInfo = false, displayMessage = true, displayRequiredFields = false, displayWide = false, showAnotherWayIfPresent = true, headerNode, showUsernameNode = null, formNode, infoNode = null, kcContext, i18n, doFetchDefaultThemeResources, stylesCommon, styles, scripts, kcHtmlClass } = props;
10
8
  const { msg, changeLocale, labelBySupportedLanguageTag, currentLanguageTag } = i18n;
11
- const onChangeLanguageClickFactory = useCallbackFactory(([kcLanguageTag]) => changeLocale(kcLanguageTag));
12
- const onTryAnotherWayClick = useConstCallback(() => (document.forms["kc-select-try-another-way-form"].submit(), false));
13
9
  const { realm, locale, auth, url, message, isAppInitiatedAction } = kcContext;
14
- const [isExtraCssLoaded, setExtraCssLoaded] = useReducer(() => true, false);
15
- useEffect(() => {
16
- if (!doFetchDefaultThemeResources) {
17
- setExtraCssLoaded();
18
- return;
19
- }
20
- let isUnmounted = false;
21
- const cleanups = [];
22
- const toArr = (x) => (typeof x === "string" ? x.split(" ") : x !== null && x !== void 0 ? x : []);
23
- Promise.all([
24
- ...toArr(props.stylesCommon).map(relativePath => pathJoin(url.resourcesCommonPath, relativePath)),
25
- ...toArr(props.styles).map(relativePath => pathJoin(url.resourcesPath, relativePath))
26
- ]
27
- .reverse()
28
- .map(href => headInsert({
29
- "type": "css",
30
- href,
31
- "position": "prepend"
32
- }))).then(() => {
33
- if (isUnmounted) {
34
- return;
35
- }
36
- setExtraCssLoaded();
37
- });
38
- toArr(props.scripts).forEach(relativePath => headInsert({
39
- "type": "javascript",
40
- "src": pathJoin(url.resourcesPath, relativePath)
41
- }));
42
- if (props.kcHtmlClass !== undefined) {
43
- const htmlClassList = document.getElementsByTagName("html")[0].classList;
44
- const tokens = clsx(props.kcHtmlClass).split(" ");
45
- htmlClassList.add(...tokens);
46
- cleanups.push(() => htmlClassList.remove(...tokens));
47
- }
48
- return () => {
49
- isUnmounted = true;
50
- cleanups.forEach(f => f());
51
- };
52
- }, [props.kcHtmlClass]);
53
- if (!isExtraCssLoaded) {
10
+ const { isReady } = usePrepareTemplate({
11
+ doFetchDefaultThemeResources,
12
+ stylesCommon,
13
+ styles,
14
+ scripts,
15
+ url,
16
+ kcHtmlClass
17
+ });
18
+ if (!isReady) {
54
19
  return null;
55
20
  }
56
21
  return (React.createElement("div", { className: clsx(props.kcLoginClass) },
@@ -63,7 +28,7 @@ const Template = memo((props) => {
63
28
  React.createElement("div", { className: "kc-dropdown", id: "kc-locale-dropdown" },
64
29
  React.createElement("a", { href: "#", id: "kc-current-locale-link" }, labelBySupportedLanguageTag[currentLanguageTag]),
65
30
  React.createElement("ul", null, locale.supported.map(({ languageTag }) => (React.createElement("li", { key: languageTag, className: "kc-dropdown-item" },
66
- React.createElement("a", { href: "#", onClick: onChangeLanguageClickFactory(languageTag) }, labelBySupportedLanguageTag[languageTag]))))))))),
31
+ React.createElement("a", { href: "#", onClick: () => changeLocale(languageTag) }, labelBySupportedLanguageTag[languageTag]))))))))),
67
32
  !(auth !== undefined && auth.showUsername && !auth.showResetCredentials) ? (displayRequiredFields ? (React.createElement("div", { className: clsx(props.kcContentWrapperClass) },
68
33
  React.createElement("div", { className: clsx(props.kcLabelWrapperClass, "subtitle") },
69
34
  React.createElement("span", { className: "subtitle" },
@@ -108,9 +73,56 @@ const Template = memo((props) => {
108
73
  React.createElement("div", { className: clsx(displayWide && [props.kcFormSocialAccountContentClass, props.kcFormSocialAccountClass]) },
109
74
  React.createElement("div", { className: clsx(props.kcFormGroupClass) },
110
75
  React.createElement("input", { type: "hidden", name: "tryAnotherWay", value: "on" }),
111
- React.createElement("a", { href: "#", id: "try-another-way", onClick: onTryAnotherWayClick }, msg("doTryAnotherWay")))))),
76
+ React.createElement("a", { href: "#", id: "try-another-way", onClick: () => {
77
+ document.forms["kc-select-try-another-way-form"].submit();
78
+ return false;
79
+ } }, msg("doTryAnotherWay")))))),
112
80
  displayInfo && (React.createElement("div", { id: "kc-info", className: clsx(props.kcSignUpClass) },
113
81
  React.createElement("div", { id: "kc-info-wrapper", className: clsx(props.kcInfoAreaWrapperClass) }, infoNode))))))));
114
- });
115
- export default Template;
82
+ }
83
+ export function usePrepareTemplate(params) {
84
+ const { doFetchDefaultThemeResources, stylesCommon, styles, url, scripts, kcHtmlClass } = params;
85
+ const [isReady, setReady] = useReducer(() => true, !doFetchDefaultThemeResources);
86
+ useEffect(() => {
87
+ if (!doFetchDefaultThemeResources) {
88
+ return;
89
+ }
90
+ let isUnmounted = false;
91
+ const toArr = (x) => (typeof x === "string" ? x.split(" ") : x !== null && x !== void 0 ? x : []);
92
+ Promise.all([
93
+ ...toArr(stylesCommon).map(relativePath => pathJoin(url.resourcesCommonPath, relativePath)),
94
+ ...toArr(styles).map(relativePath => pathJoin(url.resourcesPath, relativePath))
95
+ ]
96
+ .reverse()
97
+ .map(href => headInsert({
98
+ "type": "css",
99
+ href,
100
+ "position": "prepend"
101
+ }))).then(() => {
102
+ if (isUnmounted) {
103
+ return;
104
+ }
105
+ setReady();
106
+ });
107
+ toArr(scripts).forEach(relativePath => headInsert({
108
+ "type": "javascript",
109
+ "src": pathJoin(url.resourcesPath, relativePath)
110
+ }));
111
+ return () => {
112
+ isUnmounted = true;
113
+ };
114
+ }, [kcHtmlClass]);
115
+ useEffect(() => {
116
+ if (kcHtmlClass === undefined) {
117
+ return;
118
+ }
119
+ const htmlClassList = document.getElementsByTagName("html")[0].classList;
120
+ const tokens = clsx(kcHtmlClass).split(" ");
121
+ htmlClassList.add(...tokens);
122
+ return () => {
123
+ htmlClassList.remove(...tokens);
124
+ };
125
+ }, [kcHtmlClass]);
126
+ return { isReady };
127
+ }
116
128
  //# sourceMappingURL=Template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Template.js","sourceRoot":"","sources":["../src/lib/Template.tsx"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  import type { MessageKeyBase } from "../i18n";
2
- import type { KcTemplateClassKey } from "../components/KcProps";
3
- declare type ExtractAfterStartingWith<Prefix extends string, StrEnum> = StrEnum extends `${Prefix}${infer U}` ? U : never;
2
+ import type { KcTemplateClassKey } from "../KcProps";
3
+ type ExtractAfterStartingWith<Prefix extends string, StrEnum> = StrEnum extends `${Prefix}${infer U}` ? U : never;
4
4
  /** Take theses type definition with a grain of salt.
5
5
  * Some values might be undefined on some pages.
6
6
  * (ex: url.loginAction is undefined on error.ftl)
7
7
  */
8
- export declare type KcContextBase = KcContextBase.Login | KcContextBase.Register | KcContextBase.RegisterUserProfile | KcContextBase.Info | KcContextBase.Error | KcContextBase.LoginResetPassword | KcContextBase.LoginVerifyEmail | KcContextBase.Terms | KcContextBase.LoginOtp | KcContextBase.LoginUsername | KcContextBase.WebauthnAuthenticate | KcContextBase.LoginPassword | KcContextBase.LoginUpdatePassword | KcContextBase.LoginUpdateProfile | KcContextBase.LoginIdpLinkConfirm | KcContextBase.LoginIdpLinkEmail | KcContextBase.LoginPageExpired | KcContextBase.LoginConfigTotp | KcContextBase.LogoutConfirm | KcContextBase.UpdateUserProfile | KcContextBase.IdpReviewUserProfile;
9
- export declare type WebauthnAuthenticator = {
8
+ export type KcContextBase = KcContextBase.Login | KcContextBase.Register | KcContextBase.RegisterUserProfile | KcContextBase.Info | KcContextBase.Error | KcContextBase.LoginResetPassword | KcContextBase.LoginVerifyEmail | KcContextBase.Terms | KcContextBase.LoginOtp | KcContextBase.LoginUsername | KcContextBase.WebauthnAuthenticate | KcContextBase.LoginPassword | KcContextBase.LoginUpdatePassword | KcContextBase.LoginUpdateProfile | KcContextBase.LoginIdpLinkConfirm | KcContextBase.LoginIdpLinkEmail | KcContextBase.LoginPageExpired | KcContextBase.LoginConfigTotp | KcContextBase.LogoutConfirm | KcContextBase.UpdateUserProfile | KcContextBase.IdpReviewUserProfile;
9
+ export type WebauthnAuthenticator = {
10
10
  credentialId: string;
11
11
  transports: {
12
12
  iconClass: KcTemplateClassKey;
@@ -326,7 +326,7 @@ export declare namespace KcContextBase {
326
326
  };
327
327
  };
328
328
  }
329
- export declare type Attribute = {
329
+ export type Attribute = {
330
330
  name: string;
331
331
  displayName?: string;
332
332
  required: boolean;
@@ -340,7 +340,7 @@ export declare type Attribute = {
340
340
  groupAnnotations: Record<string, string>;
341
341
  autocomplete?: "on" | "off" | "name" | "honorific-prefix" | "given-name" | "additional-name" | "family-name" | "honorific-suffix" | "nickname" | "email" | "username" | "new-password" | "current-password" | "one-time-code" | "organization-title" | "organization" | "street-address" | "address-line1" | "address-line2" | "address-line3" | "address-level4" | "address-level3" | "address-level2" | "address-level1" | "country" | "country-name" | "postal-code" | "cc-name" | "cc-given-name" | "cc-additional-name" | "cc-family-name" | "cc-number" | "cc-exp" | "cc-exp-month" | "cc-exp-year" | "cc-csc" | "cc-type" | "transaction-currency" | "transaction-amount" | "language" | "bday" | "bday-day" | "bday-month" | "bday-year" | "sex" | "tel" | "tel-country-code" | "tel-national" | "tel-area-code" | "tel-local" | "tel-extension" | "impp" | "url" | "photo";
342
342
  };
343
- export declare type Validators = Partial<{
343
+ export type Validators = Partial<{
344
344
  length: Validators.DoIgnoreEmpty & Validators.Range;
345
345
  double: Validators.DoIgnoreEmpty & Validators.Range;
346
346
  integer: Validators.DoIgnoreEmpty & Validators.Range;
@@ -1,6 +1,6 @@
1
1
  import type { KcContextBase } from "./KcContextBase";
2
2
  import type { AndByDiscriminatingKey } from "../tools/AndByDiscriminatingKey";
3
- export declare type ExtendsKcContextBase<KcContextExtended extends {
3
+ export type ExtendsKcContextBase<KcContextExtended extends {
4
4
  pageId: string;
5
5
  }> = [KcContextExtended] extends [never] ? KcContextBase : AndByDiscriminatingKey<"pageId", KcContextExtended & KcContextBase.Common, KcContextBase>;
6
6
  export declare function getKcContextFromWindow<KcContextExtended extends {
@@ -1,4 +1,4 @@
1
1
  import "minimal-polyfills/Object.fromEntries";
2
- import type { KcContextBase } from "../KcContextBase";
2
+ import type { KcContextBase } from "./KcContextBase";
3
3
  export declare const kcContextCommonMock: KcContextBase.Common;
4
4
  export declare const kcContextMocks: KcContextBase[];
@@ -1,9 +1,9 @@
1
1
  var _a;
2
2
  import "minimal-polyfills/Object.fromEntries";
3
3
  //NOTE: Aside because we want to be able to import them from node
4
- import { mockTestingResourcesCommonPath, mockTestingResourcesPath } from "../../../bin/mockTestingResourcesPath";
4
+ import { mockTestingResourcesCommonPath, mockTestingResourcesPath } from "../../bin/mockTestingResourcesPath";
5
5
  import { id } from "tsafe/id";
6
- import { pathJoin } from "../../../bin/tools/pathJoin";
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": (...[, x]) => x,
117
- "existsError": () => true,
116
+ "printIfExists": () => {
117
+ console.log("coucou");
118
+ return undefined;
119
+ },
120
+ "existsError": () => false,
118
121
  "get": key => `Fake error for ${key}`,
119
- "exists": () => true
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 {};
@@ -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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"}
@@ -1,99 +1 @@
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 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";