@keycloakify/angular 20.1.12 → 21.0.0-rc.1
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/bin/187.index.js +31 -34
- package/bin/{247.index.js → 343.index.js} +362 -233
- package/bin/476.index.js +28 -48
- package/bin/671.index.js +169 -192
- package/bin/942.index.js +180 -200
- package/bin/index.js +17 -71
- package/fesm2022/keycloakify-angular-account-DefaultPage.mjs +16 -7
- package/fesm2022/keycloakify-angular-account-DefaultPage.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-classes-component-reference.mjs +2 -0
- package/fesm2022/keycloakify-angular-account-classes-component-reference.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs +4 -3
- package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-account.mjs +3 -3
- package/fesm2022/keycloakify-angular-account-pages-account.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-applications.mjs +3 -3
- package/fesm2022/keycloakify-angular-account-pages-applications.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs +3 -3
- package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-log.mjs +3 -3
- package/fesm2022/keycloakify-angular-account-pages-log.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-password.mjs +10 -10
- package/fesm2022/keycloakify-angular-account-pages-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-sessions.mjs +3 -3
- package/fesm2022/keycloakify-angular-account-pages-sessions.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-totp.mjs +3 -3
- package/fesm2022/keycloakify-angular-account-pages-totp.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs +4 -3
- package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-services-i18n.mjs +3 -3
- package/fesm2022/keycloakify-angular-account-services-i18n.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-template.mjs +7 -6
- package/fesm2022/keycloakify-angular-account-template.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs +4 -4
- package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs +3 -3
- package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs +3 -3
- package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs +3 -3
- package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs +3 -3
- package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs +3 -3
- package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs +4 -3
- package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +8 -8
- package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-field-errors.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-components-field-errors.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-group-label.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-components-group-label.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs +8 -7
- package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs +8 -8
- package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-input-tag.mjs +10 -9
- package/fesm2022/keycloakify-angular-login-components-input-tag.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs +5 -5
- package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-select-tag.mjs +8 -8
- package/fesm2022/keycloakify-angular-login-components-select-tag.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-code.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-code.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-error.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-error.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs +7 -7
- package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +8 -8
- package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-info.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-info.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +7 -7
- package/fesm2022/keycloakify-angular-login-pages-login-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +7 -7
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +9 -8
- package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +7 -7
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login.mjs +10 -11
- package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-register.mjs +10 -9
- package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs +7 -7
- package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-terms.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-terms.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +9 -8
- package/fesm2022/keycloakify-angular-login-pages-update-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-services-i18n.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-services-i18n.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-template.mjs +11 -10
- package/fesm2022/keycloakify-angular-login-template.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login.mjs +1 -1
- package/fesm2022/keycloakify-angular-login.mjs.map +1 -1
- package/package.json +98 -98
- package/src/account/DefaultPage.ts +30 -23
- package/src/account/classes/component-reference/component-reference.class.ts +1 -1
- package/src/account/directives/kc-class/kc-class.directive.ts +2 -2
- package/src/account/services/account-resource-injector/account-resource-injector.service.ts +1 -1
- package/src/account/template/template.component.ts +4 -4
- package/src/eslint.config.js +2 -2
- package/src/lib/pipes/input-type/input-type.pipe.ts +1 -1
- package/src/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.ts +1 -1
- package/src/lib/pipes/kc-sanitize/kc-sanitize.pipe.ts +6 -6
- package/src/lib/pipes/to-array/to-array.pipe.ts +1 -1
- package/src/lib/pipes/to-number/to-number.pipe.ts +1 -1
- package/src/lib/services/resource-injector/resource-injector.service.ts +2 -2
- package/src/login/components/input-field-by-type/input-field-by-type.component.ts +1 -1
- package/src/login/components/input-tag/input-tag.component.ts +1 -1
- package/src/login/components/input-tag-selects/input-tag-selects.component.ts +1 -1
- package/src/login/components/password-wrapper/password-wrapper.component.ts +1 -1
- package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.ts +1 -1
- package/src/login/defaultPage.ts +19 -19
- package/src/login/directives/kc-class/kc-class.directive.ts +1 -1
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +1 -1
- package/src/login/pages/login/login.component.ts +2 -2
- package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +1 -1
- package/src/login/pages/login-update-profile/login-update-profile.component.ts +2 -2
- package/src/login/pages/register/register.component.ts +4 -4
- package/src/login/pages/saml-post-form/saml-post-form.component.ts +10 -1
- package/src/login/pages/update-email/update-email.component.ts +2 -2
- package/src/login/services/user-profile-form/user-profile-form.service.ts +3 -3
- package/src/login/template/template.component.ts +2 -2
- package/{account/DefaultPage/index.d.ts → types/keycloakify-angular-account-DefaultPage.d.ts} +1 -1
- /package/{account/KcContext/index.d.ts → types/keycloakify-angular-account-KcContext.d.ts} +0 -0
- /package/{account/classes/component-reference/index.d.ts → types/keycloakify-angular-account-classes-component-reference.d.ts} +0 -0
- /package/{account/directives/kc-class/index.d.ts → types/keycloakify-angular-account-directives-kc-class.d.ts} +0 -0
- /package/{account/i18n/index.d.ts → types/keycloakify-angular-account-i18n.d.ts} +0 -0
- /package/{account/pages/account/index.d.ts → types/keycloakify-angular-account-pages-account.d.ts} +0 -0
- /package/{account/pages/applications/index.d.ts → types/keycloakify-angular-account-pages-applications.d.ts} +0 -0
- /package/{account/pages/federatedIdentity/index.d.ts → types/keycloakify-angular-account-pages-federatedIdentity.d.ts} +0 -0
- /package/{account/pages/log/index.d.ts → types/keycloakify-angular-account-pages-log.d.ts} +0 -0
- /package/{account/pages/password/index.d.ts → types/keycloakify-angular-account-pages-password.d.ts} +0 -0
- /package/{account/pages/sessions/index.d.ts → types/keycloakify-angular-account-pages-sessions.d.ts} +0 -0
- /package/{account/pages/totp/index.d.ts → types/keycloakify-angular-account-pages-totp.d.ts} +0 -0
- /package/{account/providers/keycloakify-angular/index.d.ts → types/keycloakify-angular-account-providers-keycloakify-angular.d.ts} +0 -0
- /package/{account/services/account-resource-injector/index.d.ts → types/keycloakify-angular-account-services-account-resource-injector.d.ts} +0 -0
- /package/{account/services/i18n/index.d.ts → types/keycloakify-angular-account-services-i18n.d.ts} +0 -0
- /package/{account/template/index.d.ts → types/keycloakify-angular-account-template.d.ts} +0 -0
- /package/{account/tokens/classes/index.d.ts → types/keycloakify-angular-account-tokens-classes.d.ts} +0 -0
- /package/{account/tokens/i18n/index.d.ts → types/keycloakify-angular-account-tokens-i18n.d.ts} +0 -0
- /package/{account/tokens/kc-context/index.d.ts → types/keycloakify-angular-account-tokens-kc-context.d.ts} +0 -0
- /package/{account/index.d.ts → types/keycloakify-angular-account.d.ts} +0 -0
- /package/{lib/directives/attributes/index.d.ts → types/keycloakify-angular-lib-directives-attributes.d.ts} +0 -0
- /package/{lib/models/script/index.d.ts → types/keycloakify-angular-lib-models-script.d.ts} +0 -0
- /package/{lib/pipes/input-type/index.d.ts → types/keycloakify-angular-lib-pipes-input-type.d.ts} +0 -0
- /package/{lib/pipes/is-array-with-empty-object/index.d.ts → types/keycloakify-angular-lib-pipes-is-array-with-empty-object.d.ts} +0 -0
- /package/{lib/pipes/kc-sanitize/index.d.ts → types/keycloakify-angular-lib-pipes-kc-sanitize.d.ts} +0 -0
- /package/{lib/pipes/to-array/index.d.ts → types/keycloakify-angular-lib-pipes-to-array.d.ts} +0 -0
- /package/{lib/pipes/to-number/index.d.ts → types/keycloakify-angular-lib-pipes-to-number.d.ts} +0 -0
- /package/{lib/services/resource-injector/index.d.ts → types/keycloakify-angular-lib-services-resource-injector.d.ts} +0 -0
- /package/{lib/tokens/use-default-css/index.d.ts → types/keycloakify-angular-lib-tokens-use-default-css.d.ts} +0 -0
- /package/{lib/index.d.ts → types/keycloakify-angular-lib.d.ts} +0 -0
- /package/{login/KcContext/index.d.ts → types/keycloakify-angular-login-KcContext.d.ts} +0 -0
- /package/{login/classes/component-reference/index.d.ts → types/keycloakify-angular-login-classes-component-reference.d.ts} +0 -0
- /package/{login/components/add-remove-buttons-multi-valued-attribute/index.d.ts → types/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.d.ts} +0 -0
- /package/{login/components/field-errors/index.d.ts → types/keycloakify-angular-login-components-field-errors.d.ts} +0 -0
- /package/{login/components/group-label/index.d.ts → types/keycloakify-angular-login-components-group-label.d.ts} +0 -0
- /package/{login/components/input-field-by-type/index.d.ts → types/keycloakify-angular-login-components-input-field-by-type.d.ts} +0 -0
- /package/{login/components/input-tag-selects/index.d.ts → types/keycloakify-angular-login-components-input-tag-selects.d.ts} +0 -0
- /package/{login/components/input-tag/index.d.ts → types/keycloakify-angular-login-components-input-tag.d.ts} +0 -0
- /package/{login/components/logout-other-sessions/index.d.ts → types/keycloakify-angular-login-components-logout-other-sessions.d.ts} +0 -0
- /package/{login/components/password-wrapper/index.d.ts → types/keycloakify-angular-login-components-password-wrapper.d.ts} +0 -0
- /package/{login/components/select-tag/index.d.ts → types/keycloakify-angular-login-components-select-tag.d.ts} +0 -0
- /package/{login/components/textarea-tag/index.d.ts → types/keycloakify-angular-login-components-textarea-tag.d.ts} +0 -0
- /package/{login/components/user-profile-form-fields/index.d.ts → types/keycloakify-angular-login-components-user-profile-form-fields.d.ts} +0 -0
- /package/{login/directives/kc-class/index.d.ts → types/keycloakify-angular-login-directives-kc-class.d.ts} +0 -0
- /package/{login/i18n/index.d.ts → types/keycloakify-angular-login-i18n.d.ts} +0 -0
- /package/{login/pages/code/index.d.ts → types/keycloakify-angular-login-pages-code.d.ts} +0 -0
- /package/{login/pages/delete-account-confirm/index.d.ts → types/keycloakify-angular-login-pages-delete-account-confirm.d.ts} +0 -0
- /package/{login/pages/delete-credential/index.d.ts → types/keycloakify-angular-login-pages-delete-credential.d.ts} +0 -0
- /package/{login/pages/error/index.d.ts → types/keycloakify-angular-login-pages-error.d.ts} +0 -0
- /package/{login/pages/frontchannel-logout/index.d.ts → types/keycloakify-angular-login-pages-frontchannel-logout.d.ts} +0 -0
- /package/{login/pages/idp-review-user-profile/index.d.ts → types/keycloakify-angular-login-pages-idp-review-user-profile.d.ts} +0 -0
- /package/{login/pages/info/index.d.ts → types/keycloakify-angular-login-pages-info.d.ts} +0 -0
- /package/{login/pages/login-config-totp/index.d.ts → types/keycloakify-angular-login-pages-login-config-totp.d.ts} +0 -0
- /package/{login/pages/login-idp-link-confirm-override/index.d.ts → types/keycloakify-angular-login-pages-login-idp-link-confirm-override.d.ts} +0 -0
- /package/{login/pages/login-idp-link-confirm/index.d.ts → types/keycloakify-angular-login-pages-login-idp-link-confirm.d.ts} +0 -0
- /package/{login/pages/login-idp-link-email/index.d.ts → types/keycloakify-angular-login-pages-login-idp-link-email.d.ts} +0 -0
- /package/{login/pages/login-oauth-grant/index.d.ts → types/keycloakify-angular-login-pages-login-oauth-grant.d.ts} +0 -0
- /package/{login/pages/login-oauth2-device-verify-user-code/index.d.ts → types/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.d.ts} +0 -0
- /package/{login/pages/login-otp/index.d.ts → types/keycloakify-angular-login-pages-login-otp.d.ts} +0 -0
- /package/{login/pages/login-page-expired/index.d.ts → types/keycloakify-angular-login-pages-login-page-expired.d.ts} +0 -0
- /package/{login/pages/login-passkeys-conditional-authenticate/index.d.ts → types/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.d.ts} +0 -0
- /package/{login/pages/login-password/index.d.ts → types/keycloakify-angular-login-pages-login-password.d.ts} +0 -0
- /package/{login/pages/login-recovery-authn-code-config/index.d.ts → types/keycloakify-angular-login-pages-login-recovery-authn-code-config.d.ts} +0 -0
- /package/{login/pages/login-recovery-authn-code-input/index.d.ts → types/keycloakify-angular-login-pages-login-recovery-authn-code-input.d.ts} +0 -0
- /package/{login/pages/login-reset-otp/index.d.ts → types/keycloakify-angular-login-pages-login-reset-otp.d.ts} +0 -0
- /package/{login/pages/login-reset-password/index.d.ts → types/keycloakify-angular-login-pages-login-reset-password.d.ts} +0 -0
- /package/{login/pages/login-update-password/index.d.ts → types/keycloakify-angular-login-pages-login-update-password.d.ts} +0 -0
- /package/{login/pages/login-update-profile/index.d.ts → types/keycloakify-angular-login-pages-login-update-profile.d.ts} +0 -0
- /package/{login/pages/login-username/index.d.ts → types/keycloakify-angular-login-pages-login-username.d.ts} +0 -0
- /package/{login/pages/login-verify-email/index.d.ts → types/keycloakify-angular-login-pages-login-verify-email.d.ts} +0 -0
- /package/{login/pages/login-x509-info/index.d.ts → types/keycloakify-angular-login-pages-login-x509-info.d.ts} +0 -0
- /package/{login/pages/login/index.d.ts → types/keycloakify-angular-login-pages-login.d.ts} +0 -0
- /package/{login/pages/logout-confirm/index.d.ts → types/keycloakify-angular-login-pages-logout-confirm.d.ts} +0 -0
- /package/{login/pages/register/index.d.ts → types/keycloakify-angular-login-pages-register.d.ts} +0 -0
- /package/{login/pages/saml-post-form/index.d.ts → types/keycloakify-angular-login-pages-saml-post-form.d.ts} +0 -0
- /package/{login/pages/select-authenticator/index.d.ts → types/keycloakify-angular-login-pages-select-authenticator.d.ts} +0 -0
- /package/{login/pages/terms/index.d.ts → types/keycloakify-angular-login-pages-terms.d.ts} +0 -0
- /package/{login/pages/update-email/index.d.ts → types/keycloakify-angular-login-pages-update-email.d.ts} +0 -0
- /package/{login/pages/webauthn-authenticate/index.d.ts → types/keycloakify-angular-login-pages-webauthn-authenticate.d.ts} +0 -0
- /package/{login/pages/webauthn-error/index.d.ts → types/keycloakify-angular-login-pages-webauthn-error.d.ts} +0 -0
- /package/{login/pages/webauthn-register/index.d.ts → types/keycloakify-angular-login-pages-webauthn-register.d.ts} +0 -0
- /package/{login/providers/keycloakify-angular/index.d.ts → types/keycloakify-angular-login-providers-keycloakify-angular.d.ts} +0 -0
- /package/{login/services/i18n/index.d.ts → types/keycloakify-angular-login-services-i18n.d.ts} +0 -0
- /package/{login/services/login-resource-injector/index.d.ts → types/keycloakify-angular-login-services-login-resource-injector.d.ts} +0 -0
- /package/{login/services/user-profile-form/index.d.ts → types/keycloakify-angular-login-services-user-profile-form.d.ts} +0 -0
- /package/{login/template/index.d.ts → types/keycloakify-angular-login-template.d.ts} +0 -0
- /package/{login/tokens/classes/index.d.ts → types/keycloakify-angular-login-tokens-classes.d.ts} +0 -0
- /package/{login/tokens/i18n/index.d.ts → types/keycloakify-angular-login-tokens-i18n.d.ts} +0 -0
- /package/{login/tokens/kc-context/index.d.ts → types/keycloakify-angular-login-tokens-kc-context.d.ts} +0 -0
- /package/{login/tokens/make-user-confirm-password/index.d.ts → types/keycloakify-angular-login-tokens-make-user-confirm-password.d.ts} +0 -0
- /package/{login/index.d.ts → types/keycloakify-angular-login.d.ts} +0 -0
- /package/{index.d.ts → types/keycloakify-angular.d.ts} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-login-pages-login-x509-info.mjs","sources":["../../src/login/pages/login-x509-info/login-x509-info.component.ts","../../src/login/pages/login-x509-info/login-x509-info.component.html","../../src/login/pages/login-x509-info/keycloakify-angular-login-pages-login-x509-info.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n imports: [KcClassDirective],\n selector: 'kc-login-x509-info',\n templateUrl: 'login-x509-info.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => LoginX509InfoComponent)\n }\n ]\n})\nexport class LoginX509InfoComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'login-x509-info.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = false;\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n}\n","@let url = kcContext.url;\n@let x509 = kcContext.x509;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('doLogIn') }}\n</ng-template>\n<form\n id=\"kc-x509-login-info\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('clientCertificate') }}\n </label>\n </div>\n @if (x509.formData.subjectDN) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ x509.formData.subjectDN }}\n </label>\n </div>\n } @else {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('noCertificate') }}\n </label>\n </div>\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n @if (x509.formData.isUserEnabled) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('doX509Login') }}\n </label>\n </div>\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ x509.formData.username }}\n </label>\n </div>\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doContinue')\"\n />\n @if (x509.formData.isUserEnabled) {\n <input\n name=\"cancel\"\n id=\"kc-cancel\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doIgnore')\"\n />\n }\n </div>\n </div>\n </div>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AAuBM,MAAO,sBAAuB,SAAQ,kBAAkB,CAAA;AAZ9D,IAAA,WAAA,GAAA;;AAaI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAwD,gBAAgB,CAAC;AAC3F,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC;AACtB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,aAAa,CAAC;QAK3E,
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-login-pages-login-x509-info.mjs","sources":["../../src/login/pages/login-x509-info/login-x509-info.component.ts","../../src/login/pages/login-x509-info/login-x509-info.component.html","../../src/login/pages/login-x509-info/keycloakify-angular-login-pages-login-x509-info.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n imports: [KcClassDirective],\n selector: 'kc-login-x509-info',\n templateUrl: 'login-x509-info.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => LoginX509InfoComponent)\n }\n ]\n})\nexport class LoginX509InfoComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'login-x509-info.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = false;\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n}\n","@let url = kcContext.url;\n@let x509 = kcContext.x509;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('doLogIn') }}\n</ng-template>\n<form\n id=\"kc-x509-login-info\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('clientCertificate') }}\n </label>\n </div>\n @if (x509.formData.subjectDN) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ x509.formData.subjectDN }}\n </label>\n </div>\n } @else {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"certificate_subjectDN\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('noCertificate') }}\n </label>\n </div>\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n @if (x509.formData.isUserEnabled) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('doX509Login') }}\n </label>\n </div>\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n id=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ x509.formData.username }}\n </label>\n </div>\n }\n </div>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <div [kcClass]=\"'kcFormButtonsWrapperClass'\">\n <input\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doContinue')\"\n />\n @if (x509.formData.isUserEnabled) {\n <input\n name=\"cancel\"\n id=\"kc-cancel\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doIgnore')\"\n />\n }\n </div>\n </div>\n </div>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
3
2
|
import * as i0 from '@angular/core';
|
|
4
3
|
import { inject, viewChild, signal, forwardRef, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
5
4
|
import { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';
|
|
@@ -21,22 +20,22 @@ class LoginComponent extends ComponentReference {
|
|
|
21
20
|
this.displayRequiredFields = false;
|
|
22
21
|
this.displayInfo = !!this.kcContext?.realm?.password && !!this.kcContext?.realm?.registrationAllowed && !this.kcContext?.registrationDisabled;
|
|
23
22
|
this.displayMessage = !this.kcContext?.messagesPerField?.existsError('username', 'password');
|
|
24
|
-
this.headerNode = viewChild('headerNode', ...(ngDevMode ?
|
|
25
|
-
this.infoNode = viewChild('infoNode', ...(ngDevMode ?
|
|
26
|
-
this.socialProvidersNode = viewChild('socialProvidersNode', ...(ngDevMode ?
|
|
27
|
-
this.isLoginButtonDisabled = signal(false, ...(ngDevMode ?
|
|
23
|
+
this.headerNode = viewChild('headerNode', { ...(ngDevMode ? { debugName: "headerNode" } : {}) });
|
|
24
|
+
this.infoNode = viewChild('infoNode', { ...(ngDevMode ? { debugName: "infoNode" } : {}) });
|
|
25
|
+
this.socialProvidersNode = viewChild('socialProvidersNode', { ...(ngDevMode ? { debugName: "socialProvidersNode" } : {}) });
|
|
26
|
+
this.isLoginButtonDisabled = signal(false, { ...(ngDevMode ? { debugName: "isLoginButtonDisabled" } : {}) });
|
|
28
27
|
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
30
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: LoginComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.1", type: LoginComponent, isStandalone: true, selector: "kc-login", providers: [
|
|
31
30
|
{
|
|
32
31
|
provide: ComponentReference,
|
|
33
32
|
useExisting: forwardRef(() => LoginComponent)
|
|
34
33
|
}
|
|
35
|
-
], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let realm = kcContext.realm;\n@let usernameHidden = kcContext.usernameHidden;\n@let auth = kcContext.auth;\n@let messagesPerField = kcContext.messagesPerField;\n@let url = kcContext.url;\n@let login = kcContext.login;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginAccountTitle') }}\n</ng-template>\n<ng-template #infoNode>\n @let url = kcContext.url;\n <div id=\"kc-registration-container\">\n <div id=\"kc-registration\">\n <span>\n {{ i18n.msgStr('noAccount') }}\n <a\n tabindex=\"8\"\n [href]=\"url?.registrationUrl\"\n >\n {{ i18n.msgStr('doRegister') }}\n </a>\n </span>\n </div>\n </div>\n</ng-template>\n<ng-template #socialProvidersNode>\n @let realm = kcContext.realm;\n @let social = kcContext.social;\n @if (!!realm?.password && !!social?.providers?.length) {\n <div\n id=\"kc-social-providers\"\n [kcClass]=\"'kcFormSocialAccountSectionClass'\"\n >\n <hr />\n <h2>{{ i18n.msgStr('identity-provider-login-label') }}</h2>\n <ul\n [kcClass]=\"{\n kcFormSocialAccountListClass: true,\n kcFormSocialAccountListGridClass: (social?.providers?.length ?? 0) > 3\n }\"\n >\n @for (provider of social?.providers; track provider.alias; let idx = $index) {\n <li>\n <a\n type=\"button\"\n [id]=\"provider.alias\"\n [kcClass]=\"{\n kcFormSocialAccountListButtonClass: true,\n kcFormSocialAccountGridItem: (social?.providers?.length ?? 0) > 3\n }\"\n [href]=\"provider.loginUrl\"\n >\n @if (provider.iconClasses) {\n <i\n aria-hidden=\"true\"\n [ngClass]=\"provider.iconClasses\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n ></i>\n }\n <span\n [ngClass]=\"{\n 'kc-social-icon-text': provider.iconClasses\n }\"\n [kcClass]=\"'kcFormSocialAccountNameClass'\"\n [innerHTML]=\"provider.displayName | kcSanitize: 'html'\"\n ></span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n</ng-template>\n<div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n <!-- login.component.html -->\n @if (realm?.password) {\n <form\n id=\"kc-form-login\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n @if (!realm?.loginWithEmailAllowed) {\n {{ i18n.msgStr('username') }}\n } @else if (!realm?.registrationEmailAsUsername) {\n {{ i18n.msgStr('usernameOrEmail') }}\n } @else {\n {{ i18n.msgStr('email') }}\n }\n </label>\n <input\n tabindex=\"2\"\n id=\"username\"\n name=\"username\"\n type=\"text\"\n autofocus\n autocomplete=\"username\"\n [kcClass]=\"'kcInputClass'\"\n [defaultValue]=\"login?.username || ''\"\n [attr.aria-invalid]=\"messagesPerField?.existsError('username', 'password')\"\n />\n @if (messagesPerField?.existsError('username', 'password')) {\n <span\n id=\"input-error\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.getFirstError('username', 'password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"password\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('password') }}\n </label>\n\n <kc-password-wrapper passwordInputId=\"password\">\n <input\n tabindex=\"3\"\n id=\"password\"\n name=\"password\"\n type=\"password\"\n autocomplete=\"current-password\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('username', 'password')\"\n />\n </kc-password-wrapper>\n @if (usernameHidden && messagesPerField?.existsError('username', 'password')) {\n <span\n id=\"input-error\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.getFirstError('username', 'password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\">\n @if (realm?.rememberMe && !usernameHidden) {\n <div class=\"checkbox\">\n <label>\n <input\n tabindex=\"5\"\n id=\"rememberMe\"\n name=\"rememberMe\"\n type=\"checkbox\"\n [defaultChecked]=\"!!login?.rememberMe\"\n />\n {{ i18n.msgStr('rememberMe') }}\n </label>\n </div>\n }\n </div>\n\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n @if (realm?.resetPasswordAllowed) {\n <span>\n <a\n tabindex=\"6\"\n [href]=\"url?.loginResetCredentialsUrl\"\n >{{ i18n.msgStr('doForgotPassword') }}</a\n >\n </span>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n type=\"hidden\"\n id=\"id-hidden-input\"\n name=\"credentialId\"\n [value]=\"auth?.selectedCredential\"\n />\n <input\n tabindex=\"7\"\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogIn')\"\n [disabled]=\"isLoginButtonDisabled()\"\n />\n </div>\n </form>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: PasswordWrapperComponent, selector: "kc-password-wrapper", inputs: ["passwordInputId"] }, { kind: "
|
|
34
|
+
], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let realm = kcContext.realm;\n@let usernameHidden = kcContext.usernameHidden;\n@let auth = kcContext.auth;\n@let messagesPerField = kcContext.messagesPerField;\n@let url = kcContext.url;\n@let login = kcContext.login;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginAccountTitle') }}\n</ng-template>\n<ng-template #infoNode>\n @let url = kcContext.url;\n <div id=\"kc-registration-container\">\n <div id=\"kc-registration\">\n <span>\n {{ i18n.msgStr('noAccount') }}\n <a\n tabindex=\"8\"\n [href]=\"url?.registrationUrl\"\n >\n {{ i18n.msgStr('doRegister') }}\n </a>\n </span>\n </div>\n </div>\n</ng-template>\n<ng-template #socialProvidersNode>\n @let realm = kcContext.realm;\n @let social = kcContext.social;\n @if (!!realm?.password && !!social?.providers?.length) {\n <div\n id=\"kc-social-providers\"\n [kcClass]=\"'kcFormSocialAccountSectionClass'\"\n >\n <hr />\n <h2>{{ i18n.msgStr('identity-provider-login-label') }}</h2>\n <ul\n [kcClass]=\"{\n kcFormSocialAccountListClass: true,\n kcFormSocialAccountListGridClass: (social?.providers?.length ?? 0) > 3\n }\"\n >\n @for (provider of social?.providers; track provider.alias; let idx = $index) {\n <li>\n <a\n type=\"button\"\n [id]=\"provider.alias\"\n [kcClass]=\"{\n kcFormSocialAccountListButtonClass: true,\n kcFormSocialAccountGridItem: (social?.providers?.length ?? 0) > 3\n }\"\n [href]=\"provider.loginUrl\"\n >\n @if (provider.iconClasses) {\n <i\n aria-hidden=\"true\"\n [ngClass]=\"provider.iconClasses\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n ></i>\n }\n <span\n [ngClass]=\"{\n 'kc-social-icon-text': provider.iconClasses\n }\"\n [kcClass]=\"'kcFormSocialAccountNameClass'\"\n [innerHTML]=\"provider.displayName | kcSanitize: 'html'\"\n ></span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n</ng-template>\n<div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n <!-- login.component.html -->\n @if (realm?.password) {\n <form\n id=\"kc-form-login\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n @if (!realm?.loginWithEmailAllowed) {\n {{ i18n.msgStr('username') }}\n } @else if (!realm?.registrationEmailAsUsername) {\n {{ i18n.msgStr('usernameOrEmail') }}\n } @else {\n {{ i18n.msgStr('email') }}\n }\n </label>\n <input\n tabindex=\"2\"\n id=\"username\"\n name=\"username\"\n type=\"text\"\n autofocus\n autocomplete=\"username\"\n [kcClass]=\"'kcInputClass'\"\n [defaultValue]=\"login?.username || ''\"\n [attr.aria-invalid]=\"messagesPerField?.existsError('username', 'password')\"\n />\n @if (messagesPerField?.existsError('username', 'password')) {\n <span\n id=\"input-error\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.getFirstError('username', 'password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"password\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('password') }}\n </label>\n\n <kc-password-wrapper passwordInputId=\"password\">\n <input\n tabindex=\"3\"\n id=\"password\"\n name=\"password\"\n type=\"password\"\n autocomplete=\"current-password\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('username', 'password')\"\n />\n </kc-password-wrapper>\n @if (usernameHidden && messagesPerField?.existsError('username', 'password')) {\n <span\n id=\"input-error\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.getFirstError('username', 'password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\">\n @if (realm?.rememberMe && !usernameHidden) {\n <div class=\"checkbox\">\n <label>\n <input\n tabindex=\"5\"\n id=\"rememberMe\"\n name=\"rememberMe\"\n type=\"checkbox\"\n [defaultChecked]=\"!!login?.rememberMe\"\n />\n {{ i18n.msgStr('rememberMe') }}\n </label>\n </div>\n }\n </div>\n\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n @if (realm?.resetPasswordAllowed) {\n <span>\n <a\n tabindex=\"6\"\n [href]=\"url?.loginResetCredentialsUrl\"\n >{{ i18n.msgStr('doForgotPassword') }}</a\n >\n </span>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n type=\"hidden\"\n id=\"id-hidden-input\"\n name=\"credentialId\"\n [value]=\"auth?.selectedCredential\"\n />\n <input\n tabindex=\"7\"\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogIn')\"\n [disabled]=\"isLoginButtonDisabled()\"\n />\n </div>\n </form>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: PasswordWrapperComponent, selector: "kc-password-wrapper", inputs: ["passwordInputId"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36
35
|
}
|
|
37
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
36
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: LoginComponent, decorators: [{
|
|
38
37
|
type: Component,
|
|
39
|
-
args: [{ selector: 'kc-login', changeDetection: ChangeDetectionStrategy.OnPush, imports: [KcClassDirective, KcSanitizePipe, PasswordWrapperComponent,
|
|
38
|
+
args: [{ selector: 'kc-login', changeDetection: ChangeDetectionStrategy.OnPush, imports: [KcClassDirective, KcSanitizePipe, PasswordWrapperComponent, NgClass], providers: [
|
|
40
39
|
{
|
|
41
40
|
provide: ComponentReference,
|
|
42
41
|
useExisting: forwardRef(() => LoginComponent)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-login-pages-login.mjs","sources":["../../src/login/pages/login/login.component.ts","../../src/login/pages/login/login.component.html","../../src/login/pages/login/keycloakify-angular-login-pages-login.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, signal, type TemplateRef, viewChild } from '@angular/core';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { PasswordWrapperComponent } from '@keycloakify/angular/login/components/password-wrapper';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n selector: 'kc-login',\n templateUrl: 'login.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [KcClassDirective, KcSanitizePipe, PasswordWrapperComponent, CommonModule],\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => LoginComponent)\n }\n ]\n})\nexport class LoginComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'login.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = !!this.kcContext?.realm?.password && !!this.kcContext?.realm?.registrationAllowed && !this.kcContext?.registrationDisabled;\n displayMessage = !this.kcContext?.messagesPerField?.existsError('username', 'password');\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n\n isLoginButtonDisabled = signal(false);\n}\n","@let realm = kcContext.realm;\n@let usernameHidden = kcContext.usernameHidden;\n@let auth = kcContext.auth;\n@let messagesPerField = kcContext.messagesPerField;\n@let url = kcContext.url;\n@let login = kcContext.login;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginAccountTitle') }}\n</ng-template>\n<ng-template #infoNode>\n @let url = kcContext.url;\n <div id=\"kc-registration-container\">\n <div id=\"kc-registration\">\n <span>\n {{ i18n.msgStr('noAccount') }}\n <a\n tabindex=\"8\"\n [href]=\"url?.registrationUrl\"\n >\n {{ i18n.msgStr('doRegister') }}\n </a>\n </span>\n </div>\n </div>\n</ng-template>\n<ng-template #socialProvidersNode>\n @let realm = kcContext.realm;\n @let social = kcContext.social;\n @if (!!realm?.password && !!social?.providers?.length) {\n <div\n id=\"kc-social-providers\"\n [kcClass]=\"'kcFormSocialAccountSectionClass'\"\n >\n <hr />\n <h2>{{ i18n.msgStr('identity-provider-login-label') }}</h2>\n <ul\n [kcClass]=\"{\n kcFormSocialAccountListClass: true,\n kcFormSocialAccountListGridClass: (social?.providers?.length ?? 0) > 3\n }\"\n >\n @for (provider of social?.providers; track provider.alias; let idx = $index) {\n <li>\n <a\n type=\"button\"\n [id]=\"provider.alias\"\n [kcClass]=\"{\n kcFormSocialAccountListButtonClass: true,\n kcFormSocialAccountGridItem: (social?.providers?.length ?? 0) > 3\n }\"\n [href]=\"provider.loginUrl\"\n >\n @if (provider.iconClasses) {\n <i\n aria-hidden=\"true\"\n [ngClass]=\"provider.iconClasses\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n ></i>\n }\n <span\n [ngClass]=\"{\n 'kc-social-icon-text': provider.iconClasses\n }\"\n [kcClass]=\"'kcFormSocialAccountNameClass'\"\n [innerHTML]=\"provider.displayName | kcSanitize: 'html'\"\n ></span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n</ng-template>\n<div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n <!-- login.component.html -->\n @if (realm?.password) {\n <form\n id=\"kc-form-login\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n @if (!realm?.loginWithEmailAllowed) {\n {{ i18n.msgStr('username') }}\n } @else if (!realm?.registrationEmailAsUsername) {\n {{ i18n.msgStr('usernameOrEmail') }}\n } @else {\n {{ i18n.msgStr('email') }}\n }\n </label>\n <input\n tabindex=\"2\"\n id=\"username\"\n name=\"username\"\n type=\"text\"\n autofocus\n autocomplete=\"username\"\n [kcClass]=\"'kcInputClass'\"\n [defaultValue]=\"login?.username || ''\"\n [attr.aria-invalid]=\"messagesPerField?.existsError('username', 'password')\"\n />\n @if (messagesPerField?.existsError('username', 'password')) {\n <span\n id=\"input-error\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.getFirstError('username', 'password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"password\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('password') }}\n </label>\n\n <kc-password-wrapper passwordInputId=\"password\">\n <input\n tabindex=\"3\"\n id=\"password\"\n name=\"password\"\n type=\"password\"\n autocomplete=\"current-password\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('username', 'password')\"\n />\n </kc-password-wrapper>\n @if (usernameHidden && messagesPerField?.existsError('username', 'password')) {\n <span\n id=\"input-error\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.getFirstError('username', 'password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\">\n @if (realm?.rememberMe && !usernameHidden) {\n <div class=\"checkbox\">\n <label>\n <input\n tabindex=\"5\"\n id=\"rememberMe\"\n name=\"rememberMe\"\n type=\"checkbox\"\n [defaultChecked]=\"!!login?.rememberMe\"\n />\n {{ i18n.msgStr('rememberMe') }}\n </label>\n </div>\n }\n </div>\n\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n @if (realm?.resetPasswordAllowed) {\n <span>\n <a\n tabindex=\"6\"\n [href]=\"url?.loginResetCredentialsUrl\"\n >{{ i18n.msgStr('doForgotPassword') }}</a\n >\n </span>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n type=\"hidden\"\n id=\"id-hidden-input\"\n name=\"credentialId\"\n [value]=\"auth?.selectedCredential\"\n />\n <input\n tabindex=\"7\"\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogIn')\"\n [disabled]=\"isLoginButtonDisabled()\"\n />\n </div>\n </form>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-login-pages-login.mjs","sources":["../../src/login/pages/login/login.component.ts","../../src/login/pages/login/login.component.html","../../src/login/pages/login/keycloakify-angular-login-pages-login.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, forwardRef, inject, signal, type TemplateRef, viewChild } from '@angular/core';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { PasswordWrapperComponent } from '@keycloakify/angular/login/components/password-wrapper';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n selector: 'kc-login',\n templateUrl: 'login.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [KcClassDirective, KcSanitizePipe, PasswordWrapperComponent, NgClass],\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => LoginComponent)\n }\n ]\n})\nexport class LoginComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'login.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = !!this.kcContext?.realm?.password && !!this.kcContext?.realm?.registrationAllowed && !this.kcContext?.registrationDisabled;\n displayMessage = !this.kcContext?.messagesPerField?.existsError('username', 'password');\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n\n isLoginButtonDisabled = signal(false);\n}\n","@let realm = kcContext.realm;\n@let usernameHidden = kcContext.usernameHidden;\n@let auth = kcContext.auth;\n@let messagesPerField = kcContext.messagesPerField;\n@let url = kcContext.url;\n@let login = kcContext.login;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginAccountTitle') }}\n</ng-template>\n<ng-template #infoNode>\n @let url = kcContext.url;\n <div id=\"kc-registration-container\">\n <div id=\"kc-registration\">\n <span>\n {{ i18n.msgStr('noAccount') }}\n <a\n tabindex=\"8\"\n [href]=\"url?.registrationUrl\"\n >\n {{ i18n.msgStr('doRegister') }}\n </a>\n </span>\n </div>\n </div>\n</ng-template>\n<ng-template #socialProvidersNode>\n @let realm = kcContext.realm;\n @let social = kcContext.social;\n @if (!!realm?.password && !!social?.providers?.length) {\n <div\n id=\"kc-social-providers\"\n [kcClass]=\"'kcFormSocialAccountSectionClass'\"\n >\n <hr />\n <h2>{{ i18n.msgStr('identity-provider-login-label') }}</h2>\n <ul\n [kcClass]=\"{\n kcFormSocialAccountListClass: true,\n kcFormSocialAccountListGridClass: (social?.providers?.length ?? 0) > 3\n }\"\n >\n @for (provider of social?.providers; track provider.alias; let idx = $index) {\n <li>\n <a\n type=\"button\"\n [id]=\"provider.alias\"\n [kcClass]=\"{\n kcFormSocialAccountListButtonClass: true,\n kcFormSocialAccountGridItem: (social?.providers?.length ?? 0) > 3\n }\"\n [href]=\"provider.loginUrl\"\n >\n @if (provider.iconClasses) {\n <i\n aria-hidden=\"true\"\n [ngClass]=\"provider.iconClasses\"\n [kcClass]=\"'kcCommonLogoIdP'\"\n ></i>\n }\n <span\n [ngClass]=\"{\n 'kc-social-icon-text': provider.iconClasses\n }\"\n [kcClass]=\"'kcFormSocialAccountNameClass'\"\n [innerHTML]=\"provider.displayName | kcSanitize: 'html'\"\n ></span>\n </a>\n </li>\n }\n </ul>\n </div>\n }\n</ng-template>\n<div id=\"kc-form\">\n <div id=\"kc-form-wrapper\">\n <!-- login.component.html -->\n @if (realm?.password) {\n <form\n id=\"kc-form-login\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n (onSubmit)=\"isLoginButtonDisabled.set(true)\"\n >\n @if (!usernameHidden) {\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"username\"\n [kcClass]=\"'kcLabelClass'\"\n >\n @if (!realm?.loginWithEmailAllowed) {\n {{ i18n.msgStr('username') }}\n } @else if (!realm?.registrationEmailAsUsername) {\n {{ i18n.msgStr('usernameOrEmail') }}\n } @else {\n {{ i18n.msgStr('email') }}\n }\n </label>\n <input\n tabindex=\"2\"\n id=\"username\"\n name=\"username\"\n type=\"text\"\n autofocus\n autocomplete=\"username\"\n [kcClass]=\"'kcInputClass'\"\n [defaultValue]=\"login?.username || ''\"\n [attr.aria-invalid]=\"messagesPerField?.existsError('username', 'password')\"\n />\n @if (messagesPerField?.existsError('username', 'password')) {\n <span\n id=\"input-error\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.getFirstError('username', 'password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <label\n for=\"password\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('password') }}\n </label>\n\n <kc-password-wrapper passwordInputId=\"password\">\n <input\n tabindex=\"3\"\n id=\"password\"\n name=\"password\"\n type=\"password\"\n autocomplete=\"current-password\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('username', 'password')\"\n />\n </kc-password-wrapper>\n @if (usernameHidden && messagesPerField?.existsError('username', 'password')) {\n <span\n id=\"input-error\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.getFirstError('username', 'password') | kcSanitize: 'html'\"\n >\n </span>\n }\n </div>\n\n <div [kcClass]=\"['kcFormGroupClass', 'kcFormSettingClass']\">\n <div id=\"kc-form-options\">\n @if (realm?.rememberMe && !usernameHidden) {\n <div class=\"checkbox\">\n <label>\n <input\n tabindex=\"5\"\n id=\"rememberMe\"\n name=\"rememberMe\"\n type=\"checkbox\"\n [defaultChecked]=\"!!login?.rememberMe\"\n />\n {{ i18n.msgStr('rememberMe') }}\n </label>\n </div>\n }\n </div>\n\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n @if (realm?.resetPasswordAllowed) {\n <span>\n <a\n tabindex=\"6\"\n [href]=\"url?.loginResetCredentialsUrl\"\n >{{ i18n.msgStr('doForgotPassword') }}</a\n >\n </span>\n }\n </div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <input\n type=\"hidden\"\n id=\"id-hidden-input\"\n name=\"credentialId\"\n [value]=\"auth?.selectedCredential\"\n />\n <input\n tabindex=\"7\"\n name=\"login\"\n id=\"kc-login\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogIn')\"\n [disabled]=\"isLoginButtonDisabled()\"\n />\n </div>\n </form>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -14,19 +14,19 @@ class LogoutConfirmComponent extends ComponentReference {
|
|
|
14
14
|
this.displayRequiredFields = false;
|
|
15
15
|
this.displayInfo = false;
|
|
16
16
|
this.displayMessage = true;
|
|
17
|
-
this.headerNode = viewChild('headerNode', ...(ngDevMode ?
|
|
18
|
-
this.infoNode = viewChild('infoNode', ...(ngDevMode ?
|
|
19
|
-
this.socialProvidersNode = viewChild('socialProvidersNode', ...(ngDevMode ?
|
|
17
|
+
this.headerNode = viewChild('headerNode', { ...(ngDevMode ? { debugName: "headerNode" } : {}) });
|
|
18
|
+
this.infoNode = viewChild('infoNode', { ...(ngDevMode ? { debugName: "infoNode" } : {}) });
|
|
19
|
+
this.socialProvidersNode = viewChild('socialProvidersNode', { ...(ngDevMode ? { debugName: "socialProvidersNode" } : {}) });
|
|
20
20
|
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: LogoutConfirmComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.1", type: LogoutConfirmComponent, isStandalone: true, selector: "kc-logout-confirm", providers: [
|
|
23
23
|
{
|
|
24
24
|
provide: ComponentReference,
|
|
25
25
|
useExisting: forwardRef(() => LogoutConfirmComponent)
|
|
26
26
|
}
|
|
27
27
|
], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let logoutConfirm = kcContext.logoutConfirm;\n@let client = kcContext.client;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('logoutConfirmTitle') }}\n</ng-template>\n<div\n id=\"kc-logout-confirm\"\n class=\"content-area\"\n>\n <p class=\"instruction\">{{ i18n.msgStr('logoutConfirmHeader') }}</p>\n <form\n class=\"form-actions\"\n method=\"POST\"\n [action]=\"url.logoutConfirmAction\"\n >\n <input\n type=\"hidden\"\n name=\"session_code\"\n [value]=\"logoutConfirm.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n class=\"kcFormGroupClass\"\n >\n <input\n tabIndex=\"4\"\n name=\"confirmLogout\"\n id=\"kc-logout\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogout')\"\n />\n </div>\n </div>\n </form>\n <div id=\"kc-info-message\">\n @if (!logoutConfirm.skipLink && client.baseUrl) {\n <p>\n <a\n [href]=\"client.baseUrl\"\n [innerHTML]=\"i18n.msgStr('backToApplication') | kcSanitize: 'html'\"\n >\n </a>\n </p>\n }\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: LogoutConfirmComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
31
31
|
args: [{ imports: [KcSanitizePipe, KcClassDirective], selector: 'kc-logout-confirm', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
32
32
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-login-pages-logout-confirm.mjs","sources":["../../src/login/pages/logout-confirm/logout-confirm.component.ts","../../src/login/pages/logout-confirm/logout-confirm.component.html","../../src/login/pages/logout-confirm/keycloakify-angular-login-pages-logout-confirm.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\n\n@Component({\n imports: [KcSanitizePipe, KcClassDirective],\n selector: 'kc-logout-confirm',\n templateUrl: 'logout-confirm.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => LogoutConfirmComponent)\n }\n ]\n})\nexport class LogoutConfirmComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'logout-confirm.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = true;\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n}\n","@let url = kcContext.url;\n@let logoutConfirm = kcContext.logoutConfirm;\n@let client = kcContext.client;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('logoutConfirmTitle') }}\n</ng-template>\n<div\n id=\"kc-logout-confirm\"\n class=\"content-area\"\n>\n <p class=\"instruction\">{{ i18n.msgStr('logoutConfirmHeader') }}</p>\n <form\n class=\"form-actions\"\n method=\"POST\"\n [action]=\"url.logoutConfirmAction\"\n >\n <input\n type=\"hidden\"\n name=\"session_code\"\n [value]=\"logoutConfirm.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n class=\"kcFormGroupClass\"\n >\n <input\n tabIndex=\"4\"\n name=\"confirmLogout\"\n id=\"kc-logout\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogout')\"\n />\n </div>\n </div>\n </form>\n <div id=\"kc-info-message\">\n @if (!logoutConfirm.skipLink && client.baseUrl) {\n <p>\n <a\n [href]=\"client.baseUrl\"\n [innerHTML]=\"i18n.msgStr('backToApplication') | kcSanitize: 'html'\"\n >\n </a>\n </p>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;AAqBM,MAAO,sBAAuB,SAAQ,kBAAkB,CAAA;AAZ9D,IAAA,WAAA,GAAA;;AAaI,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAuD,gBAAgB,CAAC;AAC1F,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC;QAK/B,
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-login-pages-logout-confirm.mjs","sources":["../../src/login/pages/logout-confirm/logout-confirm.component.ts","../../src/login/pages/logout-confirm/logout-confirm.component.html","../../src/login/pages/logout-confirm/keycloakify-angular-login-pages-logout-confirm.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\n\n@Component({\n imports: [KcSanitizePipe, KcClassDirective],\n selector: 'kc-logout-confirm',\n templateUrl: 'logout-confirm.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => LogoutConfirmComponent)\n }\n ]\n})\nexport class LogoutConfirmComponent extends ComponentReference {\n kcContext = inject<Extract<KcContext, { pageId: 'logout-confirm.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = true;\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n}\n","@let url = kcContext.url;\n@let logoutConfirm = kcContext.logoutConfirm;\n@let client = kcContext.client;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('logoutConfirmTitle') }}\n</ng-template>\n<div\n id=\"kc-logout-confirm\"\n class=\"content-area\"\n>\n <p class=\"instruction\">{{ i18n.msgStr('logoutConfirmHeader') }}</p>\n <form\n class=\"form-actions\"\n method=\"POST\"\n [action]=\"url.logoutConfirmAction\"\n >\n <input\n type=\"hidden\"\n name=\"session_code\"\n [value]=\"logoutConfirm.code\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div id=\"kc-form-options\">\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n class=\"kcFormGroupClass\"\n >\n <input\n tabIndex=\"4\"\n name=\"confirmLogout\"\n id=\"kc-logout\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doLogout')\"\n />\n </div>\n </div>\n </form>\n <div id=\"kc-info-message\">\n @if (!logoutConfirm.skipLink && client.baseUrl) {\n <p>\n <a\n [href]=\"client.baseUrl\"\n [innerHTML]=\"i18n.msgStr('backToApplication') | kcSanitize: 'html'\"\n >\n </a>\n </p>\n }\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import { toSignal } from '@angular/core/rxjs-interop';
|
|
|
5
5
|
import { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';
|
|
6
6
|
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
7
7
|
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
8
|
+
import '@keycloakify/angular/login/components/user-profile-form-fields';
|
|
8
9
|
import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
|
|
9
10
|
import { UserProfileFormService } from '@keycloakify/angular/login/services/user-profile-form';
|
|
10
11
|
import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
@@ -23,12 +24,12 @@ class RegisterComponent extends ComponentReference {
|
|
|
23
24
|
this.displayRequiredFields = false;
|
|
24
25
|
this.displayInfo = false;
|
|
25
26
|
this.displayMessage = !this.kcContext?.messagesPerField?.existsError('global');
|
|
26
|
-
this.headerNode = viewChild('headerNode', ...(ngDevMode ?
|
|
27
|
-
this.infoNode = viewChild('infoNode', ...(ngDevMode ?
|
|
28
|
-
this.socialProvidersNode = viewChild('socialProvidersNode', ...(ngDevMode ?
|
|
27
|
+
this.headerNode = viewChild('headerNode', { ...(ngDevMode ? { debugName: "headerNode" } : {}) });
|
|
28
|
+
this.infoNode = viewChild('infoNode', { ...(ngDevMode ? { debugName: "infoNode" } : {}) });
|
|
29
|
+
this.socialProvidersNode = viewChild('socialProvidersNode', { ...(ngDevMode ? { debugName: "socialProvidersNode" } : {}) });
|
|
29
30
|
this.isFormSubmittable = toSignal(this.#userProfileFormService.formState$.pipe(map(s => s.isFormSubmittable)), { initialValue: false });
|
|
30
|
-
this.areTermsAccepted = signal(false, ...(ngDevMode ?
|
|
31
|
-
this.userProfileFormFields = input(...(ngDevMode ?
|
|
31
|
+
this.areTermsAccepted = signal(false, { ...(ngDevMode ? { debugName: "areTermsAccepted" } : {}) });
|
|
32
|
+
this.userProfileFormFields = input(undefined, { ...(ngDevMode ? { debugName: "userProfileFormFields" } : {}) });
|
|
32
33
|
}
|
|
33
34
|
#userProfileFormService;
|
|
34
35
|
ngOnInit() {
|
|
@@ -42,15 +43,15 @@ class RegisterComponent extends ComponentReference {
|
|
|
42
43
|
// eslint-disable-next-line
|
|
43
44
|
delete window['onSubmitRecaptcha'];
|
|
44
45
|
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
46
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: RegisterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.1", type: RegisterComponent, isStandalone: true, selector: "kc-register", inputs: { userProfileFormFields: { classPropertyName: "userProfileFormFields", publicName: "userProfileFormFields", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
47
48
|
{
|
|
48
49
|
provide: ComponentReference,
|
|
49
50
|
useExisting: forwardRef(() => RegisterComponent)
|
|
50
51
|
}
|
|
51
|
-
], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n data-callback=\"onSubmitRecaptcha\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"
|
|
52
|
+
], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n data-callback=\"onSubmitRecaptcha\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
52
53
|
}
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: RegisterComponent, decorators: [{
|
|
54
55
|
type: Component,
|
|
55
56
|
args: [{ selector: 'kc-register', changeDetection: ChangeDetectionStrategy.OnPush, imports: [KcClassDirective, KcSanitizePipe, NgComponentOutlet], providers: [
|
|
56
57
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-login-pages-register.mjs","sources":["../../src/login/pages/register/register.component.ts","../../src/login/pages/register/register.component.html","../../src/login/pages/register/keycloakify-angular-login-pages-register.ts"],"sourcesContent":["import { NgComponentOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n signal,\n type TemplateRef,\n Type,\n viewChild\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { UserProfileFormFieldsComponent } from '@keycloakify/angular/login/components/user-profile-form-fields';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { UserProfileFormService } from '@keycloakify/angular/login/services/user-profile-form';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\nimport { map } from 'rxjs';\n\n@Component({\n selector: 'kc-register',\n templateUrl: 'register.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [KcClassDirective, KcSanitizePipe, NgComponentOutlet],\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => RegisterComponent)\n }\n ]\n})\nexport class RegisterComponent extends ComponentReference implements OnInit, OnDestroy {\n #userProfileFormService = inject(UserProfileFormService);\n kcContext = inject<Extract<KcContext, { pageId: 'register.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = !this.kcContext?.messagesPerField?.existsError('global');\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n\n isFormSubmittable = toSignal(this.#userProfileFormService.formState$.pipe(map(s => s.isFormSubmittable)), { initialValue: false });\n areTermsAccepted = signal(false);\n userProfileFormFields = input<Type<UserProfileFormFieldsComponent>>();\n\n ngOnInit(): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any)['onSubmitRecaptcha'] = () => {\n // @ts-expect-error: from native code\n document.getElementById('kc-register-form').requestSubmit();\n };\n }\n ngOnDestroy(): void {\n // eslint-disable-next-line\n delete (window as any)['onSubmitRecaptcha'];\n }\n}\n","@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n data-callback=\"onSubmitRecaptcha\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-login-pages-register.mjs","sources":["../../src/login/pages/register/register.component.ts","../../src/login/pages/register/register.component.html","../../src/login/pages/register/keycloakify-angular-login-pages-register.ts"],"sourcesContent":["import { NgComponentOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n forwardRef,\n inject,\n input,\n type OnDestroy,\n type OnInit,\n signal,\n type TemplateRef,\n type Type,\n viewChild\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { type UserProfileFormFieldsComponent } from '@keycloakify/angular/login/components/user-profile-form-fields';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { UserProfileFormService } from '@keycloakify/angular/login/services/user-profile-form';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\nimport { map } from 'rxjs';\n\n@Component({\n selector: 'kc-register',\n templateUrl: 'register.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [KcClassDirective, KcSanitizePipe, NgComponentOutlet],\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => RegisterComponent)\n }\n ]\n})\nexport class RegisterComponent extends ComponentReference implements OnInit, OnDestroy {\n #userProfileFormService = inject(UserProfileFormService);\n kcContext = inject<Extract<KcContext, { pageId: 'register.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = !this.kcContext?.messagesPerField?.existsError('global');\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n\n isFormSubmittable = toSignal(this.#userProfileFormService.formState$.pipe(map(s => s.isFormSubmittable)), { initialValue: false });\n areTermsAccepted = signal(false);\n userProfileFormFields = input<Type<UserProfileFormFieldsComponent>>();\n\n ngOnInit(): void {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (window as any)['onSubmitRecaptcha'] = () => {\n // @ts-expect-error: from native code\n document.getElementById('kc-register-form').requestSubmit();\n };\n }\n ngOnDestroy(): void {\n // eslint-disable-next-line\n delete (window as any)['onSubmitRecaptcha'];\n }\n}\n","@let url = kcContext.url;\n@let messagesPerField = kcContext.messagesPerField;\n@let recaptchaRequired = kcContext.recaptchaRequired;\n@let recaptchaVisible = kcContext.recaptchaVisible;\n@let recaptchaSiteKey = kcContext.recaptchaSiteKey;\n@let recaptchaAction = kcContext.recaptchaAction;\n@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;\n\n<ng-template #headerNode>\n @let messageHeader = kcContext.messageHeader;\n {{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}\n</ng-template>\n<form\n id=\"kc-register-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.registrationAction\"\n>\n <ng-container [ngComponentOutlet]=\"userProfileFormFields() ?? null\" />\n @if (termsAcceptanceRequired) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n {{ i18n.msgStr('termsTitle') }}\n <div id=\"kc-registration-terms-text\">\n {{ i18n.msgStr('termsText') }}\n </div>\n </div>\n </div>\n <div class=\"form-group\">\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <input\n type=\"checkbox\"\n id=\"termsAccepted\"\n name=\"termsAccepted\"\n [kcClass]=\"'kcCheckboxInputClass'\"\n [checked]=\"areTermsAccepted()\"\n [attr.aria-invalid]=\"messagesPerField.existsError('termsAccepted')\"\n (change)=\"areTermsAccepted.set($any($event.target).checked)\"\n />\n <label\n for=\"termsAccepted\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('acceptTerms') }}\n </label>\n </div>\n @if (messagesPerField.existsError('termsAccepted')) {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <span\n id=\"input-error-terms-accepted\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHtml]=\"messagesPerField.get('termsAccepted') | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n </div>\n }\n @if (recaptchaRequired && (recaptchaVisible || recaptchaAction === undefined)) {\n <div class=\"form-group\">\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <div\n class=\"g-recaptcha\"\n data-size=\"compact\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n [attr.data-action]=\"recaptchaAction\"\n ></div>\n </div>\n </div>\n }\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\">\n <span>\n <a\n [href]=\"url.loginUrl\"\n [innerHTML]=\"i18n.msgStr('backToLogin') | kcSanitize: 'html'\"\n ></a>\n </span>\n </div>\n </div>\n @if (recaptchaRequired && !recaptchaVisible && recaptchaAction !== undefined) {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <button\n class=\"g-recaptcha\"\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [attr.data-sitekey]=\"recaptchaSiteKey\"\n data-callback=\"onSubmitRecaptcha\"\n [attr.data-action]=\"recaptchaAction\"\n >\n {{ i18n.msgStr('doRegister') }}\n </button>\n </div>\n } @else {\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n type=\"submit\"\n [disabled]=\"!isFormSubmittable() || (termsAcceptanceRequired && !areTermsAccepted())\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doRegister')\"\n />\n </div>\n }\n </div>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -16,10 +16,10 @@ class SamlPostFormComponent extends ComponentReference {
|
|
|
16
16
|
this.displayRequiredFields = false;
|
|
17
17
|
this.displayInfo = false;
|
|
18
18
|
this.displayMessage = true;
|
|
19
|
-
this.headerNode = viewChild('headerNode', ...(ngDevMode ?
|
|
20
|
-
this.infoNode = viewChild('infoNode', ...(ngDevMode ?
|
|
21
|
-
this.socialProvidersNode = viewChild('socialProvidersNode', ...(ngDevMode ?
|
|
22
|
-
this.htmlFormElement = viewChild('setHtmlFormElement', ...(ngDevMode ?
|
|
19
|
+
this.headerNode = viewChild('headerNode', { ...(ngDevMode ? { debugName: "headerNode" } : {}) });
|
|
20
|
+
this.infoNode = viewChild('infoNode', { ...(ngDevMode ? { debugName: "infoNode" } : {}) });
|
|
21
|
+
this.socialProvidersNode = viewChild('socialProvidersNode', { ...(ngDevMode ? { debugName: "socialProvidersNode" } : {}) });
|
|
22
|
+
this.htmlFormElement = viewChild('setHtmlFormElement', { ...(ngDevMode ? { debugName: "htmlFormElement" } : {}) });
|
|
23
23
|
}
|
|
24
24
|
ngAfterViewInit() {
|
|
25
25
|
if (this.htmlFormElement() === null || this.htmlFormElement() === undefined) {
|
|
@@ -31,15 +31,15 @@ class SamlPostFormComponent extends ComponentReference {
|
|
|
31
31
|
}
|
|
32
32
|
this.htmlFormElement().nativeElement.requestSubmit();
|
|
33
33
|
}
|
|
34
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
35
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: SamlPostFormComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.1", type: SamlPostFormComponent, isStandalone: true, selector: "kc-saml-post-form", providers: [
|
|
36
36
|
{
|
|
37
37
|
provide: ComponentReference,
|
|
38
38
|
useExisting: forwardRef(() => SamlPostFormComponent)
|
|
39
39
|
}
|
|
40
40
|
], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }, { propertyName: "htmlFormElement", first: true, predicate: ["setHtmlFormElement"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let samlPost = kcContext.samlPost;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('saml.post-form.title') }}\n</ng-template>\n<p>{{ i18n.msgStr('saml.post-form.message') }}</p>\n<form\n #setHtmlFormElement\n name=\"saml-post-binding\"\n method=\"post\"\n [action]=\"samlPost.url\"\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>{{ i18n.msgStr('saml.post-form.js-disabled') }}</p>\n <input\n type=\"submit\"\n [value]=\"i18n.msgStr('doContinue')\"\n />\n </noscript>\n</form>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
41
41
|
}
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: SamlPostFormComponent, decorators: [{
|
|
43
43
|
type: Component,
|
|
44
44
|
args: [{ selector: 'kc-saml-post-form', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
45
45
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-login-pages-saml-post-form.mjs","sources":["../../src/login/pages/saml-post-form/saml-post-form.component.ts","../../src/login/pages/saml-post-form/saml-post-form.component.html","../../src/login/pages/saml-post-form/keycloakify-angular-login-pages-saml-post-form.ts"],"sourcesContent":["import { AfterViewInit
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-login-pages-saml-post-form.mjs","sources":["../../src/login/pages/saml-post-form/saml-post-form.component.ts","../../src/login/pages/saml-post-form/saml-post-form.component.html","../../src/login/pages/saml-post-form/keycloakify-angular-login-pages-saml-post-form.ts"],"sourcesContent":["import {\n type AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n type ElementRef,\n forwardRef,\n inject,\n type TemplateRef,\n viewChild\n} from '@angular/core';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\nimport type { KcContext } from '@keycloakify/angular/login/KcContext';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n selector: 'kc-saml-post-form',\n templateUrl: 'saml-post-form.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => SamlPostFormComponent)\n }\n ]\n})\nexport class SamlPostFormComponent extends ComponentReference implements AfterViewInit {\n kcContext = inject<Extract<KcContext, { pageId: 'saml-post-form.ftl' }>>(KC_LOGIN_CONTEXT);\n i18n = inject<I18n>(LOGIN_I18N);\n\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n documentTitle: string | undefined;\n bodyClassName: string | undefined;\n\n displayRequiredFields = false;\n displayInfo = false;\n displayMessage = true;\n\n headerNode = viewChild<TemplateRef<HTMLElement>>('headerNode');\n infoNode = viewChild<TemplateRef<HTMLElement>>('infoNode');\n socialProvidersNode = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');\n htmlFormElement = viewChild<ElementRef<HTMLFormElement>>('setHtmlFormElement');\n\n ngAfterViewInit(): void {\n if (this.htmlFormElement() === null || this.htmlFormElement() === undefined) {\n return;\n }\n\n if (this.kcContext.samlPost.url === '#') {\n alert('In a real Keycloak the user would be redirected immediately');\n return;\n }\n\n this.htmlFormElement()!.nativeElement.requestSubmit();\n }\n}\n","@let samlPost = kcContext.samlPost;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('saml.post-form.title') }}\n</ng-template>\n<p>{{ i18n.msgStr('saml.post-form.message') }}</p>\n<form\n #setHtmlFormElement\n name=\"saml-post-binding\"\n method=\"post\"\n [action]=\"samlPost.url\"\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>{{ i18n.msgStr('saml.post-form.js-disabled') }}</p>\n <input\n type=\"submit\"\n [value]=\"i18n.msgStr('doContinue')\"\n />\n </noscript>\n</form>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -17,19 +17,19 @@ class SelectAuthenticatorComponent extends ComponentReference {
|
|
|
17
17
|
this.displayRequiredFields = false;
|
|
18
18
|
this.displayInfo = false;
|
|
19
19
|
this.displayMessage = true;
|
|
20
|
-
this.headerNode = viewChild('headerNode', ...(ngDevMode ?
|
|
21
|
-
this.infoNode = viewChild('infoNode', ...(ngDevMode ?
|
|
22
|
-
this.socialProvidersNode = viewChild('socialProvidersNode', ...(ngDevMode ?
|
|
20
|
+
this.headerNode = viewChild('headerNode', { ...(ngDevMode ? { debugName: "headerNode" } : {}) });
|
|
21
|
+
this.infoNode = viewChild('infoNode', { ...(ngDevMode ? { debugName: "infoNode" } : {}) });
|
|
22
|
+
this.socialProvidersNode = viewChild('socialProvidersNode', { ...(ngDevMode ? { debugName: "socialProvidersNode" } : {}) });
|
|
23
23
|
}
|
|
24
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
25
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: SelectAuthenticatorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
25
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.1", type: SelectAuthenticatorComponent, isStandalone: true, selector: "kc-select-authenticator", providers: [
|
|
26
26
|
{
|
|
27
27
|
provide: ComponentReference,
|
|
28
28
|
useExisting: forwardRef(() => SelectAuthenticatorComponent)
|
|
29
29
|
}
|
|
30
30
|
], viewQueries: [{ propertyName: "headerNode", first: true, predicate: ["headerNode"], descendants: true, isSignal: true }, { propertyName: "infoNode", first: true, predicate: ["infoNode"], descendants: true, isSignal: true }, { propertyName: "socialProvidersNode", first: true, predicate: ["socialProvidersNode"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let auth = kcContext.auth;\n\n<ng-template #headerNode>\n {{ i18n.msgStr('loginChooseAuthenticator') }}\n</ng-template>\n\n<form\n id=\"kc-select-credential-form\"\n method=\"post\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n>\n <div [kcClass]=\"'kcSelectAuthListClass'\">\n @for (authenticationSelection of auth.authenticationSelections; track authenticationSelection; let i = $index) {\n <button\n type=\"submit\"\n name=\"authenticationExecution\"\n [kcClass]=\"'kcSelectAuthListItemClass'\"\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 {{ i18n.advancedMsgStr(authenticationSelection.displayName) }}\n </div>\n <div [kcClass]=\"'kcSelectAuthListItemDescriptionClass'\">\n {{ i18n.advancedMsgStr(authenticationSelection.helpText) }}\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", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: SelectAuthenticatorComponent, decorators: [{
|
|
33
33
|
type: Component,
|
|
34
34
|
args: [{ imports: [KcClassDirective], selector: 'kc-select-authenticator', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
35
35
|
{
|