keycloakify 10.0.0-rc.8 → 10.0.0-rc.80

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 (824) 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 +2 -3
  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 +12 -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 -35
  107. package/account/i18n/i18n.js +116 -97
  108. package/account/i18n/i18n.js.map +1 -1
  109. package/account/i18n/index.d.ts +5 -1
  110. package/account/i18n/index.js +2 -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 +7 -8
  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 +5 -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/36.index.js +9980 -0
  148. package/bin/430.index.js +1349 -0
  149. package/bin/440.index.js +1455 -0
  150. package/bin/453.index.js +769 -0
  151. package/bin/456.index.js +6200 -0
  152. package/bin/490.index.js +75195 -0
  153. package/bin/525.index.js +41826 -0
  154. package/bin/526.index.js +973 -0
  155. package/bin/538.index.js +108 -0
  156. package/bin/720.index.js +243 -0
  157. package/bin/751.index.js +732 -0
  158. package/bin/837.index.js +794 -0
  159. package/bin/877.index.js +275 -0
  160. package/bin/932.index.js +269 -0
  161. package/bin/97.index.js +676 -0
  162. package/bin/main.js +7679 -146380
  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 +67 -0
  166. package/bin/shared/buildContext.js.map +1 -0
  167. package/bin/shared/constants.d.ts +17 -0
  168. package/bin/shared/constants.js +58 -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 +10 -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 +23 -23
  202. package/login/Template.js.map +1 -1
  203. package/login/TemplateProps.d.ts +3 -5
  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 +10 -1
  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 +11 -2
  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 +10 -1
  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 +10 -1
  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 +10 -1
  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 +10 -2
  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 +11 -2
  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 +11 -2
  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 +10 -2
  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 +10 -1
  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 +10 -1
  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 +11 -2
  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 +10 -1
  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 +10 -1
  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 +10 -1
  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 +10 -1
  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 +10 -1
  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 +10 -1
  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 +10 -1
  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 +10 -1
  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 +10 -1
  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 +10 -1
  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 +10 -1
  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 +10 -1
  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 +10 -1
  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 +10 -1
  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 +11 -2
  292. package/login/i18n/baseMessages/zh-CN.js.map +1 -1
  293. package/login/i18n/i18n.d.ts +38 -37
  294. package/login/i18n/i18n.js +132 -99
  295. package/login/i18n/i18n.js.map +1 -1
  296. package/login/i18n/index.d.ts +5 -1
  297. package/login/i18n/index.js +2 -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 -7
  303. package/login/index.js +1 -5
  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/useDownloadTerms.d.ts +15 -5
  309. package/login/lib/useDownloadTerms.js +37 -21
  310. package/login/lib/useDownloadTerms.js.map +1 -1
  311. package/login/lib/useUserProfileForm.d.ts +20 -8
  312. package/login/lib/useUserProfileForm.js +402 -295
  313. package/login/lib/useUserProfileForm.js.map +1 -1
  314. package/login/pages/Code.d.ts +1 -1
  315. package/login/pages/Code.js +3 -3
  316. package/login/pages/Code.js.map +1 -1
  317. package/login/pages/DeleteAccountConfirm.d.ts +1 -1
  318. package/login/pages/DeleteAccountConfirm.js +7 -4
  319. package/login/pages/DeleteAccountConfirm.js.map +1 -1
  320. package/login/pages/DeleteCredential.d.ts +1 -1
  321. package/login/pages/DeleteCredential.js +3 -4
  322. package/login/pages/DeleteCredential.js.map +1 -1
  323. package/login/pages/Error.d.ts +1 -1
  324. package/login/pages/Error.js +1 -1
  325. package/login/pages/Error.js.map +1 -1
  326. package/login/pages/FrontchannelLogout.d.ts +1 -1
  327. package/login/pages/FrontchannelLogout.js +1 -1
  328. package/login/pages/FrontchannelLogout.js.map +1 -1
  329. package/login/pages/IdpReviewUserProfile.d.ts +4 -3
  330. package/login/pages/IdpReviewUserProfile.js +4 -5
  331. package/login/pages/IdpReviewUserProfile.js.map +1 -1
  332. package/login/pages/Info.d.ts +1 -1
  333. package/login/pages/Info.js +5 -7
  334. package/login/pages/Info.js.map +1 -1
  335. package/login/pages/Login.d.ts +1 -1
  336. package/login/pages/Login.js +7 -7
  337. package/login/pages/Login.js.map +1 -1
  338. package/login/pages/LoginConfigTotp.d.ts +1 -1
  339. package/login/pages/LoginConfigTotp.js +6 -7
  340. package/login/pages/LoginConfigTotp.js.map +1 -1
  341. package/login/pages/LoginIdpLinkConfirm.d.ts +1 -1
  342. package/login/pages/LoginIdpLinkConfirm.js +3 -4
  343. package/login/pages/LoginIdpLinkConfirm.js.map +1 -1
  344. package/login/pages/LoginIdpLinkEmail.d.ts +2 -2
  345. package/login/pages/LoginIdpLinkEmail.js +1 -1
  346. package/login/pages/LoginIdpLinkEmail.js.map +1 -1
  347. package/login/pages/LoginOauth2DeviceVerifyUserCode.d.ts +3 -3
  348. package/login/pages/LoginOauth2DeviceVerifyUserCode.js +3 -4
  349. package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -1
  350. package/login/pages/LoginOauthGrant.d.ts +3 -3
  351. package/login/pages/LoginOauthGrant.js +4 -5
  352. package/login/pages/LoginOauthGrant.js.map +1 -1
  353. package/login/pages/LoginOtp.d.ts +1 -1
  354. package/login/pages/LoginOtp.js +3 -4
  355. package/login/pages/LoginOtp.js.map +1 -1
  356. package/login/pages/LoginPageExpired.d.ts +1 -1
  357. package/login/pages/LoginPageExpired.js +1 -1
  358. package/login/pages/LoginPageExpired.js.map +1 -1
  359. package/login/pages/LoginPassword.d.ts +1 -1
  360. package/login/pages/LoginPassword.js +6 -6
  361. package/login/pages/LoginPassword.js.map +1 -1
  362. package/login/pages/LoginRecoveryAuthnCodeConfig.d.ts +1 -1
  363. package/login/pages/LoginRecoveryAuthnCodeConfig.js +16 -16
  364. package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -1
  365. package/login/pages/LoginRecoveryAuthnCodeInput.d.ts +1 -1
  366. package/login/pages/LoginRecoveryAuthnCodeInput.js +3 -4
  367. package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
  368. package/login/pages/LoginResetOtp.d.ts +1 -1
  369. package/login/pages/LoginResetOtp.js +3 -4
  370. package/login/pages/LoginResetOtp.js.map +1 -1
  371. package/login/pages/LoginResetPassword.d.ts +1 -1
  372. package/login/pages/LoginResetPassword.js +4 -5
  373. package/login/pages/LoginResetPassword.js.map +1 -1
  374. package/login/pages/LoginUpdatePassword.d.ts +1 -1
  375. package/login/pages/LoginUpdatePassword.js +7 -8
  376. package/login/pages/LoginUpdatePassword.js.map +1 -1
  377. package/login/pages/LoginUpdateProfile.d.ts +4 -3
  378. package/login/pages/LoginUpdateProfile.js +5 -9
  379. package/login/pages/LoginUpdateProfile.js.map +1 -1
  380. package/login/pages/LoginUsername.d.ts +1 -1
  381. package/login/pages/LoginUsername.js +5 -5
  382. package/login/pages/LoginUsername.js.map +1 -1
  383. package/login/pages/LoginVerifyEmail.d.ts +1 -1
  384. package/login/pages/LoginVerifyEmail.js +1 -1
  385. package/login/pages/LoginVerifyEmail.js.map +1 -1
  386. package/login/pages/LoginX509Info.d.ts +1 -1
  387. package/login/pages/LoginX509Info.js +3 -4
  388. package/login/pages/LoginX509Info.js.map +1 -1
  389. package/login/pages/LogoutConfirm.d.ts +1 -1
  390. package/login/pages/LogoutConfirm.js +3 -4
  391. package/login/pages/LogoutConfirm.js.map +1 -1
  392. package/login/pages/PageProps.d.ts +3 -5
  393. package/login/pages/Register.d.ts +4 -3
  394. package/login/pages/Register.js +12 -17
  395. package/login/pages/Register.js.map +1 -1
  396. package/login/pages/SamlPostForm.d.ts +1 -1
  397. package/login/pages/SamlPostForm.js +1 -1
  398. package/login/pages/SamlPostForm.js.map +1 -1
  399. package/login/pages/SelectAuthenticator.d.ts +2 -2
  400. package/login/pages/SelectAuthenticator.js +3 -7
  401. package/login/pages/SelectAuthenticator.js.map +1 -1
  402. package/login/pages/Terms.d.ts +2 -2
  403. package/login/pages/Terms.js +8 -7
  404. package/login/pages/Terms.js.map +1 -1
  405. package/login/pages/UpdateEmail.d.ts +3 -2
  406. package/login/pages/UpdateEmail.js +6 -10
  407. package/login/pages/UpdateEmail.js.map +1 -1
  408. package/login/pages/WebauthnAuthenticate.d.ts +1 -1
  409. package/login/pages/WebauthnAuthenticate.js +25 -22
  410. package/login/pages/WebauthnAuthenticate.js.map +1 -1
  411. package/login/pages/WebauthnError.d.ts +1 -1
  412. package/login/pages/WebauthnError.js +4 -5
  413. package/login/pages/WebauthnError.js.map +1 -1
  414. package/login/pages/WebauthnRegister.d.ts +1 -1
  415. package/login/pages/WebauthnRegister.js +15 -16
  416. package/login/pages/WebauthnRegister.js.map +1 -1
  417. package/package.json +433 -319
  418. package/src/PUBLIC_URL.ts +3 -3
  419. package/src/account/{Fallback.tsx → DefaultPage.tsx} +5 -5
  420. package/src/account/{kcContext → KcContext}/KcContext.ts +24 -2
  421. package/src/account/KcContext/getKcContextMock.ts +69 -0
  422. package/src/account/KcContext/index.ts +2 -0
  423. package/src/account/KcContext/kcContextMocks.ts +190 -0
  424. package/src/account/Template.tsx +14 -16
  425. package/src/account/TemplateProps.ts +4 -5
  426. package/src/account/i18n/baseMessages/ar.ts +3 -1
  427. package/src/account/i18n/baseMessages/ca.ts +3 -1
  428. package/src/account/i18n/baseMessages/cs.ts +3 -1
  429. package/src/account/i18n/baseMessages/da.ts +3 -1
  430. package/src/account/i18n/baseMessages/de.ts +3 -1
  431. package/src/account/i18n/baseMessages/el.ts +3 -1
  432. package/src/account/i18n/baseMessages/en.ts +3 -1
  433. package/src/account/i18n/baseMessages/es.ts +3 -1
  434. package/src/account/i18n/baseMessages/fa.ts +3 -1
  435. package/src/account/i18n/baseMessages/fi.ts +3 -1
  436. package/src/account/i18n/baseMessages/fr.ts +3 -1
  437. package/src/account/i18n/baseMessages/hu.ts +3 -1
  438. package/src/account/i18n/baseMessages/it.ts +3 -1
  439. package/src/account/i18n/baseMessages/ja.ts +3 -1
  440. package/src/account/i18n/baseMessages/lt.ts +3 -1
  441. package/src/account/i18n/baseMessages/lv.ts +3 -1
  442. package/src/account/i18n/baseMessages/nl.ts +3 -1
  443. package/src/account/i18n/baseMessages/no.ts +3 -1
  444. package/src/account/i18n/baseMessages/pl.ts +3 -1
  445. package/src/account/i18n/baseMessages/pt-BR.ts +3 -1
  446. package/src/account/i18n/baseMessages/ru.ts +3 -1
  447. package/src/account/i18n/baseMessages/sk.ts +3 -1
  448. package/src/account/i18n/baseMessages/sv.ts +3 -1
  449. package/src/account/i18n/baseMessages/th.ts +3 -1
  450. package/src/account/i18n/baseMessages/tr.ts +3 -1
  451. package/src/account/i18n/baseMessages/uk.ts +3 -1
  452. package/src/account/i18n/baseMessages/zh-CN.ts +3 -1
  453. package/src/account/i18n/i18n.tsx +201 -142
  454. package/src/account/i18n/index.ts +5 -1
  455. package/src/account/i18n/useI18n.ts +44 -0
  456. package/src/account/index.ts +3 -10
  457. package/src/account/lib/kcClsx.ts +25 -0
  458. package/src/account/pages/Account.tsx +12 -18
  459. package/src/account/pages/Applications.tsx +8 -9
  460. package/src/account/pages/FederatedIdentity.tsx +3 -3
  461. package/src/account/pages/Log.tsx +5 -5
  462. package/src/account/pages/PageProps.ts +4 -6
  463. package/src/account/pages/Password.tsx +17 -19
  464. package/src/account/pages/Sessions.tsx +5 -6
  465. package/src/account/pages/Totp.tsx +18 -38
  466. package/src/bin/add-story.ts +104 -0
  467. package/src/bin/copy-keycloak-resources-to-public.ts +3 -6
  468. package/src/bin/eject-page.ts +256 -0
  469. package/src/bin/initialize-email-theme.ts +30 -26
  470. package/src/bin/keycloakify/buildJars/buildJar.ts +138 -77
  471. package/src/bin/keycloakify/buildJars/buildJars.ts +35 -31
  472. package/src/bin/keycloakify/buildJars/extensionVersions.ts +3 -2
  473. package/src/bin/keycloakify/buildJars/generatePom.ts +19 -11
  474. package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +42 -10
  475. package/src/bin/keycloakify/generateFtl/generateFtl.ts +64 -42
  476. package/src/bin/keycloakify/generateFtl/{ftl_object_to_js_code_declaring_an_object.ftl → kcContextDeclarationTemplate.ftl} +232 -193
  477. package/src/bin/keycloakify/generateResources/bringInAccountV1.ts +89 -0
  478. package/src/bin/keycloakify/{generateSrcMainResources → generateResources}/generateMessageProperties.ts +47 -53
  479. package/src/bin/keycloakify/generateResources/generateResources.ts +42 -0
  480. package/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts +299 -0
  481. package/src/bin/keycloakify/generateResources/generateResourcesForThemeVariant.ts +70 -0
  482. package/src/bin/keycloakify/generateResources/index.ts +1 -0
  483. package/src/bin/keycloakify/{generateSrcMainResources → generateResources}/readExtraPageNames.ts +21 -7
  484. package/src/bin/keycloakify/{generateSrcMainResources → generateResources}/readFieldNameUsage.ts +34 -7
  485. package/src/bin/keycloakify/keycloakify.ts +50 -16
  486. package/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts +42 -46
  487. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.ts +14 -11
  488. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/vite.ts +31 -16
  489. package/src/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.ts +53 -18
  490. package/src/bin/main.ts +96 -44
  491. package/src/bin/shared/KeycloakVersionRange.ts +4 -2
  492. package/src/bin/shared/buildContext.ts +768 -0
  493. package/src/bin/shared/constants.ts +8 -4
  494. package/src/bin/shared/copyKeycloakResourcesToPublic.ts +35 -21
  495. package/src/bin/shared/downloadKeycloakDefaultTheme.ts +276 -0
  496. package/src/bin/shared/downloadKeycloakStaticResources.ts +30 -26
  497. package/src/bin/shared/generateKcGenTs.ts +68 -0
  498. package/src/bin/shared/metaInfKeycloakThemes.ts +25 -19
  499. package/src/bin/shared/promptKeycloakVersion.ts +39 -15
  500. package/src/bin/start-keycloak/appBuild.ts +129 -0
  501. package/src/bin/start-keycloak/index.ts +1 -0
  502. package/src/bin/start-keycloak/keycloakifyBuild.ts +42 -0
  503. package/src/bin/start-keycloak/myrealm-realm-18.json +2155 -0
  504. package/src/bin/start-keycloak/myrealm-realm-19.json +2186 -0
  505. package/src/bin/start-keycloak/myrealm-realm-20.json +2197 -0
  506. package/src/bin/start-keycloak/myrealm-realm-21.json +2201 -0
  507. package/src/bin/start-keycloak/myrealm-realm-23.json +2150 -0
  508. package/src/bin/start-keycloak/myrealm-realm-24.json +2318 -0
  509. package/src/bin/start-keycloak/myrealm-realm-25.json +2400 -0
  510. package/src/bin/start-keycloak/start-keycloak.ts +451 -0
  511. package/src/bin/tools/SemVer.ts +32 -13
  512. package/src/bin/tools/String.prototype.replaceAll.ts +9 -2
  513. package/src/bin/tools/crawl.ts +4 -1
  514. package/src/bin/tools/crc32.ts +42 -24
  515. package/src/bin/tools/downloadAndExtractArchive/downloadAndExtractArchive.ts +262 -0
  516. package/src/bin/tools/{fetchProxyOptions.ts → downloadAndExtractArchive/fetchProxyOptions.ts} +39 -8
  517. package/src/bin/tools/downloadAndExtractArchive/index.ts +1 -0
  518. package/src/bin/tools/escapeStringForPropertiesFile.ts +64 -0
  519. package/src/bin/tools/extractArchive.ts +140 -0
  520. package/src/bin/tools/getAbsoluteAndInOsFormatPath.ts +10 -2
  521. package/src/bin/tools/getNpmWorkspaceRootDirPath.ts +52 -6
  522. package/src/bin/tools/octokit-addons/getLatestsSemVersionedTag.ts +8 -2
  523. package/src/bin/tools/octokit-addons/listTags.ts +15 -4
  524. package/src/bin/tools/partitionPromiseSettledResults.ts +12 -3
  525. package/src/bin/tools/readThisNpmPackageVersion.ts +5 -1
  526. package/src/bin/tools/transformCodebase.ts +29 -10
  527. package/src/bin/tools/trimIndent.ts +4 -1
  528. package/src/bin/tsconfig.json +4 -3
  529. package/src/bin/update-kc-gen.ts +13 -0
  530. package/src/lib/getKcClsx.ts +89 -0
  531. package/src/login/{Fallback.tsx → DefaultPage.tsx} +7 -6
  532. package/src/login/{kcContext → KcContext}/KcContext.ts +58 -30
  533. package/src/login/KcContext/getKcContextMock.ts +69 -0
  534. package/src/login/KcContext/index.ts +8 -0
  535. package/src/login/KcContext/kcContextMocks.ts +583 -0
  536. package/src/login/Template.tsx +54 -57
  537. package/src/login/TemplateProps.ts +3 -6
  538. package/src/login/UserProfileFormFields.tsx +125 -210
  539. package/src/login/UserProfileFormFieldsProps.tsx +22 -0
  540. package/src/login/i18n/baseMessages/ar.ts +10 -1
  541. package/src/login/i18n/baseMessages/ca.ts +11 -2
  542. package/src/login/i18n/baseMessages/cs.ts +10 -1
  543. package/src/login/i18n/baseMessages/da.ts +10 -1
  544. package/src/login/i18n/baseMessages/de.ts +10 -1
  545. package/src/login/i18n/baseMessages/el.ts +10 -2
  546. package/src/login/i18n/baseMessages/en.ts +11 -2
  547. package/src/login/i18n/baseMessages/es.ts +11 -2
  548. package/src/login/i18n/baseMessages/fa.ts +10 -2
  549. package/src/login/i18n/baseMessages/fi.ts +10 -1
  550. package/src/login/i18n/baseMessages/fr.ts +10 -1
  551. package/src/login/i18n/baseMessages/hu.ts +11 -2
  552. package/src/login/i18n/baseMessages/it.ts +10 -1
  553. package/src/login/i18n/baseMessages/ja.ts +10 -1
  554. package/src/login/i18n/baseMessages/lt.ts +10 -1
  555. package/src/login/i18n/baseMessages/lv.ts +10 -1
  556. package/src/login/i18n/baseMessages/nl.ts +10 -1
  557. package/src/login/i18n/baseMessages/no.ts +10 -1
  558. package/src/login/i18n/baseMessages/pl.ts +10 -1
  559. package/src/login/i18n/baseMessages/pt-BR.ts +10 -1
  560. package/src/login/i18n/baseMessages/ru.ts +10 -1
  561. package/src/login/i18n/baseMessages/sk.ts +10 -1
  562. package/src/login/i18n/baseMessages/sv.ts +10 -1
  563. package/src/login/i18n/baseMessages/th.ts +10 -1
  564. package/src/login/i18n/baseMessages/tr.ts +10 -1
  565. package/src/login/i18n/baseMessages/uk.ts +10 -1
  566. package/src/login/i18n/baseMessages/zh-CN.ts +11 -2
  567. package/src/login/i18n/i18n.tsx +231 -143
  568. package/src/login/i18n/index.ts +5 -1
  569. package/src/login/i18n/useI18n.ts +44 -0
  570. package/src/login/index.ts +3 -10
  571. package/src/login/lib/kcClsx.ts +143 -0
  572. package/src/login/lib/useDownloadTerms.tsx +88 -0
  573. package/src/login/lib/useUserProfileForm.tsx +480 -351
  574. package/src/login/pages/Code.tsx +8 -5
  575. package/src/login/pages/DeleteAccountConfirm.tsx +15 -10
  576. package/src/login/pages/DeleteCredential.tsx +9 -7
  577. package/src/login/pages/Error.tsx +9 -2
  578. package/src/login/pages/FrontchannelLogout.tsx +6 -3
  579. package/src/login/pages/IdpReviewUserProfile.tsx +20 -21
  580. package/src/login/pages/Info.tsx +5 -8
  581. package/src/login/pages/Login.tsx +34 -53
  582. package/src/login/pages/LoginConfigTotp.tsx +35 -39
  583. package/src/login/pages/LoginIdpLinkConfirm.tsx +7 -18
  584. package/src/login/pages/LoginIdpLinkEmail.tsx +9 -3
  585. package/src/login/pages/LoginOauth2DeviceVerifyUserCode.tsx +24 -23
  586. package/src/login/pages/LoginOauthGrant.tsx +14 -20
  587. package/src/login/pages/LoginOtp.tsx +27 -30
  588. package/src/login/pages/LoginPageExpired.tsx +2 -2
  589. package/src/login/pages/LoginPassword.tsx +21 -31
  590. package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +34 -34
  591. package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +19 -22
  592. package/src/login/pages/LoginResetOtp.tsx +19 -22
  593. package/src/login/pages/LoginResetPassword.tsx +21 -24
  594. package/src/login/pages/LoginUpdatePassword.tsx +40 -50
  595. package/src/login/pages/LoginUpdateProfile.tsx +32 -30
  596. package/src/login/pages/LoginUsername.tsx +23 -34
  597. package/src/login/pages/LoginVerifyEmail.tsx +5 -2
  598. package/src/login/pages/LoginX509Info.tsx +24 -33
  599. package/src/login/pages/LogoutConfirm.tsx +8 -14
  600. package/src/login/pages/PageProps.ts +3 -5
  601. package/src/login/pages/Register.tsx +48 -59
  602. package/src/login/pages/SamlPostForm.tsx +2 -2
  603. package/src/login/pages/SelectAuthenticator.tsx +23 -24
  604. package/src/login/pages/Terms.tsx +25 -24
  605. package/src/login/pages/UpdateEmail.tsx +30 -33
  606. package/src/login/pages/WebauthnAuthenticate.tsx +40 -44
  607. package/src/login/pages/WebauthnError.tsx +15 -19
  608. package/src/login/pages/WebauthnRegister.tsx +28 -37
  609. package/src/tools/Array.prototype.every.ts +4 -1
  610. package/src/tools/ExtractAfterStartingWith.ts +4 -0
  611. package/src/tools/LazyOrNot.ts +3 -1
  612. package/src/tools/Object.fromEntries.ts +23 -0
  613. package/src/tools/StatefulObservable/README.md +16 -0
  614. package/src/tools/StatefulObservable/StatefulObservable.ts +58 -0
  615. package/src/tools/StatefulObservable/hooks/index.ts +2 -0
  616. package/src/tools/StatefulObservable/hooks/useObservable.ts +25 -0
  617. package/src/tools/StatefulObservable/hooks/useRerenderOnChange.ts +19 -0
  618. package/src/tools/StatefulObservable/index.ts +2 -0
  619. package/src/tools/ValueOf.ts +2 -0
  620. package/src/tools/clsx.ts +6 -42
  621. package/src/tools/clsx_withTransform.ts +55 -0
  622. package/src/tools/deepAssign.ts +57 -19
  623. package/src/tools/formatNumber.ts +7 -3
  624. package/src/tools/react-markdown.ts +3 -0
  625. package/src/tools/structuredCloneButFunctions.ts +24 -0
  626. package/src/tools/useConstCallback.ts +3 -1
  627. package/src/tools/useInsertLinkTags.ts +78 -74
  628. package/src/tools/useInsertScriptTags.ts +69 -73
  629. package/src/tools/useOnFirstMount.ts +18 -0
  630. package/src/tools/useSetClassName.ts +4 -1
  631. package/src/vite-plugin/vite-plugin.ts +73 -37
  632. package/stories/account/pages/Account.stories.tsx +18 -0
  633. package/stories/account/pages/FederatedIdentity.stories.tsx +38 -0
  634. package/stories/account/pages/Log.stories.tsx +356 -0
  635. package/stories/account/pages/Password.stories.tsx +28 -0
  636. package/stories/account/pages/Sessions.stories.tsx +59 -0
  637. package/stories/account/pages/Totp.stories.tsx +182 -0
  638. package/stories/login/pages/Code.stories.tsx +18 -0
  639. package/stories/login/pages/DeleteAccountConfirm.stories.tsx +18 -0
  640. package/stories/login/pages/DeleteCredential.stories.tsx +18 -0
  641. package/stories/login/pages/Error.stories.tsx +28 -0
  642. package/stories/login/pages/FrontchannelLogout.stories.tsx +18 -0
  643. package/stories/login/pages/IdpReviewUserProfile.stories.tsx +18 -0
  644. package/stories/login/pages/Info.stories.tsx +52 -0
  645. package/stories/login/pages/Login.stories.tsx +221 -0
  646. package/stories/login/pages/LoginConfigTotp.stories.tsx +43 -0
  647. package/stories/login/pages/LoginDeviceVerifyUserCode.stories.tsx +18 -0
  648. package/stories/login/pages/LoginIdpLinkConfirm.stories.tsx +18 -0
  649. package/stories/login/pages/LoginIdpLinkEmail.stories.tsx +18 -0
  650. package/stories/login/pages/LoginOauth2DeviceVerifyUserCode.stories.tsx +18 -0
  651. package/stories/login/pages/LoginOauthGrant.stories.tsx +18 -0
  652. package/stories/login/pages/LoginOtp.stories.tsx +18 -0
  653. package/stories/login/pages/LoginPageExpired.stories.tsx +18 -0
  654. package/stories/login/pages/LoginPassword.stories.tsx +18 -0
  655. package/stories/login/pages/LoginRecoveryAuthnCodeConfig.stories.tsx +18 -0
  656. package/stories/login/pages/LoginRecoveryAuthnCodeInput.stories.tsx +18 -0
  657. package/stories/login/pages/LoginResetOtp.stories.tsx +18 -0
  658. package/stories/login/pages/LoginResetPassword.stories.tsx +31 -0
  659. package/stories/login/pages/LoginUpdatePassword.stories.tsx +18 -0
  660. package/stories/login/pages/LoginUpdateProfile.stories.tsx +18 -0
  661. package/stories/login/pages/LoginUsername.stories.tsx +31 -0
  662. package/stories/login/pages/LoginVerifyEmail.stories.tsx +30 -0
  663. package/stories/login/pages/LoginX509Info.stories.tsx +18 -0
  664. package/stories/login/pages/LogoutConfirm.stories.tsx +18 -0
  665. package/stories/login/pages/Register.stories.tsx +135 -0
  666. package/stories/login/pages/SamlPostForm.stories.tsx +18 -0
  667. package/stories/login/pages/SelectAuthenticator.stories.tsx +43 -0
  668. package/stories/login/pages/Terms.stories.tsx +42 -0
  669. package/stories/login/pages/UpdateEmail.stories.tsx +18 -0
  670. package/stories/login/pages/WebauthnAuthenticate.stories.tsx +18 -0
  671. package/stories/login/pages/WebauthnError.stories.tsx +18 -0
  672. package/stories/login/pages/WebauthnRegister.stories.tsx +18 -0
  673. package/tools/Array.prototype.every.js +2 -1
  674. package/tools/Array.prototype.every.js.map +1 -1
  675. package/tools/ExtractAfterStartingWith.d.ts +1 -0
  676. package/tools/ExtractAfterStartingWith.js +2 -0
  677. package/tools/ExtractAfterStartingWith.js.map +1 -0
  678. package/tools/HTMLElement.prototype.prepend.js.map +1 -1
  679. package/tools/Object.fromEntries.d.ts +1 -0
  680. package/tools/Object.fromEntries.js +17 -0
  681. package/tools/Object.fromEntries.js.map +1 -0
  682. package/tools/StatefulObservable/StatefulObservable.d.ts +8 -0
  683. package/tools/StatefulObservable/StatefulObservable.js +36 -0
  684. package/tools/StatefulObservable/StatefulObservable.js.map +1 -0
  685. package/tools/StatefulObservable/hooks/index.d.ts +2 -0
  686. package/tools/StatefulObservable/hooks/index.js +3 -0
  687. package/tools/StatefulObservable/hooks/index.js.map +1 -0
  688. package/tools/StatefulObservable/hooks/useObservable.d.ts +8 -0
  689. package/tools/StatefulObservable/hooks/useObservable.js +17 -0
  690. package/tools/StatefulObservable/hooks/useObservable.js.map +1 -0
  691. package/tools/StatefulObservable/hooks/useRerenderOnChange.d.ts +5 -0
  692. package/tools/StatefulObservable/hooks/useRerenderOnChange.js +14 -0
  693. package/tools/StatefulObservable/hooks/useRerenderOnChange.js.map +1 -0
  694. package/tools/StatefulObservable/index.d.ts +2 -0
  695. package/tools/StatefulObservable/index.js +3 -0
  696. package/tools/StatefulObservable/index.js.map +1 -0
  697. package/tools/ValueOf.d.ts +2 -0
  698. package/tools/ValueOf.js +2 -0
  699. package/tools/ValueOf.js.map +1 -0
  700. package/tools/clsx.d.ts +3 -2
  701. package/tools/clsx.js +5 -41
  702. package/tools/clsx.js.map +1 -1
  703. package/tools/clsx_withTransform.d.ts +5 -0
  704. package/tools/clsx_withTransform.js +43 -0
  705. package/tools/clsx_withTransform.js.map +1 -0
  706. package/tools/deepAssign.d.ts +1 -0
  707. package/tools/deepAssign.js +41 -16
  708. package/tools/deepAssign.js.map +1 -1
  709. package/tools/formatNumber.js +2 -1
  710. package/tools/formatNumber.js.map +1 -1
  711. package/tools/react-markdown.d.ts +3 -0
  712. package/tools/react-markdown.js +4 -0
  713. package/tools/react-markdown.js.map +1 -0
  714. package/tools/structuredCloneButFunctions.d.ts +7 -0
  715. package/tools/structuredCloneButFunctions.js +19 -0
  716. package/tools/structuredCloneButFunctions.js.map +1 -0
  717. package/tools/useConstCallback.js.map +1 -1
  718. package/tools/useInsertLinkTags.d.ts +11 -6
  719. package/tools/useInsertLinkTags.js +53 -52
  720. package/tools/useInsertLinkTags.js.map +1 -1
  721. package/tools/useInsertScriptTags.d.ts +15 -6
  722. package/tools/useInsertScriptTags.js +56 -61
  723. package/tools/useInsertScriptTags.js.map +1 -1
  724. package/tools/useOnFirstMount.d.ts +2 -0
  725. package/tools/useOnFirstMount.js +15 -0
  726. package/tools/useOnFirstMount.js.map +1 -0
  727. package/tools/useSetClassName.js.map +1 -1
  728. package/vite-plugin/index.d.ts +1 -0
  729. package/vite-plugin/index.js +53394 -0
  730. package/vite-plugin/vite-plugin.d.ts +5 -0
  731. package/account/Fallback.d.ts +0 -5
  732. package/account/Fallback.js.map +0 -1
  733. package/account/kcContext/KcContext.js.map +0 -1
  734. package/account/kcContext/createGetKcContext.d.ts +0 -19
  735. package/account/kcContext/createGetKcContext.js +0 -73
  736. package/account/kcContext/createGetKcContext.js.map +0 -1
  737. package/account/kcContext/getKcContext.d.ts +0 -13
  738. package/account/kcContext/getKcContext.js +0 -13
  739. package/account/kcContext/getKcContext.js.map +0 -1
  740. package/account/kcContext/getKcContextFromWindow.d.ts +0 -8
  741. package/account/kcContext/getKcContextFromWindow.js +0 -5
  742. package/account/kcContext/getKcContextFromWindow.js.map +0 -1
  743. package/account/kcContext/index.d.ts +0 -1
  744. package/account/kcContext/index.js +0 -2
  745. package/account/kcContext/index.js.map +0 -1
  746. package/account/kcContext/kcContextMocks.js +0 -215
  747. package/account/kcContext/kcContextMocks.js.map +0 -1
  748. package/account/lib/useGetClassName.d.ts +0 -7
  749. package/account/lib/useGetClassName.js +0 -19
  750. package/account/lib/useGetClassName.js.map +0 -1
  751. package/lib/isStorybook.d.ts +0 -1
  752. package/lib/isStorybook.js +0 -2
  753. package/lib/isStorybook.js.map +0 -1
  754. package/lib/useGetClassName.d.ts +0 -10
  755. package/lib/useGetClassName.js +0 -14
  756. package/lib/useGetClassName.js.map +0 -1
  757. package/login/Fallback.js.map +0 -1
  758. package/login/kcContext/KcContext.js.map +0 -1
  759. package/login/kcContext/createGetKcContext.d.ts +0 -19
  760. package/login/kcContext/createGetKcContext.js +0 -109
  761. package/login/kcContext/createGetKcContext.js.map +0 -1
  762. package/login/kcContext/getKcContext.d.ts +0 -13
  763. package/login/kcContext/getKcContext.js +0 -13
  764. package/login/kcContext/getKcContext.js.map +0 -1
  765. package/login/kcContext/getKcContextFromWindow.d.ts +0 -8
  766. package/login/kcContext/getKcContextFromWindow.js +0 -5
  767. package/login/kcContext/getKcContextFromWindow.js.map +0 -1
  768. package/login/kcContext/index.d.ts +0 -1
  769. package/login/kcContext/index.js +0 -2
  770. package/login/kcContext/index.js.map +0 -1
  771. package/login/kcContext/kcContextMocks.js +0 -390
  772. package/login/kcContext/kcContextMocks.js.map +0 -1
  773. package/login/lib/useGetClassName.d.ts +0 -7
  774. package/login/lib/useGetClassName.js +0 -130
  775. package/login/lib/useGetClassName.js.map +0 -1
  776. package/src/account/kcContext/createGetKcContext.ts +0 -108
  777. package/src/account/kcContext/getKcContext.ts +0 -21
  778. package/src/account/kcContext/getKcContextFromWindow.ts +0 -11
  779. package/src/account/kcContext/index.ts +0 -1
  780. package/src/account/kcContext/kcContextMocks.ts +0 -260
  781. package/src/account/lib/useGetClassName.ts +0 -20
  782. package/src/bin/download-builtin-keycloak-theme.ts +0 -30
  783. package/src/bin/eject-keycloak-page.ts +0 -126
  784. package/src/bin/keycloakify/generateSrcMainResources/bringInAccountV1.ts +0 -79
  785. package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResources.ts +0 -32
  786. package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForMainTheme.ts +0 -261
  787. package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForThemeVariant.ts +0 -56
  788. package/src/bin/keycloakify/generateSrcMainResources/index.ts +0 -1
  789. package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +0 -60
  790. package/src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts +0 -24
  791. package/src/bin/shared/buildOptions.ts +0 -277
  792. package/src/bin/shared/downloadAndUnzip.ts +0 -203
  793. package/src/bin/shared/downloadBuiltinKeycloakTheme.ts +0 -264
  794. package/src/bin/shared/getJarFileBasename.ts +0 -9
  795. package/src/bin/shared/getThemeSrcDirPath.ts +0 -47
  796. package/src/bin/start-keycloak.ts +0 -236
  797. package/src/bin/tools/unzip.ts +0 -141
  798. package/src/lib/isStorybook.ts +0 -1
  799. package/src/lib/useGetClassName.ts +0 -18
  800. package/src/login/kcContext/createGetKcContext.ts +0 -159
  801. package/src/login/kcContext/getKcContext.ts +0 -21
  802. package/src/login/kcContext/getKcContextFromWindow.ts +0 -11
  803. package/src/login/kcContext/index.ts +0 -1
  804. package/src/login/kcContext/kcContextMocks.ts +0 -630
  805. package/src/login/lib/useDownloadTerms.ts +0 -57
  806. package/src/login/lib/useGetClassName.ts +0 -132
  807. package/src/tools/AndByDiscriminatingKey.ts +0 -25
  808. package/src/tools/Markdown.ts +0 -3
  809. package/src/tools/deepClone.ts +0 -17
  810. package/src/tools/memoize.ts +0 -55
  811. package/tools/AndByDiscriminatingKey.d.ts +0 -5
  812. package/tools/AndByDiscriminatingKey.js +0 -2
  813. package/tools/AndByDiscriminatingKey.js.map +0 -1
  814. package/tools/Markdown.d.ts +0 -2
  815. package/tools/Markdown.js +0 -3
  816. package/tools/Markdown.js.map +0 -1
  817. package/tools/deepClone.d.ts +0 -2
  818. package/tools/deepClone.js +0 -14
  819. package/tools/deepClone.js.map +0 -1
  820. package/tools/memoize.d.ts +0 -7
  821. package/tools/memoize.js +0 -38
  822. package/tools/memoize.js.map +0 -1
  823. /package/account/{kcContext → KcContext}/KcContext.js +0 -0
  824. /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,10 @@ 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", { children: errorMessageStr }, 0),
432
+ fieldIndex: undefined,
433
+ source: {
434
+ type: "server"
389
435
  }
390
436
  }
391
437
  ];
@@ -394,7 +440,7 @@ function useGetErrors(params) {
394
440
  if (!attribute.multivalued) {
395
441
  break handle_multi_valued_multi_fields;
396
442
  }
397
- if ((_c = attribute.annotations.inputType) === null || _c === void 0 ? void 0 : _c.startsWith("multiselect")) {
443
+ if (getIsMultivaluedSingleField({ attribute })) {
398
444
  break handle_multi_valued_multi_fields;
399
445
  }
400
446
  assert(valueOrValues instanceof Array);
@@ -403,12 +449,12 @@ function useGetErrors(params) {
403
449
  .map((...[, index]) => {
404
450
  const specificValueErrors = getErrors({
405
451
  attributeName,
406
- "formFieldStates": formFieldStates.map(formFieldState => {
452
+ formFieldStates: formFieldStates.map(formFieldState => {
407
453
  if (formFieldState.attribute.name === attributeName) {
408
454
  assert(formFieldState.valueOrValues instanceof Array);
409
455
  return {
410
- "attribute": Object.assign(Object.assign({}, attribute), { "annotations": Object.assign(Object.assign({}, attribute.annotations), { "inputType": undefined }), "multivalued": false }),
411
- "valueOrValues": formFieldState.valueOrValues[index]
456
+ attribute: Object.assign(Object.assign({}, attribute), { annotations: Object.assign(Object.assign({}, attribute.annotations), { inputType: undefined }), multivalued: false }),
457
+ valueOrValues: formFieldState.valueOrValues[index]
412
458
  };
413
459
  }
414
460
  return formFieldState;
@@ -421,7 +467,7 @@ function useGetErrors(params) {
421
467
  }
422
468
  return true;
423
469
  })
424
- .map((error) => (Object.assign(Object.assign({}, error), { "fieldIndex": index })));
470
+ .map((error) => (Object.assign(Object.assign({}, error), { fieldIndex: index })));
425
471
  })
426
472
  .reduce((acc, errors) => [...acc, ...errors], []);
427
473
  required_field: {
@@ -433,12 +479,12 @@ function useGetErrors(params) {
433
479
  }
434
480
  const msgArgs = ["error-user-attribute-required"];
435
481
  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"
482
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
483
+ errorMessageStr: msgStr(...msgArgs),
484
+ fieldIndex: undefined,
485
+ source: {
486
+ type: "other",
487
+ rule: "requiredField"
442
488
  }
443
489
  });
444
490
  }
@@ -448,7 +494,7 @@ function useGetErrors(params) {
448
494
  if (!attribute.multivalued) {
449
495
  break handle_multi_valued_single_field;
450
496
  }
451
- if (!((_d = attribute.annotations.inputType) === null || _d === void 0 ? void 0 : _d.startsWith("multiselect"))) {
497
+ if (!getIsMultivaluedSingleField({ attribute })) {
452
498
  break handle_multi_valued_single_field;
453
499
  }
454
500
  const validatorName = "multivalued";
@@ -457,10 +503,10 @@ function useGetErrors(params) {
457
503
  return [];
458
504
  }
459
505
  const { min: minStr } = validator;
460
- const min = minStr !== undefined ? parseInt(`${minStr}`) : attribute.required ? 1 : 0;
506
+ const min = minStr ? parseInt(`${minStr}`) : attribute.required ? 1 : 0;
461
507
  assert(!isNaN(min));
462
508
  const { max: maxStr } = validator;
463
- const max = maxStr === undefined ? Infinity : parseInt(`${maxStr}`);
509
+ const max = !maxStr ? Infinity : parseInt(`${maxStr}`);
464
510
  assert(!isNaN(max));
465
511
  assert(valueOrValues instanceof Array);
466
512
  const values = valueOrValues;
@@ -470,12 +516,12 @@ function useGetErrors(params) {
470
516
  const msgArgs = ["error-invalid-multivalued-size", `${min}`, `${max}`];
471
517
  return [
472
518
  {
473
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, 0),
474
- "errorMessageStr": msgStr(...msgArgs),
475
- "fieldIndex": undefined,
476
- "source": {
477
- "type": "validator",
478
- "name": validatorName
519
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, 0),
520
+ errorMessageStr: msgStr(...msgArgs),
521
+ fieldIndex: undefined,
522
+ source: {
523
+ type: "validator",
524
+ name: validatorName
479
525
  }
480
526
  }
481
527
  ];
@@ -493,7 +539,7 @@ function useGetErrors(params) {
493
539
  check_password_policy_x: {
494
540
  const policyName = "length";
495
541
  const policy = passwordPolicies[policyName];
496
- if (policy === undefined) {
542
+ if (!policy) {
497
543
  break check_password_policy_x;
498
544
  }
499
545
  const minLength = policy;
@@ -502,19 +548,19 @@ function useGetErrors(params) {
502
548
  }
503
549
  const msgArgs = ["invalidPasswordMinLengthMessage", `${minLength}`];
504
550
  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
551
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
552
+ errorMessageStr: msgStr(...msgArgs),
553
+ fieldIndex: undefined,
554
+ source: {
555
+ type: "passwordPolicy",
556
+ name: policyName
511
557
  }
512
558
  });
513
559
  }
514
560
  check_password_policy_x: {
515
561
  const policyName = "digits";
516
562
  const policy = passwordPolicies[policyName];
517
- if (policy === undefined) {
563
+ if (!policy) {
518
564
  break check_password_policy_x;
519
565
  }
520
566
  const minNumberOfDigits = policy;
@@ -523,19 +569,19 @@ function useGetErrors(params) {
523
569
  }
524
570
  const msgArgs = ["invalidPasswordMinDigitsMessage", `${minNumberOfDigits}`];
525
571
  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
572
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
573
+ errorMessageStr: msgStr(...msgArgs),
574
+ fieldIndex: undefined,
575
+ source: {
576
+ type: "passwordPolicy",
577
+ name: policyName
532
578
  }
533
579
  });
534
580
  }
535
581
  check_password_policy_x: {
536
582
  const policyName = "lowerCase";
537
583
  const policy = passwordPolicies[policyName];
538
- if (policy === undefined) {
584
+ if (!policy) {
539
585
  break check_password_policy_x;
540
586
  }
541
587
  const minNumberOfLowerCaseChar = policy;
@@ -544,19 +590,19 @@ function useGetErrors(params) {
544
590
  }
545
591
  const msgArgs = ["invalidPasswordMinLowerCaseCharsMessage", `${minNumberOfLowerCaseChar}`];
546
592
  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
593
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
594
+ errorMessageStr: msgStr(...msgArgs),
595
+ fieldIndex: undefined,
596
+ source: {
597
+ type: "passwordPolicy",
598
+ name: policyName
553
599
  }
554
600
  });
555
601
  }
556
602
  check_password_policy_x: {
557
603
  const policyName = "upperCase";
558
604
  const policy = passwordPolicies[policyName];
559
- if (policy === undefined) {
605
+ if (!policy) {
560
606
  break check_password_policy_x;
561
607
  }
562
608
  const minNumberOfUpperCaseChar = policy;
@@ -565,19 +611,19 @@ function useGetErrors(params) {
565
611
  }
566
612
  const msgArgs = ["invalidPasswordMinUpperCaseCharsMessage", `${minNumberOfUpperCaseChar}`];
567
613
  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
614
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
615
+ errorMessageStr: msgStr(...msgArgs),
616
+ fieldIndex: undefined,
617
+ source: {
618
+ type: "passwordPolicy",
619
+ name: policyName
574
620
  }
575
621
  });
576
622
  }
577
623
  check_password_policy_x: {
578
624
  const policyName = "specialChars";
579
625
  const policy = passwordPolicies[policyName];
580
- if (policy === undefined) {
626
+ if (!policy) {
581
627
  break check_password_policy_x;
582
628
  }
583
629
  const minNumberOfSpecialChar = policy;
@@ -586,12 +632,12 @@ function useGetErrors(params) {
586
632
  }
587
633
  const msgArgs = ["invalidPasswordMinSpecialCharsMessage", `${minNumberOfSpecialChar}`];
588
634
  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
635
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
636
+ errorMessageStr: msgStr(...msgArgs),
637
+ fieldIndex: undefined,
638
+ source: {
639
+ type: "passwordPolicy",
640
+ name: policyName
595
641
  }
596
642
  });
597
643
  }
@@ -602,7 +648,7 @@ function useGetErrors(params) {
602
648
  break check_password_policy_x;
603
649
  }
604
650
  const usernameFormFieldState = formFieldStates.find(formFieldState => formFieldState.attribute.name === "username");
605
- if (usernameFormFieldState === undefined) {
651
+ if (!usernameFormFieldState) {
606
652
  break check_password_policy_x;
607
653
  }
608
654
  const usernameValue = (() => {
@@ -611,24 +657,27 @@ function useGetErrors(params) {
611
657
  assert(typeof valueOrValues === "string");
612
658
  unFormat_number: {
613
659
  const { kcNumberUnFormat } = (_a = attribute.html5DataAnnotations) !== null && _a !== void 0 ? _a : {};
614
- if (kcNumberUnFormat === undefined) {
660
+ if (!kcNumberUnFormat) {
615
661
  break unFormat_number;
616
662
  }
617
663
  valueOrValues = formatNumber(valueOrValues, kcNumberUnFormat);
618
664
  }
619
665
  return valueOrValues;
620
666
  })();
667
+ if (usernameValue === "") {
668
+ break check_password_policy_x;
669
+ }
621
670
  if (value !== usernameValue) {
622
671
  break check_password_policy_x;
623
672
  }
624
673
  const msgArgs = ["invalidPasswordNotUsernameMessage"];
625
674
  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
675
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
676
+ errorMessageStr: msgStr(...msgArgs),
677
+ fieldIndex: undefined,
678
+ source: {
679
+ type: "passwordPolicy",
680
+ name: policyName
632
681
  }
633
682
  });
634
683
  }
@@ -639,24 +688,27 @@ function useGetErrors(params) {
639
688
  break check_password_policy_x;
640
689
  }
641
690
  const emailFormFieldState = formFieldStates.find(formFieldState => formFieldState.attribute.name === "email");
642
- if (emailFormFieldState === undefined) {
691
+ if (!emailFormFieldState) {
643
692
  break check_password_policy_x;
644
693
  }
645
694
  assert(typeof emailFormFieldState.valueOrValues === "string");
646
695
  {
647
696
  const emailValue = emailFormFieldState.valueOrValues;
697
+ if (emailValue === "") {
698
+ break check_password_policy_x;
699
+ }
648
700
  if (value !== emailValue) {
649
701
  break check_password_policy_x;
650
702
  }
651
703
  }
652
704
  const msgArgs = ["invalidPasswordNotEmailMessage"];
653
705
  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
706
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
707
+ errorMessageStr: msgStr(...msgArgs),
708
+ fieldIndex: undefined,
709
+ source: {
710
+ type: "passwordPolicy",
711
+ name: policyName
660
712
  }
661
713
  });
662
714
  }
@@ -676,12 +728,12 @@ function useGetErrors(params) {
676
728
  }
677
729
  const msgArgs = ["invalidPasswordConfirmMessage"];
678
730
  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"
731
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
732
+ errorMessageStr: msgStr(...msgArgs),
733
+ fieldIndex: undefined,
734
+ source: {
735
+ type: "other",
736
+ rule: "passwordConfirmMatchesPassword"
685
737
  }
686
738
  });
687
739
  }
@@ -695,19 +747,19 @@ function useGetErrors(params) {
695
747
  }
696
748
  const msgArgs = ["error-user-attribute-required"];
697
749
  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"
750
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
751
+ errorMessageStr: msgStr(...msgArgs),
752
+ fieldIndex: undefined,
753
+ source: {
754
+ type: "other",
755
+ rule: "requiredField"
704
756
  }
705
757
  });
706
758
  }
707
759
  validator_x: {
708
760
  const validatorName = "length";
709
761
  const validator = validators[validatorName];
710
- if (validator === undefined) {
762
+ if (!validator) {
711
763
  break validator_x;
712
764
  }
713
765
  const { "ignore.empty.value": ignoreEmptyValue = false, max, min } = validator;
@@ -715,24 +767,24 @@ function useGetErrors(params) {
715
767
  break validator_x;
716
768
  }
717
769
  const source = {
718
- "type": "validator",
719
- "name": validatorName
770
+ type: "validator",
771
+ name: validatorName
720
772
  };
721
- if (max !== undefined && value.length > parseInt(`${max}`)) {
773
+ if (max && value.length > parseInt(`${max}`)) {
722
774
  const msgArgs = ["error-invalid-length-too-long", `${max}`];
723
775
  errors.push({
724
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
725
- "errorMessageStr": msgStr(...msgArgs),
726
- "fieldIndex": undefined,
776
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
777
+ errorMessageStr: msgStr(...msgArgs),
778
+ fieldIndex: undefined,
727
779
  source
728
780
  });
729
781
  }
730
- if (min !== undefined && value.length < parseInt(`${min}`)) {
782
+ if (min && value.length < parseInt(`${min}`)) {
731
783
  const msgArgs = ["error-invalid-length-too-short", `${min}`];
732
784
  errors.push({
733
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
734
- "errorMessageStr": msgStr(...msgArgs),
735
- "fieldIndex": undefined,
785
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
786
+ errorMessageStr: msgStr(...msgArgs),
787
+ fieldIndex: undefined,
736
788
  source
737
789
  });
738
790
  }
@@ -752,12 +804,12 @@ function useGetErrors(params) {
752
804
  }
753
805
  const msgArgs = [errorMessageKey !== null && errorMessageKey !== void 0 ? errorMessageKey : id("shouldMatchPattern"), pattern];
754
806
  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
807
+ errorMessage: _jsx(Fragment, { children: advancedMsg(...msgArgs) }, `${attributeName}-${errors.length}`),
808
+ errorMessageStr: advancedMsgStr(...msgArgs),
809
+ fieldIndex: undefined,
810
+ source: {
811
+ type: "validator",
812
+ name: validatorName
761
813
  }
762
814
  });
763
815
  }
@@ -782,12 +834,12 @@ function useGetErrors(params) {
782
834
  }
783
835
  const msgArgs = [id("invalidEmailMessage")];
784
836
  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
837
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
838
+ errorMessageStr: msgStr(...msgArgs),
839
+ fieldIndex: undefined,
840
+ source: {
841
+ type: "validator",
842
+ name: validatorName
791
843
  }
792
844
  });
793
845
  }
@@ -803,35 +855,35 @@ function useGetErrors(params) {
803
855
  }
804
856
  const intValue = parseInt(value);
805
857
  const source = {
806
- "type": "validator",
807
- "name": validatorName
858
+ type: "validator",
859
+ name: validatorName
808
860
  };
809
861
  if (isNaN(intValue)) {
810
862
  const msgArgs = ["mustBeAnInteger"];
811
863
  errors.push({
812
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
813
- "errorMessageStr": msgStr(...msgArgs),
814
- "fieldIndex": undefined,
864
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
865
+ errorMessageStr: msgStr(...msgArgs),
866
+ fieldIndex: undefined,
815
867
  source
816
868
  });
817
869
  break validator_x;
818
870
  }
819
- if (max !== undefined && intValue > parseInt(`${max}`)) {
871
+ if (max && intValue > parseInt(`${max}`)) {
820
872
  const msgArgs = ["error-number-out-of-range-too-big", `${max}`];
821
873
  errors.push({
822
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
823
- "errorMessageStr": msgStr(...msgArgs),
824
- "fieldIndex": undefined,
874
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
875
+ errorMessageStr: msgStr(...msgArgs),
876
+ fieldIndex: undefined,
825
877
  source
826
878
  });
827
879
  break validator_x;
828
880
  }
829
- if (min !== undefined && intValue < parseInt(`${min}`)) {
881
+ if (min && intValue < parseInt(`${min}`)) {
830
882
  const msgArgs = ["error-number-out-of-range-too-small", `${min}`];
831
883
  errors.push({
832
- "errorMessage": _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
833
- "errorMessageStr": msgStr(...msgArgs),
834
- "fieldIndex": undefined,
884
+ errorMessage: _jsx(Fragment, { children: msg(...msgArgs) }, `${attributeName}-${errors.length}`),
885
+ errorMessageStr: msgStr(...msgArgs),
886
+ fieldIndex: undefined,
835
887
  source
836
888
  });
837
889
  break validator_x;
@@ -851,12 +903,12 @@ function useGetErrors(params) {
851
903
  }
852
904
  const msgArgs = [id("notAValidOption")];
853
905
  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
906
+ errorMessage: _jsx(Fragment, { children: advancedMsg(...msgArgs) }, `${attributeName}-${errors.length}`),
907
+ errorMessageStr: advancedMsgStr(...msgArgs),
908
+ fieldIndex: undefined,
909
+ source: {
910
+ type: "validator",
911
+ name: validatorName
860
912
  }
861
913
  });
862
914
  }
@@ -865,4 +917,59 @@ function useGetErrors(params) {
865
917
  });
866
918
  return { getErrors };
867
919
  }
920
+ function getIsMultivaluedSingleField(params) {
921
+ var _a, _b;
922
+ const { attribute } = params;
923
+ return (_b = (_a = attribute.annotations.inputType) === null || _a === void 0 ? void 0 : _a.startsWith("multiselect")) !== null && _b !== void 0 ? _b : false;
924
+ }
925
+ export function getButtonToDisplayForMultivaluedAttributeField(params) {
926
+ const { attribute, values, fieldIndex } = params;
927
+ const hasRemove = (() => {
928
+ if (values.length === 1) {
929
+ return false;
930
+ }
931
+ const minCount = (() => {
932
+ const { multivalued } = attribute.validators;
933
+ if (multivalued === undefined) {
934
+ return undefined;
935
+ }
936
+ const minStr = multivalued.min;
937
+ if (minStr === undefined) {
938
+ return undefined;
939
+ }
940
+ return parseInt(`${minStr}`);
941
+ })();
942
+ if (minCount === undefined) {
943
+ return true;
944
+ }
945
+ if (values.length === minCount) {
946
+ return false;
947
+ }
948
+ return true;
949
+ })();
950
+ const hasAdd = (() => {
951
+ if (fieldIndex + 1 !== values.length) {
952
+ return false;
953
+ }
954
+ const maxCount = (() => {
955
+ const { multivalued } = attribute.validators;
956
+ if (multivalued === undefined) {
957
+ return undefined;
958
+ }
959
+ const maxStr = multivalued.max;
960
+ if (maxStr === undefined) {
961
+ return undefined;
962
+ }
963
+ return parseInt(`${maxStr}`);
964
+ })();
965
+ if (maxCount === undefined) {
966
+ return false;
967
+ }
968
+ if (values.length === maxCount) {
969
+ return false;
970
+ }
971
+ return true;
972
+ })();
973
+ return { hasRemove, hasAdd };
974
+ }
868
975
  //# sourceMappingURL=useUserProfileForm.js.map