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.
- package/PUBLIC_URL.d.ts +1 -1
- package/PUBLIC_URL.js +3 -3
- package/PUBLIC_URL.js.map +1 -1
- package/README.md +8 -6
- package/account/DefaultPage.d.ts +5 -0
- package/account/{Fallback.js → DefaultPage.js} +3 -3
- package/account/DefaultPage.js.map +1 -0
- package/account/{kcContext → KcContext}/KcContext.d.ts +13 -0
- package/account/KcContext/KcContext.js.map +1 -0
- package/account/KcContext/getKcContextMock.d.ts +24 -0
- package/account/KcContext/getKcContextMock.js +28 -0
- package/account/KcContext/getKcContextMock.js.map +1 -0
- package/account/KcContext/index.d.ts +2 -0
- package/account/KcContext/index.js +2 -0
- package/account/KcContext/index.js.map +1 -0
- package/account/{kcContext → KcContext}/kcContextMocks.d.ts +1 -1
- package/account/KcContext/kcContextMocks.js +143 -0
- package/account/KcContext/kcContextMocks.js.map +1 -0
- package/account/Template.d.ts +2 -2
- package/account/Template.js +14 -12
- package/account/Template.js.map +1 -1
- package/account/TemplateProps.d.ts +3 -5
- package/account/i18n/baseMessages/ar.d.ts +2 -0
- package/account/i18n/baseMessages/ar.js +3 -1
- package/account/i18n/baseMessages/ar.js.map +1 -1
- package/account/i18n/baseMessages/ca.d.ts +2 -0
- package/account/i18n/baseMessages/ca.js +3 -1
- package/account/i18n/baseMessages/ca.js.map +1 -1
- package/account/i18n/baseMessages/cs.d.ts +2 -0
- package/account/i18n/baseMessages/cs.js +3 -1
- package/account/i18n/baseMessages/cs.js.map +1 -1
- package/account/i18n/baseMessages/da.d.ts +2 -0
- package/account/i18n/baseMessages/da.js +3 -1
- package/account/i18n/baseMessages/da.js.map +1 -1
- package/account/i18n/baseMessages/de.d.ts +2 -0
- package/account/i18n/baseMessages/de.js +3 -1
- package/account/i18n/baseMessages/de.js.map +1 -1
- package/account/i18n/baseMessages/el.d.ts +2 -0
- package/account/i18n/baseMessages/el.js +3 -1
- package/account/i18n/baseMessages/el.js.map +1 -1
- package/account/i18n/baseMessages/en.d.ts +2 -0
- package/account/i18n/baseMessages/en.js +3 -1
- package/account/i18n/baseMessages/en.js.map +1 -1
- package/account/i18n/baseMessages/es.d.ts +2 -0
- package/account/i18n/baseMessages/es.js +3 -1
- package/account/i18n/baseMessages/es.js.map +1 -1
- package/account/i18n/baseMessages/fa.d.ts +2 -0
- package/account/i18n/baseMessages/fa.js +3 -1
- package/account/i18n/baseMessages/fa.js.map +1 -1
- package/account/i18n/baseMessages/fi.d.ts +2 -0
- package/account/i18n/baseMessages/fi.js +3 -1
- package/account/i18n/baseMessages/fi.js.map +1 -1
- package/account/i18n/baseMessages/fr.d.ts +2 -0
- package/account/i18n/baseMessages/fr.js +3 -1
- package/account/i18n/baseMessages/fr.js.map +1 -1
- package/account/i18n/baseMessages/hu.d.ts +2 -0
- package/account/i18n/baseMessages/hu.js +3 -1
- package/account/i18n/baseMessages/hu.js.map +1 -1
- package/account/i18n/baseMessages/index.d.ts +18 -0
- package/account/i18n/baseMessages/index.js.map +1 -1
- package/account/i18n/baseMessages/it.d.ts +2 -0
- package/account/i18n/baseMessages/it.js +3 -1
- package/account/i18n/baseMessages/it.js.map +1 -1
- package/account/i18n/baseMessages/ja.d.ts +2 -0
- package/account/i18n/baseMessages/ja.js +3 -1
- package/account/i18n/baseMessages/ja.js.map +1 -1
- package/account/i18n/baseMessages/lt.d.ts +2 -0
- package/account/i18n/baseMessages/lt.js +3 -1
- package/account/i18n/baseMessages/lt.js.map +1 -1
- package/account/i18n/baseMessages/lv.d.ts +2 -0
- package/account/i18n/baseMessages/lv.js +3 -1
- package/account/i18n/baseMessages/lv.js.map +1 -1
- package/account/i18n/baseMessages/nl.d.ts +2 -0
- package/account/i18n/baseMessages/nl.js +3 -1
- package/account/i18n/baseMessages/nl.js.map +1 -1
- package/account/i18n/baseMessages/no.d.ts +2 -0
- package/account/i18n/baseMessages/no.js +3 -1
- package/account/i18n/baseMessages/no.js.map +1 -1
- package/account/i18n/baseMessages/pl.d.ts +2 -0
- package/account/i18n/baseMessages/pl.js +3 -1
- package/account/i18n/baseMessages/pl.js.map +1 -1
- package/account/i18n/baseMessages/pt-BR.d.ts +2 -0
- package/account/i18n/baseMessages/pt-BR.js +3 -1
- package/account/i18n/baseMessages/pt-BR.js.map +1 -1
- package/account/i18n/baseMessages/ru.d.ts +2 -0
- package/account/i18n/baseMessages/ru.js +3 -1
- package/account/i18n/baseMessages/ru.js.map +1 -1
- package/account/i18n/baseMessages/sk.d.ts +2 -0
- package/account/i18n/baseMessages/sk.js +3 -1
- package/account/i18n/baseMessages/sk.js.map +1 -1
- package/account/i18n/baseMessages/sv.d.ts +2 -0
- package/account/i18n/baseMessages/sv.js +3 -1
- package/account/i18n/baseMessages/sv.js.map +1 -1
- package/account/i18n/baseMessages/th.d.ts +2 -0
- package/account/i18n/baseMessages/th.js +3 -1
- package/account/i18n/baseMessages/th.js.map +1 -1
- package/account/i18n/baseMessages/tr.d.ts +2 -0
- package/account/i18n/baseMessages/tr.js +3 -1
- package/account/i18n/baseMessages/tr.js.map +1 -1
- package/account/i18n/baseMessages/uk.d.ts +2 -0
- package/account/i18n/baseMessages/uk.js +3 -1
- package/account/i18n/baseMessages/uk.js.map +1 -1
- package/account/i18n/baseMessages/zh-CN.d.ts +2 -0
- package/account/i18n/baseMessages/zh-CN.js +3 -1
- package/account/i18n/baseMessages/zh-CN.js.map +1 -1
- package/account/i18n/i18n.d.ts +34 -36
- package/account/i18n/i18n.js +117 -98
- package/account/i18n/i18n.js.map +1 -1
- package/account/i18n/index.d.ts +4 -1
- package/account/i18n/index.js +1 -1
- package/account/i18n/index.js.map +1 -1
- package/account/i18n/useI18n.d.ts +13 -0
- package/account/i18n/useI18n.js +26 -0
- package/account/i18n/useI18n.js.map +1 -0
- package/account/index.d.ts +3 -7
- package/account/index.js +1 -5
- package/account/index.js.map +1 -1
- package/account/lib/kcClsx.d.ts +9 -0
- package/account/lib/kcClsx.js +19 -0
- package/account/lib/kcClsx.js.map +1 -0
- package/account/pages/Account.d.ts +1 -1
- package/account/pages/Account.js +7 -6
- package/account/pages/Account.js.map +1 -1
- package/account/pages/Applications.d.ts +1 -1
- package/account/pages/Applications.js +8 -9
- package/account/pages/Applications.js.map +1 -1
- package/account/pages/FederatedIdentity.d.ts +3 -3
- package/account/pages/FederatedIdentity.js +1 -1
- package/account/pages/FederatedIdentity.js.map +1 -1
- package/account/pages/Log.d.ts +1 -1
- package/account/pages/Log.js +3 -3
- package/account/pages/Log.js.map +1 -1
- package/account/pages/PageProps.d.ts +4 -6
- package/account/pages/Password.d.ts +1 -1
- package/account/pages/Password.js +16 -13
- package/account/pages/Password.js.map +1 -1
- package/account/pages/Sessions.d.ts +1 -1
- package/account/pages/Sessions.js +3 -4
- package/account/pages/Sessions.js.map +1 -1
- package/account/pages/Totp.d.ts +1 -1
- package/account/pages/Totp.js +9 -10
- package/account/pages/Totp.js.map +1 -1
- package/bin/180.index.js +4664 -0
- package/bin/193.index.js +160 -0
- package/bin/266.index.js +806 -0
- package/bin/304.index.js +1108 -0
- package/bin/31.index.js +804 -0
- package/bin/36.index.js +9980 -0
- package/bin/430.index.js +1349 -0
- package/bin/440.index.js +1466 -0
- package/bin/453.index.js +769 -0
- package/bin/490.index.js +75195 -0
- package/bin/525.index.js +41826 -0
- package/bin/526.index.js +996 -0
- package/bin/538.index.js +108 -0
- package/bin/720.index.js +243 -0
- package/bin/877.index.js +275 -0
- package/bin/893.index.js +713 -0
- package/bin/932.index.js +269 -0
- package/bin/966.index.js +4232 -0
- package/bin/97.index.js +677 -0
- package/bin/main.js +9456 -141122
- package/bin/shared/KeycloakVersionRange.d.ts +5 -0
- package/bin/shared/KeycloakVersionRange.js.map +1 -0
- package/bin/shared/buildContext.d.ts +74 -0
- package/bin/shared/buildContext.js.map +1 -0
- package/bin/shared/constants.d.ts +18 -0
- package/bin/shared/constants.js +59 -0
- package/bin/shared/constants.js.map +1 -0
- package/bin/shared/copyKeycloakResourcesToPublic.d.ts +8 -0
- package/bin/shared/copyKeycloakResourcesToPublic.js.map +1 -0
- package/bin/shared/downloadKeycloakDefaultTheme.d.ts +11 -0
- package/bin/shared/downloadKeycloakDefaultTheme.js.map +1 -0
- package/bin/shared/downloadKeycloakStaticResources.d.ts +9 -0
- package/bin/shared/downloadKeycloakStaticResources.js.map +1 -0
- package/bin/shared/generateKcGenTs.d.ts +12 -0
- package/bin/shared/generateKcGenTs.js.map +1 -0
- package/bin/shared/metaInfKeycloakThemes.d.ts +13 -0
- package/bin/shared/metaInfKeycloakThemes.js.map +1 -0
- package/bin/shared/promptKeycloakVersion.d.ts +7 -0
- package/bin/shared/promptKeycloakVersion.js.map +1 -0
- package/lib/BASE_URL.js.map +1 -1
- package/lib/getKcClsx.d.ts +11 -0
- package/lib/getKcClsx.js +55 -0
- package/lib/getKcClsx.js.map +1 -0
- package/login/{Fallback.d.ts → DefaultPage.d.ts} +7 -6
- package/login/{Fallback.js → DefaultPage.js} +2 -2
- package/login/DefaultPage.js.map +1 -0
- package/login/{kcContext → KcContext}/KcContext.d.ts +36 -17
- package/login/KcContext/KcContext.js.map +1 -0
- package/login/KcContext/getKcContextMock.d.ts +24 -0
- package/login/KcContext/getKcContextMock.js +28 -0
- package/login/KcContext/getKcContextMock.js.map +1 -0
- package/login/KcContext/index.d.ts +2 -0
- package/login/KcContext/index.js +2 -0
- package/login/KcContext/index.js.map +1 -0
- package/login/{kcContext → KcContext}/kcContextMocks.d.ts +1 -1
- package/login/KcContext/kcContextMocks.js +334 -0
- package/login/KcContext/kcContextMocks.js.map +1 -0
- package/login/Template.d.ts +2 -2
- package/login/Template.js +31 -25
- package/login/Template.js.map +1 -1
- package/login/TemplateProps.d.ts +3 -6
- package/login/UserProfileFormFields.d.ts +3 -20
- package/login/UserProfileFormFields.js +78 -122
- package/login/UserProfileFormFields.js.map +1 -1
- package/login/UserProfileFormFieldsProps.d.ts +24 -0
- package/login/UserProfileFormFieldsProps.js +2 -0
- package/login/UserProfileFormFieldsProps.js.map +1 -0
- package/login/i18n/baseMessages/ar.d.ts +9 -0
- package/login/i18n/baseMessages/ar.js +11 -2
- package/login/i18n/baseMessages/ar.js.map +1 -1
- package/login/i18n/baseMessages/ca.d.ts +10 -1
- package/login/i18n/baseMessages/ca.js +12 -3
- package/login/i18n/baseMessages/ca.js.map +1 -1
- package/login/i18n/baseMessages/cs.d.ts +9 -0
- package/login/i18n/baseMessages/cs.js +11 -2
- package/login/i18n/baseMessages/cs.js.map +1 -1
- package/login/i18n/baseMessages/da.d.ts +9 -0
- package/login/i18n/baseMessages/da.js +11 -2
- package/login/i18n/baseMessages/da.js.map +1 -1
- package/login/i18n/baseMessages/de.d.ts +9 -0
- package/login/i18n/baseMessages/de.js +11 -2
- package/login/i18n/baseMessages/de.js.map +1 -1
- package/login/i18n/baseMessages/el.d.ts +9 -1
- package/login/i18n/baseMessages/el.js +11 -3
- package/login/i18n/baseMessages/el.js.map +1 -1
- package/login/i18n/baseMessages/en.d.ts +10 -1
- package/login/i18n/baseMessages/en.js +12 -3
- package/login/i18n/baseMessages/en.js.map +1 -1
- package/login/i18n/baseMessages/es.d.ts +10 -1
- package/login/i18n/baseMessages/es.js +12 -3
- package/login/i18n/baseMessages/es.js.map +1 -1
- package/login/i18n/baseMessages/fa.d.ts +9 -1
- package/login/i18n/baseMessages/fa.js +11 -3
- package/login/i18n/baseMessages/fa.js.map +1 -1
- package/login/i18n/baseMessages/fi.d.ts +9 -0
- package/login/i18n/baseMessages/fi.js +11 -2
- package/login/i18n/baseMessages/fi.js.map +1 -1
- package/login/i18n/baseMessages/fr.d.ts +9 -0
- package/login/i18n/baseMessages/fr.js +11 -2
- package/login/i18n/baseMessages/fr.js.map +1 -1
- package/login/i18n/baseMessages/hu.d.ts +10 -1
- package/login/i18n/baseMessages/hu.js +12 -3
- package/login/i18n/baseMessages/hu.js.map +1 -1
- package/login/i18n/baseMessages/index.d.ts +109 -2
- package/login/i18n/baseMessages/index.js.map +1 -1
- package/login/i18n/baseMessages/it.d.ts +9 -0
- package/login/i18n/baseMessages/it.js +11 -2
- package/login/i18n/baseMessages/it.js.map +1 -1
- package/login/i18n/baseMessages/ja.d.ts +9 -0
- package/login/i18n/baseMessages/ja.js +11 -2
- package/login/i18n/baseMessages/ja.js.map +1 -1
- package/login/i18n/baseMessages/lt.d.ts +9 -0
- package/login/i18n/baseMessages/lt.js +11 -2
- package/login/i18n/baseMessages/lt.js.map +1 -1
- package/login/i18n/baseMessages/lv.d.ts +9 -0
- package/login/i18n/baseMessages/lv.js +11 -2
- package/login/i18n/baseMessages/lv.js.map +1 -1
- package/login/i18n/baseMessages/nl.d.ts +9 -0
- package/login/i18n/baseMessages/nl.js +11 -2
- package/login/i18n/baseMessages/nl.js.map +1 -1
- package/login/i18n/baseMessages/no.d.ts +9 -0
- package/login/i18n/baseMessages/no.js +11 -2
- package/login/i18n/baseMessages/no.js.map +1 -1
- package/login/i18n/baseMessages/pl.d.ts +9 -0
- package/login/i18n/baseMessages/pl.js +11 -2
- package/login/i18n/baseMessages/pl.js.map +1 -1
- package/login/i18n/baseMessages/pt-BR.d.ts +9 -0
- package/login/i18n/baseMessages/pt-BR.js +11 -2
- package/login/i18n/baseMessages/pt-BR.js.map +1 -1
- package/login/i18n/baseMessages/ru.d.ts +9 -0
- package/login/i18n/baseMessages/ru.js +11 -2
- package/login/i18n/baseMessages/ru.js.map +1 -1
- package/login/i18n/baseMessages/sk.d.ts +9 -0
- package/login/i18n/baseMessages/sk.js +11 -2
- package/login/i18n/baseMessages/sk.js.map +1 -1
- package/login/i18n/baseMessages/sv.d.ts +9 -0
- package/login/i18n/baseMessages/sv.js +11 -2
- package/login/i18n/baseMessages/sv.js.map +1 -1
- package/login/i18n/baseMessages/th.d.ts +9 -0
- package/login/i18n/baseMessages/th.js +11 -2
- package/login/i18n/baseMessages/th.js.map +1 -1
- package/login/i18n/baseMessages/tr.d.ts +9 -0
- package/login/i18n/baseMessages/tr.js +11 -2
- package/login/i18n/baseMessages/tr.js.map +1 -1
- package/login/i18n/baseMessages/uk.d.ts +9 -0
- package/login/i18n/baseMessages/uk.js +11 -2
- package/login/i18n/baseMessages/uk.js.map +1 -1
- package/login/i18n/baseMessages/zh-CN.d.ts +10 -1
- package/login/i18n/baseMessages/zh-CN.js +12 -3
- package/login/i18n/baseMessages/zh-CN.js.map +1 -1
- package/login/i18n/i18n.d.ts +38 -38
- package/login/i18n/i18n.js +139 -99
- package/login/i18n/i18n.js.map +1 -1
- package/login/i18n/index.d.ts +4 -1
- package/login/i18n/index.js +1 -1
- package/login/i18n/index.js.map +1 -1
- package/login/i18n/useI18n.d.ts +13 -0
- package/login/i18n/useI18n.js +26 -0
- package/login/i18n/useI18n.js.map +1 -0
- package/login/index.d.ts +3 -8
- package/login/index.js +1 -6
- package/login/index.js.map +1 -1
- package/login/lib/kcClsx.d.ts +9 -0
- package/login/lib/kcClsx.js +130 -0
- package/login/lib/kcClsx.js.map +1 -0
- package/login/lib/useUserProfileForm.d.ts +20 -8
- package/login/lib/useUserProfileForm.js +404 -295
- package/login/lib/useUserProfileForm.js.map +1 -1
- package/login/pages/Code.d.ts +1 -1
- package/login/pages/Code.js +3 -3
- package/login/pages/Code.js.map +1 -1
- package/login/pages/DeleteAccountConfirm.d.ts +1 -1
- package/login/pages/DeleteAccountConfirm.js +7 -4
- package/login/pages/DeleteAccountConfirm.js.map +1 -1
- package/login/pages/DeleteCredential.d.ts +1 -1
- package/login/pages/DeleteCredential.js +3 -4
- package/login/pages/DeleteCredential.js.map +1 -1
- package/login/pages/Error.d.ts +1 -1
- package/login/pages/Error.js +1 -1
- package/login/pages/Error.js.map +1 -1
- package/login/pages/FrontchannelLogout.d.ts +1 -1
- package/login/pages/FrontchannelLogout.js +1 -1
- package/login/pages/FrontchannelLogout.js.map +1 -1
- package/login/pages/IdpReviewUserProfile.d.ts +4 -3
- package/login/pages/IdpReviewUserProfile.js +4 -5
- package/login/pages/IdpReviewUserProfile.js.map +1 -1
- package/login/pages/Info.d.ts +1 -1
- package/login/pages/Info.js +18 -8
- package/login/pages/Info.js.map +1 -1
- package/login/pages/Login.d.ts +1 -1
- package/login/pages/Login.js +12 -8
- package/login/pages/Login.js.map +1 -1
- package/login/pages/LoginConfigTotp.d.ts +1 -1
- package/login/pages/LoginConfigTotp.js +10 -7
- package/login/pages/LoginConfigTotp.js.map +1 -1
- package/login/pages/LoginIdpLinkConfirm.d.ts +1 -1
- package/login/pages/LoginIdpLinkConfirm.js +3 -4
- package/login/pages/LoginIdpLinkConfirm.js.map +1 -1
- package/login/pages/LoginIdpLinkEmail.d.ts +2 -2
- package/login/pages/LoginIdpLinkEmail.js +1 -1
- package/login/pages/LoginIdpLinkEmail.js.map +1 -1
- package/login/pages/LoginOauth2DeviceVerifyUserCode.d.ts +3 -3
- package/login/pages/LoginOauth2DeviceVerifyUserCode.js +3 -4
- package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -1
- package/login/pages/LoginOauthGrant.d.ts +3 -3
- package/login/pages/LoginOauthGrant.js +4 -5
- package/login/pages/LoginOauthGrant.js.map +1 -1
- package/login/pages/LoginOtp.d.ts +1 -1
- package/login/pages/LoginOtp.js +5 -4
- package/login/pages/LoginOtp.js.map +1 -1
- package/login/pages/LoginPageExpired.d.ts +1 -1
- package/login/pages/LoginPageExpired.js +1 -1
- package/login/pages/LoginPageExpired.js.map +1 -1
- package/login/pages/LoginPassword.d.ts +1 -1
- package/login/pages/LoginPassword.js +9 -7
- package/login/pages/LoginPassword.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeConfig.d.ts +1 -1
- package/login/pages/LoginRecoveryAuthnCodeConfig.js +16 -16
- package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.d.ts +1 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.js +5 -4
- package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
- package/login/pages/LoginResetOtp.d.ts +1 -1
- package/login/pages/LoginResetOtp.js +3 -4
- package/login/pages/LoginResetOtp.js.map +1 -1
- package/login/pages/LoginResetPassword.d.ts +1 -1
- package/login/pages/LoginResetPassword.js +6 -5
- package/login/pages/LoginResetPassword.js.map +1 -1
- package/login/pages/LoginUpdatePassword.d.ts +1 -1
- package/login/pages/LoginUpdatePassword.js +12 -9
- package/login/pages/LoginUpdatePassword.js.map +1 -1
- package/login/pages/LoginUpdateProfile.d.ts +4 -3
- package/login/pages/LoginUpdateProfile.js +5 -9
- package/login/pages/LoginUpdateProfile.js.map +1 -1
- package/login/pages/LoginUsername.d.ts +1 -1
- package/login/pages/LoginUsername.js +5 -5
- package/login/pages/LoginUsername.js.map +1 -1
- package/login/pages/LoginVerifyEmail.d.ts +1 -1
- package/login/pages/LoginVerifyEmail.js +1 -1
- package/login/pages/LoginVerifyEmail.js.map +1 -1
- package/login/pages/LoginX509Info.d.ts +1 -1
- package/login/pages/LoginX509Info.js +3 -4
- package/login/pages/LoginX509Info.js.map +1 -1
- package/login/pages/LogoutConfirm.d.ts +1 -1
- package/login/pages/LogoutConfirm.js +3 -4
- package/login/pages/LogoutConfirm.js.map +1 -1
- package/login/pages/PageProps.d.ts +3 -5
- package/login/pages/Register.d.ts +4 -3
- package/login/pages/Register.js +9 -19
- package/login/pages/Register.js.map +1 -1
- package/login/pages/SamlPostForm.d.ts +1 -1
- package/login/pages/SamlPostForm.js +2 -2
- package/login/pages/SamlPostForm.js.map +1 -1
- package/login/pages/SelectAuthenticator.d.ts +2 -2
- package/login/pages/SelectAuthenticator.js +3 -7
- package/login/pages/SelectAuthenticator.js.map +1 -1
- package/login/pages/Terms.d.ts +2 -2
- package/login/pages/Terms.js +3 -10
- package/login/pages/Terms.js.map +1 -1
- package/login/pages/UpdateEmail.d.ts +3 -2
- package/login/pages/UpdateEmail.js +6 -10
- package/login/pages/UpdateEmail.js.map +1 -1
- package/login/pages/WebauthnAuthenticate.d.ts +1 -1
- package/login/pages/WebauthnAuthenticate.js +25 -22
- package/login/pages/WebauthnAuthenticate.js.map +1 -1
- package/login/pages/WebauthnError.d.ts +1 -1
- package/login/pages/WebauthnError.js +4 -5
- package/login/pages/WebauthnError.js.map +1 -1
- package/login/pages/WebauthnRegister.d.ts +1 -1
- package/login/pages/WebauthnRegister.js +16 -17
- package/login/pages/WebauthnRegister.js.map +1 -1
- package/package.json +418 -315
- package/src/PUBLIC_URL.ts +3 -3
- package/src/account/{Fallback.tsx → DefaultPage.tsx} +5 -5
- package/src/account/{kcContext → KcContext}/KcContext.ts +24 -2
- package/src/account/KcContext/getKcContextMock.ts +69 -0
- package/src/account/KcContext/index.ts +2 -0
- package/src/account/KcContext/kcContextMocks.ts +190 -0
- package/src/account/Template.tsx +20 -17
- package/src/account/TemplateProps.ts +4 -5
- package/src/account/i18n/baseMessages/ar.ts +3 -1
- package/src/account/i18n/baseMessages/ca.ts +3 -1
- package/src/account/i18n/baseMessages/cs.ts +3 -1
- package/src/account/i18n/baseMessages/da.ts +3 -1
- package/src/account/i18n/baseMessages/de.ts +3 -1
- package/src/account/i18n/baseMessages/el.ts +3 -1
- package/src/account/i18n/baseMessages/en.ts +3 -1
- package/src/account/i18n/baseMessages/es.ts +3 -1
- package/src/account/i18n/baseMessages/fa.ts +3 -1
- package/src/account/i18n/baseMessages/fi.ts +3 -1
- package/src/account/i18n/baseMessages/fr.ts +3 -1
- package/src/account/i18n/baseMessages/hu.ts +3 -1
- package/src/account/i18n/baseMessages/it.ts +3 -1
- package/src/account/i18n/baseMessages/ja.ts +3 -1
- package/src/account/i18n/baseMessages/lt.ts +3 -1
- package/src/account/i18n/baseMessages/lv.ts +3 -1
- package/src/account/i18n/baseMessages/nl.ts +3 -1
- package/src/account/i18n/baseMessages/no.ts +3 -1
- package/src/account/i18n/baseMessages/pl.ts +3 -1
- package/src/account/i18n/baseMessages/pt-BR.ts +3 -1
- package/src/account/i18n/baseMessages/ru.ts +3 -1
- package/src/account/i18n/baseMessages/sk.ts +3 -1
- package/src/account/i18n/baseMessages/sv.ts +3 -1
- package/src/account/i18n/baseMessages/th.ts +3 -1
- package/src/account/i18n/baseMessages/tr.ts +3 -1
- package/src/account/i18n/baseMessages/uk.ts +3 -1
- package/src/account/i18n/baseMessages/zh-CN.ts +3 -1
- package/src/account/i18n/i18n.tsx +202 -144
- package/src/account/i18n/index.ts +4 -1
- package/src/account/i18n/useI18n.ts +44 -0
- package/src/account/index.ts +3 -10
- package/src/account/lib/kcClsx.ts +25 -0
- package/src/account/pages/Account.tsx +12 -18
- package/src/account/pages/Applications.tsx +8 -10
- package/src/account/pages/FederatedIdentity.tsx +3 -3
- package/src/account/pages/Log.tsx +5 -5
- package/src/account/pages/PageProps.ts +4 -6
- package/src/account/pages/Password.tsx +17 -19
- package/src/account/pages/Sessions.tsx +5 -6
- package/src/account/pages/Totp.tsx +32 -42
- package/src/bin/add-story.ts +105 -0
- package/src/bin/copy-keycloak-resources-to-public.ts +3 -6
- package/src/bin/eject-page.ts +256 -0
- package/src/bin/initialize-email-theme.ts +30 -26
- package/src/bin/keycloakify/buildJars/buildJar.ts +138 -77
- package/src/bin/keycloakify/buildJars/buildJars.ts +35 -31
- package/src/bin/keycloakify/buildJars/extensionVersions.ts +3 -2
- package/src/bin/keycloakify/buildJars/generatePom.ts +19 -11
- package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +42 -10
- package/src/bin/keycloakify/generateFtl/generateFtl.ts +74 -48
- package/src/bin/keycloakify/generateFtl/{ftl_object_to_js_code_declaring_an_object.ftl → kcContextDeclarationTemplate.ftl} +233 -194
- package/src/bin/keycloakify/generateResources/bringInAccountV1.ts +89 -0
- package/src/bin/keycloakify/generateResources/generateMessageProperties.ts +192 -0
- package/src/bin/keycloakify/generateResources/generateResources.ts +42 -0
- package/src/bin/keycloakify/generateResources/generateResourcesForMainTheme.ts +300 -0
- package/src/bin/keycloakify/generateResources/generateResourcesForThemeVariant.ts +70 -0
- package/src/bin/keycloakify/generateResources/index.ts +1 -0
- package/src/bin/keycloakify/{generateSrcMainResources → generateResources}/readExtraPageNames.ts +21 -7
- package/src/bin/keycloakify/generateResources/readFieldNameUsage.ts +91 -0
- package/src/bin/keycloakify/keycloakify.ts +50 -16
- package/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts +42 -46
- package/src/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.ts +15 -12
- package/src/bin/keycloakify/replacers/replaceImportsInJsCode/vite.ts +31 -16
- package/src/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.ts +53 -18
- package/src/bin/main.ts +99 -44
- package/src/bin/shared/KeycloakVersionRange.ts +4 -2
- package/src/bin/shared/buildContext.ts +868 -0
- package/src/bin/shared/constants.ts +10 -4
- package/src/bin/shared/copyKeycloakResourcesToPublic.ts +32 -21
- package/src/bin/shared/downloadKeycloakDefaultTheme.ts +277 -0
- package/src/bin/shared/downloadKeycloakStaticResources.ts +30 -26
- package/src/bin/shared/generateKcGenTs.ts +68 -0
- package/src/bin/shared/metaInfKeycloakThemes.ts +25 -19
- package/src/bin/shared/promptKeycloakVersion.ts +39 -15
- package/src/bin/start-keycloak/appBuild.ts +180 -0
- package/src/bin/start-keycloak/index.ts +1 -0
- package/src/bin/start-keycloak/keycloakifyBuild.ts +43 -0
- package/src/bin/start-keycloak/myrealm-realm-18.json +2155 -0
- package/src/bin/start-keycloak/myrealm-realm-19.json +2186 -0
- package/src/bin/start-keycloak/myrealm-realm-20.json +2197 -0
- package/src/bin/start-keycloak/myrealm-realm-21.json +2201 -0
- package/src/bin/start-keycloak/myrealm-realm-23.json +2155 -0
- package/src/bin/start-keycloak/myrealm-realm-24.json +2318 -0
- package/src/bin/start-keycloak/myrealm-realm-25.json +2400 -0
- package/src/bin/start-keycloak/start-keycloak.ts +451 -0
- package/src/bin/tools/SemVer.ts +32 -13
- package/src/bin/tools/String.prototype.replaceAll.ts +9 -2
- package/src/bin/tools/assertNoPnpmDlx.ts +15 -0
- package/src/bin/tools/crawl.ts +4 -1
- package/src/bin/tools/crc32.ts +42 -24
- package/src/bin/tools/downloadAndExtractArchive.ts +254 -0
- package/src/bin/tools/escapeStringForPropertiesFile.ts +64 -0
- package/src/bin/tools/extractArchive.ts +140 -0
- package/src/bin/tools/fetchProxyOptions.ts +76 -53
- package/src/bin/tools/getAbsoluteAndInOsFormatPath.ts +10 -2
- package/src/bin/tools/octokit-addons/getLatestsSemVersionedTag.ts +8 -2
- package/src/bin/tools/octokit-addons/listTags.ts +15 -4
- package/src/bin/tools/partitionPromiseSettledResults.ts +12 -3
- package/src/bin/tools/readThisNpmPackageVersion.ts +5 -1
- package/src/bin/tools/transformCodebase.ts +29 -10
- package/src/bin/tools/trimIndent.ts +4 -1
- package/src/bin/tsconfig.json +4 -3
- package/src/bin/update-kc-gen.ts +13 -0
- package/src/lib/getKcClsx.ts +89 -0
- package/src/login/{Fallback.tsx → DefaultPage.tsx} +7 -6
- package/src/login/{kcContext → KcContext}/KcContext.ts +58 -30
- package/src/login/KcContext/getKcContextMock.ts +69 -0
- package/src/login/KcContext/index.ts +8 -0
- package/src/login/KcContext/kcContextMocks.ts +583 -0
- package/src/login/Template.tsx +69 -92
- package/src/login/TemplateProps.ts +3 -7
- package/src/login/UserProfileFormFields.tsx +126 -211
- package/src/login/UserProfileFormFieldsProps.tsx +22 -0
- package/src/login/i18n/baseMessages/ar.ts +11 -2
- package/src/login/i18n/baseMessages/ca.ts +12 -3
- package/src/login/i18n/baseMessages/cs.ts +11 -2
- package/src/login/i18n/baseMessages/da.ts +11 -2
- package/src/login/i18n/baseMessages/de.ts +11 -2
- package/src/login/i18n/baseMessages/el.ts +11 -3
- package/src/login/i18n/baseMessages/en.ts +12 -3
- package/src/login/i18n/baseMessages/es.ts +12 -3
- package/src/login/i18n/baseMessages/fa.ts +11 -3
- package/src/login/i18n/baseMessages/fi.ts +11 -2
- package/src/login/i18n/baseMessages/fr.ts +11 -2
- package/src/login/i18n/baseMessages/hu.ts +12 -3
- package/src/login/i18n/baseMessages/it.ts +11 -2
- package/src/login/i18n/baseMessages/ja.ts +11 -2
- package/src/login/i18n/baseMessages/lt.ts +11 -2
- package/src/login/i18n/baseMessages/lv.ts +11 -2
- package/src/login/i18n/baseMessages/nl.ts +11 -2
- package/src/login/i18n/baseMessages/no.ts +11 -2
- package/src/login/i18n/baseMessages/pl.ts +11 -2
- package/src/login/i18n/baseMessages/pt-BR.ts +11 -2
- package/src/login/i18n/baseMessages/ru.ts +11 -2
- package/src/login/i18n/baseMessages/sk.ts +11 -2
- package/src/login/i18n/baseMessages/sv.ts +11 -2
- package/src/login/i18n/baseMessages/th.ts +11 -2
- package/src/login/i18n/baseMessages/tr.ts +11 -2
- package/src/login/i18n/baseMessages/uk.ts +11 -2
- package/src/login/i18n/baseMessages/zh-CN.ts +12 -3
- package/src/login/i18n/i18n.tsx +240 -145
- package/src/login/i18n/index.ts +4 -1
- package/src/login/i18n/useI18n.ts +44 -0
- package/src/login/index.ts +3 -11
- package/src/login/lib/kcClsx.ts +143 -0
- package/src/login/lib/useUserProfileForm.tsx +487 -351
- package/src/login/pages/Code.tsx +8 -5
- package/src/login/pages/DeleteAccountConfirm.tsx +15 -10
- package/src/login/pages/DeleteCredential.tsx +9 -7
- package/src/login/pages/Error.tsx +10 -3
- package/src/login/pages/FrontchannelLogout.tsx +6 -3
- package/src/login/pages/IdpReviewUserProfile.tsx +20 -21
- package/src/login/pages/Info.tsx +30 -13
- package/src/login/pages/Login.tsx +51 -59
- package/src/login/pages/LoginConfigTotp.tsx +49 -43
- package/src/login/pages/LoginIdpLinkConfirm.tsx +7 -18
- package/src/login/pages/LoginIdpLinkEmail.tsx +9 -3
- package/src/login/pages/LoginOauth2DeviceVerifyUserCode.tsx +24 -23
- package/src/login/pages/LoginOauthGrant.tsx +14 -20
- package/src/login/pages/LoginOtp.tsx +34 -32
- package/src/login/pages/LoginPageExpired.tsx +2 -2
- package/src/login/pages/LoginPassword.tsx +29 -34
- package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +34 -34
- package/src/login/pages/LoginRecoveryAuthnCodeInput.tsx +26 -24
- package/src/login/pages/LoginResetOtp.tsx +19 -22
- package/src/login/pages/LoginResetPassword.tsx +28 -26
- package/src/login/pages/LoginUpdatePassword.tsx +55 -55
- package/src/login/pages/LoginUpdateProfile.tsx +32 -30
- package/src/login/pages/LoginUsername.tsx +23 -34
- package/src/login/pages/LoginVerifyEmail.tsx +5 -2
- package/src/login/pages/LoginX509Info.tsx +24 -33
- package/src/login/pages/LogoutConfirm.tsx +8 -14
- package/src/login/pages/PageProps.ts +3 -5
- package/src/login/pages/Register.tsx +54 -54
- package/src/login/pages/SamlPostForm.tsx +3 -3
- package/src/login/pages/SelectAuthenticator.tsx +23 -24
- package/src/login/pages/Terms.tsx +14 -24
- package/src/login/pages/UpdateEmail.tsx +30 -33
- package/src/login/pages/WebauthnAuthenticate.tsx +40 -44
- package/src/login/pages/WebauthnError.tsx +15 -19
- package/src/login/pages/WebauthnRegister.tsx +28 -37
- package/src/tools/Array.prototype.every.ts +4 -1
- package/src/tools/ExtractAfterStartingWith.ts +4 -0
- package/src/tools/LazyOrNot.ts +3 -1
- package/src/tools/Object.fromEntries.ts +23 -0
- package/src/tools/StatefulObservable/README.md +16 -0
- package/src/tools/StatefulObservable/StatefulObservable.ts +58 -0
- package/src/tools/StatefulObservable/hooks/index.ts +2 -0
- package/src/tools/StatefulObservable/hooks/useObservable.ts +25 -0
- package/src/tools/StatefulObservable/hooks/useRerenderOnChange.ts +19 -0
- package/src/tools/StatefulObservable/index.ts +2 -0
- package/src/tools/ValueOf.ts +2 -0
- package/src/tools/clsx.ts +6 -42
- package/src/tools/clsx_withTransform.ts +55 -0
- package/src/tools/deepAssign.ts +57 -19
- package/src/tools/formatNumber.ts +7 -3
- package/src/tools/structuredCloneButFunctions.ts +24 -0
- package/src/tools/useConstCallback.ts +3 -1
- package/src/tools/useInsertLinkTags.ts +78 -74
- package/src/tools/useInsertScriptTags.ts +69 -73
- package/src/tools/useOnFirstMount.ts +18 -0
- package/src/tools/useSetClassName.ts +4 -1
- package/src/vite-plugin/vite-plugin.ts +73 -37
- package/stories/account/pages/Account.stories.tsx +18 -0
- package/stories/account/pages/Applications.stories.tsx +80 -0
- package/stories/account/pages/FederatedIdentity.stories.tsx +38 -0
- package/stories/account/pages/Log.stories.tsx +356 -0
- package/stories/account/pages/Password.stories.tsx +28 -0
- package/stories/account/pages/Sessions.stories.tsx +59 -0
- package/stories/account/pages/Totp.stories.tsx +182 -0
- package/stories/login/pages/Code.stories.tsx +18 -0
- package/stories/login/pages/DeleteAccountConfirm.stories.tsx +18 -0
- package/stories/login/pages/DeleteCredential.stories.tsx +18 -0
- package/stories/login/pages/Error.stories.tsx +28 -0
- package/stories/login/pages/FrontchannelLogout.stories.tsx +18 -0
- package/stories/login/pages/IdpReviewUserProfile.stories.tsx +18 -0
- package/stories/login/pages/Info.stories.tsx +52 -0
- package/stories/login/pages/Login.stories.tsx +221 -0
- package/stories/login/pages/LoginConfigTotp.stories.tsx +43 -0
- package/stories/login/pages/LoginDeviceVerifyUserCode.stories.tsx +18 -0
- package/stories/login/pages/LoginIdpLinkConfirm.stories.tsx +18 -0
- package/stories/login/pages/LoginIdpLinkEmail.stories.tsx +18 -0
- package/stories/login/pages/LoginOauth2DeviceVerifyUserCode.stories.tsx +18 -0
- package/stories/login/pages/LoginOauthGrant.stories.tsx +18 -0
- package/stories/login/pages/LoginOtp.stories.tsx +18 -0
- package/stories/login/pages/LoginPageExpired.stories.tsx +18 -0
- package/stories/login/pages/LoginPassword.stories.tsx +18 -0
- package/stories/login/pages/LoginRecoveryAuthnCodeConfig.stories.tsx +18 -0
- package/stories/login/pages/LoginRecoveryAuthnCodeInput.stories.tsx +18 -0
- package/stories/login/pages/LoginResetOtp.stories.tsx +18 -0
- package/stories/login/pages/LoginResetPassword.stories.tsx +31 -0
- package/stories/login/pages/LoginUpdatePassword.stories.tsx +18 -0
- package/stories/login/pages/LoginUpdateProfile.stories.tsx +18 -0
- package/stories/login/pages/LoginUsername.stories.tsx +31 -0
- package/stories/login/pages/LoginVerifyEmail.stories.tsx +30 -0
- package/stories/login/pages/LoginX509Info.stories.tsx +18 -0
- package/stories/login/pages/LogoutConfirm.stories.tsx +18 -0
- package/stories/login/pages/Register.stories.tsx +185 -0
- package/stories/login/pages/SamlPostForm.stories.tsx +18 -0
- package/stories/login/pages/SelectAuthenticator.stories.tsx +43 -0
- package/stories/login/pages/Terms.stories.tsx +43 -0
- package/stories/login/pages/UpdateEmail.stories.tsx +18 -0
- package/stories/login/pages/WebauthnAuthenticate.stories.tsx +18 -0
- package/stories/login/pages/WebauthnError.stories.tsx +18 -0
- package/stories/login/pages/WebauthnRegister.stories.tsx +18 -0
- package/tools/Array.prototype.every.js +2 -1
- package/tools/Array.prototype.every.js.map +1 -1
- package/tools/ExtractAfterStartingWith.d.ts +1 -0
- package/tools/ExtractAfterStartingWith.js +2 -0
- package/tools/ExtractAfterStartingWith.js.map +1 -0
- package/tools/HTMLElement.prototype.prepend.js.map +1 -1
- package/tools/Object.fromEntries.d.ts +1 -0
- package/tools/Object.fromEntries.js +17 -0
- package/tools/Object.fromEntries.js.map +1 -0
- package/tools/StatefulObservable/StatefulObservable.d.ts +8 -0
- package/tools/StatefulObservable/StatefulObservable.js +36 -0
- package/tools/StatefulObservable/StatefulObservable.js.map +1 -0
- package/tools/StatefulObservable/hooks/index.d.ts +2 -0
- package/tools/StatefulObservable/hooks/index.js +3 -0
- package/tools/StatefulObservable/hooks/index.js.map +1 -0
- package/tools/StatefulObservable/hooks/useObservable.d.ts +8 -0
- package/tools/StatefulObservable/hooks/useObservable.js +17 -0
- package/tools/StatefulObservable/hooks/useObservable.js.map +1 -0
- package/tools/StatefulObservable/hooks/useRerenderOnChange.d.ts +5 -0
- package/tools/StatefulObservable/hooks/useRerenderOnChange.js +14 -0
- package/tools/StatefulObservable/hooks/useRerenderOnChange.js.map +1 -0
- package/tools/StatefulObservable/index.d.ts +2 -0
- package/tools/StatefulObservable/index.js +3 -0
- package/tools/StatefulObservable/index.js.map +1 -0
- package/tools/ValueOf.d.ts +2 -0
- package/tools/ValueOf.js +2 -0
- package/tools/ValueOf.js.map +1 -0
- package/tools/clsx.d.ts +3 -2
- package/tools/clsx.js +5 -41
- package/tools/clsx.js.map +1 -1
- package/tools/clsx_withTransform.d.ts +5 -0
- package/tools/clsx_withTransform.js +43 -0
- package/tools/clsx_withTransform.js.map +1 -0
- package/tools/deepAssign.d.ts +1 -0
- package/tools/deepAssign.js +41 -16
- package/tools/deepAssign.js.map +1 -1
- package/tools/formatNumber.js +2 -1
- package/tools/formatNumber.js.map +1 -1
- package/tools/structuredCloneButFunctions.d.ts +7 -0
- package/tools/structuredCloneButFunctions.js +19 -0
- package/tools/structuredCloneButFunctions.js.map +1 -0
- package/tools/useConstCallback.js.map +1 -1
- package/tools/useInsertLinkTags.d.ts +11 -6
- package/tools/useInsertLinkTags.js +53 -52
- package/tools/useInsertLinkTags.js.map +1 -1
- package/tools/useInsertScriptTags.d.ts +15 -6
- package/tools/useInsertScriptTags.js +56 -61
- package/tools/useInsertScriptTags.js.map +1 -1
- package/tools/useOnFirstMount.d.ts +2 -0
- package/tools/useOnFirstMount.js +15 -0
- package/tools/useOnFirstMount.js.map +1 -0
- package/tools/useSetClassName.js.map +1 -1
- package/vite-plugin/index.d.ts +1 -0
- package/vite-plugin/index.js +53377 -0
- package/vite-plugin/vite-plugin.d.ts +5 -0
- package/account/Fallback.d.ts +0 -5
- package/account/Fallback.js.map +0 -1
- package/account/kcContext/KcContext.js.map +0 -1
- package/account/kcContext/createGetKcContext.d.ts +0 -19
- package/account/kcContext/createGetKcContext.js +0 -73
- package/account/kcContext/createGetKcContext.js.map +0 -1
- package/account/kcContext/getKcContext.d.ts +0 -13
- package/account/kcContext/getKcContext.js +0 -13
- package/account/kcContext/getKcContext.js.map +0 -1
- package/account/kcContext/getKcContextFromWindow.d.ts +0 -8
- package/account/kcContext/getKcContextFromWindow.js +0 -5
- package/account/kcContext/getKcContextFromWindow.js.map +0 -1
- package/account/kcContext/index.d.ts +0 -1
- package/account/kcContext/index.js +0 -2
- package/account/kcContext/index.js.map +0 -1
- package/account/kcContext/kcContextMocks.js +0 -215
- package/account/kcContext/kcContextMocks.js.map +0 -1
- package/account/lib/useGetClassName.d.ts +0 -7
- package/account/lib/useGetClassName.js +0 -19
- package/account/lib/useGetClassName.js.map +0 -1
- package/lib/isStorybook.d.ts +0 -1
- package/lib/isStorybook.js +0 -2
- package/lib/isStorybook.js.map +0 -1
- package/lib/useGetClassName.d.ts +0 -10
- package/lib/useGetClassName.js +0 -14
- package/lib/useGetClassName.js.map +0 -1
- package/login/Fallback.js.map +0 -1
- package/login/kcContext/KcContext.js.map +0 -1
- package/login/kcContext/createGetKcContext.d.ts +0 -19
- package/login/kcContext/createGetKcContext.js +0 -109
- package/login/kcContext/createGetKcContext.js.map +0 -1
- package/login/kcContext/getKcContext.d.ts +0 -13
- package/login/kcContext/getKcContext.js +0 -13
- package/login/kcContext/getKcContext.js.map +0 -1
- package/login/kcContext/getKcContextFromWindow.d.ts +0 -8
- package/login/kcContext/getKcContextFromWindow.js +0 -5
- package/login/kcContext/getKcContextFromWindow.js.map +0 -1
- package/login/kcContext/index.d.ts +0 -1
- package/login/kcContext/index.js +0 -2
- package/login/kcContext/index.js.map +0 -1
- package/login/kcContext/kcContextMocks.js +0 -390
- package/login/kcContext/kcContextMocks.js.map +0 -1
- package/login/lib/useDownloadTerms.d.ts +0 -17
- package/login/lib/useDownloadTerms.js +0 -32
- package/login/lib/useDownloadTerms.js.map +0 -1
- package/login/lib/useGetClassName.d.ts +0 -7
- package/login/lib/useGetClassName.js +0 -130
- package/login/lib/useGetClassName.js.map +0 -1
- package/src/account/kcContext/createGetKcContext.ts +0 -108
- package/src/account/kcContext/getKcContext.ts +0 -21
- package/src/account/kcContext/getKcContextFromWindow.ts +0 -11
- package/src/account/kcContext/index.ts +0 -1
- package/src/account/kcContext/kcContextMocks.ts +0 -260
- package/src/account/lib/useGetClassName.ts +0 -20
- package/src/bin/download-builtin-keycloak-theme.ts +0 -30
- package/src/bin/eject-keycloak-page.ts +0 -126
- package/src/bin/keycloakify/generateSrcMainResources/bringInAccountV1.ts +0 -79
- package/src/bin/keycloakify/generateSrcMainResources/generateMessageProperties.ts +0 -179
- package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResources.ts +0 -32
- package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForMainTheme.ts +0 -261
- package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForThemeVariant.ts +0 -56
- package/src/bin/keycloakify/generateSrcMainResources/index.ts +0 -1
- package/src/bin/keycloakify/generateSrcMainResources/readFieldNameUsage.ts +0 -56
- package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +0 -60
- package/src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts +0 -24
- package/src/bin/shared/buildOptions.ts +0 -277
- package/src/bin/shared/downloadAndUnzip.ts +0 -203
- package/src/bin/shared/downloadBuiltinKeycloakTheme.ts +0 -264
- package/src/bin/shared/getJarFileBasename.ts +0 -9
- package/src/bin/shared/getThemeSrcDirPath.ts +0 -47
- package/src/bin/start-keycloak.ts +0 -236
- package/src/bin/tools/getNpmWorkspaceRootDirPath.ts +0 -27
- package/src/bin/tools/unzip.ts +0 -141
- package/src/lib/isStorybook.ts +0 -1
- package/src/lib/useGetClassName.ts +0 -18
- package/src/login/kcContext/createGetKcContext.ts +0 -159
- package/src/login/kcContext/getKcContext.ts +0 -21
- package/src/login/kcContext/getKcContextFromWindow.ts +0 -11
- package/src/login/kcContext/index.ts +0 -1
- package/src/login/kcContext/kcContextMocks.ts +0 -630
- package/src/login/lib/useDownloadTerms.ts +0 -57
- package/src/login/lib/useGetClassName.ts +0 -132
- package/src/tools/AndByDiscriminatingKey.ts +0 -25
- package/src/tools/Markdown.ts +0 -3
- package/src/tools/deepClone.ts +0 -17
- package/src/tools/memoize.ts +0 -55
- package/tools/AndByDiscriminatingKey.d.ts +0 -5
- package/tools/AndByDiscriminatingKey.js +0 -2
- package/tools/AndByDiscriminatingKey.js.map +0 -1
- package/tools/Markdown.d.ts +0 -2
- package/tools/Markdown.js +0 -3
- package/tools/Markdown.js.map +0 -1
- package/tools/deepClone.d.ts +0 -2
- package/tools/deepClone.js +0 -14
- package/tools/deepClone.js.map +0 -1
- package/tools/memoize.d.ts +0 -7
- package/tools/memoize.js +0 -38
- package/tools/memoize.js.map +0 -1
- /package/account/{kcContext → KcContext}/KcContext.js +0 -0
- /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 {
|
21
|
-
|
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
|
-
"
|
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
|
-
|
30
|
-
|
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
|
-
//
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
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
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
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
|
-
|
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
|
-
|
131
|
+
// Retro-compatibility and consistency patches
|
132
|
+
attributes.forEach(attribute => {
|
158
133
|
var _a, _b, _c;
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
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
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
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
|
-
|
230
|
+
initialFormFieldState.push({
|
190
231
|
attribute,
|
191
|
-
|
232
|
+
valueOrValues: values
|
192
233
|
});
|
234
|
+
continue;
|
193
235
|
}
|
194
|
-
|
195
|
-
|
236
|
+
initialFormFieldState.push({
|
237
|
+
attribute,
|
238
|
+
valueOrValues: (_b = attribute.value) !== null && _b !== void 0 ? _b : ""
|
239
|
+
});
|
240
|
+
}
|
196
241
|
const initialState = {
|
197
|
-
|
242
|
+
formFieldStates: initialFormFieldState.map(({ attribute, valueOrValues }) => ({
|
198
243
|
attribute,
|
199
|
-
|
200
|
-
|
201
|
-
|
244
|
+
errors: getErrors({
|
245
|
+
attributeName: attribute.name,
|
246
|
+
formFieldStates: initialFormFieldState
|
202
247
|
}),
|
203
|
-
|
204
|
-
|
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
|
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
|
-
|
232
|
-
|
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
|
-
|
243
|
-
|
244
|
-
|
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
|
-
|
308
|
+
formFieldStates: state.formFieldStates.map((_a) => {
|
264
309
|
var { errors, hasLostFocusAtLeastOnce: hasLostFocusAtLeastOnceOrArr, attribute } = _a, valueOrValuesWrap = __rest(_a, ["errors", "hasLostFocusAtLeastOnce", "attribute"]);
|
265
|
-
return (Object.assign({
|
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
|
-
|
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
|
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
|
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)
|
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 (
|
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
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
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 ((
|
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
|
-
|
454
|
+
formFieldStates: formFieldStates.map(formFieldState => {
|
407
455
|
if (formFieldState.attribute.name === attributeName) {
|
408
456
|
assert(formFieldState.valueOrValues instanceof Array);
|
409
457
|
return {
|
410
|
-
|
411
|
-
|
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), {
|
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
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
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 (!(
|
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
|
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
|
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
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
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
|
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
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
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
|
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
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
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
|
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
|
-
|
548
|
-
|
549
|
-
|
550
|
-
|
551
|
-
|
552
|
-
|
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
|
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
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
572
|
-
|
573
|
-
|
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
|
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
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
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
|
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
|
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
|
-
|
627
|
-
|
628
|
-
|
629
|
-
|
630
|
-
|
631
|
-
|
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
|
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
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
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
|
-
|
680
|
-
|
681
|
-
|
682
|
-
|
683
|
-
|
684
|
-
|
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
|
-
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
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
|
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
|
-
|
719
|
-
|
772
|
+
type: "validator",
|
773
|
+
name: validatorName
|
720
774
|
};
|
721
|
-
if (max
|
775
|
+
if (max && value.length > parseInt(`${max}`)) {
|
722
776
|
const msgArgs = ["error-invalid-length-too-long", `${max}`];
|
723
777
|
errors.push({
|
724
|
-
|
725
|
-
|
726
|
-
|
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
|
784
|
+
if (min && value.length < parseInt(`${min}`)) {
|
731
785
|
const msgArgs = ["error-invalid-length-too-short", `${min}`];
|
732
786
|
errors.push({
|
733
|
-
|
734
|
-
|
735
|
-
|
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
|
-
|
756
|
-
|
757
|
-
|
758
|
-
|
759
|
-
|
760
|
-
|
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
|
-
|
786
|
-
|
787
|
-
|
788
|
-
|
789
|
-
|
790
|
-
|
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
|
-
|
807
|
-
|
860
|
+
type: "validator",
|
861
|
+
name: validatorName
|
808
862
|
};
|
809
863
|
if (isNaN(intValue)) {
|
810
864
|
const msgArgs = ["mustBeAnInteger"];
|
811
865
|
errors.push({
|
812
|
-
|
813
|
-
|
814
|
-
|
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
|
873
|
+
if (max && intValue > parseInt(`${max}`)) {
|
820
874
|
const msgArgs = ["error-number-out-of-range-too-big", `${max}`];
|
821
875
|
errors.push({
|
822
|
-
|
823
|
-
|
824
|
-
|
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
|
883
|
+
if (min && intValue < parseInt(`${min}`)) {
|
830
884
|
const msgArgs = ["error-number-out-of-range-too-small", `${min}`];
|
831
885
|
errors.push({
|
832
|
-
|
833
|
-
|
834
|
-
|
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
|
-
|
855
|
-
|
856
|
-
|
857
|
-
|
858
|
-
|
859
|
-
|
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
|