keycloakify 10.0.0-rc.2 → 10.0.0-rc.21
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.js +1 -1
- package/PUBLIC_URL.js.map +1 -1
- package/account/Fallback.js +3 -0
- package/account/Fallback.js.map +1 -1
- package/account/Template.js +7 -7
- package/account/Template.js.map +1 -1
- package/account/i18n/baseMessages/index.js.map +1 -1
- package/account/i18n/i18n.d.ts +3 -4
- package/account/i18n/i18n.js +38 -31
- package/account/i18n/i18n.js.map +1 -1
- package/account/index.d.ts +1 -1
- package/account/kcContext/KcContext.d.ts +62 -59
- package/account/kcContext/KcContext.js.map +1 -1
- package/account/kcContext/createGetKcContext.d.ts +3 -3
- package/account/kcContext/createGetKcContext.js +20 -15
- package/account/kcContext/createGetKcContext.js.map +1 -1
- package/account/kcContext/getKcContext.js.map +1 -1
- package/account/kcContext/getKcContextFromWindow.d.ts +3 -1
- package/account/kcContext/getKcContextFromWindow.js +1 -1
- package/account/kcContext/getKcContextFromWindow.js.map +1 -1
- package/account/kcContext/kcContextMocks.js +155 -143
- package/account/kcContext/kcContextMocks.js.map +1 -1
- package/account/lib/useGetClassName.js +14 -14
- package/account/lib/useGetClassName.js.map +1 -1
- package/account/pages/Account.js +2 -2
- package/account/pages/Account.js.map +1 -1
- package/account/pages/Applications.js +3 -3
- package/account/pages/Applications.js.map +1 -1
- package/account/pages/FederatedIdentity.d.ts +7 -0
- package/account/pages/FederatedIdentity.js +8 -0
- package/account/pages/FederatedIdentity.js.map +1 -0
- package/account/pages/Log.js +2 -2
- package/account/pages/Log.js.map +1 -1
- package/account/pages/Password.js +9 -11
- package/account/pages/Password.js.map +1 -1
- package/account/pages/Sessions.js +1 -5
- package/account/pages/Sessions.js.map +1 -1
- package/account/pages/Totp.js +5 -5
- package/account/pages/Totp.js.map +1 -1
- package/bin/246.index.js +466 -0
- package/bin/420.index.js +508 -0
- package/bin/509.index.js +438 -0
- package/bin/772.index.js +1524 -0
- package/bin/main.js +155619 -0
- package/bin/{keycloakify/generateFtl/pageId.d.ts → shared/constants.d.ts} +16 -1
- package/bin/shared/constants.js +63 -0
- package/bin/shared/constants.js.map +1 -0
- package/lib/BASE_URL.js.map +1 -1
- package/lib/isStorybook.js +2 -1
- package/lib/isStorybook.js.map +1 -1
- package/lib/useGetClassName.js.map +1 -1
- package/login/Fallback.js.map +1 -1
- package/login/Template.js +17 -17
- package/login/Template.js.map +1 -1
- package/login/UserProfileFormFields.js +59 -59
- package/login/UserProfileFormFields.js.map +1 -1
- package/login/i18n/baseMessages/ca.d.ts +1 -1
- package/login/i18n/baseMessages/ca.js +1 -1
- package/login/i18n/baseMessages/el.d.ts +0 -1
- package/login/i18n/baseMessages/el.js +0 -1
- package/login/i18n/baseMessages/el.js.map +1 -1
- package/login/i18n/baseMessages/en.d.ts +1 -1
- package/login/i18n/baseMessages/en.js +1 -1
- package/login/i18n/baseMessages/es.d.ts +1 -1
- package/login/i18n/baseMessages/es.js +1 -1
- package/login/i18n/baseMessages/fa.d.ts +0 -1
- package/login/i18n/baseMessages/fa.js +0 -1
- package/login/i18n/baseMessages/fa.js.map +1 -1
- package/login/i18n/baseMessages/hu.d.ts +1 -1
- package/login/i18n/baseMessages/hu.js +1 -1
- package/login/i18n/baseMessages/index.d.ts +1 -2
- package/login/i18n/baseMessages/index.js.map +1 -1
- package/login/i18n/baseMessages/zh-CN.d.ts +1 -1
- package/login/i18n/baseMessages/zh-CN.js +1 -1
- package/login/i18n/i18n.d.ts +5 -5
- package/login/i18n/i18n.js +59 -41
- package/login/i18n/i18n.js.map +1 -1
- package/login/index.d.ts +1 -1
- package/login/kcContext/KcContext.d.ts +1 -0
- package/login/kcContext/KcContext.js +1 -0
- package/login/kcContext/KcContext.js.map +1 -1
- package/login/kcContext/createGetKcContext.d.ts +3 -3
- package/login/kcContext/createGetKcContext.js +30 -22
- package/login/kcContext/createGetKcContext.js.map +1 -1
- package/login/kcContext/getKcContext.js.map +1 -1
- package/login/kcContext/getKcContextFromWindow.d.ts +3 -1
- package/login/kcContext/getKcContextFromWindow.js +1 -1
- package/login/kcContext/getKcContextFromWindow.js.map +1 -1
- package/login/kcContext/kcContextMocks.js +235 -232
- package/login/kcContext/kcContextMocks.js.map +1 -1
- package/login/lib/useDownloadTerms.js +5 -6
- package/login/lib/useDownloadTerms.js.map +1 -1
- package/login/lib/useGetClassName.js +112 -112
- package/login/lib/useGetClassName.js.map +1 -1
- package/login/lib/useUserProfileForm.js +188 -188
- package/login/lib/useUserProfileForm.js.map +1 -1
- package/login/pages/Code.js +1 -1
- package/login/pages/Code.js.map +1 -1
- package/login/pages/DeleteAccountConfirm.js +5 -1
- package/login/pages/DeleteAccountConfirm.js.map +1 -1
- package/login/pages/DeleteCredential.js +1 -1
- package/login/pages/DeleteCredential.js.map +1 -1
- package/login/pages/Error.js +1 -1
- package/login/pages/Error.js.map +1 -1
- package/login/pages/FrontchannelLogout.js +1 -1
- package/login/pages/FrontchannelLogout.js.map +1 -1
- package/login/pages/IdpReviewUserProfile.js +1 -1
- package/login/pages/IdpReviewUserProfile.js.map +1 -1
- package/login/pages/Info.js +5 -5
- package/login/pages/Info.js.map +1 -1
- package/login/pages/Login.js +4 -4
- package/login/pages/Login.js.map +1 -1
- package/login/pages/LoginConfigTotp.js +2 -2
- package/login/pages/LoginConfigTotp.js.map +1 -1
- package/login/pages/LoginIdpLinkConfirm.js +1 -1
- package/login/pages/LoginIdpLinkConfirm.js.map +1 -1
- package/login/pages/LoginIdpLinkEmail.js +1 -1
- package/login/pages/LoginIdpLinkEmail.js.map +1 -1
- package/login/pages/LoginOauth2DeviceVerifyUserCode.js +1 -1
- package/login/pages/LoginOauth2DeviceVerifyUserCode.js.map +1 -1
- package/login/pages/LoginOauthGrant.js +2 -2
- package/login/pages/LoginOauthGrant.js.map +1 -1
- package/login/pages/LoginOtp.js +1 -1
- package/login/pages/LoginOtp.js.map +1 -1
- package/login/pages/LoginPageExpired.js +1 -1
- package/login/pages/LoginPageExpired.js.map +1 -1
- package/login/pages/LoginPassword.js +3 -3
- package/login/pages/LoginPassword.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeConfig.js +6 -6
- package/login/pages/LoginRecoveryAuthnCodeConfig.js.map +1 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.js +1 -1
- package/login/pages/LoginRecoveryAuthnCodeInput.js.map +1 -1
- package/login/pages/LoginResetOtp.js +1 -1
- package/login/pages/LoginResetOtp.js.map +1 -1
- package/login/pages/LoginResetPassword.js +2 -2
- package/login/pages/LoginResetPassword.js.map +1 -1
- package/login/pages/LoginUpdatePassword.js +3 -3
- package/login/pages/LoginUpdatePassword.js.map +1 -1
- package/login/pages/LoginUpdateProfile.js +2 -4
- package/login/pages/LoginUpdateProfile.js.map +1 -1
- package/login/pages/LoginUsername.js +3 -3
- package/login/pages/LoginUsername.js.map +1 -1
- package/login/pages/LoginVerifyEmail.js +1 -1
- package/login/pages/LoginVerifyEmail.js.map +1 -1
- package/login/pages/LoginX509Info.js +1 -1
- package/login/pages/LoginX509Info.js.map +1 -1
- package/login/pages/LogoutConfirm.js +1 -1
- package/login/pages/LogoutConfirm.js.map +1 -1
- package/login/pages/Register.js +4 -8
- package/login/pages/Register.js.map +1 -1
- package/login/pages/SamlPostForm.js +1 -1
- package/login/pages/SamlPostForm.js.map +1 -1
- package/login/pages/SelectAuthenticator.js +2 -2
- package/login/pages/SelectAuthenticator.js.map +1 -1
- package/login/pages/Terms.js +1 -1
- package/login/pages/Terms.js.map +1 -1
- package/login/pages/UpdateEmail.js +3 -5
- package/login/pages/UpdateEmail.js.map +1 -1
- package/login/pages/WebauthnAuthenticate.js +17 -14
- package/login/pages/WebauthnAuthenticate.js.map +1 -1
- package/login/pages/WebauthnError.js +2 -2
- package/login/pages/WebauthnError.js.map +1 -1
- package/login/pages/WebauthnRegister.js +10 -10
- package/login/pages/WebauthnRegister.js.map +1 -1
- package/package.json +103 -512
- package/src/PUBLIC_URL.ts +4 -1
- package/src/account/Fallback.tsx +3 -0
- package/src/account/Template.tsx +7 -10
- package/src/account/TemplateProps.ts +4 -1
- package/src/account/i18n/i18n.tsx +44 -37
- package/src/account/index.ts +1 -1
- package/src/account/kcContext/KcContext.ts +76 -63
- package/src/account/kcContext/createGetKcContext.ts +48 -22
- package/src/account/kcContext/getKcContext.ts +3 -1
- package/src/account/kcContext/getKcContextFromWindow.ts +7 -3
- package/src/account/kcContext/kcContextMocks.ts +172 -162
- package/src/account/lib/useGetClassName.ts +15 -14
- package/src/account/pages/Account.tsx +2 -2
- package/src/account/pages/Applications.tsx +2 -2
- package/src/account/pages/FederatedIdentity.tsx +58 -0
- package/src/account/pages/Log.tsx +1 -1
- package/src/account/pages/Password.tsx +8 -8
- package/src/account/pages/Sessions.tsx +0 -3
- package/src/account/pages/Totp.tsx +23 -26
- package/src/bin/copy-keycloak-resources-to-public.ts +10 -106
- package/src/bin/download-keycloak-default-theme.ts +63 -0
- package/src/bin/eject-page.ts +176 -0
- package/src/bin/initialize-email-theme.ts +38 -29
- package/src/bin/keycloakify/buildJars/buildJar.ts +192 -72
- package/src/bin/keycloakify/buildJars/buildJars.ts +41 -23
- package/src/bin/keycloakify/buildJars/extensionVersions.ts +2 -1
- package/src/bin/keycloakify/buildJars/generatePom.ts +12 -4
- package/src/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.ts +73 -21
- package/src/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +182 -252
- package/src/bin/keycloakify/generateFtl/generateFtl.ts +59 -15
- package/src/bin/keycloakify/generateFtl/index.ts +0 -1
- package/src/bin/keycloakify/{generateTheme → generateSrcMainResources}/bringInAccountV1.ts +34 -22
- package/src/bin/keycloakify/{generateTheme → generateSrcMainResources}/generateMessageProperties.ts +72 -20
- package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResources.ts +34 -0
- package/src/bin/keycloakify/{generateTheme/generateSrcMainResources.ts → generateSrcMainResources/generateSrcMainResourcesForMainTheme.ts} +113 -74
- package/src/bin/keycloakify/generateSrcMainResources/generateSrcMainResourcesForThemeVariant.ts +80 -0
- package/src/bin/keycloakify/generateSrcMainResources/index.ts +1 -0
- package/src/bin/keycloakify/{generateTheme → generateSrcMainResources}/readExtraPageNames.ts +21 -8
- package/src/bin/keycloakify/generateSrcMainResources/readFieldNameUsage.ts +83 -0
- package/src/bin/keycloakify/generateStartKeycloakTestingContainer.ts +31 -18
- package/src/bin/keycloakify/index.ts +0 -7
- package/src/bin/keycloakify/keycloakify.ts +77 -69
- package/src/bin/keycloakify/replacers/replaceImportsInCssCode.ts +26 -7
- package/src/bin/keycloakify/replacers/replaceImportsInInlineCssCode.ts +8 -4
- package/src/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.ts +7 -4
- package/src/bin/keycloakify/replacers/replaceImportsInJsCode/vite.ts +25 -7
- package/src/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.ts +50 -12
- package/src/bin/main.ts +212 -0
- package/src/bin/shared/KeycloakVersionRange.ts +9 -0
- package/src/bin/shared/buildOptions.ts +307 -0
- package/src/bin/{keycloakify/generateFtl/pageId.ts → shared/constants.ts} +31 -1
- package/src/bin/shared/copyKeycloakResourcesToPublic.ts +104 -0
- package/src/bin/shared/downloadKeycloakDefaultTheme.ts +207 -0
- package/src/bin/shared/downloadKeycloakStaticResources.ts +53 -0
- package/src/bin/shared/getJarFileBasename.ts +11 -0
- package/src/bin/{getThemeSrcDirPath.ts → shared/getThemeSrcDirPath.ts} +6 -3
- package/src/bin/shared/metaInfKeycloakThemes.ts +61 -0
- package/src/bin/shared/promptKeycloakVersion.ts +125 -0
- package/src/bin/start-keycloak/appBuild.ts +129 -0
- package/src/bin/start-keycloak/index.ts +1 -0
- package/src/bin/start-keycloak/keycloakifyBuild.ts +41 -0
- package/src/bin/start-keycloak/myrealm-realm-23.json +2142 -0
- package/src/bin/start-keycloak/myrealm-realm-24.json +2318 -0
- package/src/bin/start-keycloak/start-keycloak.ts +467 -0
- package/src/bin/tools/SemVer.ts +32 -13
- package/src/bin/tools/String.prototype.replaceAll.ts +9 -2
- package/src/bin/tools/crawl.ts +4 -1
- package/src/bin/tools/crc32.ts +42 -24
- package/src/bin/tools/downloadAndExtractArchive/downloadAndExtractArchive.ts +262 -0
- package/src/bin/tools/downloadAndExtractArchive/fetchProxyOptions.ts +96 -0
- package/src/bin/tools/downloadAndExtractArchive/index.ts +1 -0
- package/src/bin/tools/extractArchive.ts +140 -0
- package/src/bin/tools/fetchProxyOptions.ts +31 -8
- package/src/bin/tools/fs.rmSync.ts +4 -4
- package/src/bin/tools/getAbsoluteAndInOsFormatPath.ts +17 -2
- package/src/bin/tools/getNpmWorkspaceRootDirPath.ts +73 -0
- 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/{readThisNpmProjectVersion.ts → readThisNpmPackageVersion.ts} +6 -2
- package/src/bin/tools/transformCodebase.ts +29 -10
- package/src/bin/tools/trimIndent.ts +4 -1
- package/src/lib/isStorybook.ts +3 -1
- package/src/lib/useGetClassName.ts +12 -3
- package/src/login/Template.tsx +20 -36
- package/src/login/TemplateProps.ts +4 -1
- package/src/login/UserProfileFormFields.tsx +46 -47
- package/src/login/i18n/baseMessages/ca.ts +1 -1
- package/src/login/i18n/baseMessages/el.ts +0 -1
- package/src/login/i18n/baseMessages/en.ts +1 -1
- package/src/login/i18n/baseMessages/es.ts +1 -1
- package/src/login/i18n/baseMessages/fa.ts +0 -1
- package/src/login/i18n/baseMessages/hu.ts +1 -1
- package/src/login/i18n/baseMessages/zh-CN.ts +1 -1
- package/src/login/i18n/i18n.tsx +77 -54
- package/src/login/index.ts +1 -1
- package/src/login/kcContext/KcContext.ts +23 -4
- package/src/login/kcContext/createGetKcContext.ts +84 -37
- package/src/login/kcContext/getKcContext.ts +3 -1
- package/src/login/kcContext/getKcContextFromWindow.ts +7 -3
- package/src/login/kcContext/kcContextMocks.ts +340 -326
- package/src/login/lib/useDownloadTerms.ts +13 -9
- package/src/login/lib/useGetClassName.ts +119 -112
- package/src/login/lib/useUserProfileForm.tsx +227 -213
- package/src/login/pages/Code.tsx +1 -1
- package/src/login/pages/DeleteAccountConfirm.tsx +9 -3
- package/src/login/pages/FrontchannelLogout.tsx +1 -1
- package/src/login/pages/IdpReviewUserProfile.tsx +1 -1
- package/src/login/pages/Login.tsx +3 -3
- package/src/login/pages/LoginRecoveryAuthnCodeConfig.tsx +3 -3
- package/src/login/pages/LoginResetPassword.tsx +2 -2
- package/src/login/pages/LoginUpdateProfile.tsx +1 -1
- package/src/login/pages/LoginUsername.tsx +3 -3
- package/src/login/pages/Register.tsx +1 -1
- package/src/login/pages/UpdateEmail.tsx +1 -1
- package/src/login/pages/WebauthnAuthenticate.tsx +11 -8
- package/src/login/pages/WebauthnRegister.tsx +8 -8
- package/src/tools/AndByDiscriminatingKey.ts +12 -6
- package/src/tools/Array.prototype.every.ts +4 -1
- package/src/tools/LazyOrNot.ts +3 -1
- 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/clsx.ts +7 -1
- package/src/tools/deepAssign.ts +15 -8
- package/src/tools/deepClone.ts +3 -1
- package/src/tools/formatNumber.ts +4 -1
- package/src/tools/useConstCallback.ts +3 -1
- package/src/tools/useInsertLinkTags.ts +20 -7
- package/src/tools/useInsertScriptTags.ts +7 -2
- package/src/tools/useSetClassName.ts +4 -1
- package/src/vite-plugin/tsconfig.json +2 -1
- package/src/vite-plugin/vite-plugin.ts +64 -52
- package/tools/Array.prototype.every.js +2 -1
- package/tools/Array.prototype.every.js.map +1 -1
- package/tools/HTMLElement.prototype.prepend.js.map +1 -1
- 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/clsx.js.map +1 -1
- package/tools/deepAssign.js +9 -7
- package/tools/deepAssign.js.map +1 -1
- package/tools/deepClone.js.map +1 -1
- package/tools/formatNumber.js.map +1 -1
- package/tools/memoize.js.map +1 -1
- package/tools/useConstCallback.js.map +1 -1
- package/tools/useInsertLinkTags.js +5 -4
- package/tools/useInsertLinkTags.js.map +1 -1
- package/tools/useInsertScriptTags.js +5 -2
- package/tools/useInsertScriptTags.js.map +1 -1
- package/tools/useSetClassName.js.map +1 -1
- package/vite-plugin/index.js +50241 -3
- package/bin/constants.d.ts +0 -10
- package/bin/constants.js +0 -13
- package/bin/constants.js.map +0 -1
- package/bin/copy-keycloak-resources-to-public.d.ts +0 -14
- package/bin/copy-keycloak-resources-to-public.js +0 -216
- package/bin/copy-keycloak-resources-to-public.js.map +0 -1
- package/bin/download-builtin-keycloak-theme.d.ts +0 -10
- package/bin/download-builtin-keycloak-theme.js +0 -352
- package/bin/download-builtin-keycloak-theme.js.map +0 -1
- package/bin/downloadAndUnzip.d.ts +0 -16
- package/bin/downloadAndUnzip.js +0 -255
- package/bin/downloadAndUnzip.js.map +0 -1
- package/bin/eject-keycloak-page.d.ts +0 -2
- package/bin/eject-keycloak-page.js +0 -132
- package/bin/eject-keycloak-page.js.map +0 -1
- package/bin/getThemeSrcDirPath.d.ts +0 -6
- package/bin/getThemeSrcDirPath.js +0 -123
- package/bin/getThemeSrcDirPath.js.map +0 -1
- package/bin/initialize-email-theme.d.ts +0 -2
- package/bin/initialize-email-theme.js +0 -121
- package/bin/initialize-email-theme.js.map +0 -1
- package/bin/keycloakify/buildJars/buildJar.d.ts +0 -14
- package/bin/keycloakify/buildJars/buildJar.js +0 -224
- package/bin/keycloakify/buildJars/buildJar.js.map +0 -1
- package/bin/keycloakify/buildJars/buildJars.d.ts +0 -10
- package/bin/keycloakify/buildJars/buildJars.js +0 -95
- package/bin/keycloakify/buildJars/buildJars.js.map +0 -1
- package/bin/keycloakify/buildJars/extensionVersions.d.ts +0 -12
- package/bin/keycloakify/buildJars/extensionVersions.js +0 -7
- package/bin/keycloakify/buildJars/extensionVersions.js.map +0 -1
- package/bin/keycloakify/buildJars/generatePom.d.ts +0 -13
- package/bin/keycloakify/buildJars/generatePom.js +0 -95
- package/bin/keycloakify/buildJars/generatePom.js.map +0 -1
- package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.d.ts +0 -6
- package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js +0 -35
- package/bin/keycloakify/buildJars/getKeycloakVersionRangeForJar.js.map +0 -1
- package/bin/keycloakify/buildJars/index.d.ts +0 -1
- package/bin/keycloakify/buildJars/index.js +0 -18
- package/bin/keycloakify/buildJars/index.js.map +0 -1
- package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.d.ts +0 -35
- package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js +0 -14
- package/bin/keycloakify/buildOptions/UserProvidedBuildOptions.js.map +0 -1
- package/bin/keycloakify/buildOptions/buildOptions.d.ts +0 -25
- package/bin/keycloakify/buildOptions/buildOptions.js +0 -178
- package/bin/keycloakify/buildOptions/buildOptions.js.map +0 -1
- package/bin/keycloakify/buildOptions/getCacheDirPath.d.ts +0 -5
- package/bin/keycloakify/buildOptions/getCacheDirPath.js +0 -22
- package/bin/keycloakify/buildOptions/getCacheDirPath.js.map +0 -1
- package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.d.ts +0 -5
- package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js +0 -86
- package/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.js.map +0 -1
- package/bin/keycloakify/buildOptions/getReactAppRootDirPath.d.ts +0 -5
- package/bin/keycloakify/buildOptions/getReactAppRootDirPath.js +0 -26
- package/bin/keycloakify/buildOptions/getReactAppRootDirPath.js.map +0 -1
- package/bin/keycloakify/buildOptions/index.d.ts +0 -1
- package/bin/keycloakify/buildOptions/index.js +0 -18
- package/bin/keycloakify/buildOptions/index.js.map +0 -1
- package/bin/keycloakify/buildOptions/parsedPackageJson.d.ts +0 -10
- package/bin/keycloakify/buildOptions/parsedPackageJson.js +0 -49
- package/bin/keycloakify/buildOptions/parsedPackageJson.js.map +0 -1
- package/bin/keycloakify/buildOptions/resolvedViteConfig.d.ts +0 -13
- package/bin/keycloakify/buildOptions/resolvedViteConfig.js +0 -77
- package/bin/keycloakify/buildOptions/resolvedViteConfig.js.map +0 -1
- package/bin/keycloakify/generateFtl/ftl_object_to_js_code_declaring_an_object.ftl +0 -604
- package/bin/keycloakify/generateFtl/generateFtl.d.ts +0 -23
- package/bin/keycloakify/generateFtl/generateFtl.js +0 -169
- package/bin/keycloakify/generateFtl/generateFtl.js.map +0 -1
- package/bin/keycloakify/generateFtl/index.d.ts +0 -2
- package/bin/keycloakify/generateFtl/index.js +0 -19
- package/bin/keycloakify/generateFtl/index.js.map +0 -1
- package/bin/keycloakify/generateFtl/pageId.js +0 -41
- package/bin/keycloakify/generateFtl/pageId.js.map +0 -1
- package/bin/keycloakify/generateStartKeycloakTestingContainer.d.ts +0 -11
- package/bin/keycloakify/generateStartKeycloakTestingContainer.js +0 -89
- package/bin/keycloakify/generateStartKeycloakTestingContainer.js.map +0 -1
- package/bin/keycloakify/generateTheme/bringInAccountV1.d.ts +0 -9
- package/bin/keycloakify/generateTheme/bringInAccountV1.js +0 -153
- package/bin/keycloakify/generateTheme/bringInAccountV1.js.map +0 -1
- package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.d.ts +0 -11
- package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.js +0 -102
- package/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.js.map +0 -1
- package/bin/keycloakify/generateTheme/generateMessageProperties.d.ts +0 -8
- package/bin/keycloakify/generateTheme/generateMessageProperties.js +0 -271
- package/bin/keycloakify/generateTheme/generateMessageProperties.js.map +0 -1
- package/bin/keycloakify/generateTheme/generateSrcMainResources.d.ts +0 -21
- package/bin/keycloakify/generateTheme/generateSrcMainResources.js +0 -340
- package/bin/keycloakify/generateTheme/generateSrcMainResources.js.map +0 -1
- package/bin/keycloakify/generateTheme/generateTheme.d.ts +0 -13
- package/bin/keycloakify/generateTheme/generateTheme.js +0 -115
- package/bin/keycloakify/generateTheme/generateTheme.js.map +0 -1
- package/bin/keycloakify/generateTheme/generateThemeVariants.d.ts +0 -5
- package/bin/keycloakify/generateTheme/generateThemeVariants.js +0 -67
- package/bin/keycloakify/generateTheme/generateThemeVariants.js.map +0 -1
- package/bin/keycloakify/generateTheme/index.d.ts +0 -1
- package/bin/keycloakify/generateTheme/index.js +0 -18
- package/bin/keycloakify/generateTheme/index.js.map +0 -1
- package/bin/keycloakify/generateTheme/readExtraPageNames.d.ts +0 -5
- package/bin/keycloakify/generateTheme/readExtraPageNames.js +0 -105
- package/bin/keycloakify/generateTheme/readExtraPageNames.js.map +0 -1
- package/bin/keycloakify/generateTheme/readFieldNameUsage.d.ts +0 -7
- package/bin/keycloakify/generateTheme/readFieldNameUsage.js +0 -141
- package/bin/keycloakify/generateTheme/readFieldNameUsage.js.map +0 -1
- package/bin/keycloakify/index.d.ts +0 -2
- package/bin/keycloakify/index.js +0 -23
- package/bin/keycloakify/index.js.map +0 -1
- package/bin/keycloakify/keycloakify.d.ts +0 -1
- package/bin/keycloakify/keycloakify.js +0 -166
- package/bin/keycloakify/keycloakify.js.map +0 -1
- package/bin/keycloakify/replacers/replaceImportsInCssCode.d.ts +0 -15
- package/bin/keycloakify/replacers/replaceImportsInCssCode.js +0 -88
- package/bin/keycloakify/replacers/replaceImportsInCssCode.js.map +0 -1
- package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.d.ts +0 -9
- package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.js +0 -38
- package/bin/keycloakify/replacers/replaceImportsInInlineCssCode.js.map +0 -1
- package/bin/keycloakify/replacers/replaceImportsInJsCode/index.d.ts +0 -1
- package/bin/keycloakify/replacers/replaceImportsInJsCode/index.js +0 -18
- package/bin/keycloakify/replacers/replaceImportsInJsCode/index.js.map +0 -1
- package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.d.ts +0 -12
- package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.js +0 -70
- package/bin/keycloakify/replacers/replaceImportsInJsCode/replaceImportsInJsCode.js.map +0 -1
- package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.d.ts +0 -13
- package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.js +0 -95
- package/bin/keycloakify/replacers/replaceImportsInJsCode/vite.js.map +0 -1
- package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.d.ts +0 -12
- package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.js +0 -103
- package/bin/keycloakify/replacers/replaceImportsInJsCode/webpack.js.map +0 -1
- package/bin/promptKeycloakVersion.d.ts +0 -3
- package/bin/promptKeycloakVersion.js +0 -121
- package/bin/promptKeycloakVersion.js.map +0 -1
- package/bin/tools/OptionalIfCanBeUndefined.d.ts +0 -14
- package/bin/tools/OptionalIfCanBeUndefined.js +0 -3
- package/bin/tools/OptionalIfCanBeUndefined.js.map +0 -1
- package/bin/tools/SemVer.d.ts +0 -26
- package/bin/tools/SemVer.js +0 -119
- package/bin/tools/SemVer.js.map +0 -1
- package/bin/tools/String.prototype.replaceAll.d.ts +0 -1
- package/bin/tools/String.prototype.replaceAll.js +0 -29
- package/bin/tools/String.prototype.replaceAll.js.map +0 -1
- package/bin/tools/crawl.d.ts +0 -5
- package/bin/tools/crawl.js +0 -74
- package/bin/tools/crawl.js.map +0 -1
- package/bin/tools/crc32.d.ts +0 -9
- package/bin/tools/crc32.js +0 -64
- package/bin/tools/crc32.js.map +0 -1
- package/bin/tools/deflate.d.ts +0 -24
- package/bin/tools/deflate.js +0 -155
- package/bin/tools/deflate.js.map +0 -1
- package/bin/tools/fetchProxyOptions.d.ts +0 -5
- package/bin/tools/fetchProxyOptions.js +0 -172
- package/bin/tools/fetchProxyOptions.js.map +0 -1
- package/bin/tools/fs.existsAsync.d.ts +0 -1
- package/bin/tools/fs.existsAsync.js +0 -86
- package/bin/tools/fs.existsAsync.js.map +0 -1
- package/bin/tools/fs.rm.d.ts +0 -8
- package/bin/tools/fs.rm.js +0 -151
- package/bin/tools/fs.rm.js.map +0 -1
- package/bin/tools/fs.rmSync.d.ts +0 -8
- package/bin/tools/fs.rmSync.js +0 -58
- package/bin/tools/fs.rmSync.js.map +0 -1
- package/bin/tools/getAbsoluteAndInOsFormatPath.d.ts +0 -4
- package/bin/tools/getAbsoluteAndInOsFormatPath.js +0 -16
- package/bin/tools/getAbsoluteAndInOsFormatPath.js.map +0 -1
- package/bin/tools/getThisCodebaseRootDirPath.d.ts +0 -1
- package/bin/tools/getThisCodebaseRootDirPath.js +0 -43
- package/bin/tools/getThisCodebaseRootDirPath.js.map +0 -1
- package/bin/tools/grant-exec-perms.d.ts +0 -1
- package/bin/tools/grant-exec-perms.js +0 -100
- package/bin/tools/grant-exec-perms.js.map +0 -1
- package/bin/tools/isInside.d.ts +0 -4
- package/bin/tools/isInside.js +0 -10
- package/bin/tools/isInside.js.map +0 -1
- package/bin/tools/kebabCaseToSnakeCase.d.ts +0 -1
- package/bin/tools/kebabCaseToSnakeCase.js +0 -35
- package/bin/tools/kebabCaseToSnakeCase.js.map +0 -1
- package/bin/tools/logger.d.ts +0 -12
- package/bin/tools/logger.js +0 -23
- package/bin/tools/logger.js.map +0 -1
- package/bin/tools/octokit-addons/getLatestsSemVersionedTag.d.ts +0 -14
- package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js +0 -119
- package/bin/tools/octokit-addons/getLatestsSemVersionedTag.js.map +0 -1
- package/bin/tools/octokit-addons/listTags.d.ts +0 -13
- package/bin/tools/octokit-addons/listTags.js +0 -154
- package/bin/tools/octokit-addons/listTags.js.map +0 -1
- package/bin/tools/partitionPromiseSettledResults.d.ts +0 -2
- package/bin/tools/partitionPromiseSettledResults.js +0 -41
- package/bin/tools/partitionPromiseSettledResults.js.map +0 -1
- package/bin/tools/readThisNpmProjectVersion.d.ts +0 -1
- package/bin/tools/readThisNpmProjectVersion.js +0 -37
- package/bin/tools/readThisNpmProjectVersion.js.map +0 -1
- package/bin/tools/tee.d.ts +0 -3
- package/bin/tools/tee.js +0 -37
- package/bin/tools/tee.js.map +0 -1
- package/bin/tools/transformCodebase.d.ts +0 -20
- package/bin/tools/transformCodebase.js +0 -97
- package/bin/tools/transformCodebase.js.map +0 -1
- package/bin/tools/trimIndent.d.ts +0 -5
- package/bin/tools/trimIndent.js +0 -82
- package/bin/tools/trimIndent.js.map +0 -1
- package/bin/tools/unzip.d.ts +0 -2
- package/bin/tools/unzip.js +0 -274
- package/bin/tools/unzip.js.map +0 -1
- package/index.d.ts +0 -1
- package/index.js +0 -2
- package/index.js.map +0 -1
- package/lib/keycloakJsAdapter.d.ts +0 -51
- package/lib/keycloakJsAdapter.js +0 -74
- package/lib/keycloakJsAdapter.js.map +0 -1
- package/src/bin/constants.ts +0 -13
- package/src/bin/download-builtin-keycloak-theme.ts +0 -290
- package/src/bin/downloadAndUnzip.ts +0 -203
- package/src/bin/eject-keycloak-page.ts +0 -64
- package/src/bin/keycloakify/buildOptions/UserProvidedBuildOptions.ts +0 -21
- package/src/bin/keycloakify/buildOptions/buildOptions.ts +0 -189
- package/src/bin/keycloakify/buildOptions/getCacheDirPath.ts +0 -25
- package/src/bin/keycloakify/buildOptions/getNpmWorkspaceRootDirPath.ts +0 -49
- package/src/bin/keycloakify/buildOptions/getReactAppRootDirPath.ts +0 -23
- package/src/bin/keycloakify/buildOptions/index.ts +0 -1
- package/src/bin/keycloakify/buildOptions/parsedPackageJson.ts +0 -32
- package/src/bin/keycloakify/buildOptions/resolvedViteConfig.ts +0 -74
- package/src/bin/keycloakify/generateTheme/downloadKeycloakStaticResources.ts +0 -49
- package/src/bin/keycloakify/generateTheme/generateTheme.ts +0 -44
- package/src/bin/keycloakify/generateTheme/generateThemeVariants.ts +0 -50
- package/src/bin/keycloakify/generateTheme/index.ts +0 -1
- package/src/bin/keycloakify/generateTheme/readFieldNameUsage.ts +0 -55
- package/src/bin/promptKeycloakVersion.ts +0 -49
- package/src/bin/tools/grant-exec-perms.ts +0 -19
- package/src/bin/tools/logger.ts +0 -27
- package/src/bin/tools/unzip.ts +0 -141
- package/src/index.ts +0 -1
- package/src/lib/keycloakJsAdapter.ts +0 -118
- package/vite-plugin/index.js.map +0 -1
- package/vite-plugin/tsconfig.tsbuildinfo +0 -1
- package/vite-plugin/vite-plugin.d.ts +0 -6
- package/vite-plugin/vite-plugin.js +0 -158
- package/vite-plugin/vite-plugin.js.map +0 -1
@@ -108,11 +108,11 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
108
108
|
const { kcContext, i18n, doMakeUserConfirmPassword } = params;
|
109
109
|
|
110
110
|
const { insertScriptTags } = useInsertScriptTags({
|
111
|
-
|
111
|
+
scriptTags: Object.keys(kcContext.profile?.html5DataAnnotations ?? {})
|
112
112
|
.filter(key => key !== "kcMultivalued" && key !== "kcNumberFormat") // NOTE: Keycloakify handles it.
|
113
113
|
.map(key => ({
|
114
|
-
|
115
|
-
|
114
|
+
type: "module",
|
115
|
+
src: `${kcContext.url.resourcesPath}/js/${key}.js`
|
116
116
|
}))
|
117
117
|
});
|
118
118
|
|
@@ -146,15 +146,15 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
146
146
|
.filter(name => (name !== "username" ? true : !kcContext.realm.registrationEmailAsUsername))
|
147
147
|
.map(name =>
|
148
148
|
id<Attribute>({
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
149
|
+
name: name,
|
150
|
+
displayName: id<`\${${MessageKey}}`>(`\${${name}}`),
|
151
|
+
required: true,
|
152
|
+
value: (kcContext.register as any).formData[name] ?? "",
|
153
|
+
html5DataAnnotations: {},
|
154
|
+
readOnly: false,
|
155
|
+
validators: {},
|
156
|
+
annotations: {},
|
157
|
+
autocomplete: (() => {
|
158
158
|
switch (name) {
|
159
159
|
case "email":
|
160
160
|
return "email";
|
@@ -174,15 +174,15 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
174
174
|
.filter(name => (name !== "username" ? true : (kcContext.user as any).editUsernameAllowed))
|
175
175
|
.map(name =>
|
176
176
|
id<Attribute>({
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
177
|
+
name: name,
|
178
|
+
displayName: id<`\${${MessageKey}}`>(`\${${name}}`),
|
179
|
+
required: true,
|
180
|
+
value: (kcContext as any).user[name] ?? "",
|
181
|
+
html5DataAnnotations: {},
|
182
|
+
readOnly: false,
|
183
|
+
validators: {},
|
184
|
+
annotations: {},
|
185
|
+
autocomplete: (() => {
|
186
186
|
switch (name) {
|
187
187
|
case "email":
|
188
188
|
return "email";
|
@@ -200,15 +200,15 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
200
200
|
//NOTE: Handle legacy update-email.ftl
|
201
201
|
return [
|
202
202
|
id<Attribute>({
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
203
|
+
name: "email",
|
204
|
+
displayName: id<`\${${MessageKey}}`>(`\${email}`),
|
205
|
+
required: true,
|
206
|
+
value: (kcContext.email as any).value ?? "",
|
207
|
+
html5DataAnnotations: {},
|
208
|
+
readOnly: false,
|
209
|
+
validators: {},
|
210
|
+
annotations: {},
|
211
|
+
autocomplete: "email"
|
212
212
|
})
|
213
213
|
];
|
214
214
|
}
|
@@ -228,11 +228,11 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
228
228
|
|
229
229
|
return id<Attribute>({
|
230
230
|
...rest,
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
231
|
+
group: {
|
232
|
+
name: group,
|
233
|
+
displayHeader: groupDisplayHeader,
|
234
|
+
displayDescription: groupDisplayDescription,
|
235
|
+
html5DataAnnotations: {}
|
236
236
|
}
|
237
237
|
});
|
238
238
|
}
|
@@ -257,28 +257,28 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
257
257
|
|
258
258
|
syntheticAttributes.push(
|
259
259
|
{
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
260
|
+
name: "password",
|
261
|
+
displayName: id<`\${${MessageKey}}`>("${password}"),
|
262
|
+
required: true,
|
263
|
+
readOnly: false,
|
264
|
+
validators: {},
|
265
|
+
annotations: {},
|
266
|
+
autocomplete: "new-password",
|
267
|
+
html5DataAnnotations: {},
|
268
268
|
// NOTE: Compat with Keycloak version prior to 24
|
269
|
-
...({
|
269
|
+
...({ groupAnnotations: {} } as {})
|
270
270
|
},
|
271
271
|
{
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
272
|
+
name: "password-confirm",
|
273
|
+
displayName: id<`\${${MessageKey}}`>("${passwordConfirm}"),
|
274
|
+
required: true,
|
275
|
+
readOnly: false,
|
276
|
+
validators: {},
|
277
|
+
annotations: {},
|
278
|
+
html5DataAnnotations: {},
|
279
|
+
autocomplete: "new-password",
|
280
280
|
// NOTE: Compat with Keycloak version prior to 24
|
281
|
-
...({
|
281
|
+
...({ groupAnnotations: {} } as {})
|
282
282
|
}
|
283
283
|
);
|
284
284
|
}
|
@@ -288,7 +288,10 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
288
288
|
})();
|
289
289
|
|
290
290
|
const initialFormFieldState = (() => {
|
291
|
-
const out: {
|
291
|
+
const out: {
|
292
|
+
attribute: Attribute;
|
293
|
+
valueOrValues: string | string[];
|
294
|
+
}[] = [];
|
292
295
|
|
293
296
|
for (const attribute of syntheticAttributes) {
|
294
297
|
handle_multi_valued_attribute: {
|
@@ -311,7 +314,7 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
311
314
|
|
312
315
|
const { min: minStr } = validator;
|
313
316
|
|
314
|
-
if (minStr
|
317
|
+
if (!minStr) {
|
315
318
|
break apply_validator_min_range;
|
316
319
|
}
|
317
320
|
|
@@ -324,7 +327,7 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
324
327
|
|
325
328
|
out.push({
|
326
329
|
attribute,
|
327
|
-
|
330
|
+
valueOrValues: values
|
328
331
|
});
|
329
332
|
|
330
333
|
continue;
|
@@ -332,7 +335,7 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
332
335
|
|
333
336
|
out.push({
|
334
337
|
attribute,
|
335
|
-
|
338
|
+
valueOrValues: attribute.value ?? ""
|
336
339
|
});
|
337
340
|
}
|
338
341
|
|
@@ -340,36 +343,36 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
340
343
|
})();
|
341
344
|
|
342
345
|
const initialState: internal.State = {
|
343
|
-
|
346
|
+
formFieldStates: initialFormFieldState.map(({ attribute, valueOrValues }) => ({
|
344
347
|
attribute,
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
+
errors: getErrors({
|
349
|
+
attributeName: attribute.name,
|
350
|
+
formFieldStates: initialFormFieldState
|
348
351
|
}),
|
349
|
-
|
350
|
-
|
352
|
+
hasLostFocusAtLeastOnce: valueOrValues instanceof Array ? valueOrValues.map(() => false) : false,
|
353
|
+
valueOrValues: valueOrValues
|
351
354
|
}))
|
352
355
|
};
|
353
356
|
|
354
357
|
return initialState;
|
355
358
|
}, []);
|
356
359
|
|
357
|
-
const [state, dispatchFormAction] = useReducer(function reducer(state: internal.State,
|
358
|
-
const formFieldState = state.formFieldStates.find(({ attribute }) => attribute.name ===
|
360
|
+
const [state, dispatchFormAction] = useReducer(function reducer(state: internal.State, formAction: FormAction): internal.State {
|
361
|
+
const formFieldState = state.formFieldStates.find(({ attribute }) => attribute.name === formAction.name);
|
359
362
|
|
360
363
|
assert(formFieldState !== undefined);
|
361
364
|
|
362
365
|
(() => {
|
363
|
-
switch (
|
366
|
+
switch (formAction.action) {
|
364
367
|
case "update":
|
365
|
-
formFieldState.valueOrValues =
|
368
|
+
formFieldState.valueOrValues = formAction.valueOrValues;
|
366
369
|
|
367
370
|
apply_formatters: {
|
368
371
|
const { attribute } = formFieldState;
|
369
372
|
|
370
373
|
const { kcNumberFormat } = attribute.html5DataAnnotations ?? {};
|
371
374
|
|
372
|
-
if (kcNumberFormat
|
375
|
+
if (!kcNumberFormat) {
|
373
376
|
break apply_formatters;
|
374
377
|
}
|
375
378
|
|
@@ -381,8 +384,8 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
381
384
|
}
|
382
385
|
|
383
386
|
formFieldState.errors = getErrors({
|
384
|
-
|
385
|
-
|
387
|
+
attributeName: formAction.name,
|
388
|
+
formFieldStates: state.formFieldStates
|
386
389
|
});
|
387
390
|
|
388
391
|
update_password_confirm: {
|
@@ -390,21 +393,21 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
390
393
|
break update_password_confirm;
|
391
394
|
}
|
392
395
|
|
393
|
-
if (
|
396
|
+
if (formAction.name !== "password") {
|
394
397
|
break update_password_confirm;
|
395
398
|
}
|
396
399
|
|
397
400
|
state = reducer(state, {
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
+
action: "update",
|
402
|
+
name: "password-confirm",
|
403
|
+
valueOrValues: formAction.valueOrValues
|
401
404
|
});
|
402
405
|
}
|
403
406
|
|
404
407
|
return;
|
405
408
|
case "focus lost":
|
406
409
|
if (formFieldState.hasLostFocusAtLeastOnce instanceof Array) {
|
407
|
-
const { fieldIndex } =
|
410
|
+
const { fieldIndex } = formAction;
|
408
411
|
assert(fieldIndex !== undefined);
|
409
412
|
formFieldState.hasLostFocusAtLeastOnce[fieldIndex] = true;
|
410
413
|
return;
|
@@ -413,23 +416,23 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
413
416
|
formFieldState.hasLostFocusAtLeastOnce = true;
|
414
417
|
return;
|
415
418
|
}
|
416
|
-
assert<Equals<typeof
|
419
|
+
assert<Equals<typeof formAction, never>>(false);
|
417
420
|
})();
|
418
421
|
|
419
|
-
return state;
|
422
|
+
return { ...state };
|
420
423
|
}, initialState);
|
421
424
|
|
422
425
|
const formState: FormState = useMemo(
|
423
426
|
() => ({
|
424
|
-
|
427
|
+
formFieldStates: state.formFieldStates.map(
|
425
428
|
({ errors, hasLostFocusAtLeastOnce: hasLostFocusAtLeastOnceOrArr, attribute, ...valueOrValuesWrap }) => ({
|
426
|
-
|
429
|
+
displayableErrors: errors.filter(error => {
|
427
430
|
const hasLostFocusAtLeastOnce =
|
428
431
|
typeof hasLostFocusAtLeastOnceOrArr === "boolean"
|
429
432
|
? hasLostFocusAtLeastOnceOrArr
|
430
433
|
: error.fieldIndex !== undefined
|
431
|
-
|
432
|
-
|
434
|
+
? hasLostFocusAtLeastOnceOrArr[error.fieldIndex]
|
435
|
+
: hasLostFocusAtLeastOnceOrArr[hasLostFocusAtLeastOnceOrArr.length - 1];
|
433
436
|
|
434
437
|
switch (error.source.type) {
|
435
438
|
case "server":
|
@@ -482,7 +485,7 @@ export function useUserProfileForm(params: ParamsOfUseUserProfileForm): ReturnTy
|
|
482
485
|
...valueOrValuesWrap
|
483
486
|
})
|
484
487
|
),
|
485
|
-
|
488
|
+
isFormSubmittable: state.formFieldStates.every(({ errors }) => errors.length === 0)
|
486
489
|
}),
|
487
490
|
[state]
|
488
491
|
);
|
@@ -501,7 +504,13 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
501
504
|
const { msg, msgStr, advancedMsg, advancedMsgStr } = i18n;
|
502
505
|
|
503
506
|
const getErrors = useConstCallback(
|
504
|
-
(params: {
|
507
|
+
(params: {
|
508
|
+
attributeName: string;
|
509
|
+
formFieldStates: {
|
510
|
+
attribute: Attribute;
|
511
|
+
valueOrValues: string | string[];
|
512
|
+
}[];
|
513
|
+
}): FormFieldError[] => {
|
505
514
|
const { attributeName, formFieldStates } = params;
|
506
515
|
|
507
516
|
const formFieldState = formFieldStates.find(({ attribute }) => attribute.name === attributeName);
|
@@ -516,7 +525,7 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
516
525
|
unFormat_number: {
|
517
526
|
const { kcNumberUnFormat } = attribute.html5DataAnnotations ?? {};
|
518
527
|
|
519
|
-
if (kcNumberUnFormat
|
528
|
+
if (!kcNumberUnFormat) {
|
520
529
|
break unFormat_number;
|
521
530
|
}
|
522
531
|
|
@@ -572,10 +581,10 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
572
581
|
return [
|
573
582
|
{
|
574
583
|
errorMessageStr,
|
575
|
-
|
576
|
-
|
577
|
-
|
578
|
-
|
584
|
+
errorMessage: <span key={0}>{errorMessageStr}</span>,
|
585
|
+
fieldIndex: undefined,
|
586
|
+
source: {
|
587
|
+
type: "server"
|
579
588
|
}
|
580
589
|
}
|
581
590
|
];
|
@@ -598,19 +607,19 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
598
607
|
.map((...[, index]) => {
|
599
608
|
const specificValueErrors = getErrors({
|
600
609
|
attributeName,
|
601
|
-
|
610
|
+
formFieldStates: formFieldStates.map(formFieldState => {
|
602
611
|
if (formFieldState.attribute.name === attributeName) {
|
603
612
|
assert(formFieldState.valueOrValues instanceof Array);
|
604
613
|
return {
|
605
|
-
|
614
|
+
attribute: {
|
606
615
|
...attribute,
|
607
|
-
|
616
|
+
annotations: {
|
608
617
|
...attribute.annotations,
|
609
|
-
|
618
|
+
inputType: undefined
|
610
619
|
},
|
611
|
-
|
620
|
+
multivalued: false
|
612
621
|
},
|
613
|
-
|
622
|
+
valueOrValues: formFieldState.valueOrValues[index]
|
614
623
|
};
|
615
624
|
}
|
616
625
|
|
@@ -626,7 +635,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
626
635
|
|
627
636
|
return true;
|
628
637
|
})
|
629
|
-
.map(
|
638
|
+
.map(
|
639
|
+
(error): FormFieldError => ({
|
640
|
+
...error,
|
641
|
+
fieldIndex: index
|
642
|
+
})
|
643
|
+
);
|
630
644
|
})
|
631
645
|
.reduce((acc, errors) => [...acc, ...errors], []);
|
632
646
|
|
@@ -642,12 +656,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
642
656
|
const msgArgs = ["error-user-attribute-required"] as const;
|
643
657
|
|
644
658
|
errors.push({
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
659
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
660
|
+
errorMessageStr: msgStr(...msgArgs),
|
661
|
+
fieldIndex: undefined,
|
662
|
+
source: {
|
663
|
+
type: "other",
|
664
|
+
rule: "requiredField"
|
651
665
|
}
|
652
666
|
});
|
653
667
|
}
|
@@ -674,13 +688,13 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
674
688
|
|
675
689
|
const { min: minStr } = validator;
|
676
690
|
|
677
|
-
const min = minStr
|
691
|
+
const min = minStr ? parseInt(`${minStr}`) : attribute.required ? 1 : 0;
|
678
692
|
|
679
693
|
assert(!isNaN(min));
|
680
694
|
|
681
695
|
const { max: maxStr } = validator;
|
682
696
|
|
683
|
-
const max = maxStr
|
697
|
+
const max = !maxStr ? Infinity : parseInt(`${maxStr}`);
|
684
698
|
|
685
699
|
assert(!isNaN(max));
|
686
700
|
|
@@ -696,12 +710,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
696
710
|
|
697
711
|
return [
|
698
712
|
{
|
699
|
-
|
700
|
-
|
701
|
-
|
702
|
-
|
703
|
-
|
704
|
-
|
713
|
+
errorMessage: <Fragment key={0}>{msg(...msgArgs)}</Fragment>,
|
714
|
+
errorMessageStr: msgStr(...msgArgs),
|
715
|
+
fieldIndex: undefined,
|
716
|
+
source: {
|
717
|
+
type: "validator",
|
718
|
+
name: validatorName
|
705
719
|
}
|
706
720
|
}
|
707
721
|
];
|
@@ -727,7 +741,7 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
727
741
|
|
728
742
|
const policy = passwordPolicies[policyName];
|
729
743
|
|
730
|
-
if (policy
|
744
|
+
if (!policy) {
|
731
745
|
break check_password_policy_x;
|
732
746
|
}
|
733
747
|
|
@@ -740,12 +754,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
740
754
|
const msgArgs = ["invalidPasswordMinLengthMessage", `${minLength}`] as const;
|
741
755
|
|
742
756
|
errors.push({
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
757
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
758
|
+
errorMessageStr: msgStr(...msgArgs),
|
759
|
+
fieldIndex: undefined,
|
760
|
+
source: {
|
761
|
+
type: "passwordPolicy",
|
762
|
+
name: policyName
|
749
763
|
}
|
750
764
|
});
|
751
765
|
}
|
@@ -755,7 +769,7 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
755
769
|
|
756
770
|
const policy = passwordPolicies[policyName];
|
757
771
|
|
758
|
-
if (policy
|
772
|
+
if (!policy) {
|
759
773
|
break check_password_policy_x;
|
760
774
|
}
|
761
775
|
|
@@ -768,12 +782,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
768
782
|
const msgArgs = ["invalidPasswordMinDigitsMessage", `${minNumberOfDigits}`] as const;
|
769
783
|
|
770
784
|
errors.push({
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
|
776
|
-
|
785
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
786
|
+
errorMessageStr: msgStr(...msgArgs),
|
787
|
+
fieldIndex: undefined,
|
788
|
+
source: {
|
789
|
+
type: "passwordPolicy",
|
790
|
+
name: policyName
|
777
791
|
}
|
778
792
|
});
|
779
793
|
}
|
@@ -783,7 +797,7 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
783
797
|
|
784
798
|
const policy = passwordPolicies[policyName];
|
785
799
|
|
786
|
-
if (policy
|
800
|
+
if (!policy) {
|
787
801
|
break check_password_policy_x;
|
788
802
|
}
|
789
803
|
|
@@ -798,12 +812,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
798
812
|
const msgArgs = ["invalidPasswordMinLowerCaseCharsMessage", `${minNumberOfLowerCaseChar}`] as const;
|
799
813
|
|
800
814
|
errors.push({
|
801
|
-
|
802
|
-
|
803
|
-
|
804
|
-
|
805
|
-
|
806
|
-
|
815
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
816
|
+
errorMessageStr: msgStr(...msgArgs),
|
817
|
+
fieldIndex: undefined,
|
818
|
+
source: {
|
819
|
+
type: "passwordPolicy",
|
820
|
+
name: policyName
|
807
821
|
}
|
808
822
|
});
|
809
823
|
}
|
@@ -813,7 +827,7 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
813
827
|
|
814
828
|
const policy = passwordPolicies[policyName];
|
815
829
|
|
816
|
-
if (policy
|
830
|
+
if (!policy) {
|
817
831
|
break check_password_policy_x;
|
818
832
|
}
|
819
833
|
|
@@ -828,12 +842,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
828
842
|
const msgArgs = ["invalidPasswordMinUpperCaseCharsMessage", `${minNumberOfUpperCaseChar}`] as const;
|
829
843
|
|
830
844
|
errors.push({
|
831
|
-
|
832
|
-
|
833
|
-
|
834
|
-
|
835
|
-
|
836
|
-
|
845
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
846
|
+
errorMessageStr: msgStr(...msgArgs),
|
847
|
+
fieldIndex: undefined,
|
848
|
+
source: {
|
849
|
+
type: "passwordPolicy",
|
850
|
+
name: policyName
|
837
851
|
}
|
838
852
|
});
|
839
853
|
}
|
@@ -843,7 +857,7 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
843
857
|
|
844
858
|
const policy = passwordPolicies[policyName];
|
845
859
|
|
846
|
-
if (policy
|
860
|
+
if (!policy) {
|
847
861
|
break check_password_policy_x;
|
848
862
|
}
|
849
863
|
|
@@ -856,12 +870,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
856
870
|
const msgArgs = ["invalidPasswordMinSpecialCharsMessage", `${minNumberOfSpecialChar}`] as const;
|
857
871
|
|
858
872
|
errors.push({
|
859
|
-
|
860
|
-
|
861
|
-
|
862
|
-
|
863
|
-
|
864
|
-
|
873
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
874
|
+
errorMessageStr: msgStr(...msgArgs),
|
875
|
+
fieldIndex: undefined,
|
876
|
+
source: {
|
877
|
+
type: "passwordPolicy",
|
878
|
+
name: policyName
|
865
879
|
}
|
866
880
|
});
|
867
881
|
}
|
@@ -877,7 +891,7 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
877
891
|
|
878
892
|
const usernameFormFieldState = formFieldStates.find(formFieldState => formFieldState.attribute.name === "username");
|
879
893
|
|
880
|
-
if (usernameFormFieldState
|
894
|
+
if (!usernameFormFieldState) {
|
881
895
|
break check_password_policy_x;
|
882
896
|
}
|
883
897
|
|
@@ -889,7 +903,7 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
889
903
|
unFormat_number: {
|
890
904
|
const { kcNumberUnFormat } = attribute.html5DataAnnotations ?? {};
|
891
905
|
|
892
|
-
if (kcNumberUnFormat
|
906
|
+
if (!kcNumberUnFormat) {
|
893
907
|
break unFormat_number;
|
894
908
|
}
|
895
909
|
|
@@ -906,12 +920,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
906
920
|
const msgArgs = ["invalidPasswordNotUsernameMessage"] as const;
|
907
921
|
|
908
922
|
errors.push({
|
909
|
-
|
910
|
-
|
911
|
-
|
912
|
-
|
913
|
-
|
914
|
-
|
923
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
924
|
+
errorMessageStr: msgStr(...msgArgs),
|
925
|
+
fieldIndex: undefined,
|
926
|
+
source: {
|
927
|
+
type: "passwordPolicy",
|
928
|
+
name: policyName
|
915
929
|
}
|
916
930
|
});
|
917
931
|
}
|
@@ -927,7 +941,7 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
927
941
|
|
928
942
|
const emailFormFieldState = formFieldStates.find(formFieldState => formFieldState.attribute.name === "email");
|
929
943
|
|
930
|
-
if (emailFormFieldState
|
944
|
+
if (!emailFormFieldState) {
|
931
945
|
break check_password_policy_x;
|
932
946
|
}
|
933
947
|
|
@@ -944,12 +958,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
944
958
|
const msgArgs = ["invalidPasswordNotEmailMessage"] as const;
|
945
959
|
|
946
960
|
errors.push({
|
947
|
-
|
948
|
-
|
949
|
-
|
950
|
-
|
951
|
-
|
952
|
-
|
961
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
962
|
+
errorMessageStr: msgStr(...msgArgs),
|
963
|
+
fieldIndex: undefined,
|
964
|
+
source: {
|
965
|
+
type: "passwordPolicy",
|
966
|
+
name: policyName
|
953
967
|
}
|
954
968
|
});
|
955
969
|
}
|
@@ -977,12 +991,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
977
991
|
const msgArgs = ["invalidPasswordConfirmMessage"] as const;
|
978
992
|
|
979
993
|
errors.push({
|
980
|
-
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
|
985
|
-
|
994
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
995
|
+
errorMessageStr: msgStr(...msgArgs),
|
996
|
+
fieldIndex: undefined,
|
997
|
+
source: {
|
998
|
+
type: "other",
|
999
|
+
rule: "passwordConfirmMatchesPassword"
|
986
1000
|
}
|
987
1001
|
});
|
988
1002
|
}
|
@@ -1001,12 +1015,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
1001
1015
|
const msgArgs = ["error-user-attribute-required"] as const;
|
1002
1016
|
|
1003
1017
|
errors.push({
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1018
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
1019
|
+
errorMessageStr: msgStr(...msgArgs),
|
1020
|
+
fieldIndex: undefined,
|
1021
|
+
source: {
|
1022
|
+
type: "other",
|
1023
|
+
rule: "requiredField"
|
1010
1024
|
}
|
1011
1025
|
});
|
1012
1026
|
}
|
@@ -1016,7 +1030,7 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
1016
1030
|
|
1017
1031
|
const validator = validators[validatorName];
|
1018
1032
|
|
1019
|
-
if (validator
|
1033
|
+
if (!validator) {
|
1020
1034
|
break validator_x;
|
1021
1035
|
}
|
1022
1036
|
|
@@ -1027,28 +1041,28 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
1027
1041
|
}
|
1028
1042
|
|
1029
1043
|
const source: FormFieldError.Source = {
|
1030
|
-
|
1031
|
-
|
1044
|
+
type: "validator",
|
1045
|
+
name: validatorName
|
1032
1046
|
};
|
1033
1047
|
|
1034
|
-
if (max
|
1048
|
+
if (max && value.length > parseInt(`${max}`)) {
|
1035
1049
|
const msgArgs = ["error-invalid-length-too-long", `${max}`] as const;
|
1036
1050
|
|
1037
1051
|
errors.push({
|
1038
|
-
|
1039
|
-
|
1040
|
-
|
1052
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
1053
|
+
errorMessageStr: msgStr(...msgArgs),
|
1054
|
+
fieldIndex: undefined,
|
1041
1055
|
source
|
1042
1056
|
});
|
1043
1057
|
}
|
1044
1058
|
|
1045
|
-
if (min
|
1059
|
+
if (min && value.length < parseInt(`${min}`)) {
|
1046
1060
|
const msgArgs = ["error-invalid-length-too-short", `${min}`] as const;
|
1047
1061
|
|
1048
1062
|
errors.push({
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1063
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
1064
|
+
errorMessageStr: msgStr(...msgArgs),
|
1065
|
+
fieldIndex: undefined,
|
1052
1066
|
source
|
1053
1067
|
});
|
1054
1068
|
}
|
@@ -1076,12 +1090,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
1076
1090
|
const msgArgs = [errorMessageKey ?? id<MessageKey>("shouldMatchPattern"), pattern] as const;
|
1077
1091
|
|
1078
1092
|
errors.push({
|
1079
|
-
|
1080
|
-
|
1081
|
-
|
1082
|
-
|
1083
|
-
|
1084
|
-
|
1093
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{advancedMsg(...msgArgs)}</Fragment>,
|
1094
|
+
errorMessageStr: advancedMsgStr(...msgArgs),
|
1095
|
+
fieldIndex: undefined,
|
1096
|
+
source: {
|
1097
|
+
type: "validator",
|
1098
|
+
name: validatorName
|
1085
1099
|
}
|
1086
1100
|
});
|
1087
1101
|
}
|
@@ -1115,12 +1129,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
1115
1129
|
const msgArgs = [id<MessageKey>("invalidEmailMessage")] as const;
|
1116
1130
|
|
1117
1131
|
errors.push({
|
1118
|
-
|
1119
|
-
|
1120
|
-
|
1121
|
-
|
1122
|
-
|
1123
|
-
|
1132
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
1133
|
+
errorMessageStr: msgStr(...msgArgs),
|
1134
|
+
fieldIndex: undefined,
|
1135
|
+
source: {
|
1136
|
+
type: "validator",
|
1137
|
+
name: validatorName
|
1124
1138
|
}
|
1125
1139
|
});
|
1126
1140
|
}
|
@@ -1143,43 +1157,43 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
1143
1157
|
const intValue = parseInt(value);
|
1144
1158
|
|
1145
1159
|
const source: FormFieldError.Source = {
|
1146
|
-
|
1147
|
-
|
1160
|
+
type: "validator",
|
1161
|
+
name: validatorName
|
1148
1162
|
};
|
1149
1163
|
|
1150
1164
|
if (isNaN(intValue)) {
|
1151
1165
|
const msgArgs = ["mustBeAnInteger"] as const;
|
1152
1166
|
|
1153
1167
|
errors.push({
|
1154
|
-
|
1155
|
-
|
1156
|
-
|
1168
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
1169
|
+
errorMessageStr: msgStr(...msgArgs),
|
1170
|
+
fieldIndex: undefined,
|
1157
1171
|
source
|
1158
1172
|
});
|
1159
1173
|
|
1160
1174
|
break validator_x;
|
1161
1175
|
}
|
1162
1176
|
|
1163
|
-
if (max
|
1177
|
+
if (max && intValue > parseInt(`${max}`)) {
|
1164
1178
|
const msgArgs = ["error-number-out-of-range-too-big", `${max}`] as const;
|
1165
1179
|
|
1166
1180
|
errors.push({
|
1167
|
-
|
1168
|
-
|
1169
|
-
|
1181
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
1182
|
+
errorMessageStr: msgStr(...msgArgs),
|
1183
|
+
fieldIndex: undefined,
|
1170
1184
|
source
|
1171
1185
|
});
|
1172
1186
|
|
1173
1187
|
break validator_x;
|
1174
1188
|
}
|
1175
1189
|
|
1176
|
-
if (min
|
1190
|
+
if (min && intValue < parseInt(`${min}`)) {
|
1177
1191
|
const msgArgs = ["error-number-out-of-range-too-small", `${min}`] as const;
|
1178
1192
|
|
1179
1193
|
errors.push({
|
1180
|
-
|
1181
|
-
|
1182
|
-
|
1194
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{msg(...msgArgs)}</Fragment>,
|
1195
|
+
errorMessageStr: msgStr(...msgArgs),
|
1196
|
+
fieldIndex: undefined,
|
1183
1197
|
source
|
1184
1198
|
});
|
1185
1199
|
|
@@ -1207,12 +1221,12 @@ function useGetErrors(params: { kcContext: Pick<KcContextLike, "messagesPerField
|
|
1207
1221
|
const msgArgs = [id<MessageKey>("notAValidOption")] as const;
|
1208
1222
|
|
1209
1223
|
errors.push({
|
1210
|
-
|
1211
|
-
|
1212
|
-
|
1213
|
-
|
1214
|
-
|
1215
|
-
|
1224
|
+
errorMessage: <Fragment key={`${attributeName}-${errors.length}`}>{advancedMsg(...msgArgs)}</Fragment>,
|
1225
|
+
errorMessageStr: advancedMsgStr(...msgArgs),
|
1226
|
+
fieldIndex: undefined,
|
1227
|
+
source: {
|
1228
|
+
type: "validator",
|
1229
|
+
name: validatorName
|
1216
1230
|
}
|
1217
1231
|
});
|
1218
1232
|
}
|