keycloakify 10.0.0-rc.10 → 10.0.0-rc.101

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 (822) hide show
  1. package/PUBLIC_URL.d.ts +1 -1
  2. package/PUBLIC_URL.js +3 -3
  3. package/PUBLIC_URL.js.map +1 -1
  4. package/README.md +8 -6
  5. package/account/DefaultPage.d.ts +5 -0
  6. package/account/{Fallback.js → DefaultPage.js} +3 -3
  7. package/account/DefaultPage.js.map +1 -0
  8. package/account/{kcContext → KcContext}/KcContext.d.ts +13 -0
  9. package/account/KcContext/KcContext.js.map +1 -0
  10. package/account/KcContext/getKcContextMock.d.ts +24 -0
  11. package/account/KcContext/getKcContextMock.js +28 -0
  12. package/account/KcContext/getKcContextMock.js.map +1 -0
  13. package/account/KcContext/index.d.ts +2 -0
  14. package/account/KcContext/index.js +2 -0
  15. package/account/KcContext/index.js.map +1 -0
  16. package/account/{kcContext → KcContext}/kcContextMocks.d.ts +1 -1
  17. package/account/KcContext/kcContextMocks.js +143 -0
  18. package/account/KcContext/kcContextMocks.js.map +1 -0
  19. package/account/Template.d.ts +2 -2
  20. package/account/Template.js +14 -12
  21. package/account/Template.js.map +1 -1
  22. package/account/TemplateProps.d.ts +3 -5
  23. package/account/i18n/baseMessages/ar.d.ts +2 -0
  24. package/account/i18n/baseMessages/ar.js +3 -1
  25. package/account/i18n/baseMessages/ar.js.map +1 -1
  26. package/account/i18n/baseMessages/ca.d.ts +2 -0
  27. package/account/i18n/baseMessages/ca.js +3 -1
  28. package/account/i18n/baseMessages/ca.js.map +1 -1
  29. package/account/i18n/baseMessages/cs.d.ts +2 -0
  30. package/account/i18n/baseMessages/cs.js +3 -1
  31. package/account/i18n/baseMessages/cs.js.map +1 -1
  32. package/account/i18n/baseMessages/da.d.ts +2 -0
  33. package/account/i18n/baseMessages/da.js +3 -1
  34. package/account/i18n/baseMessages/da.js.map +1 -1
  35. package/account/i18n/baseMessages/de.d.ts +2 -0
  36. package/account/i18n/baseMessages/de.js +3 -1
  37. package/account/i18n/baseMessages/de.js.map +1 -1
  38. package/account/i18n/baseMessages/el.d.ts +2 -0
  39. package/account/i18n/baseMessages/el.js +3 -1
  40. package/account/i18n/baseMessages/el.js.map +1 -1
  41. package/account/i18n/baseMessages/en.d.ts +2 -0
  42. package/account/i18n/baseMessages/en.js +3 -1
  43. package/account/i18n/baseMessages/en.js.map +1 -1
  44. package/account/i18n/baseMessages/es.d.ts +2 -0
  45. package/account/i18n/baseMessages/es.js +3 -1
  46. package/account/i18n/baseMessages/es.js.map +1 -1
  47. package/account/i18n/baseMessages/fa.d.ts +2 -0
  48. package/account/i18n/baseMessages/fa.js +3 -1
  49. package/account/i18n/baseMessages/fa.js.map +1 -1
  50. package/account/i18n/baseMessages/fi.d.ts +2 -0
  51. package/account/i18n/baseMessages/fi.js +3 -1
  52. package/account/i18n/baseMessages/fi.js.map +1 -1
  53. package/account/i18n/baseMessages/fr.d.ts +2 -0
  54. package/account/i18n/baseMessages/fr.js +3 -1
  55. package/account/i18n/baseMessages/fr.js.map +1 -1
  56. package/account/i18n/baseMessages/hu.d.ts +2 -0
  57. package/account/i18n/baseMessages/hu.js +3 -1
  58. package/account/i18n/baseMessages/hu.js.map +1 -1
  59. package/account/i18n/baseMessages/index.d.ts +18 -0
  60. package/account/i18n/baseMessages/index.js.map +1 -1
  61. package/account/i18n/baseMessages/it.d.ts +2 -0
  62. package/account/i18n/baseMessages/it.js +3 -1
  63. package/account/i18n/baseMessages/it.js.map +1 -1
  64. package/account/i18n/baseMessages/ja.d.ts +2 -0
  65. package/account/i18n/baseMessages/ja.js +3 -1
  66. package/account/i18n/baseMessages/ja.js.map +1 -1
  67. package/account/i18n/baseMessages/lt.d.ts +2 -0
  68. package/account/i18n/baseMessages/lt.js +3 -1
  69. package/account/i18n/baseMessages/lt.js.map +1 -1
  70. package/account/i18n/baseMessages/lv.d.ts +2 -0
  71. package/account/i18n/baseMessages/lv.js +3 -1
  72. package/account/i18n/baseMessages/lv.js.map +1 -1
  73. package/account/i18n/baseMessages/nl.d.ts +2 -0
  74. package/account/i18n/baseMessages/nl.js +3 -1
  75. package/account/i18n/baseMessages/nl.js.map +1 -1
  76. package/account/i18n/baseMessages/no.d.ts +2 -0
  77. package/account/i18n/baseMessages/no.js +3 -1
  78. package/account/i18n/baseMessages/no.js.map +1 -1
  79. package/account/i18n/baseMessages/pl.d.ts +2 -0
  80. package/account/i18n/baseMessages/pl.js +3 -1
  81. package/account/i18n/baseMessages/pl.js.map +1 -1
  82. package/account/i18n/baseMessages/pt-BR.d.ts +2 -0
  83. package/account/i18n/baseMessages/pt-BR.js +3 -1
  84. package/account/i18n/baseMessages/pt-BR.js.map +1 -1
  85. package/account/i18n/baseMessages/ru.d.ts +2 -0
  86. package/account/i18n/baseMessages/ru.js +3 -1
  87. package/account/i18n/baseMessages/ru.js.map +1 -1
  88. package/account/i18n/baseMessages/sk.d.ts +2 -0
  89. package/account/i18n/baseMessages/sk.js +3 -1
  90. package/account/i18n/baseMessages/sk.js.map +1 -1
  91. package/account/i18n/baseMessages/sv.d.ts +2 -0
  92. package/account/i18n/baseMessages/sv.js +3 -1
  93. package/account/i18n/baseMessages/sv.js.map +1 -1
  94. package/account/i18n/baseMessages/th.d.ts +2 -0
  95. package/account/i18n/baseMessages/th.js +3 -1
  96. package/account/i18n/baseMessages/th.js.map +1 -1
  97. package/account/i18n/baseMessages/tr.d.ts +2 -0
  98. package/account/i18n/baseMessages/tr.js +3 -1
  99. package/account/i18n/baseMessages/tr.js.map +1 -1
  100. package/account/i18n/baseMessages/uk.d.ts +2 -0
  101. package/account/i18n/baseMessages/uk.js +3 -1
  102. package/account/i18n/baseMessages/uk.js.map +1 -1
  103. package/account/i18n/baseMessages/zh-CN.d.ts +2 -0
  104. package/account/i18n/baseMessages/zh-CN.js +3 -1
  105. package/account/i18n/baseMessages/zh-CN.js.map +1 -1
  106. package/account/i18n/i18n.d.ts +34 -36
  107. package/account/i18n/i18n.js +117 -98
  108. package/account/i18n/i18n.js.map +1 -1
  109. package/account/i18n/index.d.ts +4 -1
  110. package/account/i18n/index.js +1 -1
  111. package/account/i18n/index.js.map +1 -1
  112. package/account/i18n/useI18n.d.ts +13 -0
  113. package/account/i18n/useI18n.js +26 -0
  114. package/account/i18n/useI18n.js.map +1 -0
  115. package/account/index.d.ts +3 -7
  116. package/account/index.js +1 -5
  117. package/account/index.js.map +1 -1
  118. package/account/lib/kcClsx.d.ts +9 -0
  119. package/account/lib/kcClsx.js +19 -0
  120. package/account/lib/kcClsx.js.map +1 -0
  121. package/account/pages/Account.d.ts +1 -1
  122. package/account/pages/Account.js +7 -6
  123. package/account/pages/Account.js.map +1 -1
  124. package/account/pages/Applications.d.ts +1 -1
  125. package/account/pages/Applications.js +8 -9
  126. package/account/pages/Applications.js.map +1 -1
  127. package/account/pages/FederatedIdentity.d.ts +3 -3
  128. package/account/pages/FederatedIdentity.js +1 -1
  129. package/account/pages/FederatedIdentity.js.map +1 -1
  130. package/account/pages/Log.d.ts +1 -1
  131. package/account/pages/Log.js +3 -3
  132. package/account/pages/Log.js.map +1 -1
  133. package/account/pages/PageProps.d.ts +4 -6
  134. package/account/pages/Password.d.ts +1 -1
  135. package/account/pages/Password.js +16 -13
  136. package/account/pages/Password.js.map +1 -1
  137. package/account/pages/Sessions.d.ts +1 -1
  138. package/account/pages/Sessions.js +3 -4
  139. package/account/pages/Sessions.js.map +1 -1
  140. package/account/pages/Totp.d.ts +1 -1
  141. package/account/pages/Totp.js +9 -10
  142. package/account/pages/Totp.js.map +1 -1
  143. package/bin/180.index.js +4664 -0
  144. package/bin/193.index.js +160 -0
  145. package/bin/266.index.js +806 -0
  146. package/bin/304.index.js +1108 -0
  147. package/bin/31.index.js +804 -0
  148. package/bin/36.index.js +9980 -0
  149. package/bin/430.index.js +1349 -0
  150. package/bin/440.index.js +1466 -0
  151. package/bin/453.index.js +769 -0
  152. package/bin/490.index.js +75195 -0
  153. package/bin/525.index.js +41826 -0
  154. package/bin/526.index.js +996 -0
  155. package/bin/538.index.js +108 -0
  156. package/bin/720.index.js +243 -0
  157. package/bin/877.index.js +275 -0
  158. package/bin/893.index.js +713 -0
  159. package/bin/932.index.js +269 -0
  160. package/bin/966.index.js +4232 -0
  161. package/bin/97.index.js +677 -0
  162. package/bin/main.js +9456 -141122
  163. package/bin/shared/KeycloakVersionRange.d.ts +5 -0
  164. package/bin/shared/KeycloakVersionRange.js.map +1 -0
  165. package/bin/shared/buildContext.d.ts +74 -0
  166. package/bin/shared/buildContext.js.map +1 -0
  167. package/bin/shared/constants.d.ts +18 -0
  168. package/bin/shared/constants.js +59 -0
  169. package/bin/shared/constants.js.map +1 -0
  170. package/bin/shared/copyKeycloakResourcesToPublic.d.ts +8 -0
  171. package/bin/shared/copyKeycloakResourcesToPublic.js.map +1 -0
  172. package/bin/shared/downloadKeycloakDefaultTheme.d.ts +11 -0
  173. package/bin/shared/downloadKeycloakDefaultTheme.js.map +1 -0
  174. package/bin/shared/downloadKeycloakStaticResources.d.ts +9 -0
  175. package/bin/shared/downloadKeycloakStaticResources.js.map +1 -0
  176. package/bin/shared/generateKcGenTs.d.ts +12 -0
  177. package/bin/shared/generateKcGenTs.js.map +1 -0
  178. package/bin/shared/metaInfKeycloakThemes.d.ts +13 -0
  179. package/bin/shared/metaInfKeycloakThemes.js.map +1 -0
  180. package/bin/shared/promptKeycloakVersion.d.ts +7 -0
  181. package/bin/shared/promptKeycloakVersion.js.map +1 -0
  182. package/lib/BASE_URL.js.map +1 -1
  183. package/lib/getKcClsx.d.ts +11 -0
  184. package/lib/getKcClsx.js +55 -0
  185. package/lib/getKcClsx.js.map +1 -0
  186. package/login/{Fallback.d.ts → DefaultPage.d.ts} +7 -6
  187. package/login/{Fallback.js → DefaultPage.js} +2 -2
  188. package/login/DefaultPage.js.map +1 -0
  189. package/login/{kcContext → KcContext}/KcContext.d.ts +36 -17
  190. package/login/KcContext/KcContext.js.map +1 -0
  191. package/login/KcContext/getKcContextMock.d.ts +24 -0
  192. package/login/KcContext/getKcContextMock.js +28 -0
  193. package/login/KcContext/getKcContextMock.js.map +1 -0
  194. package/login/KcContext/index.d.ts +2 -0
  195. package/login/KcContext/index.js +2 -0
  196. package/login/KcContext/index.js.map +1 -0
  197. package/login/{kcContext → KcContext}/kcContextMocks.d.ts +1 -1
  198. package/login/KcContext/kcContextMocks.js +334 -0
  199. package/login/KcContext/kcContextMocks.js.map +1 -0
  200. package/login/Template.d.ts +2 -2
  201. package/login/Template.js +31 -25
  202. package/login/Template.js.map +1 -1
  203. package/login/TemplateProps.d.ts +3 -6
  204. package/login/UserProfileFormFields.d.ts +3 -20
  205. package/login/UserProfileFormFields.js +78 -122
  206. package/login/UserProfileFormFields.js.map +1 -1
  207. package/login/UserProfileFormFieldsProps.d.ts +24 -0
  208. package/login/UserProfileFormFieldsProps.js +2 -0
  209. package/login/UserProfileFormFieldsProps.js.map +1 -0
  210. package/login/i18n/baseMessages/ar.d.ts +9 -0
  211. package/login/i18n/baseMessages/ar.js +11 -2
  212. package/login/i18n/baseMessages/ar.js.map +1 -1
  213. package/login/i18n/baseMessages/ca.d.ts +10 -1
  214. package/login/i18n/baseMessages/ca.js +12 -3
  215. package/login/i18n/baseMessages/ca.js.map +1 -1
  216. package/login/i18n/baseMessages/cs.d.ts +9 -0
  217. package/login/i18n/baseMessages/cs.js +11 -2
  218. package/login/i18n/baseMessages/cs.js.map +1 -1
  219. package/login/i18n/baseMessages/da.d.ts +9 -0
  220. package/login/i18n/baseMessages/da.js +11 -2
  221. package/login/i18n/baseMessages/da.js.map +1 -1
  222. package/login/i18n/baseMessages/de.d.ts +9 -0
  223. package/login/i18n/baseMessages/de.js +11 -2
  224. package/login/i18n/baseMessages/de.js.map +1 -1
  225. package/login/i18n/baseMessages/el.d.ts +9 -1
  226. package/login/i18n/baseMessages/el.js +11 -3
  227. package/login/i18n/baseMessages/el.js.map +1 -1
  228. package/login/i18n/baseMessages/en.d.ts +10 -1
  229. package/login/i18n/baseMessages/en.js +12 -3
  230. package/login/i18n/baseMessages/en.js.map +1 -1
  231. package/login/i18n/baseMessages/es.d.ts +10 -1
  232. package/login/i18n/baseMessages/es.js +12 -3
  233. package/login/i18n/baseMessages/es.js.map +1 -1
  234. package/login/i18n/baseMessages/fa.d.ts +9 -1
  235. package/login/i18n/baseMessages/fa.js +11 -3
  236. package/login/i18n/baseMessages/fa.js.map +1 -1
  237. package/login/i18n/baseMessages/fi.d.ts +9 -0
  238. package/login/i18n/baseMessages/fi.js +11 -2
  239. package/login/i18n/baseMessages/fi.js.map +1 -1
  240. package/login/i18n/baseMessages/fr.d.ts +9 -0
  241. package/login/i18n/baseMessages/fr.js +11 -2
  242. package/login/i18n/baseMessages/fr.js.map +1 -1
  243. package/login/i18n/baseMessages/hu.d.ts +10 -1
  244. package/login/i18n/baseMessages/hu.js +12 -3
  245. package/login/i18n/baseMessages/hu.js.map +1 -1
  246. package/login/i18n/baseMessages/index.d.ts +109 -2
  247. package/login/i18n/baseMessages/index.js.map +1 -1
  248. package/login/i18n/baseMessages/it.d.ts +9 -0
  249. package/login/i18n/baseMessages/it.js +11 -2
  250. package/login/i18n/baseMessages/it.js.map +1 -1
  251. package/login/i18n/baseMessages/ja.d.ts +9 -0
  252. package/login/i18n/baseMessages/ja.js +11 -2
  253. package/login/i18n/baseMessages/ja.js.map +1 -1
  254. package/login/i18n/baseMessages/lt.d.ts +9 -0
  255. package/login/i18n/baseMessages/lt.js +11 -2
  256. package/login/i18n/baseMessages/lt.js.map +1 -1
  257. package/login/i18n/baseMessages/lv.d.ts +9 -0
  258. package/login/i18n/baseMessages/lv.js +11 -2
  259. package/login/i18n/baseMessages/lv.js.map +1 -1
  260. package/login/i18n/baseMessages/nl.d.ts +9 -0
  261. package/login/i18n/baseMessages/nl.js +11 -2
  262. package/login/i18n/baseMessages/nl.js.map +1 -1
  263. package/login/i18n/baseMessages/no.d.ts +9 -0
  264. package/login/i18n/baseMessages/no.js +11 -2
  265. package/login/i18n/baseMessages/no.js.map +1 -1
  266. package/login/i18n/baseMessages/pl.d.ts +9 -0
  267. package/login/i18n/baseMessages/pl.js +11 -2
  268. package/login/i18n/baseMessages/pl.js.map +1 -1
  269. package/login/i18n/baseMessages/pt-BR.d.ts +9 -0
  270. package/login/i18n/baseMessages/pt-BR.js +11 -2
  271. package/login/i18n/baseMessages/pt-BR.js.map +1 -1
  272. package/login/i18n/baseMessages/ru.d.ts +9 -0
  273. package/login/i18n/baseMessages/ru.js +11 -2
  274. package/login/i18n/baseMessages/ru.js.map +1 -1
  275. package/login/i18n/baseMessages/sk.d.ts +9 -0
  276. package/login/i18n/baseMessages/sk.js +11 -2
  277. package/login/i18n/baseMessages/sk.js.map +1 -1
  278. package/login/i18n/baseMessages/sv.d.ts +9 -0
  279. package/login/i18n/baseMessages/sv.js +11 -2
  280. package/login/i18n/baseMessages/sv.js.map +1 -1
  281. package/login/i18n/baseMessages/th.d.ts +9 -0
  282. package/login/i18n/baseMessages/th.js +11 -2
  283. package/login/i18n/baseMessages/th.js.map +1 -1
  284. package/login/i18n/baseMessages/tr.d.ts +9 -0
  285. package/login/i18n/baseMessages/tr.js +11 -2
  286. package/login/i18n/baseMessages/tr.js.map +1 -1
  287. package/login/i18n/baseMessages/uk.d.ts +9 -0
  288. package/login/i18n/baseMessages/uk.js +11 -2
  289. package/login/i18n/baseMessages/uk.js.map +1 -1
  290. package/login/i18n/baseMessages/zh-CN.d.ts +10 -1
  291. package/login/i18n/baseMessages/zh-CN.js +12 -3
  292. package/login/i18n/baseMessages/zh-CN.js.map +1 -1
  293. package/login/i18n/i18n.d.ts +38 -38
  294. package/login/i18n/i18n.js +139 -99
  295. package/login/i18n/i18n.js.map +1 -1
  296. package/login/i18n/index.d.ts +4 -1
  297. package/login/i18n/index.js +1 -1
  298. package/login/i18n/index.js.map +1 -1
  299. package/login/i18n/useI18n.d.ts +13 -0
  300. package/login/i18n/useI18n.js +26 -0
  301. package/login/i18n/useI18n.js.map +1 -0
  302. package/login/index.d.ts +3 -8
  303. package/login/index.js +1 -6
  304. package/login/index.js.map +1 -1
  305. package/login/lib/kcClsx.d.ts +9 -0
  306. package/login/lib/kcClsx.js +130 -0
  307. package/login/lib/kcClsx.js.map +1 -0
  308. package/login/lib/useUserProfileForm.d.ts +20 -8
  309. package/login/lib/useUserProfileForm.js +404 -295
  310. package/login/lib/useUserProfileForm.js.map +1 -1
  311. package/login/pages/Code.d.ts +1 -1
  312. package/login/pages/Code.js +3 -3
  313. package/login/pages/Code.js.map +1 -1
  314. package/login/pages/DeleteAccountConfirm.d.ts +1 -1
  315. package/login/pages/DeleteAccountConfirm.js +7 -4
  316. package/login/pages/DeleteAccountConfirm.js.map +1 -1
  317. package/login/pages/DeleteCredential.d.ts +1 -1
  318. package/login/pages/DeleteCredential.js +3 -4
  319. package/login/pages/DeleteCredential.js.map +1 -1
  320. package/login/pages/Error.d.ts +1 -1
  321. package/login/pages/Error.js +1 -1
  322. package/login/pages/Error.js.map +1 -1
  323. package/login/pages/FrontchannelLogout.d.ts +1 -1
  324. package/login/pages/FrontchannelLogout.js +1 -1
  325. package/login/pages/FrontchannelLogout.js.map +1 -1
  326. package/login/pages/IdpReviewUserProfile.d.ts +4 -3
  327. package/login/pages/IdpReviewUserProfile.js +4 -5
  328. package/login/pages/IdpReviewUserProfile.js.map +1 -1
  329. package/login/pages/Info.d.ts +1 -1
  330. package/login/pages/Info.js +18 -8
  331. package/login/pages/Info.js.map +1 -1
  332. package/login/pages/Login.d.ts +1 -1
  333. package/login/pages/Login.js +12 -8
  334. package/login/pages/Login.js.map +1 -1
  335. package/login/pages/LoginConfigTotp.d.ts +1 -1
  336. package/login/pages/LoginConfigTotp.js +10 -7
  337. package/login/pages/LoginConfigTotp.js.map +1 -1
  338. package/login/pages/LoginIdpLinkConfirm.d.ts +1 -1
  339. package/login/pages/LoginIdpLinkConfirm.js +3 -4
  340. package/login/pages/LoginIdpLinkConfirm.js.map +1 -1
  341. package/login/pages/LoginIdpLinkEmail.d.ts +2 -2
  342. package/login/pages/LoginIdpLinkEmail.js +1 -1
  343. package/login/pages/LoginIdpLinkEmail.js.map +1 -1
  344. package/login/pages/LoginOauth2DeviceVerifyUserCode.d.ts +3 -3
  345. package/login/pages/LoginOauth2DeviceVerifyUserCode.js +3 -4
  346. package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -1
  347. package/login/pages/LoginOauthGrant.d.ts +3 -3
  348. package/login/pages/LoginOauthGrant.js +4 -5
  349. package/login/pages/LoginOauthGrant.js.map +1 -1
  350. package/login/pages/LoginOtp.d.ts +1 -1
  351. package/login/pages/LoginOtp.js +5 -4
  352. package/login/pages/LoginOtp.js.map +1 -1
  353. package/login/pages/LoginPageExpired.d.ts +1 -1
  354. package/login/pages/LoginPageExpired.js +1 -1
  355. package/login/pages/LoginPageExpired.js.map +1 -1
  356. package/login/pages/LoginPassword.d.ts +1 -1
  357. package/login/pages/LoginPassword.js +9 -7
  358. package/login/pages/LoginPassword.js.map +1 -1
  359. package/login/pages/LoginRecoveryAuthnCodeConfig.d.ts +1 -1
  360. package/login/pages/LoginRecoveryAuthnCodeConfig.js +16 -16
  361. package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -1
  362. package/login/pages/LoginRecoveryAuthnCodeInput.d.ts +1 -1
  363. package/login/pages/LoginRecoveryAuthnCodeInput.js +5 -4
  364. package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
  365. package/login/pages/LoginResetOtp.d.ts +1 -1
  366. package/login/pages/LoginResetOtp.js +3 -4
  367. package/login/pages/LoginResetOtp.js.map +1 -1
  368. package/login/pages/LoginResetPassword.d.ts +1 -1
  369. package/login/pages/LoginResetPassword.js +6 -5
  370. package/login/pages/LoginResetPassword.js.map +1 -1
  371. package/login/pages/LoginUpdatePassword.d.ts +1 -1
  372. package/login/pages/LoginUpdatePassword.js +12 -9
  373. package/login/pages/LoginUpdatePassword.js.map +1 -1
  374. package/login/pages/LoginUpdateProfile.d.ts +4 -3
  375. package/login/pages/LoginUpdateProfile.js +5 -9
  376. package/login/pages/LoginUpdateProfile.js.map +1 -1
  377. package/login/pages/LoginUsername.d.ts +1 -1
  378. package/login/pages/LoginUsername.js +5 -5
  379. package/login/pages/LoginUsername.js.map +1 -1
  380. package/login/pages/LoginVerifyEmail.d.ts +1 -1
  381. package/login/pages/LoginVerifyEmail.js +1 -1
  382. package/login/pages/LoginVerifyEmail.js.map +1 -1
  383. package/login/pages/LoginX509Info.d.ts +1 -1
  384. package/login/pages/LoginX509Info.js +3 -4
  385. package/login/pages/LoginX509Info.js.map +1 -1
  386. package/login/pages/LogoutConfirm.d.ts +1 -1
  387. package/login/pages/LogoutConfirm.js +3 -4
  388. package/login/pages/LogoutConfirm.js.map +1 -1
  389. package/login/pages/PageProps.d.ts +3 -5
  390. package/login/pages/Register.d.ts +4 -3
  391. package/login/pages/Register.js +9 -19
  392. package/login/pages/Register.js.map +1 -1
  393. package/login/pages/SamlPostForm.d.ts +1 -1
  394. package/login/pages/SamlPostForm.js +2 -2
  395. package/login/pages/SamlPostForm.js.map +1 -1
  396. package/login/pages/SelectAuthenticator.d.ts +2 -2
  397. package/login/pages/SelectAuthenticator.js +3 -7
  398. package/login/pages/SelectAuthenticator.js.map +1 -1
  399. package/login/pages/Terms.d.ts +2 -2
  400. package/login/pages/Terms.js +3 -10
  401. package/login/pages/Terms.js.map +1 -1
  402. package/login/pages/UpdateEmail.d.ts +3 -2
  403. package/login/pages/UpdateEmail.js +6 -10
  404. package/login/pages/UpdateEmail.js.map +1 -1
  405. package/login/pages/WebauthnAuthenticate.d.ts +1 -1
  406. package/login/pages/WebauthnAuthenticate.js +25 -22
  407. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  408. package/login/pages/WebauthnError.d.ts +1 -1
  409. package/login/pages/WebauthnError.js +4 -5
  410. package/login/pages/WebauthnError.js.map +1 -1
  411. package/login/pages/WebauthnRegister.d.ts +1 -1
  412. package/login/pages/WebauthnRegister.js +16 -17
  413. package/login/pages/WebauthnRegister.js.map +1 -1
  414. package/package.json +418 -315
  415. package/src/PUBLIC_URL.ts +3 -3
  416. package/src/account/{Fallback.tsx → DefaultPage.tsx} +5 -5
  417. package/src/account/{kcContext → KcContext}/KcContext.ts +24 -2
  418. package/src/account/KcContext/getKcContextMock.ts +69 -0
  419. package/src/account/KcContext/index.ts +2 -0
  420. package/src/account/KcContext/kcContextMocks.ts +190 -0
  421. package/src/account/Template.tsx +20 -17
  422. package/src/account/TemplateProps.ts +4 -5
  423. package/src/account/i18n/baseMessages/ar.ts +3 -1
  424. package/src/account/i18n/baseMessages/ca.ts +3 -1
  425. package/src/account/i18n/baseMessages/cs.ts +3 -1
  426. package/src/account/i18n/baseMessages/da.ts +3 -1
  427. package/src/account/i18n/baseMessages/de.ts +3 -1
  428. package/src/account/i18n/baseMessages/el.ts +3 -1
  429. package/src/account/i18n/baseMessages/en.ts +3 -1
  430. package/src/account/i18n/baseMessages/es.ts +3 -1
  431. package/src/account/i18n/baseMessages/fa.ts +3 -1
  432. package/src/account/i18n/baseMessages/fi.ts +3 -1
  433. package/src/account/i18n/baseMessages/fr.ts +3 -1
  434. package/src/account/i18n/baseMessages/hu.ts +3 -1
  435. package/src/account/i18n/baseMessages/it.ts +3 -1
  436. package/src/account/i18n/baseMessages/ja.ts +3 -1
  437. package/src/account/i18n/baseMessages/lt.ts +3 -1
  438. package/src/account/i18n/baseMessages/lv.ts +3 -1
  439. package/src/account/i18n/baseMessages/nl.ts +3 -1
  440. package/src/account/i18n/baseMessages/no.ts +3 -1
  441. package/src/account/i18n/baseMessages/pl.ts +3 -1
  442. package/src/account/i18n/baseMessages/pt-BR.ts +3 -1
  443. package/src/account/i18n/baseMessages/ru.ts +3 -1
  444. package/src/account/i18n/baseMessages/sk.ts +3 -1
  445. package/src/account/i18n/baseMessages/sv.ts +3 -1
  446. package/src/account/i18n/baseMessages/th.ts +3 -1
  447. package/src/account/i18n/baseMessages/tr.ts +3 -1
  448. package/src/account/i18n/baseMessages/uk.ts +3 -1
  449. package/src/account/i18n/baseMessages/zh-CN.ts +3 -1
  450. package/src/account/i18n/i18n.tsx +202 -144
  451. package/src/account/i18n/index.ts +4 -1
  452. package/src/account/i18n/useI18n.ts +44 -0
  453. package/src/account/index.ts +3 -10
  454. package/src/account/lib/kcClsx.ts +25 -0
  455. package/src/account/pages/Account.tsx +12 -18
  456. package/src/account/pages/Applications.tsx +8 -10
  457. package/src/account/pages/FederatedIdentity.tsx +3 -3
  458. package/src/account/pages/Log.tsx +5 -5
  459. package/src/account/pages/PageProps.ts +4 -6
  460. package/src/account/pages/Password.tsx +17 -19
  461. package/src/account/pages/Sessions.tsx +5 -6
  462. package/src/account/pages/Totp.tsx +32 -42
  463. package/src/bin/add-story.ts +105 -0
  464. package/src/bin/copy-keycloak-resources-to-public.ts +3 -6
  465. package/src/bin/eject-page.ts +256 -0
  466. package/src/bin/initialize-email-theme.ts +30 -26
  467. package/src/bin/keycloakify/buildJars/buildJar.ts +138 -77
  468. package/src/bin/keycloakify/buildJars/buildJars.ts +35 -31
  469. package/src/bin/keycloakify/buildJars/extensionVersions.ts +3 -2
  470. package/src/bin/keycloakify/buildJars/generatePom.ts +19 -11
  471. package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +42 -10
  472. package/src/bin/keycloakify/generateFtl/generateFtl.ts +74 -48
  473. package/src/bin/keycloakify/generateFtl/{ftl_object_to_js_code_declaring_an_object.ftl → kcContextDeclarationTemplate.ftl} +233 -194
  474. package/src/bin/keycloakify/generateResources/bringInAccountV1.ts +89 -0
  475. package/src/bin/keycloakify/generateResources/generateMessageProperties.ts +192 -0
  476. package/src/bin/keycloakify/generateResources/generateResources.ts +42 -0
  477. package/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts +300 -0
  478. package/src/bin/keycloakify/generateResources/generateResourcesForThemeVariant.ts +70 -0
  479. package/src/bin/keycloakify/generateResources/index.ts +1 -0
  480. package/src/bin/keycloakify/{generateSrcMainResources → generateResources}/readExtraPageNames.ts +21 -7
  481. package/src/bin/keycloakify/generateResources/readFieldNameUsage.ts +91 -0
  482. package/src/bin/keycloakify/keycloakify.ts +50 -16
  483. package/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts +42 -46
  484. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.ts +15 -12
  485. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/vite.ts +31 -16
  486. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.ts +53 -18
  487. package/src/bin/main.ts +99 -44
  488. package/src/bin/shared/KeycloakVersionRange.ts +4 -2
  489. package/src/bin/shared/buildContext.ts +868 -0
  490. package/src/bin/shared/constants.ts +10 -4
  491. package/src/bin/shared/copyKeycloakResourcesToPublic.ts +32 -21
  492. package/src/bin/shared/downloadKeycloakDefaultTheme.ts +277 -0
  493. package/src/bin/shared/downloadKeycloakStaticResources.ts +30 -26
  494. package/src/bin/shared/generateKcGenTs.ts +68 -0
  495. package/src/bin/shared/metaInfKeycloakThemes.ts +25 -19
  496. package/src/bin/shared/promptKeycloakVersion.ts +39 -15
  497. package/src/bin/start-keycloak/appBuild.ts +180 -0
  498. package/src/bin/start-keycloak/index.ts +1 -0
  499. package/src/bin/start-keycloak/keycloakifyBuild.ts +43 -0
  500. package/src/bin/start-keycloak/myrealm-realm-18.json +2155 -0
  501. package/src/bin/start-keycloak/myrealm-realm-19.json +2186 -0
  502. package/src/bin/start-keycloak/myrealm-realm-20.json +2197 -0
  503. package/src/bin/start-keycloak/myrealm-realm-21.json +2201 -0
  504. package/src/bin/start-keycloak/myrealm-realm-23.json +2155 -0
  505. package/src/bin/start-keycloak/myrealm-realm-24.json +2318 -0
  506. package/src/bin/start-keycloak/myrealm-realm-25.json +2400 -0
  507. package/src/bin/start-keycloak/start-keycloak.ts +451 -0
  508. package/src/bin/tools/SemVer.ts +32 -13
  509. package/src/bin/tools/String.prototype.replaceAll.ts +9 -2
  510. package/src/bin/tools/assertNoPnpmDlx.ts +15 -0
  511. package/src/bin/tools/crawl.ts +4 -1
  512. package/src/bin/tools/crc32.ts +42 -24
  513. package/src/bin/tools/downloadAndExtractArchive.ts +254 -0
  514. package/src/bin/tools/escapeStringForPropertiesFile.ts +64 -0
  515. package/src/bin/tools/extractArchive.ts +140 -0
  516. package/src/bin/tools/fetchProxyOptions.ts +76 -53
  517. package/src/bin/tools/getAbsoluteAndInOsFormatPath.ts +10 -2
  518. package/src/bin/tools/octokit-addons/getLatestsSemVersionedTag.ts +8 -2
  519. package/src/bin/tools/octokit-addons/listTags.ts +15 -4
  520. package/src/bin/tools/partitionPromiseSettledResults.ts +12 -3
  521. package/src/bin/tools/readThisNpmPackageVersion.ts +5 -1
  522. package/src/bin/tools/transformCodebase.ts +29 -10
  523. package/src/bin/tools/trimIndent.ts +4 -1
  524. package/src/bin/tsconfig.json +4 -3
  525. package/src/bin/update-kc-gen.ts +13 -0
  526. package/src/lib/getKcClsx.ts +89 -0
  527. package/src/login/{Fallback.tsx → DefaultPage.tsx} +7 -6
  528. package/src/login/{kcContext → KcContext}/KcContext.ts +58 -30
  529. package/src/login/KcContext/getKcContextMock.ts +69 -0
  530. package/src/login/KcContext/index.ts +8 -0
  531. package/src/login/KcContext/kcContextMocks.ts +583 -0
  532. package/src/login/Template.tsx +69 -92
  533. package/src/login/TemplateProps.ts +3 -7
  534. package/src/login/UserProfileFormFields.tsx +126 -211
  535. package/src/login/UserProfileFormFieldsProps.tsx +22 -0
  536. package/src/login/i18n/baseMessages/ar.ts +11 -2
  537. package/src/login/i18n/baseMessages/ca.ts +12 -3
  538. package/src/login/i18n/baseMessages/cs.ts +11 -2
  539. package/src/login/i18n/baseMessages/da.ts +11 -2
  540. package/src/login/i18n/baseMessages/de.ts +11 -2
  541. package/src/login/i18n/baseMessages/el.ts +11 -3
  542. package/src/login/i18n/baseMessages/en.ts +12 -3
  543. package/src/login/i18n/baseMessages/es.ts +12 -3
  544. package/src/login/i18n/baseMessages/fa.ts +11 -3
  545. package/src/login/i18n/baseMessages/fi.ts +11 -2
  546. package/src/login/i18n/baseMessages/fr.ts +11 -2
  547. package/src/login/i18n/baseMessages/hu.ts +12 -3
  548. package/src/login/i18n/baseMessages/it.ts +11 -2
  549. package/src/login/i18n/baseMessages/ja.ts +11 -2
  550. package/src/login/i18n/baseMessages/lt.ts +11 -2
  551. package/src/login/i18n/baseMessages/lv.ts +11 -2
  552. package/src/login/i18n/baseMessages/nl.ts +11 -2
  553. package/src/login/i18n/baseMessages/no.ts +11 -2
  554. package/src/login/i18n/baseMessages/pl.ts +11 -2
  555. package/src/login/i18n/baseMessages/pt-BR.ts +11 -2
  556. package/src/login/i18n/baseMessages/ru.ts +11 -2
  557. package/src/login/i18n/baseMessages/sk.ts +11 -2
  558. package/src/login/i18n/baseMessages/sv.ts +11 -2
  559. package/src/login/i18n/baseMessages/th.ts +11 -2
  560. package/src/login/i18n/baseMessages/tr.ts +11 -2
  561. package/src/login/i18n/baseMessages/uk.ts +11 -2
  562. package/src/login/i18n/baseMessages/zh-CN.ts +12 -3
  563. package/src/login/i18n/i18n.tsx +240 -145
  564. package/src/login/i18n/index.ts +4 -1
  565. package/src/login/i18n/useI18n.ts +44 -0
  566. package/src/login/index.ts +3 -11
  567. package/src/login/lib/kcClsx.ts +143 -0
  568. package/src/login/lib/useUserProfileForm.tsx +487 -351
  569. package/src/login/pages/Code.tsx +8 -5
  570. package/src/login/pages/DeleteAccountConfirm.tsx +15 -10
  571. package/src/login/pages/DeleteCredential.tsx +9 -7
  572. package/src/login/pages/Error.tsx +10 -3
  573. package/src/login/pages/FrontchannelLogout.tsx +6 -3
  574. package/src/login/pages/IdpReviewUserProfile.tsx +20 -21
  575. package/src/login/pages/Info.tsx +30 -13
  576. package/src/login/pages/Login.tsx +51 -59
  577. package/src/login/pages/LoginConfigTotp.tsx +49 -43
  578. package/src/login/pages/LoginIdpLinkConfirm.tsx +7 -18
  579. package/src/login/pages/LoginIdpLinkEmail.tsx +9 -3
  580. package/src/login/pages/LoginOauth2DeviceVerifyUserCode.tsx +24 -23
  581. package/src/login/pages/LoginOauthGrant.tsx +14 -20
  582. package/src/login/pages/LoginOtp.tsx +34 -32
  583. package/src/login/pages/LoginPageExpired.tsx +2 -2
  584. package/src/login/pages/LoginPassword.tsx +29 -34
  585. package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +34 -34
  586. package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +26 -24
  587. package/src/login/pages/LoginResetOtp.tsx +19 -22
  588. package/src/login/pages/LoginResetPassword.tsx +28 -26
  589. package/src/login/pages/LoginUpdatePassword.tsx +55 -55
  590. package/src/login/pages/LoginUpdateProfile.tsx +32 -30
  591. package/src/login/pages/LoginUsername.tsx +23 -34
  592. package/src/login/pages/LoginVerifyEmail.tsx +5 -2
  593. package/src/login/pages/LoginX509Info.tsx +24 -33
  594. package/src/login/pages/LogoutConfirm.tsx +8 -14
  595. package/src/login/pages/PageProps.ts +3 -5
  596. package/src/login/pages/Register.tsx +54 -54
  597. package/src/login/pages/SamlPostForm.tsx +3 -3
  598. package/src/login/pages/SelectAuthenticator.tsx +23 -24
  599. package/src/login/pages/Terms.tsx +14 -24
  600. package/src/login/pages/UpdateEmail.tsx +30 -33
  601. package/src/login/pages/WebauthnAuthenticate.tsx +40 -44
  602. package/src/login/pages/WebauthnError.tsx +15 -19
  603. package/src/login/pages/WebauthnRegister.tsx +28 -37
  604. package/src/tools/Array.prototype.every.ts +4 -1
  605. package/src/tools/ExtractAfterStartingWith.ts +4 -0
  606. package/src/tools/LazyOrNot.ts +3 -1
  607. package/src/tools/Object.fromEntries.ts +23 -0
  608. package/src/tools/StatefulObservable/README.md +16 -0
  609. package/src/tools/StatefulObservable/StatefulObservable.ts +58 -0
  610. package/src/tools/StatefulObservable/hooks/index.ts +2 -0
  611. package/src/tools/StatefulObservable/hooks/useObservable.ts +25 -0
  612. package/src/tools/StatefulObservable/hooks/useRerenderOnChange.ts +19 -0
  613. package/src/tools/StatefulObservable/index.ts +2 -0
  614. package/src/tools/ValueOf.ts +2 -0
  615. package/src/tools/clsx.ts +6 -42
  616. package/src/tools/clsx_withTransform.ts +55 -0
  617. package/src/tools/deepAssign.ts +57 -19
  618. package/src/tools/formatNumber.ts +7 -3
  619. package/src/tools/structuredCloneButFunctions.ts +24 -0
  620. package/src/tools/useConstCallback.ts +3 -1
  621. package/src/tools/useInsertLinkTags.ts +78 -74
  622. package/src/tools/useInsertScriptTags.ts +69 -73
  623. package/src/tools/useOnFirstMount.ts +18 -0
  624. package/src/tools/useSetClassName.ts +4 -1
  625. package/src/vite-plugin/vite-plugin.ts +73 -37
  626. package/stories/account/pages/Account.stories.tsx +18 -0
  627. package/stories/account/pages/Applications.stories.tsx +80 -0
  628. package/stories/account/pages/FederatedIdentity.stories.tsx +38 -0
  629. package/stories/account/pages/Log.stories.tsx +356 -0
  630. package/stories/account/pages/Password.stories.tsx +28 -0
  631. package/stories/account/pages/Sessions.stories.tsx +59 -0
  632. package/stories/account/pages/Totp.stories.tsx +182 -0
  633. package/stories/login/pages/Code.stories.tsx +18 -0
  634. package/stories/login/pages/DeleteAccountConfirm.stories.tsx +18 -0
  635. package/stories/login/pages/DeleteCredential.stories.tsx +18 -0
  636. package/stories/login/pages/Error.stories.tsx +28 -0
  637. package/stories/login/pages/FrontchannelLogout.stories.tsx +18 -0
  638. package/stories/login/pages/IdpReviewUserProfile.stories.tsx +18 -0
  639. package/stories/login/pages/Info.stories.tsx +52 -0
  640. package/stories/login/pages/Login.stories.tsx +221 -0
  641. package/stories/login/pages/LoginConfigTotp.stories.tsx +43 -0
  642. package/stories/login/pages/LoginDeviceVerifyUserCode.stories.tsx +18 -0
  643. package/stories/login/pages/LoginIdpLinkConfirm.stories.tsx +18 -0
  644. package/stories/login/pages/LoginIdpLinkEmail.stories.tsx +18 -0
  645. package/stories/login/pages/LoginOauth2DeviceVerifyUserCode.stories.tsx +18 -0
  646. package/stories/login/pages/LoginOauthGrant.stories.tsx +18 -0
  647. package/stories/login/pages/LoginOtp.stories.tsx +18 -0
  648. package/stories/login/pages/LoginPageExpired.stories.tsx +18 -0
  649. package/stories/login/pages/LoginPassword.stories.tsx +18 -0
  650. package/stories/login/pages/LoginRecoveryAuthnCodeConfig.stories.tsx +18 -0
  651. package/stories/login/pages/LoginRecoveryAuthnCodeInput.stories.tsx +18 -0
  652. package/stories/login/pages/LoginResetOtp.stories.tsx +18 -0
  653. package/stories/login/pages/LoginResetPassword.stories.tsx +31 -0
  654. package/stories/login/pages/LoginUpdatePassword.stories.tsx +18 -0
  655. package/stories/login/pages/LoginUpdateProfile.stories.tsx +18 -0
  656. package/stories/login/pages/LoginUsername.stories.tsx +31 -0
  657. package/stories/login/pages/LoginVerifyEmail.stories.tsx +30 -0
  658. package/stories/login/pages/LoginX509Info.stories.tsx +18 -0
  659. package/stories/login/pages/LogoutConfirm.stories.tsx +18 -0
  660. package/stories/login/pages/Register.stories.tsx +185 -0
  661. package/stories/login/pages/SamlPostForm.stories.tsx +18 -0
  662. package/stories/login/pages/SelectAuthenticator.stories.tsx +43 -0
  663. package/stories/login/pages/Terms.stories.tsx +43 -0
  664. package/stories/login/pages/UpdateEmail.stories.tsx +18 -0
  665. package/stories/login/pages/WebauthnAuthenticate.stories.tsx +18 -0
  666. package/stories/login/pages/WebauthnError.stories.tsx +18 -0
  667. package/stories/login/pages/WebauthnRegister.stories.tsx +18 -0
  668. package/tools/Array.prototype.every.js +2 -1
  669. package/tools/Array.prototype.every.js.map +1 -1
  670. package/tools/ExtractAfterStartingWith.d.ts +1 -0
  671. package/tools/ExtractAfterStartingWith.js +2 -0
  672. package/tools/ExtractAfterStartingWith.js.map +1 -0
  673. package/tools/HTMLElement.prototype.prepend.js.map +1 -1
  674. package/tools/Object.fromEntries.d.ts +1 -0
  675. package/tools/Object.fromEntries.js +17 -0
  676. package/tools/Object.fromEntries.js.map +1 -0
  677. package/tools/StatefulObservable/StatefulObservable.d.ts +8 -0
  678. package/tools/StatefulObservable/StatefulObservable.js +36 -0
  679. package/tools/StatefulObservable/StatefulObservable.js.map +1 -0
  680. package/tools/StatefulObservable/hooks/index.d.ts +2 -0
  681. package/tools/StatefulObservable/hooks/index.js +3 -0
  682. package/tools/StatefulObservable/hooks/index.js.map +1 -0
  683. package/tools/StatefulObservable/hooks/useObservable.d.ts +8 -0
  684. package/tools/StatefulObservable/hooks/useObservable.js +17 -0
  685. package/tools/StatefulObservable/hooks/useObservable.js.map +1 -0
  686. package/tools/StatefulObservable/hooks/useRerenderOnChange.d.ts +5 -0
  687. package/tools/StatefulObservable/hooks/useRerenderOnChange.js +14 -0
  688. package/tools/StatefulObservable/hooks/useRerenderOnChange.js.map +1 -0
  689. package/tools/StatefulObservable/index.d.ts +2 -0
  690. package/tools/StatefulObservable/index.js +3 -0
  691. package/tools/StatefulObservable/index.js.map +1 -0
  692. package/tools/ValueOf.d.ts +2 -0
  693. package/tools/ValueOf.js +2 -0
  694. package/tools/ValueOf.js.map +1 -0
  695. package/tools/clsx.d.ts +3 -2
  696. package/tools/clsx.js +5 -41
  697. package/tools/clsx.js.map +1 -1
  698. package/tools/clsx_withTransform.d.ts +5 -0
  699. package/tools/clsx_withTransform.js +43 -0
  700. package/tools/clsx_withTransform.js.map +1 -0
  701. package/tools/deepAssign.d.ts +1 -0
  702. package/tools/deepAssign.js +41 -16
  703. package/tools/deepAssign.js.map +1 -1
  704. package/tools/formatNumber.js +2 -1
  705. package/tools/formatNumber.js.map +1 -1
  706. package/tools/structuredCloneButFunctions.d.ts +7 -0
  707. package/tools/structuredCloneButFunctions.js +19 -0
  708. package/tools/structuredCloneButFunctions.js.map +1 -0
  709. package/tools/useConstCallback.js.map +1 -1
  710. package/tools/useInsertLinkTags.d.ts +11 -6
  711. package/tools/useInsertLinkTags.js +53 -52
  712. package/tools/useInsertLinkTags.js.map +1 -1
  713. package/tools/useInsertScriptTags.d.ts +15 -6
  714. package/tools/useInsertScriptTags.js +56 -61
  715. package/tools/useInsertScriptTags.js.map +1 -1
  716. package/tools/useOnFirstMount.d.ts +2 -0
  717. package/tools/useOnFirstMount.js +15 -0
  718. package/tools/useOnFirstMount.js.map +1 -0
  719. package/tools/useSetClassName.js.map +1 -1
  720. package/vite-plugin/index.d.ts +1 -0
  721. package/vite-plugin/index.js +53377 -0
  722. package/vite-plugin/vite-plugin.d.ts +5 -0
  723. package/account/Fallback.d.ts +0 -5
  724. package/account/Fallback.js.map +0 -1
  725. package/account/kcContext/KcContext.js.map +0 -1
  726. package/account/kcContext/createGetKcContext.d.ts +0 -19
  727. package/account/kcContext/createGetKcContext.js +0 -73
  728. package/account/kcContext/createGetKcContext.js.map +0 -1
  729. package/account/kcContext/getKcContext.d.ts +0 -13
  730. package/account/kcContext/getKcContext.js +0 -13
  731. package/account/kcContext/getKcContext.js.map +0 -1
  732. package/account/kcContext/getKcContextFromWindow.d.ts +0 -8
  733. package/account/kcContext/getKcContextFromWindow.js +0 -5
  734. package/account/kcContext/getKcContextFromWindow.js.map +0 -1
  735. package/account/kcContext/index.d.ts +0 -1
  736. package/account/kcContext/index.js +0 -2
  737. package/account/kcContext/index.js.map +0 -1
  738. package/account/kcContext/kcContextMocks.js +0 -215
  739. package/account/kcContext/kcContextMocks.js.map +0 -1
  740. package/account/lib/useGetClassName.d.ts +0 -7
  741. package/account/lib/useGetClassName.js +0 -19
  742. package/account/lib/useGetClassName.js.map +0 -1
  743. package/lib/isStorybook.d.ts +0 -1
  744. package/lib/isStorybook.js +0 -2
  745. package/lib/isStorybook.js.map +0 -1
  746. package/lib/useGetClassName.d.ts +0 -10
  747. package/lib/useGetClassName.js +0 -14
  748. package/lib/useGetClassName.js.map +0 -1
  749. package/login/Fallback.js.map +0 -1
  750. package/login/kcContext/KcContext.js.map +0 -1
  751. package/login/kcContext/createGetKcContext.d.ts +0 -19
  752. package/login/kcContext/createGetKcContext.js +0 -109
  753. package/login/kcContext/createGetKcContext.js.map +0 -1
  754. package/login/kcContext/getKcContext.d.ts +0 -13
  755. package/login/kcContext/getKcContext.js +0 -13
  756. package/login/kcContext/getKcContext.js.map +0 -1
  757. package/login/kcContext/getKcContextFromWindow.d.ts +0 -8
  758. package/login/kcContext/getKcContextFromWindow.js +0 -5
  759. package/login/kcContext/getKcContextFromWindow.js.map +0 -1
  760. package/login/kcContext/index.d.ts +0 -1
  761. package/login/kcContext/index.js +0 -2
  762. package/login/kcContext/index.js.map +0 -1
  763. package/login/kcContext/kcContextMocks.js +0 -390
  764. package/login/kcContext/kcContextMocks.js.map +0 -1
  765. package/login/lib/useDownloadTerms.d.ts +0 -17
  766. package/login/lib/useDownloadTerms.js +0 -32
  767. package/login/lib/useDownloadTerms.js.map +0 -1
  768. package/login/lib/useGetClassName.d.ts +0 -7
  769. package/login/lib/useGetClassName.js +0 -130
  770. package/login/lib/useGetClassName.js.map +0 -1
  771. package/src/account/kcContext/createGetKcContext.ts +0 -108
  772. package/src/account/kcContext/getKcContext.ts +0 -21
  773. package/src/account/kcContext/getKcContextFromWindow.ts +0 -11
  774. package/src/account/kcContext/index.ts +0 -1
  775. package/src/account/kcContext/kcContextMocks.ts +0 -260
  776. package/src/account/lib/useGetClassName.ts +0 -20
  777. package/src/bin/download-builtin-keycloak-theme.ts +0 -30
  778. package/src/bin/eject-keycloak-page.ts +0 -126
  779. package/src/bin/keycloakify/generateSrcMainResources/bringInAccountV1.ts +0 -79
  780. package/src/bin/keycloakify/generateSrcMainResources/generateMessageProperties.ts +0 -179
  781. package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResources.ts +0 -32
  782. package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForMainTheme.ts +0 -261
  783. package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForThemeVariant.ts +0 -56
  784. package/src/bin/keycloakify/generateSrcMainResources/index.ts +0 -1
  785. package/src/bin/keycloakify/generateSrcMainResources/readFieldNameUsage.ts +0 -56
  786. package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +0 -60
  787. package/src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts +0 -24
  788. package/src/bin/shared/buildOptions.ts +0 -277
  789. package/src/bin/shared/downloadAndUnzip.ts +0 -203
  790. package/src/bin/shared/downloadBuiltinKeycloakTheme.ts +0 -264
  791. package/src/bin/shared/getJarFileBasename.ts +0 -9
  792. package/src/bin/shared/getThemeSrcDirPath.ts +0 -47
  793. package/src/bin/start-keycloak.ts +0 -236
  794. package/src/bin/tools/getNpmWorkspaceRootDirPath.ts +0 -27
  795. package/src/bin/tools/unzip.ts +0 -141
  796. package/src/lib/isStorybook.ts +0 -1
  797. package/src/lib/useGetClassName.ts +0 -18
  798. package/src/login/kcContext/createGetKcContext.ts +0 -159
  799. package/src/login/kcContext/getKcContext.ts +0 -21
  800. package/src/login/kcContext/getKcContextFromWindow.ts +0 -11
  801. package/src/login/kcContext/index.ts +0 -1
  802. package/src/login/kcContext/kcContextMocks.ts +0 -630
  803. package/src/login/lib/useDownloadTerms.ts +0 -57
  804. package/src/login/lib/useGetClassName.ts +0 -132
  805. package/src/tools/AndByDiscriminatingKey.ts +0 -25
  806. package/src/tools/Markdown.ts +0 -3
  807. package/src/tools/deepClone.ts +0 -17
  808. package/src/tools/memoize.ts +0 -55
  809. package/tools/AndByDiscriminatingKey.d.ts +0 -5
  810. package/tools/AndByDiscriminatingKey.js +0 -2
  811. package/tools/AndByDiscriminatingKey.js.map +0 -1
  812. package/tools/Markdown.d.ts +0 -2
  813. package/tools/Markdown.js +0 -3
  814. package/tools/Markdown.js.map +0 -1
  815. package/tools/deepClone.d.ts +0 -2
  816. package/tools/deepClone.js +0 -14
  817. package/tools/deepClone.js.map +0 -1
  818. package/tools/memoize.d.ts +0 -7
  819. package/tools/memoize.js +0 -38
  820. package/tools/memoize.js.map +0 -1
  821. /package/account/{kcContext → KcContext}/KcContext.js +0 -0
  822. /package/login/{kcContext → KcContext}/KcContext.js +0 -0
@@ -12,22 +12,24 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  import { jsx as _jsx } from "react/jsx-runtime";
13
13
  import "../../tools/Array.prototype.every";
14
14
  import { useMemo, useReducer, useEffect, Fragment } from "react";
15
+ import { assert } from "tsafe/assert";
15
16
  import { id } from "tsafe/id";
17
+ import { structuredCloneButFunctions } from "../../tools/structuredCloneButFunctions";
16
18
  import { useConstCallback } from "../../tools/useConstCallback";
17
19
  import { emailRegexp } from "../../tools/emailRegExp";
18
- import { assert } from "tsafe/assert";
19
20
  import { formatNumber } from "../../tools/formatNumber";
20
- import { createUseInsertScriptTags } from "../../tools/useInsertScriptTags";
21
- const { useInsertScriptTags } = createUseInsertScriptTags();
21
+ import { useInsertScriptTags } from "../../tools/useInsertScriptTags";
22
+ assert();
22
23
  export function useUserProfileForm(params) {
23
24
  var _a, _b;
24
25
  const { kcContext, i18n, doMakeUserConfirmPassword } = params;
25
26
  const { insertScriptTags } = useInsertScriptTags({
26
- "scriptTags": Object.keys((_b = (_a = kcContext.profile) === null || _a === void 0 ? void 0 : _a.html5DataAnnotations) !== null && _b !== void 0 ? _b : {})
27
+ componentOrHookName: "useUserProfileForm",
28
+ scriptTags: Object.keys((_b = (_a = kcContext.profile) === null || _a === void 0 ? void 0 : _a.html5DataAnnotations) !== null && _b !== void 0 ? _b : {})
27
29
  .filter(key => key !== "kcMultivalued" && key !== "kcNumberFormat") // NOTE: Keycloakify handles it.
28
30
  .map(key => ({
29
- "type": "module",
30
- "src": `${kcContext.url.resourcesPath}/js/${key}.js`
31
+ type: "module",
32
+ src: `${kcContext.url.resourcesPath}/js/${key}.js`
31
33
  }))
32
34
  });
33
35
  useEffect(() => {
@@ -38,170 +40,213 @@ export function useUserProfileForm(params) {
38
40
  i18n
39
41
  });
40
42
  const initialState = useMemo(() => {
43
+ var _a, _b;
41
44
  // NOTE: We don't use te kcContext.profile.attributes directly because
42
45
  // they don't includes the password and password confirm fields and we want to add them.
43
- // Also, we want to polyfill the attributes for older Keycloak version before User Profile was introduced.
44
- // Finally we want to patch the changes made by Keycloak on the attributes format so we have an homogeneous
45
- // attributes format to work with.
46
- const syntheticAttributes = (() => {
47
- const syntheticAttributes = [];
48
- const attributes = (() => {
49
- var _a;
50
- retrocompat_patch: {
51
- if ("profile" in kcContext && "attributes" in kcContext.profile && kcContext.profile.attributes.length !== 0) {
52
- break retrocompat_patch;
53
- }
54
- if ("register" in kcContext && kcContext.register instanceof Object && "formData" in kcContext.register) {
55
- //NOTE: Handle legacy register.ftl page
56
- return ["firstName", "lastName", "email", "username"]
57
- .filter(name => (name !== "username" ? true : !kcContext.realm.registrationEmailAsUsername))
58
- .map(name => {
59
- var _a;
60
- return id({
61
- "name": name,
62
- "displayName": id(`\${${name}}`),
63
- "required": true,
64
- "value": (_a = kcContext.register.formData[name]) !== null && _a !== void 0 ? _a : "",
65
- "html5DataAnnotations": {},
66
- "readOnly": false,
67
- "validators": {},
68
- "annotations": {},
69
- "autocomplete": (() => {
70
- switch (name) {
71
- case "email":
72
- return "email";
73
- case "username":
74
- return "username";
75
- default:
76
- return undefined;
77
- }
78
- })()
79
- });
46
+ // We also want to apply some retro-compatibility and consistency patches.
47
+ const attributes = (() => {
48
+ var _a;
49
+ mock_user_profile_attributes_for_older_keycloak_versions: {
50
+ if ("profile" in kcContext &&
51
+ "attributesByName" in kcContext.profile &&
52
+ Object.keys(kcContext.profile.attributesByName).length !== 0) {
53
+ break mock_user_profile_attributes_for_older_keycloak_versions;
54
+ }
55
+ if ("register" in kcContext && kcContext.register instanceof Object && "formData" in kcContext.register) {
56
+ //NOTE: Handle legacy register.ftl page
57
+ return ["firstName", "lastName", "email", "username"]
58
+ .filter(name => (name !== "username" ? true : !kcContext.realm.registrationEmailAsUsername))
59
+ .map(name => {
60
+ var _a;
61
+ return id({
62
+ name: name,
63
+ displayName: id(`\${${name}}`),
64
+ required: true,
65
+ value: (_a = kcContext.register.formData[name]) !== null && _a !== void 0 ? _a : "",
66
+ html5DataAnnotations: {},
67
+ readOnly: false,
68
+ validators: {},
69
+ annotations: {},
70
+ autocomplete: (() => {
71
+ switch (name) {
72
+ case "email":
73
+ return "email";
74
+ case "username":
75
+ return "username";
76
+ default:
77
+ return undefined;
78
+ }
79
+ })()
80
80
  });
81
- }
82
- if ("user" in kcContext && kcContext.user instanceof Object) {
83
- //NOTE: Handle legacy login-update-profile.ftl
84
- return ["username", "email", "firstName", "lastName"]
85
- .filter(name => (name !== "username" ? true : kcContext.user.editUsernameAllowed))
86
- .map(name => {
87
- var _a;
88
- return id({
89
- "name": name,
90
- "displayName": id(`\${${name}}`),
91
- "required": true,
92
- "value": (_a = kcContext.user[name]) !== null && _a !== void 0 ? _a : "",
93
- "html5DataAnnotations": {},
94
- "readOnly": false,
95
- "validators": {},
96
- "annotations": {},
97
- "autocomplete": (() => {
98
- switch (name) {
99
- case "email":
100
- return "email";
101
- case "username":
102
- return "username";
103
- default:
104
- return undefined;
105
- }
106
- })()
107
- });
81
+ });
82
+ }
83
+ if ("user" in kcContext && kcContext.user instanceof Object) {
84
+ //NOTE: Handle legacy login-update-profile.ftl
85
+ return ["username", "email", "firstName", "lastName"]
86
+ .filter(name => (name !== "username" ? true : kcContext.user.editUsernameAllowed))
87
+ .map(name => {
88
+ var _a;
89
+ return id({
90
+ name: name,
91
+ displayName: id(`\${${name}}`),
92
+ required: true,
93
+ value: (_a = kcContext.user[name]) !== null && _a !== void 0 ? _a : "",
94
+ html5DataAnnotations: {},
95
+ readOnly: false,
96
+ validators: {},
97
+ annotations: {},
98
+ autocomplete: (() => {
99
+ switch (name) {
100
+ case "email":
101
+ return "email";
102
+ case "username":
103
+ return "username";
104
+ default:
105
+ return undefined;
106
+ }
107
+ })()
108
108
  });
109
- }
110
- if ("email" in kcContext && kcContext.email instanceof Object) {
111
- //NOTE: Handle legacy update-email.ftl
112
- return [
113
- id({
114
- "name": "email",
115
- "displayName": id(`\${email}`),
116
- "required": true,
117
- "value": (_a = kcContext.email.value) !== null && _a !== void 0 ? _a : "",
118
- "html5DataAnnotations": {},
119
- "readOnly": false,
120
- "validators": {},
121
- "annotations": {},
122
- "autocomplete": "email"
123
- })
124
- ];
125
- }
126
- assert(false, "Unable to mock user profile from the current kcContext");
127
- }
128
- return kcContext.profile.attributes.map(attribute_pre_group_patch => {
129
- if (typeof attribute_pre_group_patch.group === "string" && attribute_pre_group_patch.group !== "") {
130
- const _a = attribute_pre_group_patch, { group, groupDisplayHeader, groupDisplayDescription, groupAnnotations } = _a, rest = __rest(_a, ["group", "groupDisplayHeader", "groupDisplayDescription", "groupAnnotations"]);
131
- return id(Object.assign(Object.assign({}, rest), { "group": {
132
- "name": group,
133
- "displayHeader": groupDisplayHeader,
134
- "displayDescription": groupDisplayDescription,
135
- "html5DataAnnotations": {}
136
- } }));
137
- }
138
- return attribute_pre_group_patch;
139
- });
140
- })();
141
- for (const attribute of attributes) {
142
- syntheticAttributes.push(attribute);
143
- add_password_and_password_confirm: {
144
- if (!kcContext.passwordRequired) {
145
- break add_password_and_password_confirm;
146
- }
147
- if (attribute.name !== (kcContext.realm.registrationEmailAsUsername ? "email" : "username")) {
148
- // NOTE: We want to add password and password-confirm after the field that identifies the user.
149
- // It's either email or username.
150
- break add_password_and_password_confirm;
151
- }
152
- syntheticAttributes.push(Object.assign({ "name": "password", "displayName": id("${password}"), "required": true, "readOnly": false, "validators": {}, "annotations": {}, "autocomplete": "new-password", "html5DataAnnotations": {} }, { "groupAnnotations": {} }), Object.assign({ "name": "password-confirm", "displayName": id("${passwordConfirm}"), "required": true, "readOnly": false, "validators": {}, "annotations": {}, "html5DataAnnotations": {}, "autocomplete": "new-password" }, { "groupAnnotations": {} }));
109
+ });
153
110
  }
154
- }
155
- return syntheticAttributes;
111
+ if ("email" in kcContext && kcContext.email instanceof Object) {
112
+ //NOTE: Handle legacy update-email.ftl
113
+ return [
114
+ id({
115
+ name: "email",
116
+ displayName: id(`\${email}`),
117
+ required: true,
118
+ value: (_a = kcContext.email.value) !== null && _a !== void 0 ? _a : "",
119
+ html5DataAnnotations: {},
120
+ readOnly: false,
121
+ validators: {},
122
+ annotations: {},
123
+ autocomplete: "email"
124
+ })
125
+ ];
126
+ }
127
+ assert(false, "Unable to mock user profile from the current kcContext");
128
+ }
129
+ return Object.values(kcContext.profile.attributesByName).map(structuredCloneButFunctions);
156
130
  })();
157
- const initialFormFieldState = (() => {
131
+ // Retro-compatibility and consistency patches
132
+ attributes.forEach(attribute => {
158
133
  var _a, _b, _c;
159
- const out = [];
160
- for (const attribute of syntheticAttributes) {
161
- handle_multi_valued_attribute: {
162
- if (!attribute.multivalued) {
163
- break handle_multi_valued_attribute;
134
+ patch_legacy_group: {
135
+ if (typeof attribute.group !== "string") {
136
+ break patch_legacy_group;
137
+ }
138
+ const { group, groupDisplayHeader, groupDisplayDescription /*, groupAnnotations*/ } = attribute;
139
+ delete attribute.group;
140
+ // @ts-expect-error
141
+ delete attribute.groupDisplayHeader;
142
+ // @ts-expect-error
143
+ delete attribute.groupDisplayDescription;
144
+ // @ts-expect-error
145
+ delete attribute.groupAnnotations;
146
+ if (group === "") {
147
+ break patch_legacy_group;
148
+ }
149
+ attribute.group = {
150
+ name: group,
151
+ displayHeader: groupDisplayHeader,
152
+ displayDescription: groupDisplayDescription,
153
+ html5DataAnnotations: {}
154
+ };
155
+ }
156
+ // Attributes with options rendered by default as select inputs
157
+ if (attribute.validators.options !== undefined && attribute.annotations.inputType === undefined) {
158
+ attribute.annotations.inputType = "select";
159
+ }
160
+ // Consistency patch on values/value property
161
+ {
162
+ if (getIsMultivaluedSingleField({ attribute })) {
163
+ attribute.multivalued = true;
164
+ }
165
+ if (attribute.multivalued) {
166
+ (_a = attribute.values) !== null && _a !== void 0 ? _a : (attribute.values = attribute.value !== undefined ? [attribute.value] : []);
167
+ delete attribute.value;
168
+ }
169
+ else {
170
+ (_b = attribute.value) !== null && _b !== void 0 ? _b : (attribute.value = (_c = attribute.values) === null || _c === void 0 ? void 0 : _c[0]);
171
+ delete attribute.values;
172
+ }
173
+ }
174
+ });
175
+ add_password_and_password_confirm: {
176
+ if (!kcContext.passwordRequired) {
177
+ break add_password_and_password_confirm;
178
+ }
179
+ attributes.forEach((attribute, i) => {
180
+ if (attribute.name !== (kcContext.realm.registrationEmailAsUsername ? "email" : "username")) {
181
+ // NOTE: We want to add password and password-confirm after the field that identifies the user.
182
+ // It's either email or username.
183
+ return;
184
+ }
185
+ attributes.splice(i + 1, 0, {
186
+ name: "password",
187
+ displayName: id("${password}"),
188
+ required: true,
189
+ readOnly: false,
190
+ validators: {},
191
+ annotations: {},
192
+ autocomplete: "new-password",
193
+ html5DataAnnotations: {}
194
+ }, {
195
+ name: "password-confirm",
196
+ displayName: id("${passwordConfirm}"),
197
+ required: true,
198
+ readOnly: false,
199
+ validators: {},
200
+ annotations: {},
201
+ html5DataAnnotations: {},
202
+ autocomplete: "new-password"
203
+ });
204
+ });
205
+ }
206
+ const initialFormFieldState = [];
207
+ for (const attribute of attributes) {
208
+ handle_multi_valued_attribute: {
209
+ if (!attribute.multivalued) {
210
+ break handle_multi_valued_attribute;
211
+ }
212
+ const values = ((_a = attribute.values) === null || _a === void 0 ? void 0 : _a.length) ? attribute.values : [""];
213
+ apply_validator_min_range: {
214
+ if (getIsMultivaluedSingleField({ attribute })) {
215
+ break apply_validator_min_range;
164
216
  }
165
- const values = (_a = attribute.values) !== null && _a !== void 0 ? _a : [""];
166
- apply_validator_min_range: {
167
- if ((_b = attribute.annotations.inputType) === null || _b === void 0 ? void 0 : _b.startsWith("multiselect")) {
168
- break apply_validator_min_range;
169
- }
170
- const validator = attribute.validators.multivalued;
171
- if (validator === undefined) {
172
- break apply_validator_min_range;
173
- }
174
- const { min: minStr } = validator;
175
- if (minStr === undefined) {
176
- break apply_validator_min_range;
177
- }
178
- const min = parseInt(`${minStr}`);
179
- for (let index = values.length; index < min; index++) {
180
- values.push("");
181
- }
217
+ const validator = attribute.validators.multivalued;
218
+ if (validator === undefined) {
219
+ break apply_validator_min_range;
220
+ }
221
+ const { min: minStr } = validator;
222
+ if (!minStr) {
223
+ break apply_validator_min_range;
224
+ }
225
+ const min = parseInt(`${minStr}`);
226
+ for (let index = values.length; index < min; index++) {
227
+ values.push("");
182
228
  }
183
- out.push({
184
- attribute,
185
- "valueOrValues": values
186
- });
187
- continue;
188
229
  }
189
- out.push({
230
+ initialFormFieldState.push({
190
231
  attribute,
191
- "valueOrValues": (_c = attribute.value) !== null && _c !== void 0 ? _c : ""
232
+ valueOrValues: values
192
233
  });
234
+ continue;
193
235
  }
194
- return out;
195
- })();
236
+ initialFormFieldState.push({
237
+ attribute,
238
+ valueOrValues: (_b = attribute.value) !== null && _b !== void 0 ? _b : ""
239
+ });
240
+ }
196
241
  const initialState = {
197
- "formFieldStates": initialFormFieldState.map(({ attribute, valueOrValues }) => ({
242
+ formFieldStates: initialFormFieldState.map(({ attribute, valueOrValues }) => ({
198
243
  attribute,
199
- "errors": getErrors({
200
- "attributeName": attribute.name,
201
- "formFieldStates": initialFormFieldState
244
+ errors: getErrors({
245
+ attributeName: attribute.name,
246
+ formFieldStates: initialFormFieldState
202
247
  }),
203
- "hasLostFocusAtLeastOnce": valueOrValues instanceof Array ? valueOrValues.map(() => false) : false,
204
- "valueOrValues": valueOrValues
248
+ hasLostFocusAtLeastOnce: valueOrValues instanceof Array && !getIsMultivaluedSingleField({ attribute }) ? valueOrValues.map(() => false) : false,
249
+ valueOrValues: valueOrValues
205
250
  }))
206
251
  };
207
252
  return initialState;
@@ -217,7 +262,7 @@ export function useUserProfileForm(params) {
217
262
  apply_formatters: {
218
263
  const { attribute } = formFieldState;
219
264
  const { kcNumberFormat } = (_a = attribute.html5DataAnnotations) !== null && _a !== void 0 ? _a : {};
220
- if (kcNumberFormat === undefined) {
265
+ if (!kcNumberFormat) {
221
266
  break apply_formatters;
222
267
  }
223
268
  if (formFieldState.valueOrValues instanceof Array) {
@@ -228,8 +273,8 @@ export function useUserProfileForm(params) {
228
273
  }
229
274
  }
230
275
  formFieldState.errors = getErrors({
231
- "attributeName": formAction.name,
232
- "formFieldStates": state.formFieldStates
276
+ attributeName: formAction.name,
277
+ formFieldStates: state.formFieldStates
233
278
  });
234
279
  update_password_confirm: {
235
280
  if (doMakeUserConfirmPassword) {
@@ -239,9 +284,9 @@ export function useUserProfileForm(params) {
239
284
  break update_password_confirm;
240
285
  }
241
286
  state = reducer(state, {
242
- "action": "update",
243
- "name": "password-confirm",
244
- "valueOrValues": formAction.valueOrValues
287
+ action: "update",
288
+ name: "password-confirm",
289
+ valueOrValues: formAction.valueOrValues
245
290
  });
246
291
  }
247
292
  return;
@@ -260,9 +305,9 @@ export function useUserProfileForm(params) {
260
305
  return Object.assign({}, state);
261
306
  }, initialState);
262
307
  const formState = useMemo(() => ({
263
- "formFieldStates": state.formFieldStates.map((_a) => {
308
+ formFieldStates: state.formFieldStates.map((_a) => {
264
309
  var { errors, hasLostFocusAtLeastOnce: hasLostFocusAtLeastOnceOrArr, attribute } = _a, valueOrValuesWrap = __rest(_a, ["errors", "hasLostFocusAtLeastOnce", "attribute"]);
265
- return (Object.assign({ "displayableErrors": errors.filter(error => {
310
+ return (Object.assign({ displayableErrors: errors.filter(error => {
266
311
  const hasLostFocusAtLeastOnce = typeof hasLostFocusAtLeastOnceOrArr === "boolean"
267
312
  ? hasLostFocusAtLeastOnceOrArr
268
313
  : error.fieldIndex !== undefined
@@ -316,19 +361,20 @@ export function useUserProfileForm(params) {
316
361
  }
317
362
  }), attribute }, valueOrValuesWrap));
318
363
  }),
319
- "isFormSubmittable": state.formFieldStates.every(({ errors }) => errors.length === 0)
364
+ isFormSubmittable: state.formFieldStates.every(({ errors }) => errors.length === 0)
320
365
  }), [state]);
321
366
  return {
322
367
  formState,
323
368
  dispatchFormAction
324
369
  };
325
370
  }
371
+ assert();
326
372
  function useGetErrors(params) {
327
373
  const { kcContext, i18n } = params;
328
374
  const { messagesPerField, passwordPolicies } = kcContext;
329
375
  const { msg, msgStr, advancedMsg, advancedMsgStr } = i18n;
330
376
  const getErrors = useConstCallback((params) => {
331
- var _a, _b, _c, _d;
377
+ var _a, _b;
332
378
  const { attributeName, formFieldStates } = params;
333
379
  const formFieldState = formFieldStates.find(({ attribute }) => attribute.name === attributeName);
334
380
  assert(formFieldState !== undefined);
@@ -338,7 +384,7 @@ function useGetErrors(params) {
338
384
  let { valueOrValues } = formFieldState;
339
385
  unFormat_number: {
340
386
  const { kcNumberUnFormat } = (_a = attribute.html5DataAnnotations) !== null && _a !== void 0 ? _a : {};
341
- if (kcNumberUnFormat === undefined) {
387
+ if (!kcNumberUnFormat) {
342
388
  break unFormat_number;
343
389
  }
344
390
  if (valueOrValues instanceof Array) {
@@ -353,7 +399,7 @@ function useGetErrors(params) {
353
399
  assert(attribute !== undefined);
354
400
  server_side_error: {
355
401
  if (attribute.multivalued) {
356
- const defaultValues = (_a = attribute.values) !== null && _a !== void 0 ? _a : [""];
402
+ const defaultValues = ((_a = attribute.values) === null || _a === void 0 ? void 0 : _a.length) ? attribute.values : [""];
357
403
  assert(valueOrValues instanceof Array);
358
404
  const values = valueOrValues;
359
405
  if (JSON.stringify(defaultValues) !== JSON.stringify(values.slice(0, defaultValues.length))) {
@@ -372,7 +418,7 @@ function useGetErrors(params) {
372
418
  try {
373
419
  doesErrorExist = messagesPerField.existsError(attributeName);
374
420
  }
375
- catch (_e) {
421
+ catch (_c) {
376
422
  break server_side_error;
377
423
  }
378
424
  if (!doesErrorExist) {
@@ -382,10 +428,12 @@ function useGetErrors(params) {
382
428
  return [
383
429
  {
384
430
  errorMessageStr,
385
- "errorMessage": _jsx("span", { children: errorMessageStr }, 0),
386
- "fieldIndex": undefined,
387
- "source": {
388
- "type": "server"
431
+ errorMessage: (_jsx("span", { dangerouslySetInnerHTML: {
432
+ __html: errorMessageStr
433
+ } }, 0)),
434
+ fieldIndex: undefined,
435
+ source: {
436
+ type: "server"
389
437
  }
390
438
  }
391
439
  ];
@@ -394,7 +442,7 @@ function useGetErrors(params) {
394
442
  if (!attribute.multivalued) {
395
443
  break handle_multi_valued_multi_fields;
396
444
  }
397
- if ((_c = attribute.annotations.inputType) === null || _c === void 0 ? void 0 : _c.startsWith("multiselect")) {
445
+ if (getIsMultivaluedSingleField({ attribute })) {
398
446
  break handle_multi_valued_multi_fields;
399
447
  }
400
448
  assert(valueOrValues instanceof Array);
@@ -403,12 +451,12 @@ function useGetErrors(params) {
403
451
  .map((...[, index]) => {
404
452
  const specificValueErrors = getErrors({
405
453
  attributeName,
406
- "formFieldStates": formFieldStates.map(formFieldState => {
454
+ formFieldStates: formFieldStates.map(formFieldState => {
407
455
  if (formFieldState.attribute.name === attributeName) {
408
456
  assert(formFieldState.valueOrValues instanceof Array);
409
457
  return {
410
- "attribute": Object.assign(Object.assign({}, attribute), { "annotations": Object.assign(Object.assign({}, attribute.annotations), { "inputType": undefined }), "multivalued": false }),
411
- "valueOrValues": formFieldState.valueOrValues[index]
458
+ attribute: Object.assign(Object.assign({}, attribute), { annotations: Object.assign(Object.assign({}, attribute.annotations), { inputType: undefined }), multivalued: false }),
459
+ valueOrValues: formFieldState.valueOrValues[index]
412
460
  };
413
461
  }
414
462
  return formFieldState;
@@ -421,7 +469,7 @@ function useGetErrors(params) {
421
469
  }
422
470
  return true;
423
471
  })
424
- .map((error) => (Object.assign(Object.assign({}, error), { "fieldIndex": index })));
472
+ .map((error) => (Object.assign(Object.assign({}, error), { fieldIndex: index })));
425
473
  })
426
474
  .reduce((acc, errors) => [...acc, ...errors], []);
427
475
  required_field: {
@@ -433,12 +481,12 @@ function useGetErrors(params) {
433
481
  }
434
482
  const msgArgs = ["error-user-attribute-required"];
435
483
  errors.push({
436
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
437
- "errorMessageStr": msgStr(...msgArgs),
438
- "fieldIndex": undefined,
439
- "source": {
440
- "type": "other",
441
- "rule": "requiredField"
484
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
485
+ errorMessageStr: msgStr(...msgArgs),
486
+ fieldIndex: undefined,
487
+ source: {
488
+ type: "other",
489
+ rule: "requiredField"
442
490
  }
443
491
  });
444
492
  }
@@ -448,7 +496,7 @@ function useGetErrors(params) {
448
496
  if (!attribute.multivalued) {
449
497
  break handle_multi_valued_single_field;
450
498
  }
451
- if (!((_d = attribute.annotations.inputType) === null || _d === void 0 ? void 0 : _d.startsWith("multiselect"))) {
499
+ if (!getIsMultivaluedSingleField({ attribute })) {
452
500
  break handle_multi_valued_single_field;
453
501
  }
454
502
  const validatorName = "multivalued";
@@ -457,10 +505,10 @@ function useGetErrors(params) {
457
505
  return [];
458
506
  }
459
507
  const { min: minStr } = validator;
460
- const min = minStr !== undefined ? parseInt(`${minStr}`) : attribute.required ? 1 : 0;
508
+ const min = minStr ? parseInt(`${minStr}`) : attribute.required ? 1 : 0;
461
509
  assert(!isNaN(min));
462
510
  const { max: maxStr } = validator;
463
- const max = maxStr === undefined ? Infinity : parseInt(`${maxStr}`);
511
+ const max = !maxStr ? Infinity : parseInt(`${maxStr}`);
464
512
  assert(!isNaN(max));
465
513
  assert(valueOrValues instanceof Array);
466
514
  const values = valueOrValues;
@@ -470,12 +518,12 @@ function useGetErrors(params) {
470
518
  const msgArgs = ["error-invalid-multivalued-size", `${min}`, `${max}`];
471
519
  return [
472
520
  {
473
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, 0),
474
- "errorMessageStr": msgStr(...msgArgs),
475
- "fieldIndex": undefined,
476
- "source": {
477
- "type": "validator",
478
- "name": validatorName
521
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, 0),
522
+ errorMessageStr: msgStr(...msgArgs),
523
+ fieldIndex: undefined,
524
+ source: {
525
+ type: "validator",
526
+ name: validatorName
479
527
  }
480
528
  }
481
529
  ];
@@ -493,7 +541,7 @@ function useGetErrors(params) {
493
541
  check_password_policy_x: {
494
542
  const policyName = "length";
495
543
  const policy = passwordPolicies[policyName];
496
- if (policy === undefined) {
544
+ if (!policy) {
497
545
  break check_password_policy_x;
498
546
  }
499
547
  const minLength = policy;
@@ -502,19 +550,19 @@ function useGetErrors(params) {
502
550
  }
503
551
  const msgArgs = ["invalidPasswordMinLengthMessage", `${minLength}`];
504
552
  errors.push({
505
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
506
- "errorMessageStr": msgStr(...msgArgs),
507
- "fieldIndex": undefined,
508
- "source": {
509
- "type": "passwordPolicy",
510
- "name": policyName
553
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
554
+ errorMessageStr: msgStr(...msgArgs),
555
+ fieldIndex: undefined,
556
+ source: {
557
+ type: "passwordPolicy",
558
+ name: policyName
511
559
  }
512
560
  });
513
561
  }
514
562
  check_password_policy_x: {
515
563
  const policyName = "digits";
516
564
  const policy = passwordPolicies[policyName];
517
- if (policy === undefined) {
565
+ if (!policy) {
518
566
  break check_password_policy_x;
519
567
  }
520
568
  const minNumberOfDigits = policy;
@@ -523,19 +571,19 @@ function useGetErrors(params) {
523
571
  }
524
572
  const msgArgs = ["invalidPasswordMinDigitsMessage", `${minNumberOfDigits}`];
525
573
  errors.push({
526
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
527
- "errorMessageStr": msgStr(...msgArgs),
528
- "fieldIndex": undefined,
529
- "source": {
530
- "type": "passwordPolicy",
531
- "name": policyName
574
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
575
+ errorMessageStr: msgStr(...msgArgs),
576
+ fieldIndex: undefined,
577
+ source: {
578
+ type: "passwordPolicy",
579
+ name: policyName
532
580
  }
533
581
  });
534
582
  }
535
583
  check_password_policy_x: {
536
584
  const policyName = "lowerCase";
537
585
  const policy = passwordPolicies[policyName];
538
- if (policy === undefined) {
586
+ if (!policy) {
539
587
  break check_password_policy_x;
540
588
  }
541
589
  const minNumberOfLowerCaseChar = policy;
@@ -544,19 +592,19 @@ function useGetErrors(params) {
544
592
  }
545
593
  const msgArgs = ["invalidPasswordMinLowerCaseCharsMessage", `${minNumberOfLowerCaseChar}`];
546
594
  errors.push({
547
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
548
- "errorMessageStr": msgStr(...msgArgs),
549
- "fieldIndex": undefined,
550
- "source": {
551
- "type": "passwordPolicy",
552
- "name": policyName
595
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
596
+ errorMessageStr: msgStr(...msgArgs),
597
+ fieldIndex: undefined,
598
+ source: {
599
+ type: "passwordPolicy",
600
+ name: policyName
553
601
  }
554
602
  });
555
603
  }
556
604
  check_password_policy_x: {
557
605
  const policyName = "upperCase";
558
606
  const policy = passwordPolicies[policyName];
559
- if (policy === undefined) {
607
+ if (!policy) {
560
608
  break check_password_policy_x;
561
609
  }
562
610
  const minNumberOfUpperCaseChar = policy;
@@ -565,19 +613,19 @@ function useGetErrors(params) {
565
613
  }
566
614
  const msgArgs = ["invalidPasswordMinUpperCaseCharsMessage", `${minNumberOfUpperCaseChar}`];
567
615
  errors.push({
568
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
569
- "errorMessageStr": msgStr(...msgArgs),
570
- "fieldIndex": undefined,
571
- "source": {
572
- "type": "passwordPolicy",
573
- "name": policyName
616
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
617
+ errorMessageStr: msgStr(...msgArgs),
618
+ fieldIndex: undefined,
619
+ source: {
620
+ type: "passwordPolicy",
621
+ name: policyName
574
622
  }
575
623
  });
576
624
  }
577
625
  check_password_policy_x: {
578
626
  const policyName = "specialChars";
579
627
  const policy = passwordPolicies[policyName];
580
- if (policy === undefined) {
628
+ if (!policy) {
581
629
  break check_password_policy_x;
582
630
  }
583
631
  const minNumberOfSpecialChar = policy;
@@ -586,12 +634,12 @@ function useGetErrors(params) {
586
634
  }
587
635
  const msgArgs = ["invalidPasswordMinSpecialCharsMessage", `${minNumberOfSpecialChar}`];
588
636
  errors.push({
589
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
590
- "errorMessageStr": msgStr(...msgArgs),
591
- "fieldIndex": undefined,
592
- "source": {
593
- "type": "passwordPolicy",
594
- "name": policyName
637
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
638
+ errorMessageStr: msgStr(...msgArgs),
639
+ fieldIndex: undefined,
640
+ source: {
641
+ type: "passwordPolicy",
642
+ name: policyName
595
643
  }
596
644
  });
597
645
  }
@@ -602,7 +650,7 @@ function useGetErrors(params) {
602
650
  break check_password_policy_x;
603
651
  }
604
652
  const usernameFormFieldState = formFieldStates.find(formFieldState => formFieldState.attribute.name === "username");
605
- if (usernameFormFieldState === undefined) {
653
+ if (!usernameFormFieldState) {
606
654
  break check_password_policy_x;
607
655
  }
608
656
  const usernameValue = (() => {
@@ -611,24 +659,27 @@ function useGetErrors(params) {
611
659
  assert(typeof valueOrValues === "string");
612
660
  unFormat_number: {
613
661
  const { kcNumberUnFormat } = (_a = attribute.html5DataAnnotations) !== null && _a !== void 0 ? _a : {};
614
- if (kcNumberUnFormat === undefined) {
662
+ if (!kcNumberUnFormat) {
615
663
  break unFormat_number;
616
664
  }
617
665
  valueOrValues = formatNumber(valueOrValues, kcNumberUnFormat);
618
666
  }
619
667
  return valueOrValues;
620
668
  })();
669
+ if (usernameValue === "") {
670
+ break check_password_policy_x;
671
+ }
621
672
  if (value !== usernameValue) {
622
673
  break check_password_policy_x;
623
674
  }
624
675
  const msgArgs = ["invalidPasswordNotUsernameMessage"];
625
676
  errors.push({
626
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
627
- "errorMessageStr": msgStr(...msgArgs),
628
- "fieldIndex": undefined,
629
- "source": {
630
- "type": "passwordPolicy",
631
- "name": policyName
677
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
678
+ errorMessageStr: msgStr(...msgArgs),
679
+ fieldIndex: undefined,
680
+ source: {
681
+ type: "passwordPolicy",
682
+ name: policyName
632
683
  }
633
684
  });
634
685
  }
@@ -639,24 +690,27 @@ function useGetErrors(params) {
639
690
  break check_password_policy_x;
640
691
  }
641
692
  const emailFormFieldState = formFieldStates.find(formFieldState => formFieldState.attribute.name === "email");
642
- if (emailFormFieldState === undefined) {
693
+ if (!emailFormFieldState) {
643
694
  break check_password_policy_x;
644
695
  }
645
696
  assert(typeof emailFormFieldState.valueOrValues === "string");
646
697
  {
647
698
  const emailValue = emailFormFieldState.valueOrValues;
699
+ if (emailValue === "") {
700
+ break check_password_policy_x;
701
+ }
648
702
  if (value !== emailValue) {
649
703
  break check_password_policy_x;
650
704
  }
651
705
  }
652
706
  const msgArgs = ["invalidPasswordNotEmailMessage"];
653
707
  errors.push({
654
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
655
- "errorMessageStr": msgStr(...msgArgs),
656
- "fieldIndex": undefined,
657
- "source": {
658
- "type": "passwordPolicy",
659
- "name": policyName
708
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
709
+ errorMessageStr: msgStr(...msgArgs),
710
+ fieldIndex: undefined,
711
+ source: {
712
+ type: "passwordPolicy",
713
+ name: policyName
660
714
  }
661
715
  });
662
716
  }
@@ -676,12 +730,12 @@ function useGetErrors(params) {
676
730
  }
677
731
  const msgArgs = ["invalidPasswordConfirmMessage"];
678
732
  errors.push({
679
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
680
- "errorMessageStr": msgStr(...msgArgs),
681
- "fieldIndex": undefined,
682
- "source": {
683
- "type": "other",
684
- "rule": "passwordConfirmMatchesPassword"
733
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
734
+ errorMessageStr: msgStr(...msgArgs),
735
+ fieldIndex: undefined,
736
+ source: {
737
+ type: "other",
738
+ rule: "passwordConfirmMatchesPassword"
685
739
  }
686
740
  });
687
741
  }
@@ -695,19 +749,19 @@ function useGetErrors(params) {
695
749
  }
696
750
  const msgArgs = ["error-user-attribute-required"];
697
751
  errors.push({
698
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
699
- "errorMessageStr": msgStr(...msgArgs),
700
- "fieldIndex": undefined,
701
- "source": {
702
- "type": "other",
703
- "rule": "requiredField"
752
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
753
+ errorMessageStr: msgStr(...msgArgs),
754
+ fieldIndex: undefined,
755
+ source: {
756
+ type: "other",
757
+ rule: "requiredField"
704
758
  }
705
759
  });
706
760
  }
707
761
  validator_x: {
708
762
  const validatorName = "length";
709
763
  const validator = validators[validatorName];
710
- if (validator === undefined) {
764
+ if (!validator) {
711
765
  break validator_x;
712
766
  }
713
767
  const { "ignore.empty.value": ignoreEmptyValue = false, max, min } = validator;
@@ -715,24 +769,24 @@ function useGetErrors(params) {
715
769
  break validator_x;
716
770
  }
717
771
  const source = {
718
- "type": "validator",
719
- "name": validatorName
772
+ type: "validator",
773
+ name: validatorName
720
774
  };
721
- if (max !== undefined && value.length > parseInt(`${max}`)) {
775
+ if (max && value.length > parseInt(`${max}`)) {
722
776
  const msgArgs = ["error-invalid-length-too-long", `${max}`];
723
777
  errors.push({
724
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
725
- "errorMessageStr": msgStr(...msgArgs),
726
- "fieldIndex": undefined,
778
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
779
+ errorMessageStr: msgStr(...msgArgs),
780
+ fieldIndex: undefined,
727
781
  source
728
782
  });
729
783
  }
730
- if (min !== undefined && value.length < parseInt(`${min}`)) {
784
+ if (min && value.length < parseInt(`${min}`)) {
731
785
  const msgArgs = ["error-invalid-length-too-short", `${min}`];
732
786
  errors.push({
733
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
734
- "errorMessageStr": msgStr(...msgArgs),
735
- "fieldIndex": undefined,
787
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
788
+ errorMessageStr: msgStr(...msgArgs),
789
+ fieldIndex: undefined,
736
790
  source
737
791
  });
738
792
  }
@@ -752,12 +806,12 @@ function useGetErrors(params) {
752
806
  }
753
807
  const msgArgs = [errorMessageKey !== null && errorMessageKey !== void 0 ? errorMessageKey : id("shouldMatchPattern"), pattern];
754
808
  errors.push({
755
- "errorMessage": _jsx(Fragment, { children: advancedMsg(...msgArgs) }, `${attributeName}-${errors.length}`),
756
- "errorMessageStr": advancedMsgStr(...msgArgs),
757
- "fieldIndex": undefined,
758
- "source": {
759
- "type": "validator",
760
- "name": validatorName
809
+ errorMessage: _jsx(Fragment, { children: advancedMsg(...msgArgs) }, `${attributeName}-${errors.length}`),
810
+ errorMessageStr: advancedMsgStr(...msgArgs),
811
+ fieldIndex: undefined,
812
+ source: {
813
+ type: "validator",
814
+ name: validatorName
761
815
  }
762
816
  });
763
817
  }
@@ -782,12 +836,12 @@ function useGetErrors(params) {
782
836
  }
783
837
  const msgArgs = [id("invalidEmailMessage")];
784
838
  errors.push({
785
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
786
- "errorMessageStr": msgStr(...msgArgs),
787
- "fieldIndex": undefined,
788
- "source": {
789
- "type": "validator",
790
- "name": validatorName
839
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
840
+ errorMessageStr: msgStr(...msgArgs),
841
+ fieldIndex: undefined,
842
+ source: {
843
+ type: "validator",
844
+ name: validatorName
791
845
  }
792
846
  });
793
847
  }
@@ -803,35 +857,35 @@ function useGetErrors(params) {
803
857
  }
804
858
  const intValue = parseInt(value);
805
859
  const source = {
806
- "type": "validator",
807
- "name": validatorName
860
+ type: "validator",
861
+ name: validatorName
808
862
  };
809
863
  if (isNaN(intValue)) {
810
864
  const msgArgs = ["mustBeAnInteger"];
811
865
  errors.push({
812
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
813
- "errorMessageStr": msgStr(...msgArgs),
814
- "fieldIndex": undefined,
866
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
867
+ errorMessageStr: msgStr(...msgArgs),
868
+ fieldIndex: undefined,
815
869
  source
816
870
  });
817
871
  break validator_x;
818
872
  }
819
- if (max !== undefined && intValue > parseInt(`${max}`)) {
873
+ if (max && intValue > parseInt(`${max}`)) {
820
874
  const msgArgs = ["error-number-out-of-range-too-big", `${max}`];
821
875
  errors.push({
822
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
823
- "errorMessageStr": msgStr(...msgArgs),
824
- "fieldIndex": undefined,
876
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
877
+ errorMessageStr: msgStr(...msgArgs),
878
+ fieldIndex: undefined,
825
879
  source
826
880
  });
827
881
  break validator_x;
828
882
  }
829
- if (min !== undefined && intValue < parseInt(`${min}`)) {
883
+ if (min && intValue < parseInt(`${min}`)) {
830
884
  const msgArgs = ["error-number-out-of-range-too-small", `${min}`];
831
885
  errors.push({
832
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
833
- "errorMessageStr": msgStr(...msgArgs),
834
- "fieldIndex": undefined,
886
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
887
+ errorMessageStr: msgStr(...msgArgs),
888
+ fieldIndex: undefined,
835
889
  source
836
890
  });
837
891
  break validator_x;
@@ -851,12 +905,12 @@ function useGetErrors(params) {
851
905
  }
852
906
  const msgArgs = [id("notAValidOption")];
853
907
  errors.push({
854
- "errorMessage": _jsx(Fragment, { children: advancedMsg(...msgArgs) }, `${attributeName}-${errors.length}`),
855
- "errorMessageStr": advancedMsgStr(...msgArgs),
856
- "fieldIndex": undefined,
857
- "source": {
858
- "type": "validator",
859
- "name": validatorName
908
+ errorMessage: _jsx(Fragment, { children: advancedMsg(...msgArgs) }, `${attributeName}-${errors.length}`),
909
+ errorMessageStr: advancedMsgStr(...msgArgs),
910
+ fieldIndex: undefined,
911
+ source: {
912
+ type: "validator",
913
+ name: validatorName
860
914
  }
861
915
  });
862
916
  }
@@ -865,4 +919,59 @@ function useGetErrors(params) {
865
919
  });
866
920
  return { getErrors };
867
921
  }
922
+ function getIsMultivaluedSingleField(params) {
923
+ var _a, _b;
924
+ const { attribute } = params;
925
+ return (_b = (_a = attribute.annotations.inputType) === null || _a === void 0 ? void 0 : _a.startsWith("multiselect")) !== null && _b !== void 0 ? _b : false;
926
+ }
927
+ export function getButtonToDisplayForMultivaluedAttributeField(params) {
928
+ const { attribute, values, fieldIndex } = params;
929
+ const hasRemove = (() => {
930
+ if (values.length === 1) {
931
+ return false;
932
+ }
933
+ const minCount = (() => {
934
+ const { multivalued } = attribute.validators;
935
+ if (multivalued === undefined) {
936
+ return undefined;
937
+ }
938
+ const minStr = multivalued.min;
939
+ if (minStr === undefined) {
940
+ return undefined;
941
+ }
942
+ return parseInt(`${minStr}`);
943
+ })();
944
+ if (minCount === undefined) {
945
+ return true;
946
+ }
947
+ if (values.length === minCount) {
948
+ return false;
949
+ }
950
+ return true;
951
+ })();
952
+ const hasAdd = (() => {
953
+ if (fieldIndex + 1 !== values.length) {
954
+ return false;
955
+ }
956
+ const maxCount = (() => {
957
+ const { multivalued } = attribute.validators;
958
+ if (multivalued === undefined) {
959
+ return undefined;
960
+ }
961
+ const maxStr = multivalued.max;
962
+ if (maxStr === undefined) {
963
+ return undefined;
964
+ }
965
+ return parseInt(`${maxStr}`);
966
+ })();
967
+ if (maxCount === undefined) {
968
+ return false;
969
+ }
970
+ if (values.length === maxCount) {
971
+ return false;
972
+ }
973
+ return true;
974
+ })();
975
+ return { hasRemove, hasAdd };
976
+ }
868
977
  //# sourceMappingURL=useUserProfileForm.js.map