@keycloakify/angular 0.0.1-rc.0 → 0.0.1-rc.2
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/lib/i18n.d.ts +2 -2
- package/lib/i18n.mjs +6 -0
- package/lib/models/index.d.ts +1 -1
- package/lib/models/index.mjs +2 -0
- package/lib/models/script.model.mjs +2 -0
- package/lib/providers/keycloakify-angular.providers.d.ts +5 -5
- package/lib/providers/keycloakify-angular.providers.mjs +54 -0
- package/lib/public-api.d.ts +5 -5
- package/lib/public-api.mjs +4 -0
- package/lib/services/i18n.service.d.ts +3 -0
- package/lib/services/i18n.service.mjs +11 -0
- package/lib/services/index.d.ts +2 -2
- package/lib/services/index.mjs +3 -0
- package/lib/services/resource-injector.service.d.ts +5 -2
- package/lib/services/resource-injector.service.mjs +54 -0
- package/login/DefaultPage.d.ts +4 -4
- package/login/DefaultPage.mjs +121 -0
- package/login/KcContext.d.ts +1 -1
- package/login/KcContext.mjs +2 -0
- package/login/classes/component-reference.class.d.ts +1 -1
- package/login/classes/component-reference.class.mjs +3 -0
- package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.d.ts +5 -2
- package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +105 -0
- package/login/components/field-errors/field-errors.component.d.ts +7 -4
- package/login/components/field-errors/field-errors.component.mjs +32 -0
- package/login/components/group-label/group-label.component.d.ts +6 -3
- package/login/components/group-label/group-label.component.mjs +41 -0
- package/login/components/hello-world/hello-world.component.d.ts +5 -0
- package/login/components/hello-world/hello-world.component.mjs +11 -0
- package/login/components/index.d.ts +11 -11
- package/login/components/index.mjs +12 -0
- 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.mjs +52 -0
- package/login/components/input-tag/input-tag.component.d.ts +7 -4
- package/login/components/input-tag/input-tag.component.mjs +89 -0
- package/login/components/input-tag-selects/input-tag-selects.component.d.ts +9 -6
- package/login/components/input-tag-selects/input-tag-selects.component.mjs +115 -0
- package/login/components/logout-other-sessions/logout-other-sessions.component.d.ts +5 -2
- package/login/components/logout-other-sessions/logout-other-sessions.component.mjs +30 -0
- package/login/components/password-wrapper/password-wrapper.component.d.ts +6 -3
- package/login/components/password-wrapper/password-wrapper.component.mjs +44 -0
- package/login/components/select-tag/select-tag.component.d.ts +7 -4
- package/login/components/select-tag/select-tag.component.mjs +80 -0
- package/login/components/textarea-tag/textarea-tag.component.d.ts +7 -4
- package/login/components/textarea-tag/textarea-tag.component.mjs +48 -0
- package/login/components/user-profile-form-fields/user-profile-form-fields.component.d.ts +8 -5
- package/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +62 -0
- package/login/containers/template.component.d.ts +11 -8
- package/login/containers/template.component.mjs +71 -0
- package/login/directives/attributes.directive.d.ts +3 -0
- package/login/directives/attributes.directive.mjs +26 -0
- package/login/directives/index.d.ts +2 -2
- package/login/directives/index.mjs +3 -0
- package/login/directives/kc-class.directive.d.ts +5 -2
- package/login/directives/kc-class.directive.mjs +138 -0
- package/login/i18n.d.ts +2 -2
- package/login/i18n.mjs +2 -0
- package/login/pages/code/code.component.d.ts +6 -3
- package/login/pages/code/code.component.mjs +32 -0
- package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +6 -3
- package/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +32 -0
- package/login/pages/delete-credential/delete-credential.component.d.ts +6 -3
- package/login/pages/delete-credential/delete-credential.component.mjs +37 -0
- package/login/pages/error/error.component.d.ts +6 -3
- package/login/pages/error/error.component.mjs +32 -0
- package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +7 -4
- package/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +41 -0
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +6 -3
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +47 -0
- package/login/pages/info/info.component.d.ts +9 -6
- package/login/pages/info/info.component.mjs +58 -0
- package/login/pages/login/login.component.d.ts +6 -3
- package/login/pages/login/login.component.mjs +51 -0
- package/login/pages/login-config-totp/login-config-totp.component.d.ts +6 -3
- package/login/pages/login-config-totp/login-config-totp.component.mjs +47 -0
- package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +6 -3
- package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +37 -0
- package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +6 -3
- package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +37 -0
- package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +6 -3
- package/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +37 -0
- package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +6 -3
- package/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +38 -0
- package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +6 -3
- package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +37 -0
- package/login/pages/login-otp/login-otp.component.d.ts +6 -3
- package/login/pages/login-otp/login-otp.component.mjs +38 -0
- package/login/pages/login-page-expired/login-page-expired.component.d.ts +6 -3
- package/login/pages/login-page-expired/login-page-expired.component.mjs +36 -0
- package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +8 -5
- package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +85 -0
- package/login/pages/login-password/login-password.component.d.ts +6 -3
- package/login/pages/login-password/login-password.component.mjs +46 -0
- package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +6 -3
- package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +45 -0
- package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +6 -3
- package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +38 -0
- package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +6 -3
- package/login/pages/login-reset-otp/login-reset-otp.component.mjs +37 -0
- package/login/pages/login-reset-password/login-reset-password.component.d.ts +6 -3
- package/login/pages/login-reset-password/login-reset-password.component.mjs +38 -0
- package/login/pages/login-update-password/login-update-password.component.d.ts +6 -3
- package/login/pages/login-update-password/login-update-password.component.mjs +47 -0
- package/login/pages/login-update-profile/login-update-profile.component.d.ts +6 -3
- package/login/pages/login-update-profile/login-update-profile.component.mjs +44 -0
- package/login/pages/login-username/login-username.component.d.ts +6 -3
- package/login/pages/login-username/login-username.component.mjs +49 -0
- package/login/pages/login-verify-email/login-verify-email.component.d.ts +6 -3
- package/login/pages/login-verify-email/login-verify-email.component.mjs +37 -0
- package/login/pages/login-x509-info/login-x509-info.component.d.ts +6 -3
- package/login/pages/login-x509-info/login-x509-info.component.mjs +37 -0
- package/login/pages/logout-confirm/logout-confirm.component.d.ts +6 -3
- package/login/pages/logout-confirm/logout-confirm.component.mjs +37 -0
- package/login/pages/register/register.component.d.ts +6 -3
- package/login/pages/register/register.component.mjs +55 -0
- package/login/pages/saml-post-form/saml-post-form.component.d.ts +7 -4
- package/login/pages/saml-post-form/saml-post-form.component.mjs +49 -0
- package/login/pages/select-authenticator/select-authenticator.component.d.ts +6 -3
- package/login/pages/select-authenticator/select-authenticator.component.mjs +45 -0
- package/login/pages/terms/terms.component.d.ts +6 -3
- package/login/pages/terms/terms.component.mjs +37 -0
- package/login/pages/update-email/update-email.component.d.ts +6 -3
- package/login/pages/update-email/update-email.component.mjs +46 -0
- package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +8 -5
- package/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +87 -0
- package/login/pages/webauthn-error/webauthn-error.component.d.ts +6 -3
- package/login/pages/webauthn-error/webauthn-error.component.mjs +51 -0
- package/login/pages/webauthn-register/webauthn-register.component.d.ts +8 -5
- package/login/pages/webauthn-register/webauthn-register.component.mjs +81 -0
- package/login/pipes/advanced-msg-str.pipe.d.ts +4 -1
- package/login/pipes/advanced-msg-str.pipe.mjs +19 -0
- package/login/pipes/index.d.ts +6 -6
- package/login/pipes/index.mjs +7 -0
- package/login/pipes/input-type.pipe.d.ts +4 -1
- package/login/pipes/input-type.pipe.mjs +20 -0
- package/login/pipes/kc-sanitize.pipe.d.ts +5 -2
- package/login/pipes/kc-sanitize.pipe.mjs +34 -0
- package/login/pipes/msg-str.pipe.d.ts +5 -2
- package/login/pipes/msg-str.pipe.mjs +19 -0
- package/login/pipes/to-array.pipe.d.ts +4 -1
- package/login/pipes/to-array.pipe.mjs +21 -0
- package/login/pipes/to-number.pipe.d.ts +4 -1
- package/login/pipes/to-number.pipe.mjs +20 -0
- package/login/services/index.d.ts +2 -2
- package/login/services/index.mjs +3 -0
- package/login/services/login-resource-injector.service.d.ts +4 -1
- package/login/services/login-resource-injector.service.mjs +68 -0
- package/login/services/user-profile-form.service.d.ts +15 -12
- package/login/services/user-profile-form.service.mjs +1017 -0
- package/package.json +90 -200
- package/src/lib/i18n.ts +2 -2
- package/src/lib/models/index.ts +1 -1
- package/src/lib/providers/keycloakify-angular.providers.ts +18 -18
- package/src/lib/public-api.ts +5 -5
- package/src/lib/services/i18n.service.ts +2 -2
- package/src/lib/services/index.ts +2 -2
- package/src/lib/services/resource-injector.service.ts +7 -7
- 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.ts +11 -11
- package/src/login/components/field-errors/field-errors.component.ts +9 -9
- package/src/login/components/group-label/group-label.component.ts +12 -12
- package/src/login/components/hello-world/hello-world.component.css +0 -0
- package/src/login/components/hello-world/hello-world.component.html +1 -0
- package/src/login/components/hello-world/hello-world.component.ts +10 -0
- package/src/login/components/index.ts +11 -11
- package/src/login/components/input-field-by-type/input-field-by-type.component.ts +15 -15
- package/src/login/components/input-tag/input-tag.component.ts +20 -20
- package/src/login/components/input-tag-selects/input-tag-selects.component.ts +26 -26
- package/src/login/components/logout-other-sessions/logout-other-sessions.component.ts +8 -8
- package/src/login/components/password-wrapper/password-wrapper.component.ts +11 -11
- package/src/login/components/select-tag/select-tag.component.ts +16 -16
- package/src/login/components/textarea-tag/textarea-tag.component.ts +14 -14
- package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.ts +16 -16
- package/src/login/containers/template.component.ts +19 -19
- package/src/login/directives/attributes.directive.ts +2 -2
- package/src/login/directives/index.ts +2 -2
- package/src/login/directives/kc-class.directive.ts +11 -11
- package/src/login/i18n.ts +2 -2
- package/src/login/pages/code/code.component.ts +11 -11
- package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +11 -11
- package/src/login/pages/delete-credential/delete-credential.component.ts +11 -11
- package/src/login/pages/error/error.component.ts +11 -11
- package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +11 -11
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +14 -14
- package/src/login/pages/info/info.component.ts +15 -15
- package/src/login/pages/login/login.component.ts +16 -16
- package/src/login/pages/login-config-totp/login-config-totp.component.ts +16 -16
- package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +11 -11
- package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +11 -11
- package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +11 -11
- package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +13 -13
- package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +11 -11
- package/src/login/pages/login-otp/login-otp.component.ts +13 -13
- package/src/login/pages/login-page-expired/login-page-expired.component.ts +10 -10
- package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +21 -21
- package/src/login/pages/login-password/login-password.component.ts +14 -14
- package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +13 -13
- package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +13 -13
- package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +12 -12
- package/src/login/pages/login-reset-password/login-reset-password.component.ts +13 -13
- package/src/login/pages/login-update-password/login-update-password.component.ts +16 -16
- package/src/login/pages/login-update-profile/login-update-profile.component.ts +13 -13
- package/src/login/pages/login-username/login-username.component.ts +14 -14
- package/src/login/pages/login-verify-email/login-verify-email.component.ts +11 -11
- package/src/login/pages/login-x509-info/login-x509-info.component.ts +11 -11
- package/src/login/pages/logout-confirm/logout-confirm.component.ts +11 -11
- package/src/login/pages/register/register.component.ts +17 -17
- package/src/login/pages/saml-post-form/saml-post-form.component.ts +13 -13
- package/src/login/pages/select-authenticator/select-authenticator.component.ts +13 -13
- package/src/login/pages/terms/terms.component.ts +11 -11
- package/src/login/pages/update-email/update-email.component.ts +14 -14
- package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +21 -21
- package/src/login/pages/webauthn-error/webauthn-error.component.ts +15 -15
- package/src/login/pages/webauthn-register/webauthn-register.component.ts +20 -20
- package/src/login/pipes/advanced-msg-str.pipe.ts +4 -4
- package/src/login/pipes/index.ts +6 -6
- package/src/login/pipes/input-type.pipe.ts +4 -4
- package/src/login/pipes/kc-sanitize.pipe.ts +8 -8
- package/src/login/pipes/msg-str.pipe.ts +5 -5
- package/src/login/pipes/to-array.pipe.ts +2 -2
- package/src/login/pipes/to-number.pipe.ts +3 -3
- package/src/login/services/index.ts +2 -2
- package/src/login/services/login-resource-injector.service.ts +11 -11
- package/src/login/services/user-profile-form.service.ts +178 -178
- package/stories/login/pages/login/login.stories.ts +146 -0
- package/lib/i18n.js +0 -6
- package/lib/i18n.js.map +0 -1
- package/lib/models/index.js +0 -2
- package/lib/models/index.js.map +0 -1
- package/lib/models/script.model.js +0 -2
- 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.js +0 -4
- package/lib/public-api.js.map +0 -1
- package/lib/services/i18n.service.js +0 -14
- package/lib/services/i18n.service.js.map +0 -1
- package/lib/services/index.js +0 -3
- package/lib/services/index.js.map +0 -1
- package/lib/services/resource-injector.service.js +0 -57
- package/lib/services/resource-injector.service.js.map +0 -1
- package/login/DefaultPage.js +0 -121
- package/login/DefaultPage.js.map +0 -1
- package/login/KcContext.js +0 -2
- package/login/KcContext.js.map +0 -1
- package/login/classes/component-reference.class.js +0 -3
- 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 +0 -123
- 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 +0 -45
- 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 +0 -55
- package/login/components/group-label/group-label.component.js.map +0 -1
- 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 +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 +0 -107
- 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 +0 -132
- 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 +0 -43
- 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 +0 -57
- 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 +0 -97
- 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 +0 -63
- 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 +0 -74
- 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 +0 -78
- package/login/containers/template.component.js.map +0 -1
- package/login/directives/attributes.directive.js +0 -34
- package/login/directives/attributes.directive.js.map +0 -1
- package/login/directives/index.js +0 -3
- package/login/directives/index.js.map +0 -1
- package/login/directives/kc-class.directive.js +0 -146
- package/login/directives/kc-class.directive.js.map +0 -1
- package/login/i18n.js +0 -2
- package/login/i18n.js.map +0 -1
- package/login/pages/code/code.component.html +0 -26
- package/login/pages/code/code.component.js +0 -38
- 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 +0 -38
- 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 +0 -43
- 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 +0 -38
- 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 +0 -47
- 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 +0 -54
- 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 +0 -61
- 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 +0 -58
- 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 +0 -53
- 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 +0 -43
- 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 +0 -43
- 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 +0 -43
- 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 +0 -44
- 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 +0 -43
- 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 +0 -44
- 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 +0 -42
- 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 +0 -91
- 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 +0 -52
- 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 +0 -51
- 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 +0 -44
- 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 +0 -43
- 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 +0 -44
- 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 +0 -53
- 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 +0 -50
- 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 +0 -56
- 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 +0 -43
- 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 +0 -43
- 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 +0 -43
- 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 +0 -62
- 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 +0 -55
- 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 +0 -51
- 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 +0 -43
- 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 +0 -52
- 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 +0 -93
- 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 +0 -57
- 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 +0 -86
- package/login/pages/webauthn-register/webauthn-register.component.js.map +0 -1
- 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.js +0 -7
- package/login/pipes/index.js.map +0 -1
- 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.js +0 -36
- package/login/pipes/kc-sanitize.pipe.js.map +0 -1
- 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.js +0 -24
- package/login/pipes/to-array.pipe.js.map +0 -1
- package/login/pipes/to-number.pipe.js +0 -23
- package/login/pipes/to-number.pipe.js.map +0 -1
- package/login/services/index.js +0 -3
- package/login/services/index.js.map +0 -1
- package/login/services/login-resource-injector.service.js +0 -71
- package/login/services/login-resource-injector.service.js.map +0 -1
- package/login/services/user-profile-form.service.js +0 -1031
- package/login/services/user-profile-form.service.js.map +0 -1
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input, ViewChild } from '@angular/core';
|
|
2
|
+
import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
|
|
3
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
4
|
+
import { TemplateComponent } from '../../../login/containers/template.component';
|
|
5
|
+
import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class SamlPostFormComponent extends ComponentReference {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.kcContext = inject(KC_CONTEXT);
|
|
11
|
+
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
12
|
+
this.classes = inject(CLASSES);
|
|
13
|
+
this.displayRequiredFields = input(false);
|
|
14
|
+
this.documentTitle = input();
|
|
15
|
+
this.bodyClassName = input();
|
|
16
|
+
this.displayInfo = false;
|
|
17
|
+
this.displayMessage = true;
|
|
18
|
+
}
|
|
19
|
+
ngAfterViewInit() {
|
|
20
|
+
if (this.htmlFormElement === null) {
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
if (this.kcContext.samlPost.url === '#') {
|
|
24
|
+
alert('In a real Keycloak the user would be redirected immediately');
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
this.htmlFormElement.submit();
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SamlPostFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
30
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: SamlPostFormComponent, 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: [
|
|
31
|
+
{
|
|
32
|
+
provide: ComponentReference,
|
|
33
|
+
useExisting: forwardRef(() => SamlPostFormComponent)
|
|
34
|
+
}
|
|
35
|
+
], viewQueries: [{ propertyName: "htmlFormElement", first: true, predicate: ["setHtmlFormElement"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@let samlPost = kcContext.samlPost;\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 {{ 'saml.post-form.title' | msgStr }}\n </ng-container>\n <ng-container content>\n <p>{{ 'saml.post-form.message' | msgStr }}</p>\n <form\n name=\"saml-post-binding\"\n method=\"post\"\n [action]=\"samlPost.url\"\n #setHtmlFormElement\n >\n @if (!!samlPost.SAMLRequest) {\n <input\n type=\"hidden\"\n name=\"SAMLRequest\"\n [value]=\"samlPost.SAMLRequest\"\n />\n }\n @if (!!samlPost.SAMLResponse) {\n <input\n type=\"hidden\"\n name=\"SAMLResponse\"\n [value]=\"samlPost.SAMLResponse\"\n />\n }\n @if (!!samlPost.relayState) {\n <input\n type=\"hidden\"\n name=\"RelayState\"\n [value]=\"samlPost.relayState\"\n />\n }\n <noscript>\n <p>{{ 'saml.post-form.js-disabled' | msgStr }}</p>\n <input\n type=\"submit\"\n value=\"{{ 'doContinue' | msgStr }}\"\n />\n </noscript>\n </form>\n </ng-container>\n ></kc-login-template\n>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SamlPostFormComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{ standalone: true, imports: [TemplateComponent, MsgStrPipe], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
40
|
+
{
|
|
41
|
+
provide: ComponentReference,
|
|
42
|
+
useExisting: forwardRef(() => SamlPostFormComponent)
|
|
43
|
+
}
|
|
44
|
+
], template: "@let samlPost = kcContext.samlPost;\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 {{ 'saml.post-form.title' | msgStr }}\n </ng-container>\n <ng-container content>\n <p>{{ 'saml.post-form.message' | msgStr }}</p>\n <form\n name=\"saml-post-binding\"\n method=\"post\"\n [action]=\"samlPost.url\"\n #setHtmlFormElement\n >\n @if (!!samlPost.SAMLRequest) {\n <input\n type=\"hidden\"\n name=\"SAMLRequest\"\n [value]=\"samlPost.SAMLRequest\"\n />\n }\n @if (!!samlPost.SAMLResponse) {\n <input\n type=\"hidden\"\n name=\"SAMLResponse\"\n [value]=\"samlPost.SAMLResponse\"\n />\n }\n @if (!!samlPost.relayState) {\n <input\n type=\"hidden\"\n name=\"RelayState\"\n [value]=\"samlPost.relayState\"\n />\n }\n <noscript>\n <p>{{ 'saml.post-form.js-disabled' | msgStr }}</p>\n <input\n type=\"submit\"\n value=\"{{ 'doContinue' | msgStr }}\"\n />\n </noscript>\n </form>\n </ng-container>\n ></kc-login-template\n>\n" }]
|
|
45
|
+
}], propDecorators: { htmlFormElement: [{
|
|
46
|
+
type: ViewChild,
|
|
47
|
+
args: ['setHtmlFormElement']
|
|
48
|
+
}] } });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FtbC1wb3N0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvc2FtbC1wb3N0LWZvcm0vc2FtbC1wb3N0LWZvcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvc2FtbC1wb3N0LWZvcm0vc2FtbC1wb3N0LWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxPQUFPLEVBQ1AsVUFBVSxFQUNWLGVBQWUsRUFDbEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBZTNFLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxrQkFBa0I7SUFiN0Q7O1FBY0ksY0FBUyxHQUFHLE1BQU0sQ0FBdUQsVUFBVSxDQUFDLENBQUM7UUFDNUUsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7UUFDdEUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFZLElBQUksQ0FBQztLQWdCbEM7SUFaRyxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hDLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUM7WUFDdEMsS0FBSyxDQUFDLDZEQUE2RCxDQUFDLENBQUM7WUFDckUsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2xDLENBQUM7OEdBdkJRLHFCQUFxQjtrR0FBckIscUJBQXFCLDBnQkFQbkI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHFCQUFxQixDQUFDO2FBQ3ZEO1NBQ0osd0tDL0JMLHExQ0FtREEsNENEN0JjLGlCQUFpQiwrSkFBRSxVQUFVOzsyRkFXOUIscUJBQXFCO2tCQWJqQyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLFVBQVUsQ0FBQyxZQUM5QixTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7eUJBQ3ZEO3FCQUNKOzhCQVlELGVBQWU7c0JBRGQsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ0xBU1NFUyxcbiAgICBLQ19DT05URVhULFxuICAgIFVTRV9ERUZBVUxUX0NTU1xufSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IE1zZ1N0clBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9tc2ctc3RyLnBpcGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZW1wbGF0ZUNvbXBvbmVudCwgTXNnU3RyUGlwZV0sXG4gICAgc2VsZWN0b3I6ICdrYy1yb290JyxcbiAgICB0ZW1wbGF0ZVVybDogJ3NhbWwtcG9zdC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FtbFBvc3RGb3JtQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTYW1sUG9zdEZvcm1Db21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2UgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnc2FtbC1wb3N0LWZvcm0uZnRsJyB9Pj4oS0NfQ09OVEVYVCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XG4gICAgQFZpZXdDaGlsZCgnc2V0SHRtbEZvcm1FbGVtZW50JylcbiAgICBodG1sRm9ybUVsZW1lbnQhOiBIVE1MRm9ybUVsZW1lbnQ7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmh0bWxGb3JtRWxlbWVudCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMua2NDb250ZXh0LnNhbWxQb3N0LnVybCA9PT0gJyMnKSB7XG4gICAgICAgICAgICBhbGVydCgnSW4gYSByZWFsIEtleWNsb2FrIHRoZSB1c2VyIHdvdWxkIGJlIHJlZGlyZWN0ZWQgaW1tZWRpYXRlbHknKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaHRtbEZvcm1FbGVtZW50LnN1Ym1pdCgpO1xuICAgIH1cbn1cbiIsIkBsZXQgc2FtbFBvc3QgPSBrY0NvbnRleHQuc2FtbFBvc3Q7XG48a2MtbG9naW4tdGVtcGxhdGVcbiAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgW2JvZHlDbGFzc05hbWVdPVwiYm9keUNsYXNzTmFtZSgpXCJcbiAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gIFtkb2N1bWVudFRpdGxlXT1cImRvY3VtZW50VGl0bGUoKVwiXG4+XG4gIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICB7eyAnc2FtbC5wb3N0LWZvcm0udGl0bGUnIHwgbXNnU3RyIH19XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgPHA+e3sgJ3NhbWwucG9zdC1mb3JtLm1lc3NhZ2UnIHwgbXNnU3RyIH19PC9wPlxuICAgIDxmb3JtXG4gICAgICBuYW1lPVwic2FtbC1wb3N0LWJpbmRpbmdcIlxuICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICBbYWN0aW9uXT1cInNhbWxQb3N0LnVybFwiXG4gICAgICAjc2V0SHRtbEZvcm1FbGVtZW50XG4gICAgPlxuICAgICAgQGlmICghIXNhbWxQb3N0LlNBTUxSZXF1ZXN0KSB7XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgIG5hbWU9XCJTQU1MUmVxdWVzdFwiXG4gICAgICAgICAgW3ZhbHVlXT1cInNhbWxQb3N0LlNBTUxSZXF1ZXN0XCJcbiAgICAgICAgLz5cbiAgICAgIH1cbiAgICAgIEBpZiAoISFzYW1sUG9zdC5TQU1MUmVzcG9uc2UpIHtcbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgbmFtZT1cIlNBTUxSZXNwb25zZVwiXG4gICAgICAgICAgW3ZhbHVlXT1cInNhbWxQb3N0LlNBTUxSZXNwb25zZVwiXG4gICAgICAgIC8+XG4gICAgICB9XG4gICAgICBAaWYgKCEhc2FtbFBvc3QucmVsYXlTdGF0ZSkge1xuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICBuYW1lPVwiUmVsYXlTdGF0ZVwiXG4gICAgICAgICAgW3ZhbHVlXT1cInNhbWxQb3N0LnJlbGF5U3RhdGVcIlxuICAgICAgICAvPlxuICAgICAgfVxuICAgICAgPG5vc2NyaXB0PlxuICAgICAgICA8cD57eyAnc2FtbC5wb3N0LWZvcm0uanMtZGlzYWJsZWQnIHwgbXNnU3RyIH19PC9wPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICB2YWx1ZT1cInt7ICdkb0NvbnRpbnVlJyB8IG1zZ1N0ciB9fVwiXG4gICAgICAgIC8+XG4gICAgICA8L25vc2NyaXB0PlxuICAgIDwvZm9ybT5cbiAgPC9uZy1jb250YWluZXI+XG4gID48L2tjLWxvZ2luLXRlbXBsYXRlXG4+XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ClassKey } from
|
|
2
|
-
import { KcContext } from
|
|
3
|
-
import { ComponentReference } from
|
|
1
|
+
import { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
2
|
+
import { KcContext } from 'keycloakify/login/KcContext';
|
|
3
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class SelectAuthenticatorComponent extends ComponentReference {
|
|
5
6
|
kcContext: KcContext.SelectAuthenticator;
|
|
6
7
|
doUseDefaultCss: boolean;
|
|
@@ -10,4 +11,6 @@ export declare class SelectAuthenticatorComponent extends ComponentReference {
|
|
|
10
11
|
bodyClassName: import("@angular/core").InputSignal<string | undefined>;
|
|
11
12
|
displayInfo: boolean;
|
|
12
13
|
displayMessage: boolean;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SelectAuthenticatorComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SelectAuthenticatorComponent, "kc-root", never, { "displayRequiredFields": { "alias": "displayRequiredFields"; "required": false; "isSignal": true; }; "documentTitle": { "alias": "documentTitle"; "required": false; "isSignal": true; }; "bodyClassName": { "alias": "bodyClassName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
13
16
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
|
|
3
|
+
import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
|
|
4
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
5
|
+
import { TemplateComponent } from '../../../login/containers/template.component';
|
|
6
|
+
import { KcClassDirective } from '../../../login/directives';
|
|
7
|
+
import { AdvancedMsgStrPipe } from '../../../login/pipes';
|
|
8
|
+
import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class SelectAuthenticatorComponent extends ComponentReference {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.kcContext = inject(KC_CONTEXT);
|
|
14
|
+
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
15
|
+
this.classes = inject(CLASSES);
|
|
16
|
+
this.displayRequiredFields = input(false);
|
|
17
|
+
this.documentTitle = input();
|
|
18
|
+
this.bodyClassName = input();
|
|
19
|
+
this.displayInfo = false;
|
|
20
|
+
this.displayMessage = false;
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SelectAuthenticatorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: SelectAuthenticatorComponent, 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: [
|
|
24
|
+
{
|
|
25
|
+
provide: ComponentReference,
|
|
26
|
+
useExisting: forwardRef(() => SelectAuthenticatorComponent)
|
|
27
|
+
}
|
|
28
|
+
], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let auth = kcContext.auth;\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 {{ 'loginChooseAuthenticator' | msgStr }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-select-credential-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcSelectAuthListClass'\">\n @for (authenticationSelection of auth.authenticationSelections; track authenticationSelection; let i = $index) {\n <button\n [kcClass]=\"'kcSelectAuthListItemClass'\"\n type=\"submit\"\n name=\"authenticationExecution\"\n [value]=\"authenticationSelection.authExecId\"\n >\n <div [kcClass]=\"'kcSelectAuthListItemIconClass'\">\n <i [kcClass]=\"['kcSelectAuthListItemIconPropertyClass', $any(authenticationSelection.iconCssClass)]\"></i>\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemBodyClass'\">\n <div [kcClass]=\"'kcSelectAuthListItemHeadingClass'\">\n {{ authenticationSelection.displayName | advancedMsgStr }}\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\">\n {{ authenticationSelection.helpText | advancedMsgStr }}\n </div>\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemFillClass'\"></div>\n <div [kcClass]=\"'kcSelectAuthListItemArrowClass'\">\n <i [kcClass]=\"'kcSelectAuthListItemArrowIconClass'\"></i>\n </div>\n </button>\n }\n </div>\n </form>\n </ng-container>\n ></kc-login-template\n>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "pipe", type: AdvancedMsgStrPipe, name: "advancedMsgStr" }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: SelectAuthenticatorComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ standalone: true, imports: [
|
|
33
|
+
TemplateComponent,
|
|
34
|
+
MsgStrPipe,
|
|
35
|
+
AdvancedMsgStrPipe,
|
|
36
|
+
KcClassDirective,
|
|
37
|
+
NgClass
|
|
38
|
+
], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
39
|
+
{
|
|
40
|
+
provide: ComponentReference,
|
|
41
|
+
useExisting: forwardRef(() => SelectAuthenticatorComponent)
|
|
42
|
+
}
|
|
43
|
+
], template: "@let url = kcContext.url;\n@let auth = kcContext.auth;\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 {{ 'loginChooseAuthenticator' | msgStr }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-select-credential-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <div [kcClass]=\"'kcSelectAuthListClass'\">\n @for (authenticationSelection of auth.authenticationSelections; track authenticationSelection; let i = $index) {\n <button\n [kcClass]=\"'kcSelectAuthListItemClass'\"\n type=\"submit\"\n name=\"authenticationExecution\"\n [value]=\"authenticationSelection.authExecId\"\n >\n <div [kcClass]=\"'kcSelectAuthListItemIconClass'\">\n <i [kcClass]=\"['kcSelectAuthListItemIconPropertyClass', $any(authenticationSelection.iconCssClass)]\"></i>\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemBodyClass'\">\n <div [kcClass]=\"'kcSelectAuthListItemHeadingClass'\">\n {{ authenticationSelection.displayName | advancedMsgStr }}\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\">\n {{ authenticationSelection.helpText | advancedMsgStr }}\n </div>\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemFillClass'\"></div>\n <div [kcClass]=\"'kcSelectAuthListItemArrowClass'\">\n <i [kcClass]=\"'kcSelectAuthListItemArrowIconClass'\"></i>\n </div>\n </button>\n }\n </div>\n </form>\n </ng-container>\n ></kc-login-template\n>\n" }]
|
|
44
|
+
}] });
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWF1dGhlbnRpY2F0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvc2VsZWN0LWF1dGhlbnRpY2F0b3Ivc2VsZWN0LWF1dGhlbnRpY2F0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvc2VsZWN0LWF1dGhlbnRpY2F0b3Ivc2VsZWN0LWF1dGhlbnRpY2F0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDSCxPQUFPLEVBQ1AsVUFBVSxFQUNWLGVBQWUsRUFDbEIsTUFBTSxxQ0FBcUMsQ0FBQztBQUc3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM3RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0NBQStDLENBQUM7O0FBcUIzRSxNQUFNLE9BQU8sNEJBQTZCLFNBQVEsa0JBQWtCO0lBbkJwRTs7UUFvQkksY0FBUyxHQUNMLE1BQU0sQ0FBNkQsVUFBVSxDQUFDLENBQUM7UUFDMUUsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7UUFDdEUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFZLEtBQUssQ0FBQztLQUNuQzs4R0FWWSw0QkFBNEI7a0dBQTVCLDRCQUE0QiwwZ0JBUDFCO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQzthQUM5RDtTQUNKLGlEQ3RDTCxnNERBaURBLDRDRHpCUSxpQkFBaUIsK0pBQ2pCLFVBQVUsMENBQ1Ysa0JBQWtCLHVEQUNsQixnQkFBZ0I7OzJGQWFYLDRCQUE0QjtrQkFuQnhDLFNBQVM7aUNBQ00sSUFBSSxXQUNQO3dCQUNMLGlCQUFpQjt3QkFDakIsVUFBVTt3QkFDVixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsT0FBTztxQkFDVixZQUNTLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw2QkFBNkIsQ0FBQzt5QkFDOUQ7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDTEFTU0VTLFxuICAgIEtDX0NPTlRFWFQsXG4gICAgVVNFX0RFRkFVTFRfQ1NTXG59IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQWR2YW5jZWRNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMnO1xuaW1wb3J0IHsgTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL21zZy1zdHIucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICAgICAgTXNnU3RyUGlwZSxcbiAgICAgICAgQWR2YW5jZWRNc2dTdHJQaXBlLFxuICAgICAgICBLY0NsYXNzRGlyZWN0aXZlLFxuICAgICAgICBOZ0NsYXNzXG4gICAgXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnc2VsZWN0LWF1dGhlbnRpY2F0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RBdXRoZW50aWNhdG9yQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RBdXRoZW50aWNhdG9yQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPVxuICAgICAgICBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnc2VsZWN0LWF1dGhlbnRpY2F0b3IuZnRsJyB9Pj4oS0NfQ09OVEVYVCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IGZhbHNlO1xufVxuIiwiQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuQGxldCBhdXRoID0ga2NDb250ZXh0LmF1dGg7XG48a2MtbG9naW4tdGVtcGxhdGVcbiAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgW2JvZHlDbGFzc05hbWVdPVwiYm9keUNsYXNzTmFtZSgpXCJcbiAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gIFtkb2N1bWVudFRpdGxlXT1cImRvY3VtZW50VGl0bGUoKVwiXG4+XG4gIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICB7eyAnbG9naW5DaG9vc2VBdXRoZW50aWNhdG9yJyB8IG1zZ1N0ciB9fVxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgIDxmb3JtXG4gICAgICBpZD1cImtjLXNlbGVjdC1jcmVkZW50aWFsLWZvcm1cIlxuICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4gICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICA+XG4gICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0Q2xhc3MnXCI+XG4gICAgICAgIEBmb3IgKGF1dGhlbnRpY2F0aW9uU2VsZWN0aW9uIG9mIGF1dGguYXV0aGVudGljYXRpb25TZWxlY3Rpb25zOyB0cmFjayBhdXRoZW50aWNhdGlvblNlbGVjdGlvbjsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1DbGFzcydcIlxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICBuYW1lPVwiYXV0aGVudGljYXRpb25FeGVjdXRpb25cIlxuICAgICAgICAgICAgW3ZhbHVlXT1cImF1dGhlbnRpY2F0aW9uU2VsZWN0aW9uLmF1dGhFeGVjSWRcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtSWNvbkNsYXNzJ1wiPlxuICAgICAgICAgICAgICA8aSBba2NDbGFzc109XCJbJ2tjU2VsZWN0QXV0aExpc3RJdGVtSWNvblByb3BlcnR5Q2xhc3MnLCAkYW55KGF1dGhlbnRpY2F0aW9uU2VsZWN0aW9uLmljb25Dc3NDbGFzcyldXCI+PC9pPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbUJvZHlDbGFzcydcIj5cbiAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1IZWFkaW5nQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAge3sgYXV0aGVudGljYXRpb25TZWxlY3Rpb24uZGlzcGxheU5hbWUgfCBhZHZhbmNlZE1zZ1N0ciB9fVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1EZXNjcmlwdGlvbkNsYXNzJ1wiPlxuICAgICAgICAgICAgICAgIHt7IGF1dGhlbnRpY2F0aW9uU2VsZWN0aW9uLmhlbHBUZXh0IHwgYWR2YW5jZWRNc2dTdHIgfX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtRmlsbENsYXNzJ1wiPjwvZGl2PlxuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1BcnJvd0NsYXNzJ1wiPlxuICAgICAgICAgICAgICA8aSBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1BcnJvd0ljb25DbGFzcydcIj48L2k+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPjwva2MtbG9naW4tdGVtcGxhdGVcbj5cbiJdfQ==
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ClassKey } from
|
|
2
|
-
import { KcContext } from
|
|
3
|
-
import { ComponentReference } from
|
|
1
|
+
import { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
2
|
+
import { KcContext } from 'keycloakify/login/KcContext';
|
|
3
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class TermsComponent extends ComponentReference {
|
|
5
6
|
kcContext: KcContext.Terms;
|
|
6
7
|
doUseDefaultCss: boolean;
|
|
@@ -10,4 +11,6 @@ export declare class TermsComponent extends ComponentReference {
|
|
|
10
11
|
bodyClassName: import("@angular/core").InputSignal<string | undefined>;
|
|
11
12
|
displayInfo: boolean;
|
|
12
13
|
displayMessage: boolean;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TermsComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TermsComponent, "kc-root", never, { "displayRequiredFields": { "alias": "displayRequiredFields"; "required": false; "isSignal": true; }; "documentTitle": { "alias": "documentTitle"; "required": false; "isSignal": true; }; "bodyClassName": { "alias": "bodyClassName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
13
16
|
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
|
|
2
|
+
import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
|
|
3
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
4
|
+
import { TemplateComponent } from '../../../login/containers/template.component';
|
|
5
|
+
import { KcClassDirective } from '../../../login/directives';
|
|
6
|
+
import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class TermsComponent extends ComponentReference {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.kcContext = inject(KC_CONTEXT);
|
|
12
|
+
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
13
|
+
this.classes = inject(CLASSES);
|
|
14
|
+
this.displayRequiredFields = input(false);
|
|
15
|
+
this.documentTitle = input();
|
|
16
|
+
this.bodyClassName = input();
|
|
17
|
+
this.displayInfo = false;
|
|
18
|
+
this.displayMessage = false;
|
|
19
|
+
}
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TermsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: TermsComponent, 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: [
|
|
22
|
+
{
|
|
23
|
+
provide: ComponentReference,
|
|
24
|
+
useExisting: forwardRef(() => TermsComponent)
|
|
25
|
+
}
|
|
26
|
+
], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\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 {{ 'termsTitle' | msgStr }}\n </ng-container>\n <ng-container content>\n <div id=\"kc-terms-text\">{{ 'termsText' | msgStr }}</div>\n <form\n class=\"form-actions\"\n [action]=\"url.loginAction\"\n method=\"POST\"\n >\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonClass', 'kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n name=\"accept\"\n id=\"kc-accept\"\n type=\"submit\"\n [value]=\"'doAccept' | msgStr\"\n />\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n name=\"cancel\"\n id=\"kc-decline\"\n type=\"submit\"\n [value]=\"'doDecline' | msgStr\"\n />\n </form>\n <div className=\"clearfix\"></div>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "pipe", type: MsgStrPipe, name: "msgStr" }, { 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 }); }
|
|
27
|
+
}
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TermsComponent, decorators: [{
|
|
29
|
+
type: Component,
|
|
30
|
+
args: [{ standalone: true, imports: [MsgStrPipe, TemplateComponent, KcClassDirective], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
31
|
+
{
|
|
32
|
+
provide: ComponentReference,
|
|
33
|
+
useExisting: forwardRef(() => TermsComponent)
|
|
34
|
+
}
|
|
35
|
+
], template: "@let url = kcContext.url;\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 {{ 'termsTitle' | msgStr }}\n </ng-container>\n <ng-container content>\n <div id=\"kc-terms-text\">{{ 'termsText' | msgStr }}</div>\n <form\n class=\"form-actions\"\n [action]=\"url.loginAction\"\n method=\"POST\"\n >\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonClass', 'kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n name=\"accept\"\n id=\"kc-accept\"\n type=\"submit\"\n [value]=\"'doAccept' | msgStr\"\n />\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n name=\"cancel\"\n id=\"kc-decline\"\n type=\"submit\"\n [value]=\"'doDecline' | msgStr\"\n />\n </form>\n <div className=\"clearfix\"></div>\n </ng-container>\n</kc-login-template>\n" }]
|
|
36
|
+
}] });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVybXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvdGVybXMvdGVybXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvdGVybXMvdGVybXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ1IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILE9BQU8sRUFDUCxVQUFVLEVBQ1YsZUFBZSxFQUNsQixNQUFNLHFDQUFxQyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7QUFlM0UsTUFBTSxPQUFPLGNBQWUsU0FBUSxrQkFBa0I7SUFidEQ7O1FBY0ksY0FBUyxHQUFHLE1BQU0sQ0FBOEMsVUFBVSxDQUFDLENBQUM7UUFDbkUsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7UUFDdEUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFZLEtBQUssQ0FBQztLQUNuQzs4R0FUWSxjQUFjO2tHQUFkLGNBQWMsMGdCQVBaO1lBQ1A7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxjQUFjLENBQUM7YUFDaEQ7U0FDSixpREM5QkwsaW1DQW9DQSx1Q0RmYyxVQUFVLCtDQUFFLGlCQUFpQixvS0FBRSxnQkFBZ0I7OzJGQVdoRCxjQUFjO2tCQWIxQixTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsRUFBRSxnQkFBZ0IsQ0FBQyxZQUNoRCxTQUFTLG1CQUVGLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsZUFBZSxDQUFDO3lCQUNoRDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBDTEFTU0VTLFxuICAgIEtDX0NPTlRFWFQsXG4gICAgVVNFX0RFRkFVTFRfQ1NTXG59IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9wdWJsaWMtYXBpJztcbmltcG9ydCB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBLY0NvbnRleHQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL21zZy1zdHIucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW01zZ1N0clBpcGUsIFRlbXBsYXRlQ29tcG9uZW50LCBLY0NsYXNzRGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAndGVybXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXJtc0NvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGVybXNDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICd0ZXJtcy5mdGwnIH0+PihLQ19DT05URVhUKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oQ0xBU1NFUyk7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gaW5wdXQoZmFsc2UpO1xuICAgIGRvY3VtZW50VGl0bGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgYm9keUNsYXNzTmFtZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID0gZmFsc2U7XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG48a2MtbG9naW4tdGVtcGxhdGVcbiAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgW2JvZHlDbGFzc05hbWVdPVwiYm9keUNsYXNzTmFtZSgpXCJcbiAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gIFtkb2N1bWVudFRpdGxlXT1cImRvY3VtZW50VGl0bGUoKVwiXG4+XG4gIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICB7eyAndGVybXNUaXRsZScgfCBtc2dTdHIgfX1cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICA8ZGl2IGlkPVwia2MtdGVybXMtdGV4dFwiPnt7ICd0ZXJtc1RleHQnIHwgbXNnU3RyIH19PC9kaXY+XG4gICAgPGZvcm1cbiAgICAgIGNsYXNzPVwiZm9ybS1hY3Rpb25zXCJcbiAgICAgIFthY3Rpb25dPVwidXJsLmxvZ2luQWN0aW9uXCJcbiAgICAgIG1ldGhvZD1cIlBPU1RcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25DbGFzcycsICdrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uUHJpbWFyeUNsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgbmFtZT1cImFjY2VwdFwiXG4gICAgICAgIGlkPVwia2MtYWNjZXB0XCJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIFt2YWx1ZV09XCInZG9BY2NlcHQnIHwgbXNnU3RyXCJcbiAgICAgIC8+XG4gICAgICA8aW5wdXRcbiAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uRGVmYXVsdENsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgbmFtZT1cImNhbmNlbFwiXG4gICAgICAgIGlkPVwia2MtZGVjbGluZVwiXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBbdmFsdWVdPVwiJ2RvRGVjbGluZScgfCBtc2dTdHJcIlxuICAgICAgLz5cbiAgICA8L2Zvcm0+XG4gICAgPGRpdiBjbGFzc05hbWU9XCJjbGVhcmZpeFwiPjwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ClassKey } from
|
|
2
|
-
import { KcContext } from
|
|
3
|
-
import { ComponentReference } from
|
|
1
|
+
import { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
2
|
+
import { KcContext } from 'keycloakify/login/KcContext';
|
|
3
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class UpdateEmailComponent extends ComponentReference {
|
|
5
6
|
kcContext: KcContext.UpdateEmail;
|
|
6
7
|
doUseDefaultCss: boolean;
|
|
@@ -11,4 +12,6 @@ export declare class UpdateEmailComponent extends ComponentReference {
|
|
|
11
12
|
displayInfo: boolean;
|
|
12
13
|
displayMessage: boolean;
|
|
13
14
|
isFormSubmittable: import("@angular/core").WritableSignal<boolean>;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<UpdateEmailComponent, never>;
|
|
16
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<UpdateEmailComponent, "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
17
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal } from '@angular/core';
|
|
2
|
+
import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
|
|
3
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
4
|
+
import { LogoutOtherSessionsComponent } from '../../../login/components/logout-other-sessions/logout-other-sessions.component';
|
|
5
|
+
import { UserProfileFormFieldsComponent } from '../../../login/components/user-profile-form-fields/user-profile-form-fields.component';
|
|
6
|
+
import { TemplateComponent } from '../../../login/containers/template.component';
|
|
7
|
+
import { KcClassDirective } from '../../../login/directives';
|
|
8
|
+
import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export class UpdateEmailComponent extends ComponentReference {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.kcContext = inject(KC_CONTEXT);
|
|
14
|
+
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
15
|
+
this.classes = inject(CLASSES);
|
|
16
|
+
this.displayRequiredFields = input(true);
|
|
17
|
+
this.documentTitle = input();
|
|
18
|
+
this.bodyClassName = input();
|
|
19
|
+
this.displayInfo = false;
|
|
20
|
+
this.displayMessage = this.kcContext.messagesPerField.exists('global');
|
|
21
|
+
this.isFormSubmittable = signal(false);
|
|
22
|
+
}
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: UpdateEmailComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
24
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: UpdateEmailComponent, 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: [
|
|
25
|
+
{
|
|
26
|
+
provide: ComponentReference,
|
|
27
|
+
useExisting: forwardRef(() => UpdateEmailComponent)
|
|
28
|
+
}
|
|
29
|
+
], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'updateEmailTitle' | msgStr }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-update-email-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <kc-user-profile-form-fields (onIsFormSubmittable)=\"isFormSubmittable.set($event)\"></kc-user-profile-form-fields>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <kc-logout-other-sessions></kc-logout-other-sessions>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n [disabled]=\"!isFormSubmittable\"\n [kcClass]=\"{\n kcButtonClass: true,\n kcButtonPrimaryClass: true,\n kcButtonBlockClass: isAppInitiatedAction,\n kcButtonLargeClass: true,\n }\"\n type=\"submit\"\n value=\"{{ 'doSubmit' | msgStr }}\"\n />\n @if (isAppInitiatedAction) {\n <button\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n type=\"submit\"\n name=\"cancel-aia\"\n value=\"true\"\n >\n {{ 'doCancel' | msgStr }}\n </button>\n }\n </div>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: UserProfileFormFieldsComponent, selector: "kc-user-profile-form-fields", outputs: ["onIsFormSubmittable"] }, { kind: "component", type: LogoutOtherSessionsComponent, selector: "kc-logout-other-sessions" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
30
|
+
}
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: UpdateEmailComponent, decorators: [{
|
|
32
|
+
type: Component,
|
|
33
|
+
args: [{ standalone: true, imports: [
|
|
34
|
+
TemplateComponent,
|
|
35
|
+
MsgStrPipe,
|
|
36
|
+
KcClassDirective,
|
|
37
|
+
UserProfileFormFieldsComponent,
|
|
38
|
+
LogoutOtherSessionsComponent
|
|
39
|
+
], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
40
|
+
{
|
|
41
|
+
provide: ComponentReference,
|
|
42
|
+
useExisting: forwardRef(() => UpdateEmailComponent)
|
|
43
|
+
}
|
|
44
|
+
], template: "@let url = kcContext.url;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ 'updateEmailTitle' | msgStr }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-update-email-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <kc-user-profile-form-fields (onIsFormSubmittable)=\"isFormSubmittable.set($event)\"></kc-user-profile-form-fields>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <kc-logout-other-sessions></kc-logout-other-sessions>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n [disabled]=\"!isFormSubmittable\"\n [kcClass]=\"{\n kcButtonClass: true,\n kcButtonPrimaryClass: true,\n kcButtonBlockClass: isAppInitiatedAction,\n kcButtonLargeClass: true,\n }\"\n type=\"submit\"\n value=\"{{ 'doSubmit' | msgStr }}\"\n />\n @if (isAppInitiatedAction) {\n <button\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n type=\"submit\"\n name=\"cancel-aia\"\n value=\"true\"\n >\n {{ 'doCancel' | msgStr }}\n </button>\n }\n </div>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n" }]
|
|
45
|
+
}] });
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWVtYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL3BhZ2VzL3VwZGF0ZS1lbWFpbC91cGRhdGUtZW1haWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvdXBkYXRlLWVtYWlsL3VwZGF0ZS1lbWFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNILE9BQU8sRUFDUCxVQUFVLEVBQ1YsZUFBZSxFQUNsQixNQUFNLHFDQUFxQyxDQUFDO0FBRzdDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZGQUE2RixDQUFDO0FBQzNJLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1HQUFtRyxDQUFDO0FBQ25KLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQzs7QUFxQjNFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxrQkFBa0I7SUFuQjVEOztRQW9CSSxjQUFTLEdBQUcsTUFBTSxDQUFxRCxVQUFVLENBQUMsQ0FBQztRQUMxRSxvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxPQUFPLENBQUMsQ0FBQztRQUN0RSwwQkFBcUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQVksSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDM0Usc0JBQWlCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQ3JDOzhHQVZZLG9CQUFvQjtrR0FBcEIsb0JBQW9CLDBnQkFQbEI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO2FBQ3REO1NBQ0osaURDdkNMLGkzREEwREEsNENEakNRLGlCQUFpQiwrSkFDakIsVUFBVSwrQ0FDVixnQkFBZ0IsK0ZBQ2hCLDhCQUE4QiwwR0FDOUIsNEJBQTRCOzsyRkFZdkIsb0JBQW9CO2tCQW5CaEMsU0FBUztpQ0FDTSxJQUFJLFdBQ1A7d0JBQ0wsaUJBQWlCO3dCQUNqQixVQUFVO3dCQUNWLGdCQUFnQjt3QkFDaEIsOEJBQThCO3dCQUM5Qiw0QkFBNEI7cUJBQy9CLFlBQ1MsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDO3lCQUN0RDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0LFxuICAgIHNpZ25hbFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgQ0xBU1NFUyxcbiAgICBLQ19DT05URVhULFxuICAgIFVTRV9ERUZBVUxUX0NTU1xufSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcHVibGljLWFwaSc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBMb2dvdXRPdGhlclNlc3Npb25zQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29tcG9uZW50cy9sb2dvdXQtb3RoZXItc2Vzc2lvbnMvbG9nb3V0LW90aGVyLXNlc3Npb25zLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVc2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy91c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMuY29tcG9uZW50JztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgTXNnU3RyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3BpcGVzL21zZy1zdHIucGlwZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBUZW1wbGF0ZUNvbXBvbmVudCxcbiAgICAgICAgTXNnU3RyUGlwZSxcbiAgICAgICAgS2NDbGFzc0RpcmVjdGl2ZSxcbiAgICAgICAgVXNlclByb2ZpbGVGb3JtRmllbGRzQ29tcG9uZW50LFxuICAgICAgICBMb2dvdXRPdGhlclNlc3Npb25zQ29tcG9uZW50XG4gICAgXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAndXBkYXRlLWVtYWlsLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVXBkYXRlRW1haWxDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFVwZGF0ZUVtYWlsQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAndXBkYXRlLWVtYWlsLmZ0bCcgfT4+KEtDX0NPTlRFWFQpO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihDTEFTU0VTKTtcbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBpbnB1dCh0cnVlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IHRoaXMua2NDb250ZXh0Lm1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzKCdnbG9iYWwnKTtcbiAgICBpc0Zvcm1TdWJtaXR0YWJsZSA9IHNpZ25hbChmYWxzZSk7XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGlzQXBwSW5pdGlhdGVkQWN0aW9uID0ga2NDb250ZXh0LmlzQXBwSW5pdGlhdGVkQWN0aW9uO1xuPGtjLWxvZ2luLXRlbXBsYXRlXG4gIFtkaXNwbGF5SW5mb109XCJkaXNwbGF5SW5mb1wiXG4gIFtib2R5Q2xhc3NOYW1lXT1cImJvZHlDbGFzc05hbWUoKVwiXG4gIFtkaXNwbGF5TWVzc2FnZV09XCJkaXNwbGF5TWVzc2FnZVwiXG4gIFtkaXNwbGF5UmVxdWlyZWRGaWVsZHNdPVwiZGlzcGxheVJlcXVpcmVkRmllbGRzKClcIlxuICBbZG9jdW1lbnRUaXRsZV09XCJkb2N1bWVudFRpdGxlKClcIlxuPlxuICA8bmctY29udGFpbmVyIGhlYWRlck5vZGU+XG4gICAge3sgJ3VwZGF0ZUVtYWlsVGl0bGUnIHwgbXNnU3RyIH19XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyIGNvbnRlbnQ+XG4gICAgPGZvcm1cbiAgICAgIGlkPVwia2MtdXBkYXRlLWVtYWlsLWZvcm1cIlxuICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4gICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICA+XG4gICAgICA8a2MtdXNlci1wcm9maWxlLWZvcm0tZmllbGRzIChvbklzRm9ybVN1Ym1pdHRhYmxlKT1cImlzRm9ybVN1Ym1pdHRhYmxlLnNldCgkZXZlbnQpXCI+PC9rYy11c2VyLXByb2ZpbGUtZm9ybS1maWVsZHM+XG4gICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9XCJrYy1mb3JtLW9wdGlvbnNcIlxuICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1PcHRpb25zQ2xhc3MnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybU9wdGlvbnNXcmFwcGVyQ2xhc3MnXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8a2MtbG9nb3V0LW90aGVyLXNlc3Npb25zPjwva2MtbG9nb3V0LW90aGVyLXNlc3Npb25zPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgaWQ9XCJrYy1mb3JtLWJ1dHRvbnNcIlxuICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1CdXR0b25zQ2xhc3MnXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFpc0Zvcm1TdWJtaXR0YWJsZVwiXG4gICAgICAgICAgICBba2NDbGFzc109XCJ7XG4gICAgICAgICAgICAgIGtjQnV0dG9uQ2xhc3M6IHRydWUsXG4gICAgICAgICAgICAgIGtjQnV0dG9uUHJpbWFyeUNsYXNzOiB0cnVlLFxuICAgICAgICAgICAgICBrY0J1dHRvbkJsb2NrQ2xhc3M6IGlzQXBwSW5pdGlhdGVkQWN0aW9uLFxuICAgICAgICAgICAgICBrY0J1dHRvbkxhcmdlQ2xhc3M6IHRydWUsXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgdmFsdWU9XCJ7eyAnZG9TdWJtaXQnIHwgbXNnU3RyIH19XCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIEBpZiAoaXNBcHBJbml0aWF0ZWRBY3Rpb24pIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uRGVmYXVsdENsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgIG5hbWU9XCJjYW5jZWwtYWlhXCJcbiAgICAgICAgICAgICAgdmFsdWU9XCJ0cnVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAge3sgJ2RvQ2FuY2VsJyB8IG1zZ1N0ciB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9uZy1jb250YWluZXI+XG48L2tjLWxvZ2luLXRlbXBsYXRlPlxuIl19
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { ClassKey } from
|
|
2
|
-
import { KcContext } from
|
|
3
|
-
import { ComponentReference } from
|
|
4
|
-
import { MsgStrPipe } from
|
|
5
|
-
import { LoginResourceInjectorService } from
|
|
1
|
+
import { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
2
|
+
import { KcContext } from 'keycloakify/login/KcContext';
|
|
3
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
4
|
+
import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
|
|
5
|
+
import { LoginResourceInjectorService } from '../../../login/services';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
6
7
|
export declare class WebauthnAuthenticateComponent extends ComponentReference {
|
|
7
8
|
kcContext: KcContext.WebauthnAuthenticate;
|
|
8
9
|
loginResourceInjectorService: LoginResourceInjectorService;
|
|
@@ -17,4 +18,6 @@ export declare class WebauthnAuthenticateComponent extends ComponentReference {
|
|
|
17
18
|
authButtonId: string;
|
|
18
19
|
constructor();
|
|
19
20
|
selectAuthListItemIconClass(iconClass: string): string;
|
|
21
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WebauthnAuthenticateComponent, never>;
|
|
22
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<WebauthnAuthenticateComponent, "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>;
|
|
20
23
|
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@angular/core';
|
|
2
|
+
import { CLASSES, KC_CONTEXT, USE_DEFAULT_CSS } from '../../../lib/public-api';
|
|
3
|
+
import { getKcClsx } from 'keycloakify/login/lib/kcClsx';
|
|
4
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
5
|
+
import { LogoutOtherSessionsComponent } from '../../../login/components/logout-other-sessions/logout-other-sessions.component';
|
|
6
|
+
import { TemplateComponent } from '../../../login/containers/template.component';
|
|
7
|
+
import { KcClassDirective } from '../../../login/directives';
|
|
8
|
+
import { AdvancedMsgStrPipe } from '../../../login/pipes/advanced-msg-str.pipe';
|
|
9
|
+
import { MsgStrPipe } from '../../../login/pipes/msg-str.pipe';
|
|
10
|
+
import { LoginResourceInjectorService } from '../../../login/services';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
export class WebauthnAuthenticateComponent extends ComponentReference {
|
|
13
|
+
constructor() {
|
|
14
|
+
super();
|
|
15
|
+
this.kcContext = inject(KC_CONTEXT);
|
|
16
|
+
this.loginResourceInjectorService = inject(LoginResourceInjectorService);
|
|
17
|
+
this.msgStr = inject(MsgStrPipe);
|
|
18
|
+
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
19
|
+
this.classes = inject(CLASSES);
|
|
20
|
+
this.displayRequiredFields = input(false);
|
|
21
|
+
this.documentTitle = input();
|
|
22
|
+
this.bodyClassName = input();
|
|
23
|
+
this.displayInfo = false;
|
|
24
|
+
this.displayMessage = true;
|
|
25
|
+
this.authButtonId = 'authenticateWebAuthnButton';
|
|
26
|
+
const { url, isUserIdentified, challenge, userVerification, rpId, createTimeout } = this.kcContext;
|
|
27
|
+
const scripts = [
|
|
28
|
+
{
|
|
29
|
+
type: 'module',
|
|
30
|
+
id: 'WebAuthnAuthenticateScript',
|
|
31
|
+
textContent: `
|
|
32
|
+
import { authenticateByWebAuthn } from "${url.resourcesPath}/js/webauthnAuthenticate.js";
|
|
33
|
+
const authButton = document.getElementById('${this.authButtonId}');
|
|
34
|
+
authButton.addEventListener("click", function() {
|
|
35
|
+
const input = {
|
|
36
|
+
isUserIdentified : ${isUserIdentified},
|
|
37
|
+
challenge : '${challenge}',
|
|
38
|
+
userVerification : '${userVerification}',
|
|
39
|
+
rpId : '${rpId}',
|
|
40
|
+
createTimeout : ${createTimeout},
|
|
41
|
+
errmsg : ${JSON.stringify(this.msgStr.transform('webauthn-unsupported-browser-text'))}
|
|
42
|
+
};
|
|
43
|
+
authenticateByWebAuthn(input);
|
|
44
|
+
});
|
|
45
|
+
`
|
|
46
|
+
}
|
|
47
|
+
];
|
|
48
|
+
this.loginResourceInjectorService.insertAdditionalScripts(scripts);
|
|
49
|
+
}
|
|
50
|
+
selectAuthListItemIconClass(iconClass) {
|
|
51
|
+
const kcClsx = getKcClsx({
|
|
52
|
+
doUseDefaultCss: this.doUseDefaultCss ?? true,
|
|
53
|
+
classes: this.classes
|
|
54
|
+
}).kcClsx;
|
|
55
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
56
|
+
const className = kcClsx(iconClass);
|
|
57
|
+
if (className === iconClass) {
|
|
58
|
+
return kcClsx('kcWebAuthnDefaultIcon');
|
|
59
|
+
}
|
|
60
|
+
return className;
|
|
61
|
+
}
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: WebauthnAuthenticateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
+
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: [
|
|
64
|
+
MsgStrPipe,
|
|
65
|
+
{
|
|
66
|
+
provide: ComponentReference,
|
|
67
|
+
useExisting: forwardRef(() => WebauthnAuthenticateComponent)
|
|
68
|
+
}
|
|
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 {{ 'webauthn-login-title' | msgStr }}\n </ng-container>\n <ng-container infoNode>\n <div id=\"kc-registration\">\n <span>\n {{ 'noAccount' | msgStr }}\n <a\n tabIndex=\"6\"\n [href]=\"url.registrationUrl\"\n >\n {{ 'doRegister' | msgStr }}\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'\">{{ 'webauthn-available-authenticators' | msgStr }}</p>\n }\n <div [kcClass]=\"'kcFormOptionsClass'\">\n @for (\n authenticator of authenticators.authenticators;\n track authenticator.credentialId;\n let i = $index\n ) {\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 {{ authenticator.label | advancedMsgStr }}\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 {{ displayNameProperty | advancedMsgStr }}\n @if (!last) {\n <span>, </span>\n }\n }\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\">\n <span [id]=\"'kc-webauthn-authenticator-createdlabel-' + i\">\n {{ 'webauthn-createdAt-label' | msgStr }}\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]=\"'webauthn-doAuthenticate' | msgStr\"\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: "pipe", type: MsgStrPipe, name: "msgStr" }, { kind: "pipe", type: AdvancedMsgStrPipe, name: "advancedMsgStr" }, { 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: [
|
|
74
|
+
TemplateComponent,
|
|
75
|
+
MsgStrPipe,
|
|
76
|
+
AdvancedMsgStrPipe,
|
|
77
|
+
KcClassDirective,
|
|
78
|
+
LogoutOtherSessionsComponent
|
|
79
|
+
], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
80
|
+
MsgStrPipe,
|
|
81
|
+
{
|
|
82
|
+
provide: ComponentReference,
|
|
83
|
+
useExisting: forwardRef(() => WebauthnAuthenticateComponent)
|
|
84
|
+
}
|
|
85
|
+
], 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 {{ 'webauthn-login-title' | msgStr }}\n </ng-container>\n <ng-container infoNode>\n <div id=\"kc-registration\">\n <span>\n {{ 'noAccount' | msgStr }}\n <a\n tabIndex=\"6\"\n [href]=\"url.registrationUrl\"\n >\n {{ 'doRegister' | msgStr }}\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'\">{{ 'webauthn-available-authenticators' | msgStr }}</p>\n }\n <div [kcClass]=\"'kcFormOptionsClass'\">\n @for (\n authenticator of authenticators.authenticators;\n track authenticator.credentialId;\n let i = $index\n ) {\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 {{ authenticator.label | advancedMsgStr }}\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 {{ displayNameProperty | advancedMsgStr }}\n @if (!last) {\n <span>, </span>\n }\n }\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\">\n <span [id]=\"'kc-webauthn-authenticator-createdlabel-' + i\">\n {{ 'webauthn-createdAt-label' | msgStr }}\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]=\"'webauthn-doAuthenticate' | msgStr\"\n />\n </div>\n </div>\n </div>\n </ng-container>\n</kc-login-template>\n" }]
|
|
86
|
+
}], ctorParameters: () => [] });
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViYXV0aG4tYXV0aGVudGljYXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL3BhZ2VzL3dlYmF1dGhuLWF1dGhlbnRpY2F0ZS93ZWJhdXRobi1hdXRoZW50aWNhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvd2ViYXV0aG4tYXV0aGVudGljYXRlL3dlYmF1dGhuLWF1dGhlbnRpY2F0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDUixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0gsT0FBTyxFQUNQLFVBQVUsRUFDVixlQUFlLEVBQ2xCLE1BQU0scUNBQXFDLENBQUM7QUFJN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDZGQUE2RixDQUFDO0FBQzNJLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFzQm5GLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxrQkFBa0I7SUFlakU7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWZaLGNBQVMsR0FDTCxNQUFNLENBQThELFVBQVUsQ0FBQyxDQUFDO1FBQ3BGLGlDQUE0QixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQ3BFLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsT0FBTyxDQUFDLENBQUM7UUFDdEUsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFZLElBQUksQ0FBQztRQUUvQixpQkFBWSxHQUFHLDRCQUE0QixDQUFDO1FBSXhDLE1BQU0sRUFDRixHQUFHLEVBQ0gsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsSUFBSSxFQUNKLGFBQWEsRUFDaEIsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ25CLE1BQU0sT0FBTyxHQUFhO1lBQ3RCO2dCQUNJLElBQUksRUFBRSxRQUFRO2dCQUNkLEVBQUUsRUFBRSw0QkFBNEI7Z0JBQ2hDLFdBQVcsRUFBRTt3REFDMkIsR0FBRyxDQUFDLGFBQWE7NERBQ2IsSUFBSSxDQUFDLFlBQVk7OzsyQ0FHbEMsZ0JBQWdCO3FDQUN0QixTQUFTOzRDQUNGLGdCQUFnQjtnQ0FDNUIsSUFBSTt3Q0FDSSxhQUFhO2lDQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7Ozs7V0FJaEc7YUFDRTtTQUNKLENBQUM7UUFDRixJQUFJLENBQUMsNEJBQTRCLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVELDJCQUEyQixDQUFDLFNBQWlCO1FBQ3pDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQztZQUNyQixlQUFlLEVBQUUsSUFBSSxDQUFDLGVBQWUsSUFBSSxJQUFJO1lBQzdDLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztTQUN4QixDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ1YsOERBQThEO1FBQzlELE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFnQixDQUFDLENBQUM7UUFDM0MsSUFBSSxTQUFTLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsT0FBTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzs4R0E1RFEsNkJBQTZCO2tHQUE3Qiw2QkFBNkIsMGdCQVIzQjtZQUNQLFVBQVU7WUFDVjtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDZCQUE2QixDQUFDO2FBQy9EO1NBQ0osaURDMUNMLG1uTEFrS0EsNENEdklRLGlCQUFpQiwrSkFDakIsVUFBVSwwQ0FDVixrQkFBa0IsdURBQ2xCLGdCQUFnQjs7MkZBY1gsNkJBQTZCO2tCQXBCekMsU0FBUztpQ0FDTSxJQUFJLFdBQ1A7d0JBQ0wsaUJBQWlCO3dCQUNqQixVQUFVO3dCQUNWLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQiw0QkFBNEI7cUJBQy9CLFlBQ1MsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQLFVBQVU7d0JBQ1Y7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsOEJBQThCLENBQUM7eUJBQy9EO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgZm9yd2FyZFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIENMQVNTRVMsXG4gICAgS0NfQ09OVEVYVCxcbiAgICBVU0VfREVGQVVMVF9DU1Ncbn0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3B1YmxpYy1hcGknO1xuaW1wb3J0IHsgU2NyaXB0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL21vZGVscyc7XG5pbXBvcnQgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB7IGdldEtjQ2xzeCB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzJztcbmltcG9ydCB7IExvZ291dE90aGVyU2Vzc2lvbnNDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL2xvZ291dC1vdGhlci1zZXNzaW9ucy9sb2dvdXQtb3RoZXItc2Vzc2lvbnMuY29tcG9uZW50JztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQWR2YW5jZWRNc2dTdHJQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vcGlwZXMvYWR2YW5jZWQtbXNnLXN0ci5waXBlJztcbmltcG9ydCB7IE1zZ1N0clBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9waXBlcy9tc2ctc3RyLnBpcGUnO1xuaW1wb3J0IHsgTG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRlbXBsYXRlQ29tcG9uZW50LFxuICAgICAgICBNc2dTdHJQaXBlLFxuICAgICAgICBBZHZhbmNlZE1zZ1N0clBpcGUsXG4gICAgICAgIEtjQ2xhc3NEaXJlY3RpdmUsXG4gICAgICAgIExvZ291dE90aGVyU2Vzc2lvbnNDb21wb25lbnRcbiAgICBdLFxuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICd3ZWJhdXRobi1hdXRoZW50aWNhdGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBNc2dTdHJQaXBlLFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBXZWJhdXRobkF1dGhlbnRpY2F0ZUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgV2ViYXV0aG5BdXRoZW50aWNhdGVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9XG4gICAgICAgIGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICd3ZWJhdXRobi1hdXRoZW50aWNhdGUuZnRsJyB9Pj4oS0NfQ09OVEVYVCk7XG4gICAgbG9naW5SZXNvdXJjZUluamVjdG9yU2VydmljZSA9IGluamVjdChMb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlKTtcbiAgICBtc2dTdHIgPSBpbmplY3QoTXNnU3RyUGlwZSk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KENMQVNTRVMpO1xuICAgIGRpc3BsYXlSZXF1aXJlZEZpZWxkcyA9IGlucHV0KGZhbHNlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgZGlzcGxheUluZm86IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBkaXNwbGF5TWVzc2FnZTogYm9vbGVhbiA9IHRydWU7XG5cbiAgICBhdXRoQnV0dG9uSWQgPSAnYXV0aGVudGljYXRlV2ViQXV0aG5CdXR0b24nO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICAgIHVybCxcbiAgICAgICAgICAgIGlzVXNlcklkZW50aWZpZWQsXG4gICAgICAgICAgICBjaGFsbGVuZ2UsXG4gICAgICAgICAgICB1c2VyVmVyaWZpY2F0aW9uLFxuICAgICAgICAgICAgcnBJZCxcbiAgICAgICAgICAgIGNyZWF0ZVRpbWVvdXRcbiAgICAgICAgfSA9IHRoaXMua2NDb250ZXh0O1xuICAgICAgICBjb25zdCBzY3JpcHRzOiBTY3JpcHRbXSA9IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICB0eXBlOiAnbW9kdWxlJyxcbiAgICAgICAgICAgICAgICBpZDogJ1dlYkF1dGhuQXV0aGVudGljYXRlU2NyaXB0JyxcbiAgICAgICAgICAgICAgICB0ZXh0Q29udGVudDogYFxuICAgICAgICAgICAgICBpbXBvcnQgeyBhdXRoZW50aWNhdGVCeVdlYkF1dGhuIH0gZnJvbSBcIiR7dXJsLnJlc291cmNlc1BhdGh9L2pzL3dlYmF1dGhuQXV0aGVudGljYXRlLmpzXCI7XG4gICAgICAgICAgICAgIGNvbnN0IGF1dGhCdXR0b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnJHt0aGlzLmF1dGhCdXR0b25JZH0nKTtcbiAgICAgICAgICAgICAgYXV0aEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICBjb25zdCBpbnB1dCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICBpc1VzZXJJZGVudGlmaWVkIDogJHtpc1VzZXJJZGVudGlmaWVkfSxcbiAgICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2UgOiAnJHtjaGFsbGVuZ2V9JyxcbiAgICAgICAgICAgICAgICAgICAgICB1c2VyVmVyaWZpY2F0aW9uIDogJyR7dXNlclZlcmlmaWNhdGlvbn0nLFxuICAgICAgICAgICAgICAgICAgICAgIHJwSWQgOiAnJHtycElkfScsXG4gICAgICAgICAgICAgICAgICAgICAgY3JlYXRlVGltZW91dCA6ICR7Y3JlYXRlVGltZW91dH0sXG4gICAgICAgICAgICAgICAgICAgICAgZXJybXNnIDogJHtKU09OLnN0cmluZ2lmeSh0aGlzLm1zZ1N0ci50cmFuc2Zvcm0oJ3dlYmF1dGhuLXVuc3VwcG9ydGVkLWJyb3dzZXItdGV4dCcpKX1cbiAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICBhdXRoZW50aWNhdGVCeVdlYkF1dGhuKGlucHV0KTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgYFxuICAgICAgICAgICAgfVxuICAgICAgICBdO1xuICAgICAgICB0aGlzLmxvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UuaW5zZXJ0QWRkaXRpb25hbFNjcmlwdHMoc2NyaXB0cyk7XG4gICAgfVxuXG4gICAgc2VsZWN0QXV0aExpc3RJdGVtSWNvbkNsYXNzKGljb25DbGFzczogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IGtjQ2xzeCA9IGdldEtjQ2xzeCh7XG4gICAgICAgICAgICBkb1VzZURlZmF1bHRDc3M6IHRoaXMuZG9Vc2VEZWZhdWx0Q3NzID8/IHRydWUsXG4gICAgICAgICAgICBjbGFzc2VzOiB0aGlzLmNsYXNzZXNcbiAgICAgICAgfSkua2NDbHN4O1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgICBjb25zdCBjbGFzc05hbWUgPSBrY0Nsc3goaWNvbkNsYXNzIGFzIGFueSk7XG4gICAgICAgIGlmIChjbGFzc05hbWUgPT09IGljb25DbGFzcykge1xuICAgICAgICAgICAgcmV0dXJuIGtjQ2xzeCgna2NXZWJBdXRobkRlZmF1bHRJY29uJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGNsYXNzTmFtZTtcbiAgICB9XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGF1dGhlbnRpY2F0b3JzID0ga2NDb250ZXh0LmF1dGhlbnRpY2F0b3JzO1xuQGxldCBzaG91bGREaXNwbGF5QXV0aGVudGljYXRvcnMgPSBrY0NvbnRleHQuc2hvdWxkRGlzcGxheUF1dGhlbnRpY2F0b3JzO1xuXG48a2MtbG9naW4tdGVtcGxhdGVcbiAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgW2JvZHlDbGFzc05hbWVdPVwiYm9keUNsYXNzTmFtZSgpXCJcbiAgW2Rpc3BsYXlNZXNzYWdlXT1cImRpc3BsYXlNZXNzYWdlXCJcbiAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gIFtkb2N1bWVudFRpdGxlXT1cImRvY3VtZW50VGl0bGUoKVwiXG4+XG4gIDxuZy1jb250YWluZXIgaGVhZGVyTm9kZT5cbiAgICB7eyAnd2ViYXV0aG4tbG9naW4tdGl0bGUnIHwgbXNnU3RyIH19XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctY29udGFpbmVyIGluZm9Ob2RlPlxuICAgIDxkaXYgaWQ9XCJrYy1yZWdpc3RyYXRpb25cIj5cbiAgICAgIDxzcGFuPlxuICAgICAgICB7eyAnbm9BY2NvdW50JyB8IG1zZ1N0ciB9fVxuICAgICAgICA8YVxuICAgICAgICAgIHRhYkluZGV4PVwiNlwiXG4gICAgICAgICAgW2hyZWZdPVwidXJsLnJlZ2lzdHJhdGlvblVybFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyAnZG9SZWdpc3RlcicgfCBtc2dTdHIgfX1cbiAgICAgICAgPC9hPlxuICAgICAgPC9zcGFuPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgIDxkaXZcbiAgICAgIGlkPVwia2MtZm9ybS13ZWJhdXRoblwiXG4gICAgICBba2NDbGFzc109XCIna2NGb3JtQ2xhc3MnXCJcbiAgICA+XG4gICAgICA8Zm9ybVxuICAgICAgICBpZD1cIndlYmF1dGhcIlxuICAgICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICBpZD1cImNsaWVudERhdGFKU09OXCJcbiAgICAgICAgICBuYW1lPVwiY2xpZW50RGF0YUpTT05cIlxuICAgICAgICAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICBpZD1cImF1dGhlbnRpY2F0b3JEYXRhXCJcbiAgICAgICAgICBuYW1lPVwiYXV0aGVudGljYXRvckRhdGFcIlxuICAgICAgICAvPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICBpZD1cInNpZ25hdHVyZVwiXG4gICAgICAgICAgbmFtZT1cInNpZ25hdHVyZVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgIGlkPVwiY3JlZGVudGlhbElkXCJcbiAgICAgICAgICBuYW1lPVwiY3JlZGVudGlhbElkXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgaWQ9XCJ1c2VySGFuZGxlXCJcbiAgICAgICAgICBuYW1lPVwidXNlckhhbmRsZVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgIGlkPVwiZXJyb3JcIlxuICAgICAgICAgIG5hbWU9XCJlcnJvclwiXG4gICAgICAgIC8+XG4gICAgICA8L2Zvcm0+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJuby1ib3R0b20tbWFyZ2luXCJcbiAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCJcbiAgICAgID5cbiAgICAgICAgQGlmIChhdXRoZW50aWNhdG9ycykge1xuICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICBpZD1cImF1dGhuX3NlbGVjdFwiXG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQ2xhc3MnXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBAZm9yIChhdXRoZW50aWNhdG9yIG9mIGF1dGhlbnRpY2F0b3JzLmF1dGhlbnRpY2F0b3JzOyB0cmFjayBhdXRoZW50aWNhdG9yLmNyZWRlbnRpYWxJZCkge1xuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiYXV0aG5fdXNlX2Noa1wiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cImF1dGhlbnRpY2F0b3IuY3JlZGVudGlhbElkXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBpZiAoc2hvdWxkRGlzcGxheUF1dGhlbnRpY2F0b3JzKSB7XG4gICAgICAgICAgICAgIEBpZiAoYXV0aGVudGljYXRvcnMuYXV0aGVudGljYXRvcnMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgIDxwIFtrY0NsYXNzXT1cIidrY1NlbGVjdEF1dGhMaXN0SXRlbVRpdGxlJ1wiPnt7ICd3ZWJhdXRobi1hdmFpbGFibGUtYXV0aGVudGljYXRvcnMnIHwgbXNnU3RyIH19PC9wPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybU9wdGlvbnNDbGFzcydcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChcbiAgICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3Igb2YgYXV0aGVudGljYXRvcnMuYXV0aGVudGljYXRvcnM7XG4gICAgICAgICAgICAgICAgICB0cmFjayBhdXRoZW50aWNhdG9yLmNyZWRlbnRpYWxJZDtcbiAgICAgICAgICAgICAgICAgIGxldCBpID0gJGluZGV4XG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIFtpZF09XCIna2Mtd2ViYXV0aG4tYXV0aGVudGljYXRvci1pdGVtLScgKyBpXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1JY29uQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlbGVjdEF1dGhMaXN0SXRlbUljb25DbGFzcyhhdXRoZW50aWNhdG9yLnRyYW5zcG9ydHMuaWNvbkNsYXNzKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1JY29uUHJvcGVydHlDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgID48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1BcnJvd0ljb25DbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidrYy13ZWJhdXRobi1hdXRoZW50aWNhdG9yLWxhYmVsLScgKyBpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtSGVhZGluZ0NsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGF1dGhlbnRpY2F0b3IubGFiZWwgfCBhZHZhbmNlZE1zZ1N0ciB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGF1dGhlbnRpY2F0b3IudHJhbnNwb3J0cy5kaXNwbGF5TmFtZVByb3BlcnRpZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidrYy13ZWJhdXRobi1hdXRoZW50aWNhdG9yLXRyYW5zcG9ydC0nICsgaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtRGVzY3JpcHRpb25DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFtZVByb3BlcnR5IG9mIGF1dGhlbnRpY2F0b3IudHJhbnNwb3J0cy5kaXNwbGF5TmFtZVByb3BlcnRpZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFjayBkaXNwbGF5TmFtZVByb3BlcnR5O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxhc3QgPSAkbGFzdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZGlzcGxheU5hbWVQcm9wZXJ0eSB8IGFkdmFuY2VkTXNnU3RyIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFsYXN0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPiwgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjU2VsZWN0QXV0aExpc3RJdGVtRGVzY3JpcHRpb25DbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaWRdPVwiJ2tjLXdlYmF1dGhuLWF1dGhlbnRpY2F0b3ItY3JlYXRlZGxhYmVsLScgKyBpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAnd2ViYXV0aG4tY3JlYXRlZEF0LWxhYmVsJyB8IG1zZ1N0ciB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBbaWRdPVwiJ2tjLXdlYmF1dGhuLWF1dGhlbnRpY2F0b3ItY3JlYXRlZC0nICsgaVwiPnt7IGF1dGhlbnRpY2F0b3IuY3JlYXRlZEF0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NTZWxlY3RBdXRoTGlzdEl0ZW1GaWxsQ2xhc3MnXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2XG4gICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUJ1dHRvbnNDbGFzcydcIlxuICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgW2lkXT1cImF1dGhCdXR0b25JZFwiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGF1dG9mb2N1c1xuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uRGVmYXVsdENsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICBpZD1cImNhbmNlbFdlYkF1dGhuQUlBXCJcbiAgICAgICAgICAgIG5hbWU9XCJjYW5jZWwtYWlhXCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCInd2ViYXV0aG4tZG9BdXRoZW50aWNhdGUnIHwgbXNnU3RyXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ClassKey } from
|
|
2
|
-
import { KcContext } from
|
|
3
|
-
import { ComponentReference } from
|
|
1
|
+
import { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
2
|
+
import { KcContext } from 'keycloakify/login/KcContext';
|
|
3
|
+
import { ComponentReference } from '../../../login/classes/component-reference.class';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class WebauthnErrorComponent extends ComponentReference {
|
|
5
6
|
kcContext: KcContext.WebauthnError;
|
|
6
7
|
doUseDefaultCss: boolean;
|
|
@@ -11,4 +12,6 @@ export declare class WebauthnErrorComponent extends ComponentReference {
|
|
|
11
12
|
displayInfo: boolean;
|
|
12
13
|
displayMessage: boolean;
|
|
13
14
|
onClick(): void;
|
|
15
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<WebauthnErrorComponent, never>;
|
|
16
|
+
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
17
|
}
|