@keycloakify/angular 0.0.1-rc.0 → 0.0.1-rc.10
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/account/DefaultPage.d.ts +37 -0
- package/account/DefaultPage.js +33 -0
- package/account/KcContext.d.ts +1 -0
- package/account/KcContext.js +2 -0
- package/account/classes/component-reference.class.d.ts +6 -0
- package/account/classes/component-reference.class.js +3 -0
- package/account/containers/template.component.d.ts +26 -0
- package/account/containers/template.component.js +66 -0
- package/account/directives/kc-class.directive.d.ts +26 -0
- package/account/directives/kc-class.directive.js +137 -0
- package/account/i18n.d.ts +4 -0
- package/account/i18n.js +2 -0
- package/account/pages/account/account.component.d.ts +14 -0
- package/account/pages/account/account.component.js +39 -0
- package/account/pages/applications/applications.component.d.ts +13 -0
- package/account/pages/applications/applications.component.js +37 -0
- package/account/pages/federatedIdentity/federatedIdentity.component.d.ts +13 -0
- package/account/pages/federatedIdentity/federatedIdentity.component.js +36 -0
- package/account/pages/log/log.component.d.ts +13 -0
- package/account/pages/log/log.component.js +36 -0
- package/account/pages/password/password.component.d.ts +28 -0
- package/account/pages/password/password.component.js +107 -0
- package/account/pages/sessions/sessions.component.d.ts +13 -0
- package/account/pages/sessions/sessions.component.js +36 -0
- package/account/pages/totp/totp.component.d.ts +13 -0
- package/account/pages/totp/totp.component.js +37 -0
- package/account/providers/keycloakify-angular.providers.d.ts +15 -0
- package/account/providers/keycloakify-angular.providers.js +48 -0
- package/account/services/i18n.service.d.ts +6 -0
- package/account/services/i18n.service.js +12 -0
- package/account/services/resource-injector.service.d.ts +10 -0
- package/account/services/resource-injector.service.js +37 -0
- package/account/tokens/classes.token.d.ts +16 -0
- package/account/tokens/classes.token.js +3 -0
- package/account/tokens/i18n.token.d.ts +2 -0
- package/account/tokens/i18n.token.js +3 -0
- package/account/tokens/kc-context.token.d.ts +3 -0
- package/account/tokens/kc-context.token.js +3 -0
- package/lib/directives/attributes.directive.d.ts +8 -0
- package/lib/directives/attributes.directive.js +26 -0
- package/lib/models/script.model.js +1 -1
- package/lib/pipes/input-type.pipe.d.ts +7 -0
- package/lib/pipes/input-type.pipe.js +20 -0
- package/lib/pipes/is-array-with-empty-object.pipe.d.ts +7 -0
- package/lib/pipes/is-array-with-empty-object.pipe.js +20 -0
- package/lib/pipes/kc-sanitize.pipe.d.ts +9 -0
- package/lib/pipes/kc-sanitize.pipe.js +29 -0
- package/lib/pipes/to-array.pipe.d.ts +7 -0
- package/lib/pipes/to-array.pipe.js +21 -0
- package/lib/pipes/to-number.pipe.d.ts +7 -0
- package/lib/pipes/to-number.pipe.js +20 -0
- package/lib/services/resource-injector.service.d.ts +5 -2
- package/lib/services/resource-injector.service.js +19 -22
- package/lib/tokens/use-default-css.token.d.ts +2 -0
- package/lib/tokens/use-default-css.token.js +3 -0
- package/login/DefaultPage.d.ts +28 -28
- package/login/DefaultPage.js +74 -74
- package/login/KcContext.d.ts +1 -1
- package/login/KcContext.js +1 -1
- package/login/classes/component-reference.class.d.ts +1 -1
- package/login/classes/component-reference.class.js +1 -1
- package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.d.ts +7 -2
- package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.js +19 -36
- package/login/components/field-errors/field-errors.component.d.ts +7 -4
- package/login/components/field-errors/field-errors.component.js +23 -35
- package/login/components/group-label/group-label.component.d.ts +8 -3
- package/login/components/group-label/group-label.component.js +29 -41
- package/login/components/input-field-by-type/input-field-by-type.component.d.ts +7 -4
- package/login/components/input-field-by-type/input-field-by-type.component.js +33 -50
- package/login/components/input-tag/input-tag.component.d.ts +9 -4
- package/login/components/input-tag/input-tag.component.js +47 -64
- package/login/components/input-tag-selects/input-tag-selects.component.d.ts +11 -6
- package/login/components/input-tag-selects/input-tag-selects.component.js +41 -56
- package/login/components/logout-other-sessions/logout-other-sessions.component.d.ts +7 -2
- package/login/components/logout-other-sessions/logout-other-sessions.component.js +25 -36
- package/login/components/password-wrapper/password-wrapper.component.d.ts +8 -3
- package/login/components/password-wrapper/password-wrapper.component.js +27 -38
- package/login/components/select-tag/select-tag.component.d.ts +9 -4
- package/login/components/select-tag/select-tag.component.js +32 -47
- package/login/components/textarea-tag/textarea-tag.component.d.ts +7 -4
- package/login/components/textarea-tag/textarea-tag.component.js +28 -42
- package/login/components/user-profile-form-fields/user-profile-form-fields.component.d.ts +11 -5
- package/login/components/user-profile-form-fields/user-profile-form-fields.component.js +45 -57
- package/login/containers/template.component.d.ts +11 -8
- package/login/containers/template.component.js +36 -42
- package/login/directives/kc-class.directive.d.ts +5 -2
- package/login/directives/kc-class.directive.js +35 -43
- package/login/i18n.d.ts +2 -2
- package/login/i18n.js +1 -1
- package/login/pages/code/code.component.d.ts +8 -3
- package/login/pages/code/code.component.js +28 -31
- package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +8 -3
- package/login/pages/delete-account-confirm/delete-account-confirm.component.js +28 -31
- package/login/pages/delete-credential/delete-credential.component.d.ts +8 -3
- package/login/pages/delete-credential/delete-credential.component.js +28 -31
- package/login/pages/error/error.component.d.ts +8 -3
- package/login/pages/error/error.component.js +28 -31
- package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +9 -4
- package/login/pages/frontchannel-logout/frontchannel-logout.component.js +28 -31
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +13 -3
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.js +40 -41
- package/login/pages/info/info.component.d.ts +8 -9
- package/login/pages/info/info.component.js +31 -43
- package/login/pages/login/login.component.d.ts +8 -3
- package/login/pages/login/login.component.js +33 -47
- package/login/pages/login-config-totp/login-config-totp.component.d.ts +8 -3
- package/login/pages/login-config-totp/login-config-totp.component.js +31 -42
- package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +8 -3
- package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.js +28 -31
- package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +8 -3
- package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.js +28 -31
- package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +8 -3
- package/login/pages/login-idp-link-email/login-idp-link-email.component.js +28 -31
- package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +8 -3
- package/login/pages/login-oauth-grant/login-oauth-grant.component.js +29 -33
- package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +8 -3
- package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.js +28 -31
- package/login/pages/login-otp/login-otp.component.d.ts +8 -3
- package/login/pages/login-otp/login-otp.component.js +30 -33
- package/login/pages/login-page-expired/login-page-expired.component.d.ts +8 -3
- package/login/pages/login-page-expired/login-page-expired.component.js +27 -30
- package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +9 -6
- package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.js +37 -44
- package/login/pages/login-password/login-password.component.d.ts +8 -3
- package/login/pages/login-password/login-password.component.js +31 -40
- package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +8 -3
- package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.js +30 -38
- package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +8 -3
- package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.js +30 -33
- package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +8 -3
- package/login/pages/login-reset-otp/login-reset-otp.component.js +29 -32
- package/login/pages/login-reset-password/login-reset-password.component.d.ts +8 -3
- package/login/pages/login-reset-password/login-reset-password.component.js +30 -33
- package/login/pages/login-update-password/login-update-password.component.d.ts +8 -3
- package/login/pages/login-update-password/login-update-password.component.js +32 -42
- package/login/pages/login-update-profile/login-update-profile.component.d.ts +13 -3
- package/login/pages/login-update-profile/login-update-profile.component.js +39 -39
- package/login/pages/login-username/login-username.component.d.ts +8 -3
- package/login/pages/login-username/login-username.component.js +32 -45
- package/login/pages/login-verify-email/login-verify-email.component.d.ts +8 -3
- package/login/pages/login-verify-email/login-verify-email.component.js +28 -31
- package/login/pages/login-x509-info/login-x509-info.component.d.ts +8 -3
- package/login/pages/login-x509-info/login-x509-info.component.js +28 -31
- package/login/pages/logout-confirm/logout-confirm.component.d.ts +8 -3
- package/login/pages/logout-confirm/logout-confirm.component.js +28 -31
- package/login/pages/register/register.component.d.ts +13 -3
- package/login/pages/register/register.component.js +41 -48
- package/login/pages/saml-post-form/saml-post-form.component.d.ts +9 -4
- package/login/pages/saml-post-form/saml-post-form.component.js +32 -35
- package/login/pages/select-authenticator/select-authenticator.component.d.ts +8 -3
- package/login/pages/select-authenticator/select-authenticator.component.js +29 -39
- package/login/pages/terms/terms.component.d.ts +8 -3
- package/login/pages/terms/terms.component.js +28 -31
- package/login/pages/update-email/update-email.component.d.ts +13 -3
- package/login/pages/update-email/update-email.component.js +40 -41
- package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +9 -6
- package/login/pages/webauthn-authenticate/webauthn-authenticate.component.js +37 -50
- package/login/pages/webauthn-error/webauthn-error.component.d.ts +8 -3
- package/login/pages/webauthn-error/webauthn-error.component.js +32 -40
- package/login/pages/webauthn-register/webauthn-register.component.d.ts +9 -6
- package/login/pages/webauthn-register/webauthn-register.component.js +36 -46
- package/login/providers/keycloakify-angular.providers.d.ts +16 -0
- package/login/providers/keycloakify-angular.providers.js +53 -0
- package/login/services/i18n.service.d.ts +6 -0
- package/login/services/i18n.service.js +12 -0
- package/login/services/login-resource-injector.service.d.ts +4 -1
- package/login/services/login-resource-injector.service.js +22 -25
- package/login/services/submit.service.d.ts +9 -0
- package/login/services/submit.service.js +20 -0
- package/login/services/user-profile-form.service.d.ts +16 -12
- package/login/services/user-profile-form.service.js +293 -305
- package/{lib/providers/keycloakify-angular.providers.d.ts → login/tokens/classes.token.d.ts} +14 -37
- package/login/tokens/classes.token.js +3 -0
- package/login/tokens/i18n.token.d.ts +2 -0
- package/login/tokens/i18n.token.js +3 -0
- package/login/tokens/kc-context.token.d.ts +3 -0
- package/login/tokens/kc-context.token.js +3 -0
- package/login/tokens/make-user-confirm-password.token.d.ts +2 -0
- package/login/tokens/make-user-confirm-password.token.js +3 -0
- package/package.json +123 -181
- package/src/account/DefaultPage.ts +49 -0
- package/src/account/KcContext.ts +1 -0
- package/src/account/classes/component-reference.class.ts +6 -0
- package/src/account/containers/template.component.html +125 -0
- package/src/account/containers/template.component.ts +71 -0
- package/src/account/directives/kc-class.directive.ts +150 -0
- package/src/account/i18n.ts +4 -0
- package/src/account/pages/account/account.component.html +165 -0
- package/src/account/pages/account/account.component.ts +34 -0
- package/src/account/pages/applications/applications.component.html +156 -0
- package/src/account/pages/applications/applications.component.ts +32 -0
- package/src/account/pages/federatedIdentity/federatedIdentity.component.html +97 -0
- package/src/account/pages/federatedIdentity/federatedIdentity.component.ts +31 -0
- package/src/account/pages/log/log.component.html +44 -0
- package/src/account/pages/log/log.component.ts +31 -0
- package/src/account/pages/password/password.component.html +131 -0
- package/src/account/pages/password/password.component.ts +110 -0
- package/src/account/pages/sessions/sessions.component.html +63 -0
- package/src/account/pages/sessions/sessions.component.ts +31 -0
- package/src/account/pages/totp/totp.component.html +258 -0
- package/src/account/pages/totp/totp.component.ts +32 -0
- package/src/account/providers/keycloakify-angular.providers.ts +64 -0
- package/src/account/services/i18n.service.ts +7 -0
- package/src/account/services/resource-injector.service.ts +37 -0
- package/src/account/tokens/classes.token.ts +6 -0
- package/src/account/tokens/i18n.token.ts +3 -0
- package/src/account/tokens/kc-context.token.ts +4 -0
- package/src/{login → lib}/directives/attributes.directive.ts +2 -2
- package/src/{login → lib}/pipes/input-type.pipe.ts +4 -4
- package/src/lib/pipes/is-array-with-empty-object.pipe.ts +16 -0
- package/src/lib/pipes/kc-sanitize.pipe.ts +34 -0
- package/src/lib/pipes/to-array.pipe.ts +15 -0
- package/src/lib/pipes/to-number.pipe.ts +13 -0
- package/src/lib/services/resource-injector.service.ts +7 -7
- package/src/lib/tokens/use-default-css.token.ts +3 -0
- package/src/login/DefaultPage.ts +76 -76
- package/src/login/KcContext.ts +1 -1
- package/src/login/classes/component-reference.class.ts +1 -1
- package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +19 -19
- package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.ts +15 -23
- package/src/login/components/field-errors/field-errors.component.html +10 -10
- package/src/login/components/field-errors/field-errors.component.ts +11 -16
- package/src/login/components/group-label/group-label.component.html +25 -25
- package/src/login/components/group-label/group-label.component.ts +17 -21
- package/src/login/components/input-field-by-type/input-field-by-type.component.html +57 -57
- package/src/login/components/input-field-by-type/input-field-by-type.component.ts +18 -35
- package/src/login/components/input-tag/input-tag.component.html +41 -45
- package/src/login/components/input-tag/input-tag.component.ts +25 -34
- package/src/login/components/input-tag-selects/input-tag-selects.component.html +22 -22
- package/src/login/components/input-tag-selects/input-tag-selects.component.ts +32 -43
- package/src/login/components/logout-other-sessions/logout-other-sessions.component.html +15 -15
- package/src/login/components/logout-other-sessions/logout-other-sessions.component.ts +13 -10
- package/src/login/components/password-wrapper/password-wrapper.component.html +13 -13
- package/src/login/components/password-wrapper/password-wrapper.component.ts +15 -25
- package/src/login/components/select-tag/select-tag.component.html +26 -26
- package/src/login/components/select-tag/select-tag.component.ts +23 -35
- package/src/login/components/textarea-tag/textarea-tag.component.html +13 -15
- package/src/login/components/textarea-tag/textarea-tag.component.ts +16 -25
- package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +70 -73
- package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.ts +33 -47
- package/src/login/containers/template.component.html +183 -183
- package/src/login/containers/template.component.ts +26 -42
- package/src/login/directives/kc-class.directive.ts +11 -11
- package/src/login/i18n.ts +2 -2
- package/src/login/pages/code/code.component.html +21 -21
- package/src/login/pages/code/code.component.ts +17 -17
- package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +44 -42
- package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +17 -18
- package/src/login/pages/delete-credential/delete-credential.component.html +29 -29
- package/src/login/pages/delete-credential/delete-credential.component.ts +17 -24
- package/src/login/pages/error/error.component.html +20 -20
- package/src/login/pages/error/error.component.ts +17 -17
- package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +31 -31
- package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +17 -25
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +36 -36
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +34 -33
- package/src/login/pages/info/info.component.html +45 -45
- package/src/login/pages/info/info.component.ts +20 -37
- package/src/login/pages/login/login.component.html +194 -194
- package/src/login/pages/login/login.component.ts +22 -43
- package/src/login/pages/login-config-totp/login-config-totp.component.html +189 -179
- package/src/login/pages/login-config-totp/login-config-totp.component.ts +20 -39
- package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +35 -35
- package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +17 -24
- package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +34 -34
- package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +17 -26
- package/src/login/pages/login-idp-link-email/login-idp-link-email.component.html +32 -30
- package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +17 -24
- package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +83 -81
- package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +18 -26
- package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +57 -57
- package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +17 -26
- package/src/login/pages/login-otp/login-otp.component.html +96 -96
- package/src/login/pages/login-otp/login-otp.component.ts +19 -25
- package/src/login/pages/login-page-expired/login-page-expired.component.html +31 -31
- package/src/login/pages/login-page-expired/login-page-expired.component.ts +16 -23
- package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +183 -181
- package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +25 -32
- package/src/login/pages/login-password/login-password.component.html +82 -82
- package/src/login/pages/login-password/login-password.component.ts +20 -33
- package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +142 -142
- package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +19 -34
- package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +67 -67
- package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +19 -29
- package/src/login/pages/login-reset-otp/login-reset-otp.component.html +61 -59
- package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +18 -24
- package/src/login/pages/login-reset-password/login-reset-password.component.html +84 -84
- package/src/login/pages/login-reset-password/login-reset-password.component.ts +19 -26
- package/src/login/pages/login-update-password/login-update-password.component.html +107 -107
- package/src/login/pages/login-update-password/login-update-password.component.ts +21 -38
- package/src/login/pages/login-update-profile/login-update-profile.component.html +52 -53
- package/src/login/pages/login-update-profile/login-update-profile.component.ts +31 -32
- package/src/login/pages/login-username/login-username.component.html +146 -146
- package/src/login/pages/login-username/login-username.component.ts +21 -38
- package/src/login/pages/login-verify-email/login-verify-email.component.html +22 -22
- package/src/login/pages/login-verify-email/login-verify-email.component.ts +17 -24
- package/src/login/pages/login-x509-info/login-x509-info.component.html +96 -96
- package/src/login/pages/login-x509-info/login-x509-info.component.ts +17 -23
- package/src/login/pages/logout-confirm/logout-confirm.component.html +51 -51
- package/src/login/pages/logout-confirm/logout-confirm.component.ts +17 -23
- package/src/login/pages/register/register.component.html +113 -113
- package/src/login/pages/register/register.component.ts +33 -39
- package/src/login/pages/saml-post-form/saml-post-form.component.html +47 -48
- package/src/login/pages/saml-post-form/saml-post-form.component.ts +19 -27
- package/src/login/pages/select-authenticator/select-authenticator.component.html +43 -44
- package/src/login/pages/select-authenticator/select-authenticator.component.ts +18 -32
- package/src/login/pages/terms/terms.component.html +32 -32
- package/src/login/pages/terms/terms.component.ts +17 -23
- package/src/login/pages/update-email/update-email.component.html +52 -52
- package/src/login/pages/update-email/update-email.component.ts +33 -33
- package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +146 -148
- package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +26 -50
- package/src/login/pages/webauthn-error/webauthn-error.component.html +53 -53
- package/src/login/pages/webauthn-error/webauthn-error.component.ts +21 -32
- package/src/login/pages/webauthn-register/webauthn-register.component.html +73 -73
- package/src/login/pages/webauthn-register/webauthn-register.component.ts +26 -40
- package/src/login/providers/keycloakify-angular.providers.ts +68 -0
- package/src/login/services/i18n.service.ts +7 -0
- package/src/login/services/login-resource-injector.service.ts +13 -12
- package/src/login/services/submit.service.ts +12 -0
- package/src/login/services/user-profile-form.service.ts +185 -187
- package/src/login/tokens/classes.token.ts +6 -0
- package/src/login/tokens/i18n.token.ts +3 -0
- package/src/login/tokens/kc-context.token.ts +4 -0
- package/src/login/tokens/make-user-confirm-password.token.ts +5 -0
- package/src/tsconfig.json +6 -1
- package/stories/login/pages/login/login.stories.ts +146 -0
- package/lib/i18n.d.ts +0 -4
- package/lib/i18n.js +0 -6
- package/lib/i18n.js.map +0 -1
- package/lib/models/index.d.ts +0 -1
- package/lib/models/index.js +0 -2
- package/lib/models/index.js.map +0 -1
- package/lib/models/script.model.js.map +0 -1
- package/lib/providers/keycloakify-angular.providers.js +0 -58
- package/lib/providers/keycloakify-angular.providers.js.map +0 -1
- package/lib/public-api.d.ts +0 -10
- package/lib/public-api.js +0 -4
- package/lib/public-api.js.map +0 -1
- package/lib/services/i18n.service.d.ts +0 -3
- package/lib/services/i18n.service.js +0 -14
- package/lib/services/i18n.service.js.map +0 -1
- package/lib/services/index.d.ts +0 -2
- package/lib/services/index.js +0 -3
- package/lib/services/index.js.map +0 -1
- package/lib/services/resource-injector.service.js.map +0 -1
- package/login/DefaultPage.js.map +0 -1
- package/login/KcContext.js.map +0 -1
- package/login/classes/component-reference.class.js.map +0 -1
- package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +0 -24
- package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.js.map +0 -1
- package/login/components/field-errors/field-errors.component.html +0 -15
- package/login/components/field-errors/field-errors.component.js.map +0 -1
- package/login/components/group-label/group-label.component.html +0 -30
- package/login/components/group-label/group-label.component.js.map +0 -1
- package/login/components/index.d.ts +0 -11
- package/login/components/index.js +0 -12
- package/login/components/index.js.map +0 -1
- package/login/components/input-field-by-type/input-field-by-type.component.html +0 -63
- package/login/components/input-field-by-type/input-field-by-type.component.js.map +0 -1
- package/login/components/input-tag/input-tag.component.html +0 -49
- package/login/components/input-tag/input-tag.component.js.map +0 -1
- package/login/components/input-tag-selects/input-tag-selects.component.html +0 -29
- package/login/components/input-tag-selects/input-tag-selects.component.js.map +0 -1
- package/login/components/logout-other-sessions/logout-other-sessions.component.html +0 -19
- package/login/components/logout-other-sessions/logout-other-sessions.component.js.map +0 -1
- package/login/components/password-wrapper/password-wrapper.component.html +0 -15
- package/login/components/password-wrapper/password-wrapper.component.js.map +0 -1
- package/login/components/select-tag/select-tag.component.html +0 -31
- package/login/components/select-tag/select-tag.component.js.map +0 -1
- package/login/components/textarea-tag/textarea-tag.component.html +0 -18
- package/login/components/textarea-tag/textarea-tag.component.js.map +0 -1
- package/login/components/user-profile-form-fields/user-profile-form-fields.component.html +0 -85
- package/login/components/user-profile-form-fields/user-profile-form-fields.component.js.map +0 -1
- package/login/containers/template.component.html +0 -203
- package/login/containers/template.component.js.map +0 -1
- package/login/directives/attributes.directive.d.ts +0 -5
- package/login/directives/attributes.directive.js +0 -34
- package/login/directives/attributes.directive.js.map +0 -1
- package/login/directives/index.d.ts +0 -2
- package/login/directives/index.js +0 -3
- package/login/directives/index.js.map +0 -1
- package/login/directives/kc-class.directive.js.map +0 -1
- package/login/i18n.js.map +0 -1
- package/login/pages/code/code.component.html +0 -26
- package/login/pages/code/code.component.js.map +0 -1
- package/login/pages/delete-account-confirm/delete-account-confirm.component.html +0 -46
- package/login/pages/delete-account-confirm/delete-account-confirm.component.js.map +0 -1
- package/login/pages/delete-credential/delete-credential.component.html +0 -35
- package/login/pages/delete-credential/delete-credential.component.js.map +0 -1
- package/login/pages/error/error.component.html +0 -25
- package/login/pages/error/error.component.js.map +0 -1
- package/login/pages/frontchannel-logout/frontchannel-logout.component.html +0 -35
- package/login/pages/frontchannel-logout/frontchannel-logout.component.js.map +0 -1
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +0 -41
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.js.map +0 -1
- package/login/pages/info/info.component.html +0 -54
- package/login/pages/info/info.component.js.map +0 -1
- package/login/pages/login/login.component.html +0 -212
- package/login/pages/login/login.component.js.map +0 -1
- package/login/pages/login-config-totp/login-config-totp.component.html +0 -190
- package/login/pages/login-config-totp/login-config-totp.component.js.map +0 -1
- package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +0 -41
- package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.js.map +0 -1
- package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +0 -40
- package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.js.map +0 -1
- package/login/pages/login-idp-link-email/login-idp-link-email.component.html +0 -37
- package/login/pages/login-idp-link-email/login-idp-link-email.component.js.map +0 -1
- package/login/pages/login-oauth-grant/login-oauth-grant.component.html +0 -92
- package/login/pages/login-oauth-grant/login-oauth-grant.component.js.map +0 -1
- package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +0 -63
- package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.js.map +0 -1
- package/login/pages/login-otp/login-otp.component.html +0 -103
- package/login/pages/login-otp/login-otp.component.js.map +0 -1
- package/login/pages/login-page-expired/login-page-expired.component.html +0 -35
- package/login/pages/login-page-expired/login-page-expired.component.js.map +0 -1
- package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +0 -203
- package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.js.map +0 -1
- package/login/pages/login-password/login-password.component.html +0 -90
- package/login/pages/login-password/login-password.component.js.map +0 -1
- package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +0 -155
- package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.js.map +0 -1
- package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +0 -76
- package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.js.map +0 -1
- package/login/pages/login-reset-otp/login-reset-otp.component.html +0 -65
- package/login/pages/login-reset-otp/login-reset-otp.component.js.map +0 -1
- package/login/pages/login-reset-password/login-reset-password.component.html +0 -95
- package/login/pages/login-reset-password/login-reset-password.component.js.map +0 -1
- package/login/pages/login-update-password/login-update-password.component.html +0 -116
- package/login/pages/login-update-password/login-update-password.component.js.map +0 -1
- package/login/pages/login-update-profile/login-update-profile.component.html +0 -59
- package/login/pages/login-update-profile/login-update-profile.component.js.map +0 -1
- package/login/pages/login-username/login-username.component.html +0 -161
- package/login/pages/login-username/login-username.component.js.map +0 -1
- package/login/pages/login-verify-email/login-verify-email.component.html +0 -27
- package/login/pages/login-verify-email/login-verify-email.component.js.map +0 -1
- package/login/pages/login-x509-info/login-x509-info.component.html +0 -102
- package/login/pages/login-x509-info/login-x509-info.component.js.map +0 -1
- package/login/pages/logout-confirm/logout-confirm.component.html +0 -59
- package/login/pages/logout-confirm/logout-confirm.component.js.map +0 -1
- package/login/pages/register/register.component.html +0 -126
- package/login/pages/register/register.component.js.map +0 -1
- package/login/pages/saml-post-form/saml-post-form.component.html +0 -51
- package/login/pages/saml-post-form/saml-post-form.component.js.map +0 -1
- package/login/pages/select-authenticator/select-authenticator.component.html +0 -49
- package/login/pages/select-authenticator/select-authenticator.component.js.map +0 -1
- package/login/pages/terms/terms.component.html +0 -36
- package/login/pages/terms/terms.component.js.map +0 -1
- package/login/pages/update-email/update-email.component.html +0 -58
- package/login/pages/update-email/update-email.component.js.map +0 -1
- package/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +0 -162
- package/login/pages/webauthn-authenticate/webauthn-authenticate.component.js.map +0 -1
- package/login/pages/webauthn-error/webauthn-error.component.html +0 -60
- package/login/pages/webauthn-error/webauthn-error.component.js.map +0 -1
- package/login/pages/webauthn-register/webauthn-register.component.html +0 -82
- package/login/pages/webauthn-register/webauthn-register.component.js.map +0 -1
- package/login/pipes/advanced-msg-str.pipe.d.ts +0 -5
- package/login/pipes/advanced-msg-str.pipe.js +0 -31
- package/login/pipes/advanced-msg-str.pipe.js.map +0 -1
- package/login/pipes/index.d.ts +0 -6
- package/login/pipes/index.js +0 -7
- package/login/pipes/index.js.map +0 -1
- package/login/pipes/input-type.pipe.d.ts +0 -4
- package/login/pipes/input-type.pipe.js +0 -23
- package/login/pipes/input-type.pipe.js.map +0 -1
- package/login/pipes/kc-sanitize.pipe.d.ts +0 -7
- package/login/pipes/kc-sanitize.pipe.js +0 -36
- package/login/pipes/kc-sanitize.pipe.js.map +0 -1
- package/login/pipes/msg-str.pipe.d.ts +0 -6
- package/login/pipes/msg-str.pipe.js +0 -31
- package/login/pipes/msg-str.pipe.js.map +0 -1
- package/login/pipes/to-array.pipe.d.ts +0 -4
- package/login/pipes/to-array.pipe.js +0 -24
- package/login/pipes/to-array.pipe.js.map +0 -1
- package/login/pipes/to-number.pipe.d.ts +0 -4
- package/login/pipes/to-number.pipe.js +0 -23
- package/login/pipes/to-number.pipe.js.map +0 -1
- package/login/services/index.d.ts +0 -2
- package/login/services/index.js +0 -3
- package/login/services/index.js.map +0 -1
- package/login/services/login-resource-injector.service.js.map +0 -1
- package/login/services/user-profile-form.service.js.map +0 -1
- package/src/lib/i18n.ts +0 -9
- package/src/lib/models/index.ts +0 -1
- package/src/lib/providers/keycloakify-angular.providers.ts +0 -92
- package/src/lib/public-api.ts +0 -12
- package/src/lib/services/i18n.service.ts +0 -5
- package/src/lib/services/index.ts +0 -2
- package/src/login/components/index.ts +0 -11
- package/src/login/directives/index.ts +0 -2
- package/src/login/pipes/advanced-msg-str.pipe.ts +0 -13
- package/src/login/pipes/index.ts +0 -6
- package/src/login/pipes/kc-sanitize.pipe.ts +0 -36
- package/src/login/pipes/msg-str.pipe.ts +0 -14
- package/src/login/pipes/to-array.pipe.ts +0 -15
- package/src/login/pipes/to-number.pipe.ts +0 -13
- package/src/login/services/index.ts +0 -2
|
@@ -1,34 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import { getKcClsx } from
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
import { KcClassDirective } from "../../../login/directives/kc-class.directive";
|
|
14
|
-
import { AdvancedMsgStrPipe } from "../../../login/pipes/advanced-msg-str.pipe";
|
|
15
|
-
import { MsgStrPipe } from "../../../login/pipes/msg-str.pipe";
|
|
16
|
-
import { LoginResourceInjectorService } from "../../../login/services";
|
|
17
|
-
let LoginPasskeysConditionalAuthenticateComponent = LoginPasskeysConditionalAuthenticateComponent_1 = class LoginPasskeysConditionalAuthenticateComponent extends ComponentReference {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';
|
|
2
|
+
import { USE_DEFAULT_CSS } from '../../../lib/tokens/use-default-css.token';
|
|
3
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
4
|
+
import { TemplateComponent } from '../../../login/containers/template.component';
|
|
5
|
+
import { KcClassDirective } from '../../../login/directives/kc-class.directive';
|
|
6
|
+
import { LoginResourceInjectorService } from '../../../login/services/login-resource-injector.service';
|
|
7
|
+
import { LOGIN_CLASSES } from '../../../login/tokens/classes.token';
|
|
8
|
+
import { LOGIN_I18N } from '../../../login/tokens/i18n.token';
|
|
9
|
+
import { KC_LOGIN_CONTEXT } from '../../../login/tokens/kc-context.token';
|
|
10
|
+
import { getKcClsx } from 'keycloakify/login/lib/kcClsx';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export class LoginPasskeysConditionalAuthenticateComponent extends ComponentReference {
|
|
18
13
|
constructor() {
|
|
19
14
|
super();
|
|
20
|
-
this.kcContext = inject(
|
|
15
|
+
this.kcContext = inject(KC_LOGIN_CONTEXT);
|
|
21
16
|
this.loginResourceInjectorService = inject(LoginResourceInjectorService);
|
|
22
|
-
this.
|
|
17
|
+
this.i18n = inject(LOGIN_I18N);
|
|
23
18
|
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
24
|
-
this.classes = inject(
|
|
19
|
+
this.classes = inject(LOGIN_CLASSES);
|
|
25
20
|
this.displayInfo = true;
|
|
26
|
-
this.authButtonId =
|
|
21
|
+
this.authButtonId = 'authenticateWebAuthnButton';
|
|
27
22
|
const { url, challenge, rpId, userVerification, isUserIdentified, createTimeout } = this.kcContext;
|
|
28
23
|
const scripts = [
|
|
29
24
|
{
|
|
30
|
-
type:
|
|
31
|
-
id:
|
|
25
|
+
type: 'module',
|
|
26
|
+
id: 'LoginRecoveryAuthnCodeConfig',
|
|
32
27
|
textContent: `
|
|
33
28
|
import { authenticateByWebAuthn } from "${url.resourcesPath}/js/webauthnAuthenticate.js";
|
|
34
29
|
import { initAuthenticate } from "${url.resourcesPath}/js/passkeysConditionalAuth.js";
|
|
@@ -44,13 +39,13 @@ let LoginPasskeysConditionalAuthenticateComponent = LoginPasskeysConditionalAuth
|
|
|
44
39
|
authButton.addEventListener("click", () => {
|
|
45
40
|
authenticateByWebAuthn({
|
|
46
41
|
...input,
|
|
47
|
-
errmsg : ${JSON.stringify(this.msgStr
|
|
42
|
+
errmsg : ${JSON.stringify(this.i18n.msgStr('webauthn-unsupported-browser-text'))}
|
|
48
43
|
});
|
|
49
44
|
});
|
|
50
45
|
|
|
51
46
|
initAuthenticate({
|
|
52
47
|
...input,
|
|
53
|
-
errmsg : ${JSON.stringify(this.msgStr
|
|
48
|
+
errmsg : ${JSON.stringify(this.i18n.msgStr('passkey-unsupported-browser-text'))}
|
|
54
49
|
});
|
|
55
50
|
`
|
|
56
51
|
}
|
|
@@ -58,34 +53,32 @@ let LoginPasskeysConditionalAuthenticateComponent = LoginPasskeysConditionalAuth
|
|
|
58
53
|
this.loginResourceInjectorService.insertAdditionalScripts(scripts);
|
|
59
54
|
}
|
|
60
55
|
selectAuthListItemIconClass(iconClass) {
|
|
61
|
-
var _a;
|
|
62
56
|
const kcClsx = getKcClsx({
|
|
63
|
-
doUseDefaultCss:
|
|
57
|
+
doUseDefaultCss: this.doUseDefaultCss ?? true,
|
|
64
58
|
classes: this.classes
|
|
65
59
|
}).kcClsx;
|
|
66
60
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
67
61
|
const className = kcClsx(iconClass);
|
|
68
62
|
if (className === iconClass) {
|
|
69
|
-
return kcClsx(
|
|
63
|
+
return kcClsx('kcWebAuthnDefaultIcon');
|
|
70
64
|
}
|
|
71
65
|
return className;
|
|
72
66
|
}
|
|
73
|
-
};
|
|
74
|
-
|
|
75
|
-
Component({
|
|
76
|
-
standalone: true,
|
|
77
|
-
imports: [TemplateComponent, MsgStrPipe, KcClassDirective, AdvancedMsgStrPipe],
|
|
78
|
-
selector: "kc-root",
|
|
79
|
-
templateUrl: "login-passkeys-conditional-authenticate.component.html",
|
|
80
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
81
|
-
providers: [
|
|
82
|
-
MsgStrPipe,
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginPasskeysConditionalAuthenticateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: LoginPasskeysConditionalAuthenticateComponent, isStandalone: true, selector: "kc-root", providers: [
|
|
83
69
|
{
|
|
84
70
|
provide: ComponentReference,
|
|
85
|
-
useExisting: forwardRef(() =>
|
|
71
|
+
useExisting: forwardRef(() => LoginPasskeysConditionalAuthenticateComponent)
|
|
86
72
|
}
|
|
87
|
-
]
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
73
|
+
], usesInheritance: true, ngImport: i0, template: "@let authenticators = kcContext.authenticators;\n@let realm = kcContext.realm;\n@let url = kcContext.url;\n@let shouldDisplayAuthenticators = kcContext.shouldDisplayAuthenticators;\n@let login = kcContext.login;\n@let messagesPerField = kcContext.messagesPerField;\n@let usernameHidden = kcContext.usernameHidden;\n@let registrationDisabled = kcContext.registrationDisabled;\n<kc-login-template [displayInfo]=\"displayInfo\">\n <ng-container headerNode>\n {{ i18n.msgStr('passkey-login-title') }}\n </ng-container>\n <ng-container infoNode>\n @if (realm.registrationAllowed && !registrationDisabled) {\n <div id=\"kc-registration\">\n <span>\n {{ i18n.msgStr('noAccount') }}\n <a\n tabIndex=\"6\"\n [href]=\"url.registrationUrl\"\n >\n {{ i18n.msgStr('doRegister') }}\n </a>\n </span>\n </div>\n }\n </ng-container>\n\n <ng-container content>\n <form\n id=\"webauth\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n id=\"clientDataJSON\"\n name=\"clientDataJSON\"\n />\n <input\n type=\"hidden\"\n id=\"authenticatorData\"\n name=\"authenticatorData\"\n />\n <input\n type=\"hidden\"\n id=\"signature\"\n name=\"signature\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n />\n <input\n type=\"hidden\"\n id=\"userHandle\"\n name=\"userHandle\"\n />\n <input\n type=\"hidden\"\n id=\"error\"\n name=\"error\"\n />\n </form>\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n no-bottom-margin=\"true\"\n style=\"margin-bottom: 0\"\n >\n @if (authenticators !== undefined && authenticators.authenticators.length !== 0) {\n <form\n id=\"authn_select\"\n [kcClass]=\"'kcFormClass'\"\n >\n @for (authenticator of authenticators.authenticators; track authenticator; let i = $index) {\n <input\n type=\"hidden\"\n name=\"authn_use_chk\"\n readOnly\n [value]=\"authenticator.credentialId\"\n />\n }\n </form>\n\n @if (shouldDisplayAuthenticators) {\n @if (authenticators.authenticators.length > 1) {\n <p [kcClass]=\"'kcSelectAuthListItemTitle'\">\n {{ i18n.msgStr('passkey-available-authenticators') }}\n </p>\n }\n\n <div [kcClass]=\"'kcFormClass'\">\n @for (authenticator of authenticators.authenticators; track authenticator; let i = $index) {\n <div\n id=\"'kc-webauthn-authenticator-item-' + i\"\n [kcClass]=\"'kcSelectAuthListItemClass'\"\n >\n <i\n [ngClass]=\"selectAuthListItemIconClass(authenticator.transports.iconClass)\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n aria-hidden=\"true\"\n ></i>\n <div [kcClass]=\"'kcSelectAuthListItemBodyClass'\">\n <div\n [id]=\"'kc-webauthn-authenticator-label-' + i\"\n [kcClass]=\"'kcSelectAuthListItemHeadingClass'\"\n >\n {{ i18n.advancedMsgStr(authenticator.label) }}\n </div>\n @if (\n authenticator.transports !== undefined &&\n authenticator.transports.displayNameProperties !== undefined &&\n authenticator.transports.displayNameProperties.length !== 0\n ) {\n <div\n [id]=\"'kc-webauthn-authenticator-transport-' + i\"\n [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\"\n >\n @for (\n nameProperty of authenticator.transports.displayNameProperties;\n track nameProperty;\n let i = $index\n ) {\n <span>\n {{ i18n.advancedMsgStr(nameProperty) }}\n </span>\n @if (i !== authenticator.transports.displayNameProperties.length - 1) {\n <span>, </span>\n }\n }\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\">\n <span [id]=\"'kc-webauthn-authenticator-createdlabel-' + i\">\n {{ i18n.msgStr('passkey-createdAt-label') }}\n </span>\n <span [id]=\"'kc-webauthn-authenticator-created-' + i\">\n {{ authenticator.createdAt }}\n </span>\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemFillClass'\"></div>\n }\n </div>\n </div>\n }\n </div>\n }\n }\n <div id=\"kc-form-wrapper\">\n @if (realm.password) {\n <form\n id=\"kc-form-passkey\"\n [action]=\"url.loginAction\"\n method=\"post\"\n style=\"display: none\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('passkey-autofill-select') }}\n </label>\n <input\n tabIndex=\"1\"\n id=\"username\"\n [attr.aria-invalid]=\"messagesPerField.existsError('username')\"\n [kcClass]=\"'kcInputClass'\"\n name=\"username\"\n [value]=\"login.username ?? ''\"\n type=\"text\"\n autoFocus\n autoComplete=\"off\"\n />\n @if (messagesPerField.existsError('username')) {\n <span\n id=\"input-error-username\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n >\n {{ messagesPerField.get('username') }}\n </span>\n }\n </div>\n }\n </form>\n <div\n id=\"kc-form-passkey-button\"\n [kcClass]=\"'kcFormButtonsClass'\"\n style=\"display: none\"\n >\n <input\n id=\"authButtonId\"\n type=\"button\"\n autoFocus\n [value]=\"i18n.msgStr('passkey-doAuthenticate')\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n />\n </div>\n }\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
74
|
+
}
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginPasskeysConditionalAuthenticateComponent, decorators: [{
|
|
76
|
+
type: Component,
|
|
77
|
+
args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
78
|
+
{
|
|
79
|
+
provide: ComponentReference,
|
|
80
|
+
useExisting: forwardRef(() => LoginPasskeysConditionalAuthenticateComponent)
|
|
81
|
+
}
|
|
82
|
+
], template: "@let authenticators = kcContext.authenticators;\n@let realm = kcContext.realm;\n@let url = kcContext.url;\n@let shouldDisplayAuthenticators = kcContext.shouldDisplayAuthenticators;\n@let login = kcContext.login;\n@let messagesPerField = kcContext.messagesPerField;\n@let usernameHidden = kcContext.usernameHidden;\n@let registrationDisabled = kcContext.registrationDisabled;\n<kc-login-template [displayInfo]=\"displayInfo\">\n <ng-container headerNode>\n {{ i18n.msgStr('passkey-login-title') }}\n </ng-container>\n <ng-container infoNode>\n @if (realm.registrationAllowed && !registrationDisabled) {\n <div id=\"kc-registration\">\n <span>\n {{ i18n.msgStr('noAccount') }}\n <a\n tabIndex=\"6\"\n [href]=\"url.registrationUrl\"\n >\n {{ i18n.msgStr('doRegister') }}\n </a>\n </span>\n </div>\n }\n </ng-container>\n\n <ng-container content>\n <form\n id=\"webauth\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n id=\"clientDataJSON\"\n name=\"clientDataJSON\"\n />\n <input\n type=\"hidden\"\n id=\"authenticatorData\"\n name=\"authenticatorData\"\n />\n <input\n type=\"hidden\"\n id=\"signature\"\n name=\"signature\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n />\n <input\n type=\"hidden\"\n id=\"userHandle\"\n name=\"userHandle\"\n />\n <input\n type=\"hidden\"\n id=\"error\"\n name=\"error\"\n />\n </form>\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n no-bottom-margin=\"true\"\n style=\"margin-bottom: 0\"\n >\n @if (authenticators !== undefined && authenticators.authenticators.length !== 0) {\n <form\n id=\"authn_select\"\n [kcClass]=\"'kcFormClass'\"\n >\n @for (authenticator of authenticators.authenticators; track authenticator; let i = $index) {\n <input\n type=\"hidden\"\n name=\"authn_use_chk\"\n readOnly\n [value]=\"authenticator.credentialId\"\n />\n }\n </form>\n\n @if (shouldDisplayAuthenticators) {\n @if (authenticators.authenticators.length > 1) {\n <p [kcClass]=\"'kcSelectAuthListItemTitle'\">\n {{ i18n.msgStr('passkey-available-authenticators') }}\n </p>\n }\n\n <div [kcClass]=\"'kcFormClass'\">\n @for (authenticator of authenticators.authenticators; track authenticator; let i = $index) {\n <div\n id=\"'kc-webauthn-authenticator-item-' + i\"\n [kcClass]=\"'kcSelectAuthListItemClass'\"\n >\n <i\n [ngClass]=\"selectAuthListItemIconClass(authenticator.transports.iconClass)\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n aria-hidden=\"true\"\n ></i>\n <div [kcClass]=\"'kcSelectAuthListItemBodyClass'\">\n <div\n [id]=\"'kc-webauthn-authenticator-label-' + i\"\n [kcClass]=\"'kcSelectAuthListItemHeadingClass'\"\n >\n {{ i18n.advancedMsgStr(authenticator.label) }}\n </div>\n @if (\n authenticator.transports !== undefined &&\n authenticator.transports.displayNameProperties !== undefined &&\n authenticator.transports.displayNameProperties.length !== 0\n ) {\n <div\n [id]=\"'kc-webauthn-authenticator-transport-' + i\"\n [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\"\n >\n @for (\n nameProperty of authenticator.transports.displayNameProperties;\n track nameProperty;\n let i = $index\n ) {\n <span>\n {{ i18n.advancedMsgStr(nameProperty) }}\n </span>\n @if (i !== authenticator.transports.displayNameProperties.length - 1) {\n <span>, </span>\n }\n }\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\">\n <span [id]=\"'kc-webauthn-authenticator-createdlabel-' + i\">\n {{ i18n.msgStr('passkey-createdAt-label') }}\n </span>\n <span [id]=\"'kc-webauthn-authenticator-created-' + i\">\n {{ authenticator.createdAt }}\n </span>\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemFillClass'\"></div>\n }\n </div>\n </div>\n }\n </div>\n }\n }\n <div id=\"kc-form-wrapper\">\n @if (realm.password) {\n <form\n id=\"kc-form-passkey\"\n [action]=\"url.loginAction\"\n method=\"post\"\n style=\"display: none\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('passkey-autofill-select') }}\n </label>\n <input\n tabIndex=\"1\"\n id=\"username\"\n [attr.aria-invalid]=\"messagesPerField.existsError('username')\"\n [kcClass]=\"'kcInputClass'\"\n name=\"username\"\n [value]=\"login.username ?? ''\"\n type=\"text\"\n autoFocus\n autoComplete=\"off\"\n />\n @if (messagesPerField.existsError('username')) {\n <span\n id=\"input-error-username\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n >\n {{ messagesPerField.get('username') }}\n </span>\n }\n </div>\n }\n </form>\n <div\n id=\"kc-form-passkey-button\"\n [kcClass]=\"'kcFormButtonsClass'\"\n style=\"display: none\"\n >\n <input\n id=\"authButtonId\"\n type=\"button\"\n autoFocus\n [value]=\"i18n.msgStr('passkey-doAuthenticate')\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n />\n </div>\n }\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n" }]
|
|
83
|
+
}], ctorParameters: () => [] });
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcGFzc2tleXMtY29uZGl0aW9uYWwtYXV0aGVudGljYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL3BhZ2VzL2xvZ2luLXBhc3NrZXlzLWNvbmRpdGlvbmFsLWF1dGhlbnRpY2F0ZS9sb2dpbi1wYXNza2V5cy1jb25kaXRpb25hbC1hdXRoZW50aWNhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcGFzc2tleXMtY29uZGl0aW9uYWwtYXV0aGVudGljYXRlL2xvZ2luLXBhc3NrZXlzLWNvbmRpdGlvbmFsLWF1dGhlbnRpY2F0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFFQUFxRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDdEYsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFpQnhFLE1BQU0sT0FBTyw2Q0FBOEMsU0FBUSxrQkFBa0I7SUFVakY7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQVZaLGNBQVMsR0FBRyxNQUFNLENBQWdGLGdCQUFnQixDQUFDLENBQUM7UUFDcEgsaUNBQTRCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDcEUsU0FBSSxHQUFHLE1BQU0sQ0FBTyxVQUFVLENBQUMsQ0FBQztRQUN2QixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxhQUFhLENBQUMsQ0FBQztRQUM1RSxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUU1QixpQkFBWSxHQUFHLDRCQUE0QixDQUFDO1FBSXhDLE1BQU0sRUFDRixHQUFHLEVBQ0gsU0FBUyxFQUNULElBQUksRUFDSixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBRWhCLGFBQWEsRUFDaEIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ25CLE1BQU0sT0FBTyxHQUFhO1lBQ3RCO2dCQUNJLElBQUksRUFBRSxRQUFRO2dCQUNkLEVBQUUsRUFBRSw4QkFBOEI7Z0JBQ2xDLFdBQVcsRUFBRTs4REFDaUMsR0FBRyxDQUFDLGFBQWE7d0RBQ3ZCLEdBQUcsQ0FBQyxhQUFhOztrRUFFUCxJQUFJLENBQUMsWUFBWTs7NkNBRXRDLGdCQUFnQjtzQ0FDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7NkNBQ2xCLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUM7aUNBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDOzBDQUNYLGFBQWE7Ozs7O3VDQUtoQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7Ozs7OzttQ0FNekUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQ0FBa0MsQ0FBQyxDQUFDOztXQUU1RjthQUNFO1NBQ0osQ0FBQztRQUNGLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsMkJBQTJCLENBQUMsU0FBaUI7UUFDekMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDO1lBQ3JCLGVBQWUsRUFBRSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUk7WUFDN0MsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO1NBQ3hCLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDViw4REFBOEQ7UUFDOUQsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQWdCLENBQUMsQ0FBQztRQUMzQyxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUMxQixPQUFPLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDOzhHQWpFUSw2Q0FBNkM7a0dBQTdDLDZDQUE2QyxzREFQM0M7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDZDQUE2QyxDQUFDO2FBQy9FO1NBQ0osaURDekJMLCs2U0E2TUEsNENEN0xjLGlCQUFpQixvS0FBRSxnQkFBZ0I7OzJGQVdwQyw2Q0FBNkM7a0JBYnpELFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsWUFDcEMsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDhDQUE4QyxDQUFDO3lCQUMvRTtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBTY3JpcHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvbW9kZWxzL3NjcmlwdC5tb2RlbCc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcy50b2tlbic7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL2xvZ2luLXJlc291cmNlLWluamVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzLnRva2VuJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bi50b2tlbic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQudG9rZW4nO1xuaW1wb3J0IHsgdHlwZSBDbGFzc0tleSwgZ2V0S2NDbHN4IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyB0eXBlIEkxOG4gfSBmcm9tICcuLi8uLi9pMThuJztcbmltcG9ydCB7IHR5cGUgS2NDb250ZXh0IH0gZnJvbSAnLi4vLi4vS2NDb250ZXh0JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGVtcGxhdGVDb21wb25lbnQsIEtjQ2xhc3NEaXJlY3RpdmVdLFxuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICdsb2dpbi1wYXNza2V5cy1jb25kaXRpb25hbC1hdXRoZW50aWNhdGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpblBhc3NrZXlzQ29uZGl0aW9uYWxBdXRoZW50aWNhdGVDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIExvZ2luUGFzc2tleXNDb25kaXRpb25hbEF1dGhlbnRpY2F0ZUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ2xvZ2luLXBhc3NrZXlzLWNvbmRpdGlvbmFsLWF1dGhlbnRpY2F0ZS5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBsb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlID0gaW5qZWN0KExvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UpO1xuICAgIGkxOG4gPSBpbmplY3Q8STE4bj4oTE9HSU5fSTE4Tik7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuICAgIGRpc3BsYXlJbmZvOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIGF1dGhCdXR0b25JZCA9ICdhdXRoZW50aWNhdGVXZWJBdXRobkJ1dHRvbic7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgY29uc3Qge1xuICAgICAgICAgICAgdXJsLFxuICAgICAgICAgICAgY2hhbGxlbmdlLFxuICAgICAgICAgICAgcnBJZCxcbiAgICAgICAgICAgIHVzZXJWZXJpZmljYXRpb24sXG4gICAgICAgICAgICBpc1VzZXJJZGVudGlmaWVkLFxuXG4gICAgICAgICAgICBjcmVhdGVUaW1lb3V0XG4gICAgICAgIH0gPSB0aGlzLmtjQ29udGV4dDtcbiAgICAgICAgY29uc3Qgc2NyaXB0czogU2NyaXB0W10gPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ21vZHVsZScsXG4gICAgICAgICAgICAgICAgaWQ6ICdMb2dpblJlY292ZXJ5QXV0aG5Db2RlQ29uZmlnJyxcbiAgICAgICAgICAgICAgICB0ZXh0Q29udGVudDogYFxuICAgICAgICAgICAgICAgICAgICBpbXBvcnQgeyBhdXRoZW50aWNhdGVCeVdlYkF1dGhuIH0gZnJvbSBcIiR7dXJsLnJlc291cmNlc1BhdGh9L2pzL3dlYmF1dGhuQXV0aGVudGljYXRlLmpzXCI7XG4gICAgICAgICAgICAgICAgICAgIGltcG9ydCB7IGluaXRBdXRoZW50aWNhdGUgfSBmcm9tIFwiJHt1cmwucmVzb3VyY2VzUGF0aH0vanMvcGFzc2tleXNDb25kaXRpb25hbEF1dGguanNcIjtcblxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhdXRoQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCIke3RoaXMuYXV0aEJ1dHRvbklkfVwiKTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1VzZXJJZGVudGlmaWVkIDogJHtpc1VzZXJJZGVudGlmaWVkfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZSA6ICR7SlNPTi5zdHJpbmdpZnkoY2hhbGxlbmdlKX0sXG4gICAgICAgICAgICAgICAgICAgICAgICB1c2VyVmVyaWZpY2F0aW9uIDogJHtKU09OLnN0cmluZ2lmeSh1c2VyVmVyaWZpY2F0aW9uKX0sXG4gICAgICAgICAgICAgICAgICAgICAgICBycElkIDogJHtKU09OLnN0cmluZ2lmeShycElkKX0sXG4gICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVUaW1lb3V0IDogJHtjcmVhdGVUaW1lb3V0fVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBhdXRoQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGVCeVdlYkF1dGhuKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5pbnB1dCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnJtc2cgOiAke0pTT04uc3RyaW5naWZ5KHRoaXMuaTE4bi5tc2dTdHIoJ3dlYmF1dGhuLXVuc3VwcG9ydGVkLWJyb3dzZXItdGV4dCcpKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICBpbml0QXV0aGVudGljYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmlucHV0LFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJybXNnIDogJHtKU09OLnN0cmluZ2lmeSh0aGlzLmkxOG4ubXNnU3RyKCdwYXNza2V5LXVuc3VwcG9ydGVkLWJyb3dzZXItdGV4dCcpKX1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgYFxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgICAgICB0aGlzLmxvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UuaW5zZXJ0QWRkaXRpb25hbFNjcmlwdHMoc2NyaXB0cyk7XG4gICAgfVxuXG4gICAgc2VsZWN0QXV0aExpc3RJdGVtSWNvbkNsYXNzKGljb25DbGFzczogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGtjQ2xzeCA9IGdldEtjQ2xzeCh7XG4gICAgICAgICAgICBkb1VzZURlZmF1bHRDc3M6IHRoaXMuZG9Vc2VEZWZhdWx0Q3NzID8/IHRydWUsXG4gICAgICAgICAgICBjbGFzc2VzOiB0aGlzLmNsYXNzZXNcbiAgICAgICAgfSkua2NDbHN4O1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBrY0Nsc3goaWNvbkNsYXNzIGFzIGFueSk7XG4gICAgICAgIGlmIChjbGFzc05hbWUgPT09IGljb25DbGFzcykge1xuICAgICAgICAgICAgcmV0dXJuIGtjQ2xzeCgna2NXZWJBdXRobkRlZmF1bHRJY29uJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgICB9XG59XG4iLCJAbGV0IGF1dGhlbnRpY2F0b3JzID0ga2NDb250ZXh0LmF1dGhlbnRpY2F0b3JzO1xuQGxldCByZWFsbSA9IGtjQ29udGV4dC5yZWFsbTtcbkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgc2hvdWxkRGlzcGxheUF1dGhlbnRpY2F0b3JzID0ga2NDb250ZXh0LnNob3VsZERpc3BsYXlBdXRoZW50aWNhdG9ycztcbkBsZXQgbG9naW4gPSBrY0NvbnRleHQubG9naW47XG5AbGV0IG1lc3NhZ2VzUGVyRmllbGQgPSBrY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZDtcbkBsZXQgdXNlcm5hbWVIaWRkZW4gPSBrY0NvbnRleHQudXNlcm5hbWVIaWRkZW47XG5AbGV0IHJlZ2lzdHJhdGlvbkRpc2FibGVkID0ga2NDb250ZXh0LnJlZ2lzdHJhdGlvbkRpc2FibGVkO1xuPGtjLWxvZ2luLXRlbXBsYXRlIFtkaXNwbGF5SW5mb109XCJkaXNwbGF5SW5mb1wiPlxuICAgIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3Bhc3NrZXktbG9naW4tdGl0bGUnKSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgaW5mb05vZGU+XG4gICAgICAgIEBpZiAocmVhbG0ucmVnaXN0cmF0aW9uQWxsb3dlZCAmJiAhcmVnaXN0cmF0aW9uRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIDxkaXYgaWQ9XCJrYy1yZWdpc3RyYXRpb25cIj5cbiAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ25vQWNjb3VudCcpIH19XG4gICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD1cIjZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsLnJlZ2lzdHJhdGlvblVybFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdkb1JlZ2lzdGVyJykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgICAgIDxmb3JtXG4gICAgICAgICAgICBpZD1cIndlYmF1dGhcIlxuICAgICAgICAgICAgW2FjdGlvbl09XCJ1cmwubG9naW5BY3Rpb25cIlxuICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgIGlkPVwiY2xpZW50RGF0YUpTT05cIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJjbGllbnREYXRhSlNPTlwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgaWQ9XCJhdXRoZW50aWNhdG9yRGF0YVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImF1dGhlbnRpY2F0b3JEYXRhXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBpZD1cInNpZ25hdHVyZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInNpZ25hdHVyZVwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgaWQ9XCJjcmVkZW50aWFsSWRcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJjcmVkZW50aWFsSWRcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgIGlkPVwidXNlckhhbmRsZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInVzZXJIYW5kbGVcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgIGlkPVwiZXJyb3JcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJlcnJvclwiXG4gICAgICAgICAgICAvPlxuICAgICAgICA8L2Zvcm0+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiXG4gICAgICAgICAgICBuby1ib3R0b20tbWFyZ2luPVwidHJ1ZVwiXG4gICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi1ib3R0b206IDBcIlxuICAgICAgICA+XG4gICAgICAgICAgICBAaWYgKGF1dGhlbnRpY2F0b3JzICE9PSB1bmRlZmluZWQgJiYgYXV0aGVudGljYXRvcnMuYXV0aGVudGljYXRvcnMubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgPGZvcm1cbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJhdXRobl9zZWxlY3RcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGF1dGhlbnRpY2F0b3Igb2YgYXV0aGVudGljYXRvcnMuYXV0aGVudGljYXRvcnM7IHRyYWNrIGF1dGhlbnRpY2F0b3I7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYXV0aG5fdXNlX2Noa1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZE9ubHlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiYXV0aGVudGljYXRvci5jcmVkZW50aWFsSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZm9ybT5cblxuICAgICAgICAgICAgICAgIEBpZiAoc2hvdWxkRGlzcGxheUF1dGhlbnRpY2F0b3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoYXV0aGVudGljYXRvcnMuYXV0aGVudGljYXRvcnMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHAgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtVGl0bGUnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3Bhc3NrZXktYXZhaWxhYmxlLWF1dGhlbnRpY2F0b3JzJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoYXV0aGVudGljYXRvciBvZiBhdXRoZW50aWNhdG9ycy5hdXRoZW50aWNhdG9yczsgdHJhY2sgYXV0aGVudGljYXRvcjsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiJ2tjLXdlYmF1dGhuLWF1dGhlbnRpY2F0b3ItaXRlbS0nICsgaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0QXV0aExpc3RJdGVtSWNvbkNsYXNzKGF1dGhlbnRpY2F0b3IudHJhbnNwb3J0cy5pY29uQ2xhc3MpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0NvbW1vbkxvZ29JZFAnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtQm9keUNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCIna2Mtd2ViYXV0aG4tYXV0aGVudGljYXRvci1sYWJlbC0nICsgaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtSGVhZGluZ0NsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5hZHZhbmNlZE1zZ1N0cihhdXRoZW50aWNhdG9yLmxhYmVsKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3IudHJhbnNwb3J0cyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRvci50cmFuc3BvcnRzLmRpc3BsYXlOYW1lUHJvcGVydGllcyAhPT0gdW5kZWZpbmVkICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0aGVudGljYXRvci50cmFuc3BvcnRzLmRpc3BsYXlOYW1lUHJvcGVydGllcy5sZW5ndGggIT09IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidrYy13ZWJhdXRobi1hdXRoZW50aWNhdG9yLXRyYW5zcG9ydC0nICsgaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbURlc2NyaXB0aW9uQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZVByb3BlcnR5IG9mIGF1dGhlbnRpY2F0b3IudHJhbnNwb3J0cy5kaXNwbGF5TmFtZVByb3BlcnRpZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBuYW1lUHJvcGVydHk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgaSA9ICRpbmRleFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4uYWR2YW5jZWRNc2dTdHIobmFtZVByb3BlcnR5KSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChpICE9PSBhdXRoZW50aWNhdG9yLnRyYW5zcG9ydHMuZGlzcGxheU5hbWVQcm9wZXJ0aWVzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4sIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtRGVzY3JpcHRpb25DbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lkXT1cIidrYy13ZWJhdXRobi1hdXRoZW50aWNhdG9yLWNyZWF0ZWRsYWJlbC0nICsgaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3Bhc3NrZXktY3JlYXRlZEF0LWxhYmVsJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaWRdPVwiJ2tjLXdlYmF1dGhuLWF1dGhlbnRpY2F0b3ItY3JlYXRlZC0nICsgaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgYXV0aGVudGljYXRvci5jcmVhdGVkQXQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtRmlsbENsYXNzJ1wiPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBpZD1cImtjLWZvcm0td3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIEBpZiAocmVhbG0ucGFzc3dvcmQpIHtcbiAgICAgICAgICAgICAgICAgICAgPGZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1wYXNza2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthY3Rpb25dPVwidXJsLmxvZ2luQWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghdXNlcm5hbWVIaWRkZW4pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3Bhc3NrZXktYXV0b2ZpbGwtc2VsZWN0JykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ1c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwibWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndXNlcm5hbWUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImxvZ2luLnVzZXJuYW1lID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCd1c2VybmFtZScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaW5wdXQtZXJyb3ItdXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0RXJyb3JNZXNzYWdlQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG1lc3NhZ2VzUGVyRmllbGQuZ2V0KCd1c2VybmFtZScpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWZvcm0tcGFzc2tleS1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUJ1dHRvbnNDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJkaXNwbGF5OiBub25lXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhdXRoQnV0dG9uSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpMThuLm1zZ1N0cigncGFzc2tleS1kb0F1dGhlbnRpY2F0ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25CbG9ja0NsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
2
|
+
import { type ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
3
|
+
import { type I18n } from '../../i18n';
|
|
4
|
+
import { type KcContext } from '../../KcContext';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
4
6
|
export declare class LoginPasswordComponent extends ComponentReference {
|
|
5
7
|
kcContext: KcContext.LoginPassword;
|
|
8
|
+
i18n: I18n;
|
|
6
9
|
doUseDefaultCss: boolean;
|
|
7
10
|
classes: Partial<Record<ClassKey, string>>;
|
|
8
11
|
displayRequiredFields: import("@angular/core").InputSignal<boolean>;
|
|
@@ -11,4 +14,6 @@ export declare class LoginPasswordComponent extends ComponentReference {
|
|
|
11
14
|
displayInfo: boolean;
|
|
12
15
|
displayMessage: boolean;
|
|
13
16
|
isLoginButtonDisabled: import("@angular/core").WritableSignal<boolean>;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoginPasswordComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoginPasswordComponent, "kc-root", never, { "displayRequiredFields": { "alias": "displayRequiredFields"; "required": false; "isSignal": true; }; "documentTitle": { "alias": "documentTitle"; "required": false; "isSignal": true; }; "bodyClassName": { "alias": "bodyClassName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
14
19
|
}
|
|
@@ -1,52 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
import { KcClassDirective } from "../../../login/directives/kc-class.directive";
|
|
14
|
-
import { KcSanitizePipe } from "../../../login/pipes/kc-sanitize.pipe";
|
|
15
|
-
import { MsgStrPipe } from "../../../login/pipes/msg-str.pipe";
|
|
16
|
-
let LoginPasswordComponent = LoginPasswordComponent_1 = class LoginPasswordComponent extends ComponentReference {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal } from '@angular/core';
|
|
2
|
+
import { USE_DEFAULT_CSS } from '../../../lib/tokens/use-default-css.token';
|
|
3
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
4
|
+
import { PasswordWrapperComponent } from '../../../login/components/password-wrapper/password-wrapper.component';
|
|
5
|
+
import { TemplateComponent } from '../../../login/containers/template.component';
|
|
6
|
+
import { KcClassDirective } from '../../../login/directives/kc-class.directive';
|
|
7
|
+
import { KcSanitizePipe } from '../../../lib/pipes/kc-sanitize.pipe';
|
|
8
|
+
import { LOGIN_CLASSES } from '../../../login/tokens/classes.token';
|
|
9
|
+
import { LOGIN_I18N } from '../../../login/tokens/i18n.token';
|
|
10
|
+
import { KC_LOGIN_CONTEXT } from '../../../login/tokens/kc-context.token';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export class LoginPasswordComponent extends ComponentReference {
|
|
17
13
|
constructor() {
|
|
18
14
|
super(...arguments);
|
|
19
|
-
this.kcContext = inject(
|
|
15
|
+
this.kcContext = inject(KC_LOGIN_CONTEXT);
|
|
16
|
+
this.i18n = inject(LOGIN_I18N);
|
|
20
17
|
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
21
|
-
this.classes = inject(
|
|
18
|
+
this.classes = inject(LOGIN_CLASSES);
|
|
22
19
|
this.displayRequiredFields = input(false);
|
|
23
20
|
this.documentTitle = input();
|
|
24
21
|
this.bodyClassName = input();
|
|
25
22
|
this.displayInfo = false;
|
|
26
|
-
this.displayMessage = this.kcContext.messagesPerField.existsError(
|
|
23
|
+
this.displayMessage = this.kcContext.messagesPerField.existsError('password');
|
|
27
24
|
this.isLoginButtonDisabled = signal(false);
|
|
28
25
|
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
Component({
|
|
32
|
-
standalone: true,
|
|
33
|
-
imports: [
|
|
34
|
-
TemplateComponent,
|
|
35
|
-
MsgStrPipe,
|
|
36
|
-
KcClassDirective,
|
|
37
|
-
PasswordWrapperComponent,
|
|
38
|
-
KcSanitizePipe
|
|
39
|
-
],
|
|
40
|
-
selector: "kc-root",
|
|
41
|
-
templateUrl: "login-password.component.html",
|
|
42
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
43
|
-
providers: [
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginPasswordComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: LoginPasswordComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
44
28
|
{
|
|
45
29
|
provide: ComponentReference,
|
|
46
|
-
useExisting: forwardRef(() =>
|
|
30
|
+
useExisting: forwardRef(() => LoginPasswordComponent)
|
|
47
31
|
}
|
|
48
|
-
]
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
32
|
+
], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let realm = kcContext.realm;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('doLogIn') }}\n </ng-container>\n <ng-container content>\n <div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n <form\n id=\"kc-form-login\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n [action]=\"url?.loginAction\"\n method=\"post\"\n >\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n class=\"no-bottom-margin\"\n >\n <hr />\n <label\n for=\"password\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('password') }}\n </label>\n <kc-password-wrapper passwordInputId=\"password\">\n <input\n type=\"password\"\n id=\"password\"\n name=\"password\"\n [kcClass]=\"'kcInputClass'\"\n [required]=\"true\"\n [autofocus]=\"true\"\n [tabindex]=\"1\"\n aria-describedby=\"input-error-password\"\n />\n </kc-password-wrapper>\n\n @if (messagesPerField.existsError('password')) {\n <span\n id=\"input-error-password\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.getFirstError('password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\"></div>\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n @if (realm.resetPasswordAllowed) {\n <span>\n <a\n tabindex=\"5\"\n [href]=\"url.loginResetCredentialsUrl\"\n >\n {{ i18n.msgStr('doForgotPassword') }}\n </a>\n </span>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n type=\"submit\"\n id=\"kc-login\"\n name=\"login\"\n [value]=\"i18n.msgStr('doLogIn')\"\n [disabled]=\"isLoginButtonDisabled()\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [tabindex]=\"4\"\n />\n </div>\n </form>\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: PasswordWrapperComponent, selector: "kc-password-wrapper", inputs: ["passwordInputId"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginPasswordComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective, PasswordWrapperComponent, KcSanitizePipe], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
37
|
+
{
|
|
38
|
+
provide: ComponentReference,
|
|
39
|
+
useExisting: forwardRef(() => LoginPasswordComponent)
|
|
40
|
+
}
|
|
41
|
+
], template: "@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let realm = kcContext.realm;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('doLogIn') }}\n </ng-container>\n <ng-container content>\n <div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n <form\n id=\"kc-form-login\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n [action]=\"url?.loginAction\"\n method=\"post\"\n >\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n class=\"no-bottom-margin\"\n >\n <hr />\n <label\n for=\"password\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('password') }}\n </label>\n <kc-password-wrapper passwordInputId=\"password\">\n <input\n type=\"password\"\n id=\"password\"\n name=\"password\"\n [kcClass]=\"'kcInputClass'\"\n [required]=\"true\"\n [autofocus]=\"true\"\n [tabindex]=\"1\"\n aria-describedby=\"input-error-password\"\n />\n </kc-password-wrapper>\n\n @if (messagesPerField.existsError('password')) {\n <span\n id=\"input-error-password\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.getFirstError('password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\"></div>\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n @if (realm.resetPasswordAllowed) {\n <span>\n <a\n tabindex=\"5\"\n [href]=\"url.loginResetCredentialsUrl\"\n >\n {{ i18n.msgStr('doForgotPassword') }}\n </a>\n </span>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n type=\"submit\"\n id=\"kc-login\"\n name=\"login\"\n [value]=\"i18n.msgStr('doLogIn')\"\n [disabled]=\"isLoginButtonDisabled()\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [tabindex]=\"4\"\n />\n </div>\n </form>\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n" }]
|
|
42
|
+
}] });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcGFzc3dvcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcGFzc3dvcmQvbG9naW4tcGFzc3dvcmQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcGFzc3dvcmQvbG9naW4tcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG1GQUFtRixDQUFDO0FBQzdILE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNqRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDOztBQWtCdEYsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGtCQUFrQjtJQWI5RDs7UUFjSSxjQUFTLEdBQUcsTUFBTSxDQUF1RCxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzNGLFNBQUksR0FBRyxNQUFNLENBQU8sVUFBVSxDQUFDLENBQUM7UUFDdkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsYUFBYSxDQUFDLENBQUM7UUFDNUUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQixtQkFBYyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXpFLDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUN6Qzs4R0FaWSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwwZ0JBUHBCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUN4RDtTQUNKLGlEQ3pCTCwyNEhBMEZBLDRDRDFFYyxpQkFBaUIsb0tBQUUsZ0JBQWdCLCtGQUFFLHdCQUF3Qix3RkFBRSxjQUFjOzsyRkFXOUUsc0JBQXNCO2tCQWJsQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLHdCQUF3QixFQUFFLGNBQWMsQ0FBQyxZQUM5RSxTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsdUJBQXVCLENBQUM7eUJBQ3hEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcy50b2tlbic7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgUGFzc3dvcmRXcmFwcGVyQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29tcG9uZW50cy9wYXNzd29yZC13cmFwcGVyL3Bhc3N3b3JkLXdyYXBwZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IEtjU2FuaXRpemVQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3BpcGVzL2tjLXNhbml0aXplLnBpcGUnO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzLnRva2VuJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bi50b2tlbic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQudG9rZW4nO1xuaW1wb3J0IHsgdHlwZSBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgdHlwZSBJMThuIH0gZnJvbSAnLi4vLi4vaTE4bic7XG5pbXBvcnQgeyB0eXBlIEtjQ29udGV4dCB9IGZyb20gJy4uLy4uL0tjQ29udGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RlbXBsYXRlQ29tcG9uZW50LCBLY0NsYXNzRGlyZWN0aXZlLCBQYXNzd29yZFdyYXBwZXJDb21wb25lbnQsIEtjU2FuaXRpemVQaXBlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4tcGFzc3dvcmQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpblBhc3N3b3JkQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpblBhc3N3b3JkQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4tcGFzc3dvcmQuZnRsJyB9Pj4oS0NfTE9HSU5fQ09OVEVYVCk7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oTE9HSU5fQ0xBU1NFUyk7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gaW5wdXQoZmFsc2UpO1xuICAgIGRvY3VtZW50VGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgYm9keUNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5SW5mbyA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlID0gdGhpcy5rY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigncGFzc3dvcmQnKTtcblxuICAgIGlzTG9naW5CdXR0b25EaXNhYmxlZCA9IHNpZ25hbChmYWxzZSk7XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IG1lc3NhZ2VzUGVyRmllbGQgPSBrY0NvbnRleHQubWVzc2FnZXNQZXJGaWVsZDtcbkBsZXQgcmVhbG0gPSBrY0NvbnRleHQucmVhbG07XG48a2MtbG9naW4tdGVtcGxhdGVcbiAgICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICAgIFtib2R5Q2xhc3NOYW1lXT1cImJvZHlDbGFzc05hbWUoKVwiXG4gICAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgICBbZG9jdW1lbnRUaXRsZV09XCJkb2N1bWVudFRpdGxlKClcIlxuPlxuICAgIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2RvTG9nSW4nKSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICAgICAgPGRpdiBpZD1cImtjLWZvcm1cIj5cbiAgICAgICAgICAgIDxkaXYgaWQ9XCJrYy1mb3JtLXdyYXBwZXJcIj5cbiAgICAgICAgICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWZvcm0tbG9naW5cIlxuICAgICAgICAgICAgICAgICAgICAob25TdWJtaXQpPVwiaXNMb2dpbkJ1dHRvbkRpc2FibGVkLnNldCh0cnVlKVwiXG4gICAgICAgICAgICAgICAgICAgIFthY3Rpb25dPVwidXJsPy5sb2dpbkFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibm8tYm90dG9tLW1hcmdpblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxociAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cigncGFzc3dvcmQnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxrYy1wYXNzd29yZC13cmFwcGVyIHBhc3N3b3JkSW5wdXRJZD1cInBhc3N3b3JkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwicGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F1dG9mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWRlc2NyaWJlZGJ5PVwiaW5wdXQtZXJyb3ItcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2tjLXBhc3N3b3JkLXdyYXBwZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigncGFzc3dvcmQnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaW5wdXQtZXJyb3ItcGFzc3dvcmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEVycm9yTWVzc2FnZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibWVzc2FnZXNQZXJGaWVsZC5nZXRGaXJzdEVycm9yKCdwYXNzd29yZCcpIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCJbJ2tjRm9ybUdyb3VwQ2xhc3MnLCAna2NGb3JtU2V0dGluZ0NsYXNzJ11cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9XCJrYy1mb3JtLW9wdGlvbnNcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybU9wdGlvbnNXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChyZWFsbS5yZXNldFBhc3N3b3JkQWxsb3dlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCI1XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJ1cmwubG9naW5SZXNldENyZWRlbnRpYWxzVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignZG9Gb3Jnb3RQYXNzd29yZCcpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtbG9naW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJsb2dpblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdkb0xvZ0luJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0xvZ2luQnV0dG9uRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uUHJpbWFyeUNsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIjRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9rYy1sb2dpbi10ZW1wbGF0ZT5cbiJdfQ==
|
package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
2
|
+
import { type ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
3
|
+
import { type I18n } from '../../i18n';
|
|
4
|
+
import { type KcContext } from '../../KcContext';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
4
6
|
export declare class LoginRecoveryAuthnCodeConfigComponent extends ComponentReference {
|
|
5
7
|
kcContext: KcContext.LoginRecoveryAuthnCodeConfig;
|
|
8
|
+
i18n: I18n;
|
|
6
9
|
doUseDefaultCss: boolean;
|
|
7
10
|
classes: Partial<Record<ClassKey, string>>;
|
|
8
11
|
displayRequiredFields: import("@angular/core").InputSignal<boolean>;
|
|
@@ -12,4 +15,6 @@ export declare class LoginRecoveryAuthnCodeConfigComponent extends ComponentRefe
|
|
|
12
15
|
displayMessage: boolean;
|
|
13
16
|
toggleRecoveryCodesConfirmation: import("@angular/core").WritableSignal<boolean>;
|
|
14
17
|
olRecoveryCodesListId: string;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoginRecoveryAuthnCodeConfigComponent, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoginRecoveryAuthnCodeConfigComponent, "kc-root", never, { "displayRequiredFields": { "alias": "displayRequiredFields"; "required": false; "isSignal": true; }; "documentTitle": { "alias": "documentTitle"; "required": false; "isSignal": true; }; "bodyClassName": { "alias": "bodyClassName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
15
20
|
}
|
package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.js
CHANGED
|
@@ -1,51 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import
|
|
11
|
-
|
|
12
|
-
import { TemplateComponent } from "../../../login/containers/template.component";
|
|
13
|
-
import { KcClassDirective } from "../../../login/directives";
|
|
14
|
-
import { MsgStrPipe } from "../../../login/pipes/msg-str.pipe";
|
|
15
|
-
let LoginRecoveryAuthnCodeConfigComponent = LoginRecoveryAuthnCodeConfigComponent_1 = class LoginRecoveryAuthnCodeConfigComponent extends ComponentReference {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal } from '@angular/core';
|
|
2
|
+
import { USE_DEFAULT_CSS } from '../../../lib/tokens/use-default-css.token';
|
|
3
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
4
|
+
import { LogoutOtherSessionsComponent } from '../../../login/components/logout-other-sessions/logout-other-sessions.component';
|
|
5
|
+
import { TemplateComponent } from '../../../login/containers/template.component';
|
|
6
|
+
import { KcClassDirective } from '../../../login/directives/kc-class.directive';
|
|
7
|
+
import { LOGIN_CLASSES } from '../../../login/tokens/classes.token';
|
|
8
|
+
import { LOGIN_I18N } from '../../../login/tokens/i18n.token';
|
|
9
|
+
import { KC_LOGIN_CONTEXT } from '../../../login/tokens/kc-context.token';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class LoginRecoveryAuthnCodeConfigComponent extends ComponentReference {
|
|
16
12
|
constructor() {
|
|
17
13
|
super(...arguments);
|
|
18
|
-
this.kcContext = inject(
|
|
14
|
+
this.kcContext = inject(KC_LOGIN_CONTEXT);
|
|
15
|
+
this.i18n = inject(LOGIN_I18N);
|
|
19
16
|
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
20
|
-
this.classes = inject(
|
|
17
|
+
this.classes = inject(LOGIN_CLASSES);
|
|
21
18
|
this.displayRequiredFields = input(false);
|
|
22
19
|
this.documentTitle = input();
|
|
23
20
|
this.bodyClassName = input();
|
|
24
21
|
this.displayInfo = false;
|
|
25
22
|
this.displayMessage = false;
|
|
26
23
|
this.toggleRecoveryCodesConfirmation = signal(false);
|
|
27
|
-
this.olRecoveryCodesListId =
|
|
24
|
+
this.olRecoveryCodesListId = 'kc-recovery-codes-list';
|
|
28
25
|
}
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
Component({
|
|
32
|
-
standalone: true,
|
|
33
|
-
imports: [
|
|
34
|
-
MsgStrPipe,
|
|
35
|
-
TemplateComponent,
|
|
36
|
-
KcClassDirective,
|
|
37
|
-
LogoutOtherSessionsComponent
|
|
38
|
-
],
|
|
39
|
-
selector: "kc-root",
|
|
40
|
-
templateUrl: "login-recovery-authn-code-config.component.html",
|
|
41
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
42
|
-
providers: [
|
|
26
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginRecoveryAuthnCodeConfigComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
27
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: LoginRecoveryAuthnCodeConfigComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
43
28
|
{
|
|
44
29
|
provide: ComponentReference,
|
|
45
|
-
useExisting: forwardRef(() =>
|
|
30
|
+
useExisting: forwardRef(() => LoginRecoveryAuthnCodeConfigComponent)
|
|
46
31
|
}
|
|
47
|
-
]
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
32
|
+
], usesInheritance: true, ngImport: i0, template: "@let recoveryAuthnCodesConfigBean = kcContext.recoveryAuthnCodesConfigBean;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('recovery-code-config-header') }}\n </ng-container>\n\n <ng-container content>\n <div\n [kcClass]=\"'kcRecoveryCodesWarning'\"\n class=\"pf-c-alert pf-m-warning pf-m-inline\"\n aria-label=\"Warning alert\"\n >\n <div class=\"pf-c-alert__icon\">\n <i\n class=\"pficon-warning-triangle-o\"\n aria-hidden=\"true\"\n ></i>\n </div>\n <h4 class=\"pf-c-alert__title\">\n <span class=\"pf-screen-reader\">Warning alert:</span>\n {{ i18n.msgStr('recovery-code-config-warning-title') }}\n </h4>\n <div class=\"pf-c-alert__description\">\n <p>{{ i18n.msgStr('recovery-code-config-warning-message') }}</p>\n </div>\n </div>\n\n <ol\n [id]=\"olRecoveryCodesListId\"\n [kcClass]=\"'kcRecoveryCodesList'\"\n >\n @for (code of recoveryAuthnCodesConfigBean.generatedRecoveryAuthnCodesList; track code; let i = $index) {\n <li>\n <span>{{ i + 1 }}:</span> {{ code.slice(0, 4) }}-{{ code.slice(4, 8) }}-{{ code.slice(8) }}\n </li>\n }\n </ol>\n\n <!-- actions -->\n <div [kcClass]=\"'kcRecoveryCodesActions'\">\n <button\n id=\"printRecoveryCodes\"\n class=\"pf-c-button pf-m-link\"\n type=\"button\"\n >\n <i\n class=\"pficon-print\"\n aria-hidden=\"true\"\n ></i>\n {{ i18n.msgStr('recovery-codes-print') }}\n </button>\n <button\n id=\"downloadRecoveryCodes\"\n class=\"pf-c-button pf-m-link\"\n type=\"button\"\n >\n <i\n class=\"pficon-save\"\n aria-hidden=\"true\"\n ></i>\n {{ i18n.msgStr('recovery-codes-download') }}\n </button>\n <button\n id=\"copyRecoveryCodes\"\n class=\"pf-c-button pf-m-link\"\n type=\"button\"\n >\n <i\n class=\"pficon-blueprint\"\n aria-hidden=\"true\"\n ></i>\n {{ i18n.msgStr('recovery-codes-copy') }}\n </button>\n </div>\n\n <!-- confirmation checkbox -->\n\n <div\n [kcClass]=\"'kcFormOptionsClass'\"\n class=\"checkbox\"\n >\n <label for=\"kcRecoveryCodesConfirmationCheck\">\n <input\n [kcClass]=\"'kcCheckInputClass'\"\n type=\"checkbox\"\n id=\"kcRecoveryCodesConfirmationCheck\"\n name=\"kcRecoveryCodesConfirmationCheck\"\n [checked]=\"toggleRecoveryCodesConfirmation()\"\n (change)=\"toggleRecoveryCodesConfirmation.set($any($event.target).checked)\"\n />\n {{ i18n.msgStr('recovery-codes-confirmation-message') }}\n </label>\n </div>\n\n <form\n [action]=\"kcContext.url.loginAction\"\n [kcClass]=\"'kcFormGroupClass'\"\n id=\"kc-recovery-codes-settings-form\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n name=\"generatedRecoveryAuthnCodes\"\n [value]=\"recoveryAuthnCodesConfigBean.generatedRecoveryAuthnCodesAsString\"\n />\n <input\n type=\"hidden\"\n name=\"generatedAt\"\n [value]=\"recoveryAuthnCodesConfigBean.generatedAt\"\n />\n <input\n type=\"hidden\"\n id=\"userLabel\"\n name=\"userLabel\"\n [value]=\"i18n.msgStr('recovery-codes-label-default')\"\n />\n\n <kc-logout-other-sessions></kc-logout-other-sessions>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveRecoveryAuthnCodesBtn\"\n [value]=\"i18n.msgStr('recovery-codes-action-complete')\"\n [disabled]=\"!toggleRecoveryCodesConfirmation()\"\n />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n id=\"cancelRecoveryAuthnCodesBtn\"\n name=\"cancel-aia\"\n value=\"true\"\n >\n {{ i18n.msgStr('recovery-codes-action-cancel') }}\n </button>\n } @else {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n id=\"saveRecoveryAuthnCodesBtn\"\n [value]=\"i18n.msgStr('recovery-codes-action-complete')\"\n [disabled]=\"!toggleRecoveryCodesConfirmation()\"\n />\n }\n </form>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: LogoutOtherSessionsComponent, selector: "kc-logout-other-sessions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: LoginRecoveryAuthnCodeConfigComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective, LogoutOtherSessionsComponent], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
37
|
+
{
|
|
38
|
+
provide: ComponentReference,
|
|
39
|
+
useExisting: forwardRef(() => LoginRecoveryAuthnCodeConfigComponent)
|
|
40
|
+
}
|
|
41
|
+
], template: "@let recoveryAuthnCodesConfigBean = kcContext.recoveryAuthnCodesConfigBean;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('recovery-code-config-header') }}\n </ng-container>\n\n <ng-container content>\n <div\n [kcClass]=\"'kcRecoveryCodesWarning'\"\n class=\"pf-c-alert pf-m-warning pf-m-inline\"\n aria-label=\"Warning alert\"\n >\n <div class=\"pf-c-alert__icon\">\n <i\n class=\"pficon-warning-triangle-o\"\n aria-hidden=\"true\"\n ></i>\n </div>\n <h4 class=\"pf-c-alert__title\">\n <span class=\"pf-screen-reader\">Warning alert:</span>\n {{ i18n.msgStr('recovery-code-config-warning-title') }}\n </h4>\n <div class=\"pf-c-alert__description\">\n <p>{{ i18n.msgStr('recovery-code-config-warning-message') }}</p>\n </div>\n </div>\n\n <ol\n [id]=\"olRecoveryCodesListId\"\n [kcClass]=\"'kcRecoveryCodesList'\"\n >\n @for (code of recoveryAuthnCodesConfigBean.generatedRecoveryAuthnCodesList; track code; let i = $index) {\n <li>\n <span>{{ i + 1 }}:</span> {{ code.slice(0, 4) }}-{{ code.slice(4, 8) }}-{{ code.slice(8) }}\n </li>\n }\n </ol>\n\n <!-- actions -->\n <div [kcClass]=\"'kcRecoveryCodesActions'\">\n <button\n id=\"printRecoveryCodes\"\n class=\"pf-c-button pf-m-link\"\n type=\"button\"\n >\n <i\n class=\"pficon-print\"\n aria-hidden=\"true\"\n ></i>\n {{ i18n.msgStr('recovery-codes-print') }}\n </button>\n <button\n id=\"downloadRecoveryCodes\"\n class=\"pf-c-button pf-m-link\"\n type=\"button\"\n >\n <i\n class=\"pficon-save\"\n aria-hidden=\"true\"\n ></i>\n {{ i18n.msgStr('recovery-codes-download') }}\n </button>\n <button\n id=\"copyRecoveryCodes\"\n class=\"pf-c-button pf-m-link\"\n type=\"button\"\n >\n <i\n class=\"pficon-blueprint\"\n aria-hidden=\"true\"\n ></i>\n {{ i18n.msgStr('recovery-codes-copy') }}\n </button>\n </div>\n\n <!-- confirmation checkbox -->\n\n <div\n [kcClass]=\"'kcFormOptionsClass'\"\n class=\"checkbox\"\n >\n <label for=\"kcRecoveryCodesConfirmationCheck\">\n <input\n [kcClass]=\"'kcCheckInputClass'\"\n type=\"checkbox\"\n id=\"kcRecoveryCodesConfirmationCheck\"\n name=\"kcRecoveryCodesConfirmationCheck\"\n [checked]=\"toggleRecoveryCodesConfirmation()\"\n (change)=\"toggleRecoveryCodesConfirmation.set($any($event.target).checked)\"\n />\n {{ i18n.msgStr('recovery-codes-confirmation-message') }}\n </label>\n </div>\n\n <form\n [action]=\"kcContext.url.loginAction\"\n [kcClass]=\"'kcFormGroupClass'\"\n id=\"kc-recovery-codes-settings-form\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n name=\"generatedRecoveryAuthnCodes\"\n [value]=\"recoveryAuthnCodesConfigBean.generatedRecoveryAuthnCodesAsString\"\n />\n <input\n type=\"hidden\"\n name=\"generatedAt\"\n [value]=\"recoveryAuthnCodesConfigBean.generatedAt\"\n />\n <input\n type=\"hidden\"\n id=\"userLabel\"\n name=\"userLabel\"\n [value]=\"i18n.msgStr('recovery-codes-label-default')\"\n />\n\n <kc-logout-other-sessions></kc-logout-other-sessions>\n\n @if (isAppInitiatedAction) {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveRecoveryAuthnCodesBtn\"\n [value]=\"i18n.msgStr('recovery-codes-action-complete')\"\n [disabled]=\"!toggleRecoveryCodesConfirmation()\"\n />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n id=\"cancelRecoveryAuthnCodesBtn\"\n name=\"cancel-aia\"\n value=\"true\"\n >\n {{ i18n.msgStr('recovery-codes-action-cancel') }}\n </button>\n } @else {\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n id=\"saveRecoveryAuthnCodesBtn\"\n [value]=\"i18n.msgStr('recovery-codes-action-complete')\"\n [disabled]=\"!toggleRecoveryCodesConfirmation()\"\n />\n }\n </form>\n </ng-container>\n</kc-login-template>\n" }]
|
|
42
|
+
}] });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcvbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZGQUE2RixDQUFDO0FBQzNJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7O0FBa0J0RixNQUFNLE9BQU8scUNBQXNDLFNBQVEsa0JBQWtCO0lBYjdFOztRQWNJLGNBQVMsR0FBRyxNQUFNLENBQXlFLGdCQUFnQixDQUFDLENBQUM7UUFDN0csU0FBSSxHQUFHLE1BQU0sQ0FBTyxVQUFVLENBQUMsQ0FBQztRQUN2QixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxhQUFhLENBQUMsQ0FBQztRQUM1RSwwQkFBcUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBQ2hDLG9DQUErQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVoRCwwQkFBcUIsR0FBRyx3QkFBd0IsQ0FBQztLQUNwRDs4R0FiWSxxQ0FBcUM7a0dBQXJDLHFDQUFxQywwZ0JBUG5DO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxxQ0FBcUMsQ0FBQzthQUN2RTtTQUNKLGlEQ3hCTCxzeExBMkpBLDRDRDVJYyxpQkFBaUIsb0tBQUUsZ0JBQWdCLCtGQUFFLDRCQUE0Qjs7MkZBV2xFLHFDQUFxQztrQkFiakQsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSw0QkFBNEIsQ0FBQyxZQUNsRSxTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0NBQXNDLENBQUM7eUJBQ3ZFO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcy50b2tlbic7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgTG9nb3V0T3RoZXJTZXNzaW9uc0NvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbXBvbmVudHMvbG9nb3V0LW90aGVyLXNlc3Npb25zL2xvZ291dC1vdGhlci1zZXNzaW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzLnRva2VuJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bi50b2tlbic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQudG9rZW4nO1xuaW1wb3J0IHsgdHlwZSBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgdHlwZSBJMThuIH0gZnJvbSAnLi4vLi4vaTE4bic7XG5pbXBvcnQgeyB0eXBlIEtjQ29udGV4dCB9IGZyb20gJy4uLy4uL0tjQ29udGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RlbXBsYXRlQ29tcG9uZW50LCBLY0NsYXNzRGlyZWN0aXZlLCBMb2dvdXRPdGhlclNlc3Npb25zQ29tcG9uZW50XSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMb2dpblJlY292ZXJ5QXV0aG5Db2RlQ29uZmlnQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBMb2dpblJlY292ZXJ5QXV0aG5Db2RlQ29uZmlnQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnbG9naW4tcmVjb3ZlcnktYXV0aG4tY29kZS1jb25maWcuZnRsJyB9Pj4oS0NfTE9HSU5fQ09OVEVYVCk7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oTE9HSU5fQ0xBU1NFUyk7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gaW5wdXQoZmFsc2UpO1xuICAgIGRvY3VtZW50VGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgYm9keUNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG4gICAgdG9nZ2xlUmVjb3ZlcnlDb2Rlc0NvbmZpcm1hdGlvbiA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBvbFJlY292ZXJ5Q29kZXNMaXN0SWQgPSAna2MtcmVjb3ZlcnktY29kZXMtbGlzdCc7XG59XG4iLCJAbGV0IHJlY292ZXJ5QXV0aG5Db2Rlc0NvbmZpZ0JlYW4gPSBrY0NvbnRleHQucmVjb3ZlcnlBdXRobkNvZGVzQ29uZmlnQmVhbjtcbkBsZXQgaXNBcHBJbml0aWF0ZWRBY3Rpb24gPSBrY0NvbnRleHQuaXNBcHBJbml0aWF0ZWRBY3Rpb247XG48a2MtbG9naW4tdGVtcGxhdGVcbiAgICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICAgIFtib2R5Q2xhc3NOYW1lXT1cImJvZHlDbGFzc05hbWUoKVwiXG4gICAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgICBbZG9jdW1lbnRUaXRsZV09XCJkb2N1bWVudFRpdGxlKClcIlxuPlxuICAgIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3JlY292ZXJ5LWNvZGUtY29uZmlnLWhlYWRlcicpIH19XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1JlY292ZXJ5Q29kZXNXYXJuaW5nJ1wiXG4gICAgICAgICAgICBjbGFzcz1cInBmLWMtYWxlcnQgcGYtbS13YXJuaW5nIHBmLW0taW5saW5lXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJXYXJuaW5nIGFsZXJ0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInBmLWMtYWxlcnRfX2ljb25cIj5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBmaWNvbi13YXJuaW5nLXRyaWFuZ2xlLW9cIlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxoNCBjbGFzcz1cInBmLWMtYWxlcnRfX3RpdGxlXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZi1zY3JlZW4tcmVhZGVyXCI+V2FybmluZyBhbGVydDo8L3NwYW4+XG4gICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3JlY292ZXJ5LWNvZGUtY29uZmlnLXdhcm5pbmctdGl0bGUnKSB9fVxuICAgICAgICAgICAgPC9oND5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZi1jLWFsZXJ0X19kZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgIDxwPnt7IGkxOG4ubXNnU3RyKCdyZWNvdmVyeS1jb2RlLWNvbmZpZy13YXJuaW5nLW1lc3NhZ2UnKSB9fTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8b2xcbiAgICAgICAgICAgIFtpZF09XCJvbFJlY292ZXJ5Q29kZXNMaXN0SWRcIlxuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjUmVjb3ZlcnlDb2Rlc0xpc3QnXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGZvciAoY29kZSBvZiByZWNvdmVyeUF1dGhuQ29kZXNDb25maWdCZWFuLmdlbmVyYXRlZFJlY292ZXJ5QXV0aG5Db2Rlc0xpc3Q7IHRyYWNrIGNvZGU7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyBpICsgMSB9fTo8L3NwYW4+IHt7IGNvZGUuc2xpY2UoMCwgNCkgfX0te3sgY29kZS5zbGljZSg0LCA4KSB9fS17eyBjb2RlLnNsaWNlKDgpIH19XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9vbD5cblxuICAgICAgICA8IS0tIGFjdGlvbnMgLS0+XG4gICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjUmVjb3ZlcnlDb2Rlc0FjdGlvbnMnXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCJwcmludFJlY292ZXJ5Q29kZXNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicGYtYy1idXR0b24gcGYtbS1saW5rXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBmaWNvbi1wcmludFwiXG4gICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPjwvaT5cbiAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cigncmVjb3ZlcnktY29kZXMtcHJpbnQnKSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgaWQ9XCJkb3dubG9hZFJlY292ZXJ5Q29kZXNcIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwicGYtYy1idXR0b24gcGYtbS1saW5rXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInBmaWNvbi1zYXZlXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdyZWNvdmVyeS1jb2Rlcy1kb3dubG9hZCcpIH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBpZD1cImNvcHlSZWNvdmVyeUNvZGVzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInBmLWMtYnV0dG9uIHBmLW0tbGlua1wiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJwZmljb24tYmx1ZXByaW50XCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+PC9pPlxuICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdyZWNvdmVyeS1jb2Rlcy1jb3B5JykgfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIGNvbmZpcm1hdGlvbiBjaGVja2JveCAtLT5cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtT3B0aW9uc0NsYXNzJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImNoZWNrYm94XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cImtjUmVjb3ZlcnlDb2Rlc0NvbmZpcm1hdGlvbkNoZWNrXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0NoZWNrSW5wdXRDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImtjUmVjb3ZlcnlDb2Rlc0NvbmZpcm1hdGlvbkNoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImtjUmVjb3ZlcnlDb2Rlc0NvbmZpcm1hdGlvbkNoZWNrXCJcbiAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwidG9nZ2xlUmVjb3ZlcnlDb2Rlc0NvbmZpcm1hdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVSZWNvdmVyeUNvZGVzQ29uZmlybWF0aW9uLnNldCgkYW55KCRldmVudC50YXJnZXQpLmNoZWNrZWQpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdyZWNvdmVyeS1jb2Rlcy1jb25maXJtYXRpb24tbWVzc2FnZScpIH19XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgW2FjdGlvbl09XCJrY0NvbnRleHQudXJsLmxvZ2luQWN0aW9uXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiXG4gICAgICAgICAgICBpZD1cImtjLXJlY292ZXJ5LWNvZGVzLXNldHRpbmdzLWZvcm1cIlxuICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJnZW5lcmF0ZWRSZWNvdmVyeUF1dGhuQ29kZXNcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyZWNvdmVyeUF1dGhuQ29kZXNDb25maWdCZWFuLmdlbmVyYXRlZFJlY292ZXJ5QXV0aG5Db2Rlc0FzU3RyaW5nXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZ2VuZXJhdGVkQXRcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyZWNvdmVyeUF1dGhuQ29kZXNDb25maWdCZWFuLmdlbmVyYXRlZEF0XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBpZD1cInVzZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInVzZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdyZWNvdmVyeS1jb2Rlcy1sYWJlbC1kZWZhdWx0JylcIlxuICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgPGtjLWxvZ291dC1vdGhlci1zZXNzaW9ucz48L2tjLWxvZ291dC1vdGhlci1zZXNzaW9ucz5cblxuICAgICAgICAgICAgQGlmIChpc0FwcEluaXRpYXRlZEFjdGlvbikge1xuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uUHJpbWFyeUNsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJzYXZlUmVjb3ZlcnlBdXRobkNvZGVzQnRuXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdyZWNvdmVyeS1jb2Rlcy1hY3Rpb24tY29tcGxldGUnKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhdG9nZ2xlUmVjb3ZlcnlDb2Rlc0NvbmZpcm1hdGlvbigpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkRlZmF1bHRDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiY2FuY2VsUmVjb3ZlcnlBdXRobkNvZGVzQnRuXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNhbmNlbC1haWFcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cInRydWVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3JlY292ZXJ5LWNvZGVzLWFjdGlvbi1jYW5jZWwnKSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25CbG9ja0NsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJzYXZlUmVjb3ZlcnlBdXRobkNvZGVzQnRuXCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdyZWNvdmVyeS1jb2Rlcy1hY3Rpb24tY29tcGxldGUnKVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhdG9nZ2xlUmVjb3ZlcnlDb2Rlc0NvbmZpcm1hdGlvbigpXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2tjLWxvZ2luLXRlbXBsYXRlPlxuIl19
|
package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
2
|
+
import { type ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
3
|
+
import { type I18n } from '../../i18n';
|
|
4
|
+
import { type KcContext } from '../../KcContext';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
4
6
|
export declare class LoginRecoveryAuthnCodeInputComponent extends ComponentReference {
|
|
5
7
|
kcContext: KcContext.LoginRecoveryAuthnCodeInput;
|
|
8
|
+
i18n: I18n;
|
|
6
9
|
doUseDefaultCss: boolean;
|
|
7
10
|
classes: Partial<Record<ClassKey, string>>;
|
|
8
11
|
displayRequiredFields: import("@angular/core").InputSignal<boolean>;
|
|
@@ -10,4 +13,6 @@ export declare class LoginRecoveryAuthnCodeInputComponent extends ComponentRefer
|
|
|
10
13
|
bodyClassName: import("@angular/core").InputSignal<string | undefined>;
|
|
11
14
|
displayInfo: boolean;
|
|
12
15
|
displayMessage: boolean;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LoginRecoveryAuthnCodeInputComponent, never>;
|
|
17
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LoginRecoveryAuthnCodeInputComponent, "kc-root", never, { "displayRequiredFields": { "alias": "displayRequiredFields"; "required": false; "isSignal": true; }; "documentTitle": { "alias": "documentTitle"; "required": false; "isSignal": true; }; "bodyClassName": { "alias": "bodyClassName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
13
18
|
}
|