@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,39 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import
|
|
13
|
-
|
|
14
|
-
import { KcClassDirective } from "../../../login/directives";
|
|
15
|
-
import { AdvancedMsgStrPipe } from "../../../login/pipes/advanced-msg-str.pipe";
|
|
16
|
-
import { MsgStrPipe } from "../../../login/pipes/msg-str.pipe";
|
|
17
|
-
import { LoginResourceInjectorService } from "../../../login/services";
|
|
18
|
-
let WebauthnAuthenticateComponent = WebauthnAuthenticateComponent_1 = class WebauthnAuthenticateComponent extends ComponentReference {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input } 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 { LoginResourceInjectorService } from '../../../login/services/login-resource-injector.service';
|
|
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 { getKcClsx } from 'keycloakify/login/lib/kcClsx';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
export class WebauthnAuthenticateComponent extends ComponentReference {
|
|
19
14
|
constructor() {
|
|
20
15
|
super();
|
|
21
|
-
this.kcContext = inject(
|
|
16
|
+
this.kcContext = inject(KC_LOGIN_CONTEXT);
|
|
22
17
|
this.loginResourceInjectorService = inject(LoginResourceInjectorService);
|
|
23
|
-
this.
|
|
18
|
+
this.i18n = inject(LOGIN_I18N);
|
|
24
19
|
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
25
|
-
this.classes = inject(
|
|
20
|
+
this.classes = inject(LOGIN_CLASSES);
|
|
26
21
|
this.displayRequiredFields = input(false);
|
|
27
22
|
this.documentTitle = input();
|
|
28
23
|
this.bodyClassName = input();
|
|
29
24
|
this.displayInfo = false;
|
|
30
25
|
this.displayMessage = true;
|
|
31
|
-
this.authButtonId =
|
|
26
|
+
this.authButtonId = 'authenticateWebAuthnButton';
|
|
32
27
|
const { url, isUserIdentified, challenge, userVerification, rpId, createTimeout } = this.kcContext;
|
|
33
28
|
const scripts = [
|
|
34
29
|
{
|
|
35
|
-
type:
|
|
36
|
-
id:
|
|
30
|
+
type: 'module',
|
|
31
|
+
id: 'WebAuthnAuthenticateScript',
|
|
37
32
|
textContent: `
|
|
38
33
|
import { authenticateByWebAuthn } from "${url.resourcesPath}/js/webauthnAuthenticate.js";
|
|
39
34
|
const authButton = document.getElementById('${this.authButtonId}');
|
|
@@ -44,7 +39,7 @@ let WebauthnAuthenticateComponent = WebauthnAuthenticateComponent_1 = class Weba
|
|
|
44
39
|
userVerification : '${userVerification}',
|
|
45
40
|
rpId : '${rpId}',
|
|
46
41
|
createTimeout : ${createTimeout},
|
|
47
|
-
errmsg : ${JSON.stringify(this.msgStr
|
|
42
|
+
errmsg : ${JSON.stringify(this.i18n.msgStr('webauthn-unsupported-browser-text'))}
|
|
48
43
|
};
|
|
49
44
|
authenticateByWebAuthn(input);
|
|
50
45
|
});
|
|
@@ -54,40 +49,32 @@ let WebauthnAuthenticateComponent = WebauthnAuthenticateComponent_1 = class Weba
|
|
|
54
49
|
this.loginResourceInjectorService.insertAdditionalScripts(scripts);
|
|
55
50
|
}
|
|
56
51
|
selectAuthListItemIconClass(iconClass) {
|
|
57
|
-
var _a;
|
|
58
52
|
const kcClsx = getKcClsx({
|
|
59
|
-
doUseDefaultCss:
|
|
53
|
+
doUseDefaultCss: this.doUseDefaultCss ?? true,
|
|
60
54
|
classes: this.classes
|
|
61
55
|
}).kcClsx;
|
|
62
56
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
57
|
const className = kcClsx(iconClass);
|
|
64
58
|
if (className === iconClass) {
|
|
65
|
-
return kcClsx(
|
|
59
|
+
return kcClsx('kcWebAuthnDefaultIcon');
|
|
66
60
|
}
|
|
67
61
|
return className;
|
|
68
62
|
}
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
Component({
|
|
72
|
-
standalone: true,
|
|
73
|
-
imports: [
|
|
74
|
-
TemplateComponent,
|
|
75
|
-
MsgStrPipe,
|
|
76
|
-
AdvancedMsgStrPipe,
|
|
77
|
-
KcClassDirective,
|
|
78
|
-
LogoutOtherSessionsComponent
|
|
79
|
-
],
|
|
80
|
-
selector: "kc-root",
|
|
81
|
-
templateUrl: "webauthn-authenticate.component.html",
|
|
82
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
83
|
-
providers: [
|
|
84
|
-
MsgStrPipe,
|
|
63
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WebauthnAuthenticateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
64
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: WebauthnAuthenticateComponent, 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: [
|
|
85
65
|
{
|
|
86
66
|
provide: ComponentReference,
|
|
87
|
-
useExisting: forwardRef(() =>
|
|
67
|
+
useExisting: forwardRef(() => WebauthnAuthenticateComponent)
|
|
88
68
|
}
|
|
89
|
-
]
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
69
|
+
], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let authenticators = kcContext.authenticators;\n@let shouldDisplayAuthenticators = kcContext.shouldDisplayAuthenticators;\n\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('webauthn-login-title') }}\n </ng-container>\n <ng-container infoNode>\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 </ng-container>\n <ng-container content>\n <div\n id=\"kc-form-webauthn\"\n [kcClass]=\"'kcFormClass'\"\n >\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\n <div\n class=\"no-bottom-margin\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n @if (authenticators) {\n <form\n id=\"authn_select\"\n [kcClass]=\"'kcFormClass'\"\n >\n @for (authenticator of authenticators.authenticators; track authenticator.credentialId) {\n <input\n type=\"hidden\"\n name=\"authn_use_chk\"\n [value]=\"authenticator.credentialId\"\n />\n }\n @if (shouldDisplayAuthenticators) {\n @if (authenticators.authenticators.length > 1) {\n <p [kcClass]=\"'kcSelectAuthListItemTitle'\">\n {{ i18n.msgStr('webauthn-available-authenticators') }}\n </p>\n }\n <div [kcClass]=\"'kcFormOptionsClass'\">\n @for (authenticator of authenticators.authenticators; track authenticator.credentialId; let i = $index) {\n <div\n [id]=\"'kc-webauthn-authenticator-item-' + i\"\n [kcClass]=\"'kcSelectAuthListItemClass'\"\n >\n <div [kcClass]=\"'kcSelectAuthListItemIconClass'\">\n <i\n [ngClass]=\"selectAuthListItemIconClass(authenticator.transports.iconClass)\"\n [kcClass]=\"'kcSelectAuthListItemIconPropertyClass'\"\n ></i>\n <div [kcClass]=\"'kcSelectAuthListItemArrowIconClass'\">\n <div\n [id]=\"'kc-webauthn-authenticator-label-' + i\"\n [kcClass]=\"'kcSelectAuthListItemHeadingClass'\"\n >\n {{ i18n.advancedMsgStr(authenticator.label) }}\n </div>\n @if (authenticator.transports.displayNameProperties?.length) {\n <div\n [id]=\"'kc-webauthn-authenticator-transport-' + i\"\n [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\"\n >\n @for (\n displayNameProperty of authenticator.transports.displayNameProperties;\n track displayNameProperty;\n let last = $last\n ) {\n {{ i18n.advancedMsgStr(displayNameProperty) }}\n @if (!last) {\n <span>, </span>\n }\n }\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\">\n <span [id]=\"'kc-webauthn-authenticator-createdlabel-' + i\">\n {{ i18n.msgStr('webauthn-createdAt-label') }}\n </span>\n <span [id]=\"'kc-webauthn-authenticator-created-' + i\">{{ authenticator.createdAt }}</span>\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemFillClass'\"></div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n </form>\n }\n\n <div\n [kcClass]=\"'kcFormButtonsClass'\"\n id=\"kc-form-buttons\"\n >\n <input\n [id]=\"authButtonId\"\n type=\"button\"\n autofocus\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n id=\"cancelWebAuthnAIA\"\n name=\"cancel-aia\"\n [value]=\"i18n.msgStr('webauthn-doAuthenticate')\"\n />\n </div>\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 }); }
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WebauthnAuthenticateComponent, decorators: [{
|
|
72
|
+
type: Component,
|
|
73
|
+
args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective, LogoutOtherSessionsComponent], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
74
|
+
{
|
|
75
|
+
provide: ComponentReference,
|
|
76
|
+
useExisting: forwardRef(() => WebauthnAuthenticateComponent)
|
|
77
|
+
}
|
|
78
|
+
], template: "@let url = kcContext.url;\n@let authenticators = kcContext.authenticators;\n@let shouldDisplayAuthenticators = kcContext.shouldDisplayAuthenticators;\n\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('webauthn-login-title') }}\n </ng-container>\n <ng-container infoNode>\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 </ng-container>\n <ng-container content>\n <div\n id=\"kc-form-webauthn\"\n [kcClass]=\"'kcFormClass'\"\n >\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\n <div\n class=\"no-bottom-margin\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n @if (authenticators) {\n <form\n id=\"authn_select\"\n [kcClass]=\"'kcFormClass'\"\n >\n @for (authenticator of authenticators.authenticators; track authenticator.credentialId) {\n <input\n type=\"hidden\"\n name=\"authn_use_chk\"\n [value]=\"authenticator.credentialId\"\n />\n }\n @if (shouldDisplayAuthenticators) {\n @if (authenticators.authenticators.length > 1) {\n <p [kcClass]=\"'kcSelectAuthListItemTitle'\">\n {{ i18n.msgStr('webauthn-available-authenticators') }}\n </p>\n }\n <div [kcClass]=\"'kcFormOptionsClass'\">\n @for (authenticator of authenticators.authenticators; track authenticator.credentialId; let i = $index) {\n <div\n [id]=\"'kc-webauthn-authenticator-item-' + i\"\n [kcClass]=\"'kcSelectAuthListItemClass'\"\n >\n <div [kcClass]=\"'kcSelectAuthListItemIconClass'\">\n <i\n [ngClass]=\"selectAuthListItemIconClass(authenticator.transports.iconClass)\"\n [kcClass]=\"'kcSelectAuthListItemIconPropertyClass'\"\n ></i>\n <div [kcClass]=\"'kcSelectAuthListItemArrowIconClass'\">\n <div\n [id]=\"'kc-webauthn-authenticator-label-' + i\"\n [kcClass]=\"'kcSelectAuthListItemHeadingClass'\"\n >\n {{ i18n.advancedMsgStr(authenticator.label) }}\n </div>\n @if (authenticator.transports.displayNameProperties?.length) {\n <div\n [id]=\"'kc-webauthn-authenticator-transport-' + i\"\n [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\"\n >\n @for (\n displayNameProperty of authenticator.transports.displayNameProperties;\n track displayNameProperty;\n let last = $last\n ) {\n {{ i18n.advancedMsgStr(displayNameProperty) }}\n @if (!last) {\n <span>, </span>\n }\n }\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\">\n <span [id]=\"'kc-webauthn-authenticator-createdlabel-' + i\">\n {{ i18n.msgStr('webauthn-createdAt-label') }}\n </span>\n <span [id]=\"'kc-webauthn-authenticator-created-' + i\">{{ authenticator.createdAt }}</span>\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemFillClass'\"></div>\n }\n </div>\n </div>\n </div>\n }\n </div>\n }\n </form>\n }\n\n <div\n [kcClass]=\"'kcFormButtonsClass'\"\n id=\"kc-form-buttons\"\n >\n <input\n [id]=\"authButtonId\"\n type=\"button\"\n autofocus\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n id=\"cancelWebAuthnAIA\"\n name=\"cancel-aia\"\n [value]=\"i18n.msgStr('webauthn-doAuthenticate')\"\n />\n </div>\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n" }]
|
|
79
|
+
}], ctorParameters: () => [] });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViYXV0aG4tYXV0aGVudGljYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL3BhZ2VzL3dlYmF1dGhuLWF1dGhlbnRpY2F0ZS93ZWJhdXRobi1hdXRoZW50aWNhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvd2ViYXV0aG4tYXV0aGVudGljYXRlL3dlYmF1dGhuLWF1dGhlbnRpY2F0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2RkFBNkYsQ0FBQztBQUMzSSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM1RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxRUFBcUUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3RGLE9BQU8sRUFBaUIsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBaUJ4RSxNQUFNLE9BQU8sNkJBQThCLFNBQVEsa0JBQWtCO0lBY2pFO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFkWixjQUFTLEdBQUcsTUFBTSxDQUE4RCxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2xHLGlDQUE0QixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3BFLFNBQUksR0FBRyxNQUFNLENBQU8sVUFBVSxDQUFDLENBQUM7UUFDdkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsYUFBYSxDQUFDLENBQUM7UUFDNUUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFZLElBQUksQ0FBQztRQUUvQixpQkFBWSxHQUFHLDRCQUE0QixDQUFDO1FBSXhDLE1BQU0sRUFBRSxHQUFHLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxhQUFhLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ25HLE1BQU0sT0FBTyxHQUFhO1lBQ3RCO2dCQUNJLElBQUksRUFBRSxRQUFRO2dCQUNkLEVBQUUsRUFBRSw0QkFBNEI7Z0JBQ2hDLFdBQVcsRUFBRTt3REFDMkIsR0FBRyxDQUFDLGFBQWE7NERBQ2IsSUFBSSxDQUFDLFlBQVk7OzsyQ0FHbEMsZ0JBQWdCO3FDQUN0QixTQUFTOzRDQUNGLGdCQUFnQjtnQ0FDNUIsSUFBSTt3Q0FDSSxhQUFhO2lDQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7Ozs7V0FJM0Y7YUFDRTtTQUNKLENBQUM7UUFDRixJQUFJLENBQUMsNEJBQTRCLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELDJCQUEyQixDQUFDLFNBQWlCO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQztZQUNyQixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJO1lBQzdDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN4QixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1YsOERBQThEO1FBQzlELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFnQixDQUFDLENBQUM7UUFDM0MsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzs4R0FwRFEsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsMGdCQVAzQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsNkJBQTZCLENBQUM7YUFDL0Q7U0FDSixpREMxQkwsbW5QQWdLQSw0Q0QvSWMsaUJBQWlCLG9LQUFFLGdCQUFnQjs7MkZBV3BDLDZCQUE2QjtrQkFiekMsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSw0QkFBNEIsQ0FBQyxZQUNsRSxTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsOEJBQThCLENBQUM7eUJBQy9EO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdHlwZSBTY3JpcHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvbW9kZWxzL3NjcmlwdC5tb2RlbCc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcy50b2tlbic7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgTG9nb3V0T3RoZXJTZXNzaW9uc0NvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbXBvbmVudHMvbG9nb3V0LW90aGVyLXNlc3Npb25zL2xvZ291dC1vdGhlci1zZXNzaW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL2xvZ2luLXJlc291cmNlLWluamVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzLnRva2VuJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bi50b2tlbic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQudG9rZW4nO1xuaW1wb3J0IHsgdHlwZSBDbGFzc0tleSwgZ2V0S2NDbHN4IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyB0eXBlIEkxOG4gfSBmcm9tICcuLi8uLi9pMThuJztcbmltcG9ydCB7IHR5cGUgS2NDb250ZXh0IH0gZnJvbSAnLi4vLi4vS2NDb250ZXh0JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGVtcGxhdGVDb21wb25lbnQsIEtjQ2xhc3NEaXJlY3RpdmUsIExvZ291dE90aGVyU2Vzc2lvbnNDb21wb25lbnRdLFxuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICd3ZWJhdXRobi1hdXRoZW50aWNhdGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXZWJhdXRobkF1dGhlbnRpY2F0ZUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgV2ViYXV0aG5BdXRoZW50aWNhdGVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICd3ZWJhdXRobi1hdXRoZW50aWNhdGUuZnRsJyB9Pj4oS0NfTE9HSU5fQ09OVEVYVCk7XG4gICAgbG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSA9IGluamVjdChMb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlKTtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihMT0dJTl9DTEFTU0VTKTtcbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBpbnB1dChmYWxzZSk7XG4gICAgZG9jdW1lbnRUaXRsZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBib2R5Q2xhc3NOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGRpc3BsYXlJbmZvOiBib29sZWFuID0gZmFsc2U7XG4gICAgZGlzcGxheU1lc3NhZ2U6IGJvb2xlYW4gPSB0cnVlO1xuXG4gICAgYXV0aEJ1dHRvbklkID0gJ2F1dGhlbnRpY2F0ZVdlYkF1dGhuQnV0dG9uJztcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICBjb25zdCB7IHVybCwgaXNVc2VySWRlbnRpZmllZCwgY2hhbGxlbmdlLCB1c2VyVmVyaWZpY2F0aW9uLCBycElkLCBjcmVhdGVUaW1lb3V0IH0gPSB0aGlzLmtjQ29udGV4dDtcbiAgICAgICAgY29uc3Qgc2NyaXB0czogU2NyaXB0W10gPSBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgdHlwZTogJ21vZHVsZScsXG4gICAgICAgICAgICAgICAgaWQ6ICdXZWJBdXRobkF1dGhlbnRpY2F0ZVNjcmlwdCcsXG4gICAgICAgICAgICAgICAgdGV4dENvbnRlbnQ6IGBcbiAgICAgICAgICAgICAgaW1wb3J0IHsgYXV0aGVudGljYXRlQnlXZWJBdXRobiB9IGZyb20gXCIke3VybC5yZXNvdXJjZXNQYXRofS9qcy93ZWJhdXRobkF1dGhlbnRpY2F0ZS5qc1wiO1xuICAgICAgICAgICAgICBjb25zdCBhdXRoQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyR7dGhpcy5hdXRoQnV0dG9uSWR9Jyk7XG4gICAgICAgICAgICAgIGF1dGhCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcihcImNsaWNrXCIsIGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgY29uc3QgaW5wdXQgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgaXNVc2VySWRlbnRpZmllZCA6ICR7aXNVc2VySWRlbnRpZmllZH0sXG4gICAgICAgICAgICAgICAgICAgICAgY2hhbGxlbmdlIDogJyR7Y2hhbGxlbmdlfScsXG4gICAgICAgICAgICAgICAgICAgICAgdXNlclZlcmlmaWNhdGlvbiA6ICcke3VzZXJWZXJpZmljYXRpb259JyxcbiAgICAgICAgICAgICAgICAgICAgICBycElkIDogJyR7cnBJZH0nLFxuICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZVRpbWVvdXQgOiAke2NyZWF0ZVRpbWVvdXR9LFxuICAgICAgICAgICAgICAgICAgICAgIGVycm1zZyA6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5pMThuLm1zZ1N0cignd2ViYXV0aG4tdW5zdXBwb3J0ZWQtYnJvd3Nlci10ZXh0JykpfVxuICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0ZUJ5V2ViQXV0aG4oaW5wdXQpO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICBgXG4gICAgICAgICAgICB9XG4gICAgICAgIF07XG4gICAgICAgIHRoaXMubG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZS5pbnNlcnRBZGRpdGlvbmFsU2NyaXB0cyhzY3JpcHRzKTtcbiAgICB9XG5cbiAgICBzZWxlY3RBdXRoTGlzdEl0ZW1JY29uQ2xhc3MoaWNvbkNsYXNzOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qga2NDbHN4ID0gZ2V0S2NDbHN4KHtcbiAgICAgICAgICAgIGRvVXNlRGVmYXVsdENzczogdGhpcy5kb1VzZURlZmF1bHRDc3MgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGNsYXNzZXM6IHRoaXMuY2xhc3Nlc1xuICAgICAgICB9KS5rY0Nsc3g7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGtjQ2xzeChpY29uQ2xhc3MgYXMgYW55KTtcbiAgICAgICAgaWYgKGNsYXNzTmFtZSA9PT0gaWNvbkNsYXNzKSB7XG4gICAgICAgICAgICByZXR1cm4ga2NDbHN4KCdrY1dlYkF1dGhuRGVmYXVsdEljb24nKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xhc3NOYW1lO1xuICAgIH1cbn1cbiIsIkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgYXV0aGVudGljYXRvcnMgPSBrY0NvbnRleHQuYXV0aGVudGljYXRvcnM7XG5AbGV0IHNob3VsZERpc3BsYXlBdXRoZW50aWNhdG9ycyA9IGtjQ29udGV4dC5zaG91bGREaXNwbGF5QXV0aGVudGljYXRvcnM7XG5cbjxrYy1sb2dpbi10ZW1wbGF0ZVxuICAgIFtkaXNwbGF5SW5mb109XCJkaXNwbGF5SW5mb1wiXG4gICAgW2JvZHlDbGFzc05hbWVdPVwiYm9keUNsYXNzTmFtZSgpXCJcbiAgICBbZGlzcGxheU1lc3NhZ2VdPVwiZGlzcGxheU1lc3NhZ2VcIlxuICAgIFtkaXNwbGF5UmVxdWlyZWRGaWVsZHNdPVwiZGlzcGxheVJlcXVpcmVkRmllbGRzKClcIlxuICAgIFtkb2N1bWVudFRpdGxlXT1cImRvY3VtZW50VGl0bGUoKVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciBoZWFkZXJOb2RlPlxuICAgICAgICB7eyBpMThuLm1zZ1N0cignd2ViYXV0aG4tbG9naW4tdGl0bGUnKSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgaW5mb05vZGU+XG4gICAgICAgIDxkaXYgaWQ9XCJrYy1yZWdpc3RyYXRpb25cIj5cbiAgICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdub0FjY291bnQnKSB9fVxuICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PVwiNlwiXG4gICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInVybC5yZWdpc3RyYXRpb25VcmxcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2RvUmVnaXN0ZXInKSB9fVxuICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBpZD1cImtjLWZvcm0td2ViYXV0aG5cIlxuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgICAgaWQ9XCJ3ZWJhdXRoXCJcbiAgICAgICAgICAgICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImNsaWVudERhdGFKU09OXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNsaWVudERhdGFKU09OXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJhdXRoZW50aWNhdG9yRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhdXRoZW50aWNhdG9yRGF0YVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwic2lnbmF0dXJlXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cInNpZ25hdHVyZVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiY3JlZGVudGlhbElkXCJcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImNyZWRlbnRpYWxJZFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwidXNlckhhbmRsZVwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2VySGFuZGxlXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJlcnJvclwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJlcnJvclwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZm9ybT5cblxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwibm8tYm90dG9tLW1hcmdpblwiXG4gICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKGF1dGhlbnRpY2F0b3JzKSB7XG4gICAgICAgICAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImF1dGhuX3NlbGVjdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoYXV0aGVudGljYXRvciBvZiBhdXRoZW50aWNhdG9ycy5hdXRoZW50aWNhdG9yczsgdHJhY2sgYXV0aGVudGljYXRvci5jcmVkZW50aWFsSWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhdXRobl91c2VfY2hrXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImF1dGhlbnRpY2F0b3IuY3JlZGVudGlhbElkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChzaG91bGREaXNwbGF5QXV0aGVudGljYXRvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGF1dGhlbnRpY2F0b3JzLmF1dGhlbnRpY2F0b3JzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtVGl0bGUnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignd2ViYXV0aG4tYXZhaWxhYmxlLWF1dGhlbnRpY2F0b3JzJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1PcHRpb25zQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGF1dGhlbnRpY2F0b3Igb2YgYXV0aGVudGljYXRvcnMuYXV0aGVudGljYXRvcnM7IHRyYWNrIGF1dGhlbnRpY2F0b3IuY3JlZGVudGlhbElkOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCIna2Mtd2ViYXV0aG4tYXV0aGVudGljYXRvci1pdGVtLScgKyBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtSWNvbkNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwic2VsZWN0QXV0aExpc3RJdGVtSWNvbkNsYXNzKGF1dGhlbnRpY2F0b3IudHJhbnNwb3J0cy5pY29uQ2xhc3MpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbUljb25Qcm9wZXJ0eUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtQXJyb3dJY29uQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidrYy13ZWJhdXRobi1hdXRoZW50aWNhdG9yLWxhYmVsLScgKyBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1IZWFkaW5nQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLmFkdmFuY2VkTXNnU3RyKGF1dGhlbnRpY2F0b3IubGFiZWwpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoYXV0aGVudGljYXRvci50cmFuc3BvcnRzLmRpc3BsYXlOYW1lUHJvcGVydGllcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2tjLXdlYmF1dGhuLWF1dGhlbnRpY2F0b3ItdHJhbnNwb3J0LScgKyBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtRGVzY3JpcHRpb25DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZVByb3BlcnR5IG9mIGF1dGhlbnRpY2F0b3IudHJhbnNwb3J0cy5kaXNwbGF5TmFtZVByb3BlcnRpZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBkaXNwbGF5TmFtZVByb3BlcnR5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxhc3QgPSAkbGFzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4uYWR2YW5jZWRNc2dTdHIoZGlzcGxheU5hbWVQcm9wZXJ0eSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoIWxhc3QpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj4sIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtRGVzY3JpcHRpb25DbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lkXT1cIidrYy13ZWJhdXRobi1hdXRoZW50aWNhdG9yLWNyZWF0ZWRsYWJlbC0nICsgaVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3dlYmF1dGhuLWNyZWF0ZWRBdC1sYWJlbCcpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2lkXT1cIidrYy13ZWJhdXRobi1hdXRoZW50aWNhdG9yLWNyZWF0ZWQtJyArIGlcIj57eyBhdXRoZW50aWNhdG9yLmNyZWF0ZWRBdCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbUZpbGxDbGFzcydcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQnV0dG9uc0NsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cImF1dGhCdXR0b25JZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9mb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uRGVmYXVsdENsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNhbmNlbFdlYkF1dGhuQUlBXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjYW5jZWwtYWlhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpMThuLm1zZ1N0cignd2ViYXV0aG4tZG9BdXRoZW50aWNhdGUnKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2tjLWxvZ2luLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
2
|
+
import { type I18n } from '../../i18n';
|
|
3
|
+
import { type ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
4
|
+
import { type KcContext } from '../../KcContext';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
4
6
|
export declare class WebauthnErrorComponent extends ComponentReference {
|
|
5
7
|
kcContext: KcContext.WebauthnError;
|
|
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 WebauthnErrorComponent extends ComponentReference {
|
|
|
11
14
|
displayInfo: boolean;
|
|
12
15
|
displayMessage: boolean;
|
|
13
16
|
onClick(): void;
|
|
17
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WebauthnErrorComponent, never>;
|
|
18
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WebauthnErrorComponent, "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,23 +1,20 @@
|
|
|
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 WebauthnErrorComponent = WebauthnErrorComponent_1 = class WebauthnErrorComponent extends ComponentReference {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input } 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_I18N } from '../../../login/tokens/i18n.token';
|
|
8
|
+
import { LOGIN_CLASSES } from '../../../login/tokens/classes.token';
|
|
9
|
+
import { KC_LOGIN_CONTEXT } from '../../../login/tokens/kc-context.token';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class WebauthnErrorComponent 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();
|
|
@@ -26,32 +23,27 @@ let WebauthnErrorComponent = WebauthnErrorComponent_1 = class WebauthnErrorCompo
|
|
|
26
23
|
}
|
|
27
24
|
onClick() {
|
|
28
25
|
// @ts-expect-error: Trusted Keycloak's code
|
|
29
|
-
document.getElementById(
|
|
26
|
+
document.getElementById('isSetRetry').value = 'retry';
|
|
30
27
|
// @ts-expect-error: Trusted Keycloak's code
|
|
31
|
-
document.getElementById(
|
|
28
|
+
document.getElementById('executionValue').value = '${execution}';
|
|
32
29
|
// @ts-expect-error: Trusted Keycloak's code
|
|
33
|
-
document.getElementById(
|
|
30
|
+
document.getElementById('kc-error-credential-form').submit();
|
|
34
31
|
}
|
|
35
|
-
};
|
|
36
|
-
|
|
37
|
-
Component({
|
|
38
|
-
standalone: true,
|
|
39
|
-
imports: [
|
|
40
|
-
TemplateComponent,
|
|
41
|
-
MsgStrPipe,
|
|
42
|
-
KcClassDirective,
|
|
43
|
-
LogoutOtherSessionsComponent
|
|
44
|
-
],
|
|
45
|
-
selector: "kc-root",
|
|
46
|
-
templateUrl: "webauthn-error.component.html",
|
|
47
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
48
|
-
providers: [
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WebauthnErrorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: WebauthnErrorComponent, 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: [
|
|
49
34
|
{
|
|
50
35
|
provide: ComponentReference,
|
|
51
|
-
useExisting: forwardRef(() =>
|
|
36
|
+
useExisting: forwardRef(() => WebauthnErrorComponent)
|
|
52
37
|
}
|
|
53
|
-
]
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
38
|
+
], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n\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('webauthn-error-title') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-error-credential-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n id=\"executionValue\"\n name=\"authenticationExecution\"\n />\n <input\n type=\"hidden\"\n id=\"isSetRetry\"\n name=\"isSetRetry\"\n />\n </form>\n <input\n tabIndex=\"4\"\n (click)=\"onClick()\"\n type=\"button\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"try-again\"\n id=\"kc-try-again\"\n [value]=\"i18n.msgStr('doTryAgain')\"\n />\n @if (isAppInitiatedAction) {\n <form\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n id=\"kc-webauthn-settings-form\"\n method=\"post\"\n >\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n id=\"cancelWebAuthnAIA\"\n name=\"cancel-aia\"\n value=\"true\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </form>\n }\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 }); }
|
|
39
|
+
}
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WebauthnErrorComponent, decorators: [{
|
|
41
|
+
type: Component,
|
|
42
|
+
args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective, LogoutOtherSessionsComponent], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
43
|
+
{
|
|
44
|
+
provide: ComponentReference,
|
|
45
|
+
useExisting: forwardRef(() => WebauthnErrorComponent)
|
|
46
|
+
}
|
|
47
|
+
], template: "@let url = kcContext.url;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n\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('webauthn-error-title') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-error-credential-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n id=\"executionValue\"\n name=\"authenticationExecution\"\n />\n <input\n type=\"hidden\"\n id=\"isSetRetry\"\n name=\"isSetRetry\"\n />\n </form>\n <input\n tabIndex=\"4\"\n (click)=\"onClick()\"\n type=\"button\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n name=\"try-again\"\n id=\"kc-try-again\"\n [value]=\"i18n.msgStr('doTryAgain')\"\n />\n @if (isAppInitiatedAction) {\n <form\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n id=\"kc-webauthn-settings-form\"\n method=\"post\"\n >\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n id=\"cancelWebAuthnAIA\"\n name=\"cancel-aia\"\n value=\"true\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </form>\n }\n </ng-container>\n</kc-login-template>\n" }]
|
|
48
|
+
}] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViYXV0aG4tZXJyb3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvd2ViYXV0aG4tZXJyb3Ivd2ViYXV0aG4tZXJyb3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvd2ViYXV0aG4tZXJyb3Ivd2ViYXV0aG4tZXJyb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkZBQTZGLENBQUM7QUFDM0ksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDNUYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7QUFpQnRGLE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxrQkFBa0I7SUFiOUQ7O1FBY0ksY0FBUyxHQUFHLE1BQU0sQ0FBdUQsZ0JBQWdCLENBQUMsQ0FBQztRQUMzRixTQUFJLEdBQUcsTUFBTSxDQUFPLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLGFBQWEsQ0FBQyxDQUFDO1FBQzVFLDBCQUFxQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFDN0IsbUJBQWMsR0FBWSxJQUFJLENBQUM7S0FVbEM7SUFSRyxPQUFPO1FBQ0gsNENBQTRDO1FBQzVDLFFBQVEsQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztRQUN0RCw0Q0FBNEM7UUFDNUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLEtBQUssR0FBRyxjQUFjLENBQUM7UUFDakUsNENBQTRDO1FBQzVDLFFBQVEsQ0FBQyxjQUFjLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqRSxDQUFDOzhHQWxCUSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwwZ0JBUHBCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxzQkFBc0IsQ0FBQzthQUN4RDtTQUNKLGlEQ3hCTCxpL0RBNERBLDRDRDdDYyxpQkFBaUIsb0tBQUUsZ0JBQWdCOzsyRkFXcEMsc0JBQXNCO2tCQWJsQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLDRCQUE0QixDQUFDLFlBQ2xFLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx1QkFBdUIsQ0FBQzt5QkFDeEQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcy50b2tlbic7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgTG9nb3V0T3RoZXJTZXNzaW9uc0NvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbXBvbmVudHMvbG9nb3V0LW90aGVyLXNlc3Npb25zL2xvZ291dC1vdGhlci1zZXNzaW9ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTE9HSU5fSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9pMThuLnRva2VuJztcbmltcG9ydCB7IHR5cGUgSTE4biB9IGZyb20gJy4uLy4uL2kxOG4nO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzLnRva2VuJztcbmltcG9ydCB7IEtDX0xPR0lOX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMva2MtY29udGV4dC50b2tlbic7XG5pbXBvcnQgeyB0eXBlIENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyB0eXBlIEtjQ29udGV4dCB9IGZyb20gJy4uLy4uL0tjQ29udGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1RlbXBsYXRlQ29tcG9uZW50LCBLY0NsYXNzRGlyZWN0aXZlLCBMb2dvdXRPdGhlclNlc3Npb25zQ29tcG9uZW50XSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnd2ViYXV0aG4tZXJyb3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXZWJhdXRobkVycm9yQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBXZWJhdXRobkVycm9yQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnd2ViYXV0aG4tZXJyb3IuZnRsJyB9Pj4oS0NfTE9HSU5fQ09OVEVYVCk7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oTE9HSU5fQ0xBU1NFUyk7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gaW5wdXQoZmFsc2UpO1xuICAgIGRvY3VtZW50VGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgYm9keUNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID0gdHJ1ZTtcblxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IFRydXN0ZWQgS2V5Y2xvYWsncyBjb2RlXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpc1NldFJldHJ5JykudmFsdWUgPSAncmV0cnknO1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBUcnVzdGVkIEtleWNsb2FrJ3MgY29kZVxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZXhlY3V0aW9uVmFsdWUnKS52YWx1ZSA9ICcke2V4ZWN1dGlvbn0nO1xuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yOiBUcnVzdGVkIEtleWNsb2FrJ3MgY29kZVxuICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2MtZXJyb3ItY3JlZGVudGlhbC1mb3JtJykuc3VibWl0KCk7XG4gICAgfVxufVxuIiwiQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuQGxldCBpc0FwcEluaXRpYXRlZEFjdGlvbiA9IGtjQ29udGV4dC5pc0FwcEluaXRpYXRlZEFjdGlvbjtcblxuPGtjLWxvZ2luLXRlbXBsYXRlXG4gICAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICAgIFtkaXNwbGF5TWVzc2FnZV09XCJkaXNwbGF5TWVzc2FnZVwiXG4gICAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gICAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgICA8bmctY29udGFpbmVyIGhlYWRlck5vZGU+XG4gICAgICAgIHt7IGkxOG4ubXNnU3RyKCd3ZWJhdXRobi1lcnJvci10aXRsZScpIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgaWQ9XCJrYy1lcnJvci1jcmVkZW50aWFsLWZvcm1cIlxuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4gICAgICAgICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICAgICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgaWQ9XCJleGVjdXRpb25WYWx1ZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImF1dGhlbnRpY2F0aW9uRXhlY3V0aW9uXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBpZD1cImlzU2V0UmV0cnlcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJpc1NldFJldHJ5XCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0YWJJbmRleD1cIjRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xpY2soKVwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvblByaW1hcnlDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgbmFtZT1cInRyeS1hZ2FpblwiXG4gICAgICAgICAgICBpZD1cImtjLXRyeS1hZ2FpblwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiaTE4bi5tc2dTdHIoJ2RvVHJ5QWdhaW4nKVwiXG4gICAgICAgIC8+XG4gICAgICAgIEBpZiAoaXNBcHBJbml0aWF0ZWRBY3Rpb24pIHtcbiAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgICAgW2FjdGlvbl09XCJ1cmwubG9naW5BY3Rpb25cIlxuICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1DbGFzcydcIlxuICAgICAgICAgICAgICAgIGlkPVwia2Mtd2ViYXV0aG4tc2V0dGluZ3MtZm9ybVwiXG4gICAgICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uRGVmYXVsdENsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiY2FuY2VsV2ViQXV0aG5BSUFcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2FuY2VsLWFpYVwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignZG9DYW5jZWwnKSB9fVxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICB9XG4gICAgPC9uZy1jb250YWluZXI+XG48L2tjLWxvZ2luLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
2
|
+
import { LoginResourceInjectorService } from '../../../login/services/login-resource-injector.service';
|
|
3
|
+
import { type ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
4
|
+
import { type I18n } from '../../i18n';
|
|
5
|
+
import { type KcContext } from '../../KcContext';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
6
7
|
export declare class WebauthnRegisterComponent extends ComponentReference {
|
|
7
8
|
kcContext: KcContext.WebauthnRegister;
|
|
8
9
|
loginResourceInjectorService: LoginResourceInjectorService;
|
|
9
|
-
|
|
10
|
+
i18n: I18n;
|
|
10
11
|
doUseDefaultCss: boolean;
|
|
11
12
|
classes: Partial<Record<ClassKey, string>>;
|
|
12
13
|
displayRequiredFields: import("@angular/core").InputSignal<boolean>;
|
|
@@ -16,4 +17,6 @@ export declare class WebauthnRegisterComponent extends ComponentReference {
|
|
|
16
17
|
displayMessage: boolean;
|
|
17
18
|
authButtonId: string;
|
|
18
19
|
constructor();
|
|
20
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WebauthnRegisterComponent, never>;
|
|
21
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WebauthnRegisterComponent, "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>;
|
|
19
22
|
}
|
|
@@ -1,37 +1,33 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
|
|
13
|
-
import { KcClassDirective } from "../../../login/directives";
|
|
14
|
-
import { MsgStrPipe } from "../../../login/pipes/msg-str.pipe";
|
|
15
|
-
import { LoginResourceInjectorService } from "../../../login/services";
|
|
16
|
-
let WebauthnRegisterComponent = WebauthnRegisterComponent_1 = class WebauthnRegisterComponent extends ComponentReference {
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input } 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 { LoginResourceInjectorService } from '../../../login/services/login-resource-injector.service';
|
|
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 WebauthnRegisterComponent extends ComponentReference {
|
|
17
13
|
constructor() {
|
|
18
14
|
super();
|
|
19
|
-
this.kcContext = inject(
|
|
15
|
+
this.kcContext = inject(KC_LOGIN_CONTEXT);
|
|
20
16
|
this.loginResourceInjectorService = inject(LoginResourceInjectorService);
|
|
21
|
-
this.
|
|
17
|
+
this.i18n = inject(LOGIN_I18N);
|
|
22
18
|
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
23
|
-
this.classes = inject(
|
|
19
|
+
this.classes = inject(LOGIN_CLASSES);
|
|
24
20
|
this.displayRequiredFields = input(false);
|
|
25
21
|
this.documentTitle = input();
|
|
26
22
|
this.bodyClassName = input();
|
|
27
23
|
this.displayInfo = false;
|
|
28
24
|
this.displayMessage = true;
|
|
29
|
-
this.authButtonId =
|
|
25
|
+
this.authButtonId = 'authenticateWebAuthnButton';
|
|
30
26
|
const { url, challenge, userid, username, signatureAlgorithms, rpEntityName, rpId, attestationConveyancePreference, authenticatorAttachment, requireResidentKey, userVerificationRequirement, createTimeout, excludeCredentialIds } = this.kcContext;
|
|
31
27
|
const scripts = [
|
|
32
28
|
{
|
|
33
|
-
type:
|
|
34
|
-
id:
|
|
29
|
+
type: 'module',
|
|
30
|
+
id: 'WebAuthnRegisterScript',
|
|
35
31
|
textContent: `
|
|
36
32
|
import { registerByWebAuthn } from "${url.resourcesPath}/js/webauthnRegister.js";
|
|
37
33
|
const registerButton = document.getElementById('${this.authButtonId}');
|
|
@@ -49,9 +45,9 @@ let WebauthnRegisterComponent = WebauthnRegisterComponent_1 = class WebauthnRegi
|
|
|
49
45
|
userVerificationRequirement : ${JSON.stringify(userVerificationRequirement)},
|
|
50
46
|
createTimeout : ${createTimeout},
|
|
51
47
|
excludeCredentialIds : ${JSON.stringify(excludeCredentialIds)},
|
|
52
|
-
initLabel : ${JSON.stringify(this.msgStr
|
|
53
|
-
initLabelPrompt : ${JSON.stringify(this.msgStr
|
|
54
|
-
errmsg : ${JSON.stringify(this.msgStr
|
|
48
|
+
initLabel : ${JSON.stringify(this.i18n.msgStr('webauthn-registration-init-label'))},
|
|
49
|
+
initLabelPrompt : ${JSON.stringify(this.i18n.msgStr('webauthn-registration-init-label-prompt'))},
|
|
50
|
+
errmsg : ${JSON.stringify(this.i18n.msgStr('webauthn-unsupported-browser-text'))}
|
|
55
51
|
};
|
|
56
52
|
registerByWebAuthn(input);
|
|
57
53
|
});
|
|
@@ -60,27 +56,21 @@ let WebauthnRegisterComponent = WebauthnRegisterComponent_1 = class WebauthnRegi
|
|
|
60
56
|
];
|
|
61
57
|
this.loginResourceInjectorService.insertAdditionalScripts(scripts);
|
|
62
58
|
}
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
Component({
|
|
66
|
-
standalone: true,
|
|
67
|
-
imports: [
|
|
68
|
-
TemplateComponent,
|
|
69
|
-
MsgStrPipe,
|
|
70
|
-
KcClassDirective,
|
|
71
|
-
LogoutOtherSessionsComponent
|
|
72
|
-
],
|
|
73
|
-
selector: "kc-root",
|
|
74
|
-
templateUrl: "webauthn-register.component.html",
|
|
75
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
76
|
-
providers: [
|
|
77
|
-
MsgStrPipe,
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WebauthnRegisterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: WebauthnRegisterComponent, 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: [
|
|
78
61
|
{
|
|
79
62
|
provide: ComponentReference,
|
|
80
|
-
useExisting: forwardRef(() =>
|
|
63
|
+
useExisting: forwardRef(() => WebauthnRegisterComponent)
|
|
81
64
|
}
|
|
82
|
-
]
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
65
|
+
], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let isSetRetry = kcContext.isSetRetry;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n\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 <span [kcClass]=\"'kcWebAuthnKeyIcon'\"></span>\n {{ i18n.msgStr('webauthn-registration-title') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"register\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n id=\"clientDataJSON\"\n name=\"clientDataJSON\"\n />\n <input\n type=\"hidden\"\n id=\"attestationObject\"\n name=\"attestationObject\"\n />\n <input\n type=\"hidden\"\n id=\"publicKeyCredentialId\"\n name=\"publicKeyCredentialId\"\n />\n <input\n type=\"hidden\"\n id=\"authenticatorLabel\"\n name=\"authenticatorLabel\"\n />\n <input\n type=\"hidden\"\n id=\"transports\"\n name=\"transports\"\n />\n <input\n type=\"hidden\"\n id=\"error\"\n name=\"error\"\n />\n <kc-logout-other-sessions />\n </div>\n </form>\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [id]=\"authButtonId\"\n [value]=\"i18n.msgStr('doRegisterSecurityKey')\"\n />\n @if (!isSetRetry && isAppInitiatedAction) {\n <form\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n id=\"kc-webauthn-settings-form\"\n method=\"post\"\n >\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n id=\"cancelWebAuthnAIA\"\n name=\"cancel-aia\"\n value=\"true\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </form>\n }\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 }); }
|
|
66
|
+
}
|
|
67
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WebauthnRegisterComponent, decorators: [{
|
|
68
|
+
type: Component,
|
|
69
|
+
args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective, LogoutOtherSessionsComponent], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
70
|
+
{
|
|
71
|
+
provide: ComponentReference,
|
|
72
|
+
useExisting: forwardRef(() => WebauthnRegisterComponent)
|
|
73
|
+
}
|
|
74
|
+
], template: "@let url = kcContext.url;\n@let isSetRetry = kcContext.isSetRetry;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n\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 <span [kcClass]=\"'kcWebAuthnKeyIcon'\"></span>\n {{ i18n.msgStr('webauthn-registration-title') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"register\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n id=\"clientDataJSON\"\n name=\"clientDataJSON\"\n />\n <input\n type=\"hidden\"\n id=\"attestationObject\"\n name=\"attestationObject\"\n />\n <input\n type=\"hidden\"\n id=\"publicKeyCredentialId\"\n name=\"publicKeyCredentialId\"\n />\n <input\n type=\"hidden\"\n id=\"authenticatorLabel\"\n name=\"authenticatorLabel\"\n />\n <input\n type=\"hidden\"\n id=\"transports\"\n name=\"transports\"\n />\n <input\n type=\"hidden\"\n id=\"error\"\n name=\"error\"\n />\n <kc-logout-other-sessions />\n </div>\n </form>\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [id]=\"authButtonId\"\n [value]=\"i18n.msgStr('doRegisterSecurityKey')\"\n />\n @if (!isSetRetry && isAppInitiatedAction) {\n <form\n [action]=\"url.loginAction\"\n [kcClass]=\"'kcFormClass'\"\n id=\"kc-webauthn-settings-form\"\n method=\"post\"\n >\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n id=\"cancelWebAuthnAIA\"\n name=\"cancel-aia\"\n value=\"true\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </form>\n }\n </ng-container>\n</kc-login-template>\n" }]
|
|
75
|
+
}], ctorParameters: () => [] });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViYXV0aG4tcmVnaXN0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvd2ViYXV0aG4tcmVnaXN0ZXIvd2ViYXV0aG4tcmVnaXN0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvd2ViYXV0aG4tcmVnaXN0ZXIvd2ViYXV0aG4tcmVnaXN0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU5RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOERBQThELENBQUM7QUFDbEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sNkZBQTZGLENBQUM7QUFDM0ksT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDN0YsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDNUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUVBQXFFLENBQUM7QUFDbkgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7QUFrQnRGLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxrQkFBa0I7SUFjN0Q7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWRaLGNBQVMsR0FBRyxNQUFNLENBQTBELGdCQUFnQixDQUFDLENBQUM7UUFDOUYsaUNBQTRCLEdBQUcsTUFBTSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDcEUsU0FBSSxHQUFHLE1BQU0sQ0FBTyxVQUFVLENBQUMsQ0FBQztRQUN2QixvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxhQUFhLENBQUMsQ0FBQztRQUM1RSwwQkFBcUIsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQVksSUFBSSxDQUFDO1FBRS9CLGlCQUFZLEdBQUcsNEJBQTRCLENBQUM7UUFJeEMsTUFBTSxFQUNGLEdBQUcsRUFDSCxTQUFTLEVBQ1QsTUFBTSxFQUNOLFFBQVEsRUFDUixtQkFBbUIsRUFDbkIsWUFBWSxFQUNaLElBQUksRUFDSiwrQkFBK0IsRUFDL0IsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQiwyQkFBMkIsRUFDM0IsYUFBYSxFQUNiLG9CQUFvQixFQUN2QixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDbkIsTUFBTSxPQUFPLEdBQWE7WUFDdEI7Z0JBQ0ksSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsRUFBRSxFQUFFLHdCQUF3QjtnQkFDNUIsV0FBVyxFQUFFO29EQUN1QixHQUFHLENBQUMsYUFBYTtnRUFDTCxJQUFJLENBQUMsWUFBWTs7O3FDQUc1QyxTQUFTO2tDQUNaLE1BQU07b0NBQ0osUUFBUTs4Q0FDRSxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDO3VDQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQzsrQkFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7MERBQ08sSUFBSSxDQUFDLFNBQVMsQ0FBQywrQkFBK0IsQ0FBQztrREFDdkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQzs2Q0FDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQztzREFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQywyQkFBMkIsQ0FBQzt3Q0FDekQsYUFBYTsrQ0FDTixJQUFJLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDO29DQUMvQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtDQUFrQyxDQUFDLENBQUM7MENBQzlELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMseUNBQXlDLENBQUMsQ0FBQztpQ0FDcEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtQ0FBbUMsQ0FBQyxDQUFDOzs7O1dBSTNGO2FBQ0U7U0FDSixDQUFDO1FBQ0YsSUFBSSxDQUFDLDRCQUE0QixDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7OEdBOURRLHlCQUF5QjtrR0FBekIseUJBQXlCLDBnQkFQdkI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2FBQzNEO1NBQ0osaURDMUJMLDAwRkFrRkEsNENEakVjLGlCQUFpQixvS0FBRSxnQkFBZ0IsK0ZBQUUsNEJBQTRCOzsyRkFXbEUseUJBQXlCO2tCQWJyQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLGdCQUFnQixFQUFFLDRCQUE0QixDQUFDLFlBQ2xFLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzt5QkFDM0Q7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIFNjcmlwdCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9tb2RlbHMvc2NyaXB0Lm1vZGVsJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzLnRva2VuJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBMb2dvdXRPdGhlclNlc3Npb25zQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29tcG9uZW50cy9sb2dvdXQtb3RoZXItc2Vzc2lvbnMvbG9nb3V0LW90aGVyLXNlc3Npb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vc2VydmljZXMvbG9naW4tcmVzb3VyY2UtaW5qZWN0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBMT0dJTl9DTEFTU0VTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2NsYXNzZXMudG9rZW4nO1xuaW1wb3J0IHsgTE9HSU5fSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9pMThuLnRva2VuJztcbmltcG9ydCB7IEtDX0xPR0lOX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMva2MtY29udGV4dC50b2tlbic7XG5pbXBvcnQgeyB0eXBlIENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyB0eXBlIEkxOG4gfSBmcm9tICcuLi8uLi9pMThuJztcbmltcG9ydCB7IHR5cGUgS2NDb250ZXh0IH0gZnJvbSAnLi4vLi4vS2NDb250ZXh0JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbVGVtcGxhdGVDb21wb25lbnQsIEtjQ2xhc3NEaXJlY3RpdmUsIExvZ291dE90aGVyU2Vzc2lvbnNDb21wb25lbnRdLFxuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICd3ZWJhdXRobi1yZWdpc3Rlci5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFdlYmF1dGhuUmVnaXN0ZXJDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFdlYmF1dGhuUmVnaXN0ZXJDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICd3ZWJhdXRobi1yZWdpc3Rlci5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBsb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlID0gaW5qZWN0KExvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UpO1xuICAgIGkxOG4gPSBpbmplY3Q8STE4bj4oTE9HSU5fSTE4Tik7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBhdXRoQnV0dG9uSWQgPSAnYXV0aGVudGljYXRlV2ViQXV0aG5CdXR0b24nO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIGNoYWxsZW5nZSxcbiAgICAgICAgICAgIHVzZXJpZCxcbiAgICAgICAgICAgIHVzZXJuYW1lLFxuICAgICAgICAgICAgc2lnbmF0dXJlQWxnb3JpdGhtcyxcbiAgICAgICAgICAgIHJwRW50aXR5TmFtZSxcbiAgICAgICAgICAgIHJwSWQsXG4gICAgICAgICAgICBhdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlLFxuICAgICAgICAgICAgYXV0aGVudGljYXRvckF0dGFjaG1lbnQsXG4gICAgICAgICAgICByZXF1aXJlUmVzaWRlbnRLZXksXG4gICAgICAgICAgICB1c2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQsXG4gICAgICAgICAgICBjcmVhdGVUaW1lb3V0LFxuICAgICAgICAgICAgZXhjbHVkZUNyZWRlbnRpYWxJZHNcbiAgICAgICAgfSA9IHRoaXMua2NDb250ZXh0O1xuICAgICAgICBjb25zdCBzY3JpcHRzOiBTY3JpcHRbXSA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnbW9kdWxlJyxcbiAgICAgICAgICAgICAgICBpZDogJ1dlYkF1dGhuUmVnaXN0ZXJTY3JpcHQnLFxuICAgICAgICAgICAgICAgIHRleHRDb250ZW50OiBgXG4gICAgICAgICAgICAgIGltcG9ydCB7IHJlZ2lzdGVyQnlXZWJBdXRobiB9IGZyb20gXCIke3VybC5yZXNvdXJjZXNQYXRofS9qcy93ZWJhdXRoblJlZ2lzdGVyLmpzXCI7XG4gICAgICAgICAgICAgIGNvbnN0IHJlZ2lzdGVyQnV0dG9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJyR7dGhpcy5hdXRoQnV0dG9uSWR9Jyk7XG4gICAgICAgICAgICAgIHJlZ2lzdGVyQnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGlucHV0ID0ge1xuICAgICAgICAgICAgICAgICAgICAgIGNoYWxsZW5nZSA6ICcke2NoYWxsZW5nZX0nLFxuICAgICAgICAgICAgICAgICAgICAgIHVzZXJpZCA6ICcke3VzZXJpZH0nLFxuICAgICAgICAgICAgICAgICAgICAgIHVzZXJuYW1lIDogJyR7dXNlcm5hbWV9JyxcbiAgICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmVBbGdvcml0aG1zIDogJHtKU09OLnN0cmluZ2lmeShzaWduYXR1cmVBbGdvcml0aG1zKX0sXG4gICAgICAgICAgICAgICAgICAgICAgcnBFbnRpdHlOYW1lIDogJHtKU09OLnN0cmluZ2lmeShycEVudGl0eU5hbWUpfSxcbiAgICAgICAgICAgICAgICAgICAgICBycElkIDogJHtKU09OLnN0cmluZ2lmeShycElkKX0sXG4gICAgICAgICAgICAgICAgICAgICAgYXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZSA6ICR7SlNPTi5zdHJpbmdpZnkoYXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZSl9LFxuICAgICAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3JBdHRhY2htZW50IDogJHtKU09OLnN0cmluZ2lmeShhdXRoZW50aWNhdG9yQXR0YWNobWVudCl9LFxuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVSZXNpZGVudEtleSA6ICR7SlNPTi5zdHJpbmdpZnkocmVxdWlyZVJlc2lkZW50S2V5KX0sXG4gICAgICAgICAgICAgICAgICAgICAgdXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IDogJHtKU09OLnN0cmluZ2lmeSh1c2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQpfSxcbiAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVUaW1lb3V0IDogJHtjcmVhdGVUaW1lb3V0fSxcbiAgICAgICAgICAgICAgICAgICAgICBleGNsdWRlQ3JlZGVudGlhbElkcyA6ICR7SlNPTi5zdHJpbmdpZnkoZXhjbHVkZUNyZWRlbnRpYWxJZHMpfSxcbiAgICAgICAgICAgICAgICAgICAgICBpbml0TGFiZWwgOiAke0pTT04uc3RyaW5naWZ5KHRoaXMuaTE4bi5tc2dTdHIoJ3dlYmF1dGhuLXJlZ2lzdHJhdGlvbi1pbml0LWxhYmVsJykpfSxcbiAgICAgICAgICAgICAgICAgICAgICBpbml0TGFiZWxQcm9tcHQgOiAke0pTT04uc3RyaW5naWZ5KHRoaXMuaTE4bi5tc2dTdHIoJ3dlYmF1dGhuLXJlZ2lzdHJhdGlvbi1pbml0LWxhYmVsLXByb21wdCcpKX0sXG4gICAgICAgICAgICAgICAgICAgICAgZXJybXNnIDogJHtKU09OLnN0cmluZ2lmeSh0aGlzLmkxOG4ubXNnU3RyKCd3ZWJhdXRobi11bnN1cHBvcnRlZC1icm93c2VyLXRleHQnKSl9XG4gICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJCeVdlYkF1dGhuKGlucHV0KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgYFxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgICAgICB0aGlzLmxvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UuaW5zZXJ0QWRkaXRpb25hbFNjcmlwdHMoc2NyaXB0cyk7XG4gICAgfVxufVxuIiwiQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuQGxldCBpc1NldFJldHJ5ID0ga2NDb250ZXh0LmlzU2V0UmV0cnk7XG5AbGV0IGlzQXBwSW5pdGlhdGVkQWN0aW9uID0ga2NDb250ZXh0LmlzQXBwSW5pdGlhdGVkQWN0aW9uO1xuXG48a2MtbG9naW4tdGVtcGxhdGVcbiAgICBbZGlzcGxheUluZm9dPVwiZGlzcGxheUluZm9cIlxuICAgIFtib2R5Q2xhc3NOYW1lXT1cImJvZHlDbGFzc05hbWUoKVwiXG4gICAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgICBbZGlzcGxheVJlcXVpcmVkRmllbGRzXT1cImRpc3BsYXlSZXF1aXJlZEZpZWxkcygpXCJcbiAgICBbZG9jdW1lbnRUaXRsZV09XCJkb2N1bWVudFRpdGxlKClcIlxuPlxuICAgIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICAgICAgPHNwYW4gW2tjQ2xhc3NdPVwiJ2tjV2ViQXV0aG5LZXlJY29uJ1wiPjwvc3Bhbj5cbiAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3dlYmF1dGhuLXJlZ2lzdHJhdGlvbi10aXRsZScpIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgaWQ9XCJyZWdpc3RlclwiXG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQ2xhc3MnXCJcbiAgICAgICAgICAgIFthY3Rpb25dPVwidXJsLmxvZ2luQWN0aW9uXCJcbiAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJjbGllbnREYXRhSlNPTlwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjbGllbnREYXRhSlNPTlwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiYXR0ZXN0YXRpb25PYmplY3RcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiYXR0ZXN0YXRpb25PYmplY3RcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cInB1YmxpY0tleUNyZWRlbnRpYWxJZFwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJwdWJsaWNLZXlDcmVkZW50aWFsSWRcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cImF1dGhlbnRpY2F0b3JMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJhdXRoZW50aWNhdG9yTGFiZWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICBpZD1cInRyYW5zcG9ydHNcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwidHJhbnNwb3J0c1wiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiZXJyb3JcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZXJyb3JcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPGtjLWxvZ291dC1vdGhlci1zZXNzaW9ucyAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvblByaW1hcnlDbGFzcycsICdrY0J1dHRvbkJsb2NrQ2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgW2lkXT1cImF1dGhCdXR0b25JZFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwiaTE4bi5tc2dTdHIoJ2RvUmVnaXN0ZXJTZWN1cml0eUtleScpXCJcbiAgICAgICAgLz5cbiAgICAgICAgQGlmICghaXNTZXRSZXRyeSAmJiBpc0FwcEluaXRpYXRlZEFjdGlvbikge1xuICAgICAgICAgICAgPGZvcm1cbiAgICAgICAgICAgICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgaWQ9XCJrYy13ZWJhdXRobi1zZXR0aW5ncy1mb3JtXCJcbiAgICAgICAgICAgICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25EZWZhdWx0Q2xhc3MnLCAna2NCdXR0b25CbG9ja0NsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJjYW5jZWxXZWJBdXRobkFJQVwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjYW5jZWwtYWlhXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdkb0NhbmNlbCcpIH19XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIH1cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type KcContextLike } from 'keycloakify/login/i18n/noJsx';
|
|
2
|
+
import { type ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
3
|
+
export type KeycloakifyAngularLoginConfig = {
|
|
4
|
+
doMakeUserConfirmPassword?: boolean;
|
|
5
|
+
doUseDefaultCss?: boolean;
|
|
6
|
+
classes?: {
|
|
7
|
+
[key in ClassKey]?: string;
|
|
8
|
+
};
|
|
9
|
+
getI18n: (params: {
|
|
10
|
+
kcContext: KcContextLike;
|
|
11
|
+
}) => {
|
|
12
|
+
i18n: unknown;
|
|
13
|
+
prI18n_currentLanguage: Promise<unknown> | undefined;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare const provideKeycloakifyAngularLogin: (config: KeycloakifyAngularLoginConfig) => import("@angular/core").EnvironmentProviders;
|