@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
|
@@ -5,7 +5,7 @@ class AttributesDirective {
|
|
|
5
5
|
#el;
|
|
6
6
|
#renderer;
|
|
7
7
|
constructor() {
|
|
8
|
-
this.kcAttributes = input(...(ngDevMode ?
|
|
8
|
+
this.kcAttributes = input(undefined, { ...(ngDevMode ? { debugName: "kcAttributes" } : {}) });
|
|
9
9
|
this.#el = inject(ElementRef);
|
|
10
10
|
this.#renderer = inject(Renderer2);
|
|
11
11
|
effect(() => {
|
|
@@ -17,10 +17,10 @@ class AttributesDirective {
|
|
|
17
17
|
}
|
|
18
18
|
});
|
|
19
19
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
21
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: AttributesDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.0.1", type: AttributesDirective, isStandalone: true, selector: "[kcAttributes]", inputs: { kcAttributes: { classPropertyName: "kcAttributes", publicName: "kcAttributes", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
22
22
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
23
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: AttributesDirective, decorators: [{
|
|
24
24
|
type: Directive,
|
|
25
25
|
args: [{ selector: '[kcAttributes]' }]
|
|
26
26
|
}], ctorParameters: () => [], propDecorators: { kcAttributes: [{ type: i0.Input, args: [{ isSignal: true, alias: "kcAttributes", required: false }] }] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-lib-directives-attributes.mjs","sources":["../../src/lib/directives/attributes/attributes.directive.ts","../../src/lib/directives/attributes/keycloakify-angular-lib-directives-attributes.ts"],"sourcesContent":["import { Directive, effect, ElementRef, inject, input, Renderer2 } from '@angular/core';\n\n@Directive({ selector: '[kcAttributes]' })\nexport class AttributesDirective {\n kcAttributes = input<Record<string, string>>();\n readonly #el = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly #renderer = inject(Renderer2);\n\n constructor() {\n effect(() => {\n const attributes = this.kcAttributes();\n if (attributes) {\n Object.entries(attributes).forEach(([key, value]) => {\n this.#renderer.setAttribute(\n this.#el.nativeElement,\n `data-${key}`,\n value\n );\n });\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,mBAAmB,CAAA;AAEnB,IAAA,GAAG;AACH,IAAA,SAAS;AAElB,IAAA,WAAA,GAAA;QAJA,
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-lib-directives-attributes.mjs","sources":["../../src/lib/directives/attributes/attributes.directive.ts","../../src/lib/directives/attributes/keycloakify-angular-lib-directives-attributes.ts"],"sourcesContent":["import { Directive, effect, ElementRef, inject, input, Renderer2 } from '@angular/core';\n\n@Directive({ selector: '[kcAttributes]' })\nexport class AttributesDirective {\n kcAttributes = input<Record<string, string>>();\n readonly #el = inject<ElementRef<HTMLElement>>(ElementRef);\n readonly #renderer = inject(Renderer2);\n\n constructor() {\n effect(() => {\n const attributes = this.kcAttributes();\n if (attributes) {\n Object.entries(attributes).forEach(([key, value]) => {\n this.#renderer.setAttribute(\n this.#el.nativeElement,\n `data-${key}`,\n value\n );\n });\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAGa,mBAAmB,CAAA;AAEnB,IAAA,GAAG;AACH,IAAA,SAAS;AAElB,IAAA,WAAA,GAAA;QAJA,IAAA,CAAA,YAAY,GAAG,KAAK,CAAA,SAAA,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,cAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAA0B;AACrC,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAA0B,UAAU,CAAC;AACjD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;QAGlC,MAAM,CAAC,MAAK;AACR,YAAA,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,EAAE;YACtC,IAAI,UAAU,EAAE;AACZ,gBAAA,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAChD,oBAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CACvB,IAAI,CAAC,GAAG,CAAC,aAAa,EACtB,CAAA,KAAA,EAAQ,GAAG,EAAE,EACb,KAAK,CACR;AACL,gBAAA,CAAC,CAAC;YACN;AACJ,QAAA,CAAC,CAAC;IACN;8GAlBS,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAnB,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,UAAA,EAAA,cAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,SAAS;mBAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE;;;ACFzC;;AAEG;;;;"}
|
|
@@ -8,10 +8,10 @@ class InputTypePipe {
|
|
|
8
8
|
}
|
|
9
9
|
return inputType ?? 'text';
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: InputTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.1", ngImport: i0, type: InputTypePipe, isStandalone: true, name: "inputType" }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: InputTypePipe, decorators: [{
|
|
15
15
|
type: Pipe,
|
|
16
16
|
args: [{
|
|
17
17
|
name: 'inputType'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-lib-pipes-input-type.mjs","sources":["../../src/lib/pipes/input-type/input-type.pipe.ts","../../src/lib/pipes/input-type/keycloakify-angular-lib-pipes-input-type.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'inputType'\n})\nexport class InputTypePipe implements PipeTransform {\n transform(inputType?: string): string {\n if (inputType?.startsWith('html5-')) {\n return inputType.slice(6);\n }\n\n return inputType ?? 'text';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,aAAa,CAAA;AACtB,IAAA,SAAS,CAAC,SAAkB,EAAA;AACxB,QAAA,IAAI,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE;AACjC,YAAA,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-lib-pipes-input-type.mjs","sources":["../../src/lib/pipes/input-type/input-type.pipe.ts","../../src/lib/pipes/input-type/keycloakify-angular-lib-pipes-input-type.ts"],"sourcesContent":["import { Pipe, type PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'inputType'\n})\nexport class InputTypePipe implements PipeTransform {\n transform(inputType?: string): string {\n if (inputType?.startsWith('html5-')) {\n return inputType.slice(6);\n }\n\n return inputType ?? 'text';\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,aAAa,CAAA;AACtB,IAAA,SAAS,CAAC,SAAkB,EAAA;AACxB,QAAA,IAAI,SAAS,EAAE,UAAU,CAAC,QAAQ,CAAC,EAAE;AACjC,YAAA,OAAO,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QAC7B;QAEA,OAAO,SAAS,IAAI,MAAM;IAC9B;8GAPS,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;ACJD;;AAEG;;;;"}
|
|
@@ -8,10 +8,10 @@ class IsArrayWithEmptyObjectPipe {
|
|
|
8
8
|
typeof variable[0] === 'object' &&
|
|
9
9
|
Object.keys(variable[0]).length === 0);
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: IsArrayWithEmptyObjectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.1", ngImport: i0, type: IsArrayWithEmptyObjectPipe, isStandalone: true, name: "isArrayWithEmptyObject" }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: IsArrayWithEmptyObjectPipe, decorators: [{
|
|
15
15
|
type: Pipe,
|
|
16
16
|
args: [{
|
|
17
17
|
name: 'isArrayWithEmptyObject'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs","sources":["../../src/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.ts","../../src/lib/pipes/is-array-with-empty-object/keycloakify-angular-lib-pipes-is-array-with-empty-object.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'isArrayWithEmptyObject'\n})\nexport class IsArrayWithEmptyObjectPipe implements PipeTransform {\n transform(variable: unknown): boolean {\n return (\n Array.isArray(variable) &&\n variable.length === 1 &&\n typeof variable[0] === 'object' &&\n Object.keys(variable[0]).length === 0\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,0BAA0B,CAAA;AACnC,IAAA,SAAS,CAAC,QAAiB,EAAA;AACvB,QAAA,QACI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YACvB,QAAQ,CAAC,MAAM,KAAK,CAAC;AACrB,YAAA,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;AAC/B,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs","sources":["../../src/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.ts","../../src/lib/pipes/is-array-with-empty-object/keycloakify-angular-lib-pipes-is-array-with-empty-object.ts"],"sourcesContent":["import { Pipe, type PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'isArrayWithEmptyObject'\n})\nexport class IsArrayWithEmptyObjectPipe implements PipeTransform {\n transform(variable: unknown): boolean {\n return (\n Array.isArray(variable) &&\n variable.length === 1 &&\n typeof variable[0] === 'object' &&\n Object.keys(variable[0]).length === 0\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,0BAA0B,CAAA;AACnC,IAAA,SAAS,CAAC,QAAiB,EAAA;AACvB,QAAA,QACI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;YACvB,QAAQ,CAAC,MAAM,KAAK,CAAC;AACrB,YAAA,OAAO,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ;AAC/B,YAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,CAAC;IAE7C;8GARS,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,wBAAA,EAAA,CAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;ACJD;;AAEG;;;;"}
|
|
@@ -20,10 +20,10 @@ class KcSanitizePipe {
|
|
|
20
20
|
throw new Error(`Invalid safe type specified: ${type}`);
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
24
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
23
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: KcSanitizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
24
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.1", ngImport: i0, type: KcSanitizePipe, isStandalone: true, name: "kcSanitize" }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: KcSanitizePipe, decorators: [{
|
|
27
27
|
type: Pipe,
|
|
28
28
|
args: [{ name: 'kcSanitize' }]
|
|
29
29
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-lib-pipes-kc-sanitize.mjs","sources":["../../src/lib/pipes/kc-sanitize/kc-sanitize.pipe.ts","../../src/lib/pipes/kc-sanitize/keycloakify-angular-lib-pipes-kc-sanitize.ts"],"sourcesContent":["import { inject, Pipe, PipeTransform } from '@angular/core';\nimport {\n DomSanitizer,\n SafeHtml,\n SafeResourceUrl,\n SafeScript,\n SafeStyle,\n SafeUrl\n} from '@angular/platform-browser';\n\n@Pipe({ name: 'kcSanitize' })\nexport class KcSanitizePipe implements PipeTransform {\n #sanitizer = inject(DomSanitizer);\n\n transform(\n value: string,\n type: 'html' | 'style' | 'script' | 'url' | 'resourceUrl'\n ): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html':\n return this.#sanitizer.bypassSecurityTrustHtml(value);\n case 'style':\n return this.#sanitizer.bypassSecurityTrustStyle(value);\n case 'script':\n return this.#sanitizer.bypassSecurityTrustScript(value);\n case 'url':\n return this.#sanitizer.bypassSecurityTrustUrl(value);\n case 'resourceUrl':\n return this.#sanitizer.bypassSecurityTrustResourceUrl(value);\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAWa,cAAc,CAAA;AACvB,IAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;IAEjC,SAAS,CACL,KAAa,EACb,IAAyD,EAAA;QAEzD,QAAQ,IAAI;AACR,YAAA,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACzD,YAAA,KAAK,OAAO;gBACR,OAAO,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,KAAK,CAAC;AAC1D,YAAA,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,KAAK,CAAC;AAC3D,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,KAAK,CAAC;AACxD,YAAA,KAAK,aAAa;gBACd,OAAO,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC,KAAK,CAAC;AAChE,YAAA;AACI,gBAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAA,CAAE,CAAC
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-lib-pipes-kc-sanitize.mjs","sources":["../../src/lib/pipes/kc-sanitize/kc-sanitize.pipe.ts","../../src/lib/pipes/kc-sanitize/keycloakify-angular-lib-pipes-kc-sanitize.ts"],"sourcesContent":["import { inject, Pipe, type PipeTransform } from '@angular/core';\nimport {\n DomSanitizer,\n type SafeHtml,\n type SafeResourceUrl,\n type SafeScript,\n type SafeStyle,\n type SafeUrl\n} from '@angular/platform-browser';\n\n@Pipe({ name: 'kcSanitize' })\nexport class KcSanitizePipe implements PipeTransform {\n #sanitizer = inject(DomSanitizer);\n\n transform(\n value: string,\n type: 'html' | 'style' | 'script' | 'url' | 'resourceUrl'\n ): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n switch (type) {\n case 'html':\n return this.#sanitizer.bypassSecurityTrustHtml(value);\n case 'style':\n return this.#sanitizer.bypassSecurityTrustStyle(value);\n case 'script':\n return this.#sanitizer.bypassSecurityTrustScript(value);\n case 'url':\n return this.#sanitizer.bypassSecurityTrustUrl(value);\n case 'resourceUrl':\n return this.#sanitizer.bypassSecurityTrustResourceUrl(value);\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAWa,cAAc,CAAA;AACvB,IAAA,UAAU,GAAG,MAAM,CAAC,YAAY,CAAC;IAEjC,SAAS,CACL,KAAa,EACb,IAAyD,EAAA;QAEzD,QAAQ,IAAI;AACR,YAAA,KAAK,MAAM;gBACP,OAAO,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC,KAAK,CAAC;AACzD,YAAA,KAAK,OAAO;gBACR,OAAO,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,KAAK,CAAC;AAC1D,YAAA,KAAK,QAAQ;gBACT,OAAO,IAAI,CAAC,UAAU,CAAC,yBAAyB,CAAC,KAAK,CAAC;AAC3D,YAAA,KAAK,KAAK;gBACN,OAAO,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,KAAK,CAAC;AACxD,YAAA,KAAK,aAAa;gBACd,OAAO,IAAI,CAAC,UAAU,CAAC,8BAA8B,CAAC,KAAK,CAAC;AAChE,YAAA;AACI,gBAAA,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAA,CAAE,CAAC;;IAEnE;8GArBS,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,IAAI;mBAAC,EAAE,IAAI,EAAE,YAAY,EAAE;;;ACV5B;;AAEG;;;;"}
|
|
@@ -9,10 +9,10 @@ class ToArrayPipe {
|
|
|
9
9
|
}
|
|
10
10
|
return emptyWhenString ? [] : [value];
|
|
11
11
|
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
13
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ToArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
13
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.1", ngImport: i0, type: ToArrayPipe, isStandalone: true, name: "toArray" }); }
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ToArrayPipe, decorators: [{
|
|
16
16
|
type: Pipe,
|
|
17
17
|
args: [{
|
|
18
18
|
name: 'toArray'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-lib-pipes-to-array.mjs","sources":["../../src/lib/pipes/to-array/to-array.pipe.ts","../../src/lib/pipes/to-array/keycloakify-angular-lib-pipes-to-array.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'toArray'\n})\nexport class ToArrayPipe implements PipeTransform {\n transform(value: string | string[], emptyWhenString = false): string[] {\n // if (!value) throw new Error('must pass a value');\n if (value instanceof Array) {\n return value;\n }\n return emptyWhenString ? [] : [value];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,WAAW,CAAA;AACpB,IAAA,SAAS,CAAC,KAAwB,EAAE,eAAe,GAAG,KAAK,EAAA;;AAEvD,QAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AACxB,YAAA,OAAO,KAAK
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-lib-pipes-to-array.mjs","sources":["../../src/lib/pipes/to-array/to-array.pipe.ts","../../src/lib/pipes/to-array/keycloakify-angular-lib-pipes-to-array.ts"],"sourcesContent":["import { Pipe, type PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'toArray'\n})\nexport class ToArrayPipe implements PipeTransform {\n transform(value: string | string[], emptyWhenString = false): string[] {\n // if (!value) throw new Error('must pass a value');\n if (value instanceof Array) {\n return value;\n }\n return emptyWhenString ? [] : [value];\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,WAAW,CAAA;AACpB,IAAA,SAAS,CAAC,KAAwB,EAAE,eAAe,GAAG,KAAK,EAAA;;AAEvD,QAAA,IAAI,KAAK,YAAY,KAAK,EAAE;AACxB,YAAA,OAAO,KAAK;QAChB;QACA,OAAO,eAAe,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;IACzC;8GAPS,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,CAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;ACJD;;AAEG;;;;"}
|
|
@@ -8,10 +8,10 @@ class ToNumberPipe {
|
|
|
8
8
|
throw new Error('number is NaN');
|
|
9
9
|
return number;
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ToNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.0.1", ngImport: i0, type: ToNumberPipe, isStandalone: true, name: "toNumber" }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ToNumberPipe, decorators: [{
|
|
15
15
|
type: Pipe,
|
|
16
16
|
args: [{
|
|
17
17
|
name: 'toNumber'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-lib-pipes-to-number.mjs","sources":["../../src/lib/pipes/to-number/to-number.pipe.ts","../../src/lib/pipes/to-number/keycloakify-angular-lib-pipes-to-number.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'toNumber'\n})\nexport class ToNumberPipe implements PipeTransform {\n transform(value: string | number): number {\n const number = parseInt(`${value}`);\n if (isNaN(number)) throw new Error('number is NaN');\n return number;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,YAAY,CAAA;AACrB,IAAA,SAAS,CAAC,KAAsB,EAAA;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAA,CAAE,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,CAAC;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC;AACnD,QAAA,OAAO,MAAM
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-lib-pipes-to-number.mjs","sources":["../../src/lib/pipes/to-number/to-number.pipe.ts","../../src/lib/pipes/to-number/keycloakify-angular-lib-pipes-to-number.ts"],"sourcesContent":["import { Pipe, type PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'toNumber'\n})\nexport class ToNumberPipe implements PipeTransform {\n transform(value: string | number): number {\n const number = parseInt(`${value}`);\n if (isNaN(number)) throw new Error('number is NaN');\n return number;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,YAAY,CAAA;AACrB,IAAA,SAAS,CAAC,KAAsB,EAAA;QAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,KAAK,CAAA,CAAE,CAAC;QACnC,IAAI,KAAK,CAAC,MAAM,CAAC;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC;AACnD,QAAA,OAAO,MAAM;IACjB;8GALS,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAZ,YAAY,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,CAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE;AACT,iBAAA;;;ACJD;;AAEG;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, RendererFactory2, Injectable } from '@angular/core';
|
|
3
3
|
import { Observable } from 'rxjs';
|
|
4
|
+
import '@keycloakify/angular/lib/models/script';
|
|
4
5
|
|
|
5
6
|
class ResourceInjectorService {
|
|
6
7
|
constructor() {
|
|
@@ -44,10 +45,10 @@ class ResourceInjectorService {
|
|
|
44
45
|
script.id = id;
|
|
45
46
|
this.renderer.appendChild(document.head, script);
|
|
46
47
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
48
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ResourceInjectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
49
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ResourceInjectorService, providedIn: 'root' }); }
|
|
49
50
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: ResourceInjectorService, decorators: [{
|
|
51
52
|
type: Injectable,
|
|
52
53
|
args: [{
|
|
53
54
|
providedIn: 'root'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-lib-services-resource-injector.mjs","sources":["../../src/lib/services/resource-injector/resource-injector.service.ts","../../src/lib/services/resource-injector/keycloakify-angular-lib-services-resource-injector.ts"],"sourcesContent":["import { inject, Injectable, Renderer2, RendererFactory2 } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { Script } from '@keycloakify/angular/lib/models/script';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ResourceInjectorService {\n private renderer: Renderer2 = inject(RendererFactory2).createRenderer(null, null);\n\n createLink(url: string): Observable<void> {\n return new Observable<void>(observer => {\n // check if the style is already injected\n if (Array.from(document.styleSheets).some(s => s.href?.includes(url))) {\n observer.next();\n observer.complete();\n console.debug(`stylesheet: ${url} already loaded`);\n return;\n }\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = url;\n\n link.onload = () => {\n observer.next();\n observer.complete();\n };\n\n link.onerror = () => {\n observer.error(new Error(`Failed to load stylesheet: ${url}`));\n };\n\n const head = document.head;\n head.insertBefore(link, head.firstChild);\n });\n }\n createScript({ type, id, src, textContent }: Script): void {\n // check if the script is already injected\n if (Array.from(document.scripts).some(s => s.id?.includes(id))) {\n console.debug(`script: ${src} already injected`);\n return;\n }\n const script = document.createElement('script');\n script.type = type;\n if (src) script.src = src;\n if (textContent) script.textContent = textContent;\n script.id = id;\n\n this.renderer.appendChild(document.head, script);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-lib-services-resource-injector.mjs","sources":["../../src/lib/services/resource-injector/resource-injector.service.ts","../../src/lib/services/resource-injector/keycloakify-angular-lib-services-resource-injector.ts"],"sourcesContent":["import { inject, Injectable, type Renderer2, RendererFactory2 } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { type Script } from '@keycloakify/angular/lib/models/script';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ResourceInjectorService {\n private renderer: Renderer2 = inject(RendererFactory2).createRenderer(null, null);\n\n createLink(url: string): Observable<void> {\n return new Observable<void>(observer => {\n // check if the style is already injected\n if (Array.from(document.styleSheets).some(s => s.href?.includes(url))) {\n observer.next();\n observer.complete();\n console.debug(`stylesheet: ${url} already loaded`);\n return;\n }\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.href = url;\n\n link.onload = () => {\n observer.next();\n observer.complete();\n };\n\n link.onerror = () => {\n observer.error(new Error(`Failed to load stylesheet: ${url}`));\n };\n\n const head = document.head;\n head.insertBefore(link, head.firstChild);\n });\n }\n createScript({ type, id, src, textContent }: Script): void {\n // check if the script is already injected\n if (Array.from(document.scripts).some(s => s.id?.includes(id))) {\n console.debug(`script: ${src} already injected`);\n return;\n }\n const script = document.createElement('script');\n script.type = type;\n if (src) script.src = src;\n if (textContent) script.textContent = textContent;\n script.id = id;\n\n this.renderer.appendChild(document.head, script);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAOa,uBAAuB,CAAA;AAHpC,IAAA,WAAA,GAAA;AAIY,QAAA,IAAA,CAAA,QAAQ,GAAc,MAAM,CAAC,gBAAgB,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC;AA0CpF,IAAA;AAxCG,IAAA,UAAU,CAAC,GAAW,EAAA;AAClB,QAAA,OAAO,IAAI,UAAU,CAAO,QAAQ,IAAG;;YAEnC,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE;gBACnE,QAAQ,CAAC,IAAI,EAAE;gBACf,QAAQ,CAAC,QAAQ,EAAE;AACnB,gBAAA,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,CAAA,eAAA,CAAiB,CAAC;gBAClD;YACJ;YACA,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC3C,YAAA,IAAI,CAAC,GAAG,GAAG,YAAY;AACvB,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG;AAEf,YAAA,IAAI,CAAC,MAAM,GAAG,MAAK;gBACf,QAAQ,CAAC,IAAI,EAAE;gBACf,QAAQ,CAAC,QAAQ,EAAE;AACvB,YAAA,CAAC;AAED,YAAA,IAAI,CAAC,OAAO,GAAG,MAAK;gBAChB,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,GAAG,CAAA,CAAE,CAAC,CAAC;AAClE,YAAA,CAAC;AAED,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI;YAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;AAC5C,QAAA,CAAC,CAAC;IACN;IACA,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,WAAW,EAAU,EAAA;;QAE/C,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE;AAC5D,YAAA,OAAO,CAAC,KAAK,CAAC,WAAW,GAAG,CAAA,iBAAA,CAAmB,CAAC;YAChD;QACJ;QACA,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC/C,QAAA,MAAM,CAAC,IAAI,GAAG,IAAI;AAClB,QAAA,IAAI,GAAG;AAAE,YAAA,MAAM,CAAC,GAAG,GAAG,GAAG;AACzB,QAAA,IAAI,WAAW;AAAE,YAAA,MAAM,CAAC,WAAW,GAAG,WAAW;AACjD,QAAA,MAAM,CAAC,EAAE,GAAG,EAAE;QAEd,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACpD;8GA1CS,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFpB,MAAM,EAAA,CAAA,CAAA;;2FAET,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACND;;AAEG;;;;"}
|
package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs
CHANGED
|
@@ -6,9 +6,9 @@ import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
|
|
|
6
6
|
class AddRemoveButtonsMultiValuedAttributeComponent {
|
|
7
7
|
constructor() {
|
|
8
8
|
this.i18n = inject(LOGIN_I18N);
|
|
9
|
-
this.attribute = input(...(ngDevMode ?
|
|
10
|
-
this.values = input(...(ngDevMode ?
|
|
11
|
-
this.fieldIndex = input(...(ngDevMode ?
|
|
9
|
+
this.attribute = input(undefined, { ...(ngDevMode ? { debugName: "attribute" } : {}) });
|
|
10
|
+
this.values = input(undefined, { ...(ngDevMode ? { debugName: "values" } : {}) });
|
|
11
|
+
this.fieldIndex = input(undefined, { ...(ngDevMode ? { debugName: "fieldIndex" } : {}) });
|
|
12
12
|
this.dispatchFormAction = output();
|
|
13
13
|
this.hasRemove = computed(() => {
|
|
14
14
|
const attribute = this.attribute();
|
|
@@ -22,7 +22,7 @@ class AddRemoveButtonsMultiValuedAttributeComponent {
|
|
|
22
22
|
}).hasRemove;
|
|
23
23
|
}
|
|
24
24
|
return false;
|
|
25
|
-
}, ...(ngDevMode ?
|
|
25
|
+
}, { ...(ngDevMode ? { debugName: "hasRemove" } : {}) });
|
|
26
26
|
this.hasAdd = computed(() => {
|
|
27
27
|
const attribute = this.attribute();
|
|
28
28
|
const values = this.values();
|
|
@@ -35,7 +35,7 @@ class AddRemoveButtonsMultiValuedAttributeComponent {
|
|
|
35
35
|
}).hasAdd;
|
|
36
36
|
}
|
|
37
37
|
return false;
|
|
38
|
-
}, ...(ngDevMode ?
|
|
38
|
+
}, { ...(ngDevMode ? { debugName: "hasAdd" } : {}) });
|
|
39
39
|
}
|
|
40
40
|
onAdd() {
|
|
41
41
|
this.dispatchFormAction.emit({
|
|
@@ -51,10 +51,10 @@ class AddRemoveButtonsMultiValuedAttributeComponent {
|
|
|
51
51
|
valueOrValues: (this.values() ?? []).filter((_, i) => i !== this.fieldIndex())
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
55
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: AddRemoveButtonsMultiValuedAttributeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
55
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.1", type: AddRemoveButtonsMultiValuedAttributeComponent, isStandalone: true, selector: "kc-add-remove-buttons-multi-valued-attribute", inputs: { attribute: { classPropertyName: "attribute", publicName: "attribute", isSignal: true, isRequired: false, transformFunction: null }, values: { classPropertyName: "values", publicName: "values", isSignal: true, isRequired: false, transformFunction: null }, fieldIndex: { classPropertyName: "fieldIndex", publicName: "fieldIndex", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dispatchFormAction: "dispatchFormAction" }, ngImport: i0, template: "@let idPostfix = attribute()?.name ?? '' + '-' + (fieldIndex() ?? 0 + 1);\n@if (hasRemove()) {\n <button\n type=\"button\"\n class=\"pf-c-button pf-m-inline pf-m-link\"\n [id]=\"'kc-remove-' + idPostfix\"\n (click)=\"onRemove()\"\n >\n {{ i18n.msgStr('remove') }}\n </button>\n @if (hasAdd()) {\n | \n }\n}\n@if (hasAdd()) {\n <button\n type=\"button\"\n class=\"pf-c-button pf-m-inline pf-m-link\"\n [id]=\"'kc-add-' + idPostfix\"\n (click)=\"onAdd()\"\n >\n {{ i18n.msgStr('addValue') }}\n </button>\n}\n", styles: [":host{display:contents}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
56
56
|
}
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: AddRemoveButtonsMultiValuedAttributeComponent, decorators: [{
|
|
58
58
|
type: Component,
|
|
59
59
|
args: [{ selector: 'kc-add-remove-buttons-multi-valued-attribute', changeDetection: ChangeDetectionStrategy.OnPush, template: "@let idPostfix = attribute()?.name ?? '' + '-' + (fieldIndex() ?? 0 + 1);\n@if (hasRemove()) {\n <button\n type=\"button\"\n class=\"pf-c-button pf-m-inline pf-m-link\"\n [id]=\"'kc-remove-' + idPostfix\"\n (click)=\"onRemove()\"\n >\n {{ i18n.msgStr('remove') }}\n </button>\n @if (hasAdd()) {\n | \n }\n}\n@if (hasAdd()) {\n <button\n type=\"button\"\n class=\"pf-c-button pf-m-inline pf-m-link\"\n [id]=\"'kc-add-' + idPostfix\"\n (click)=\"onAdd()\"\n >\n {{ i18n.msgStr('addValue') }}\n </button>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
60
60
|
}], propDecorators: { attribute: [{ type: i0.Input, args: [{ isSignal: true, alias: "attribute", required: false }] }], values: [{ type: i0.Input, args: [{ isSignal: true, alias: "values", required: false }] }], fieldIndex: [{ type: i0.Input, args: [{ isSignal: true, alias: "fieldIndex", required: false }] }], dispatchFormAction: [{ type: i0.Output, args: ["dispatchFormAction"] }] } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs","sources":["../../src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.ts","../../src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html","../../src/login/components/add-remove-buttons-multi-valued-attribute/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, input, output } from '@angular/core';\nimport { getButtonToDisplayForMultivaluedAttributeField, type FormAction } from '@keycloakify/angular/login/services/user-profile-form';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport type { Attribute } from 'keycloakify/login/KcContext';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\n\n@Component({\n styles: [\n `\n :host {\n display: contents;\n }\n `\n ],\n selector: 'kc-add-remove-buttons-multi-valued-attribute',\n templateUrl: 'add-remove-buttons-multi-valued-attribute.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AddRemoveButtonsMultiValuedAttributeComponent {\n i18n = inject<I18n>(LOGIN_I18N);\n attribute = input<Attribute>();\n values = input<string[]>();\n fieldIndex = input<number>();\n dispatchFormAction = output<FormAction>();\n\n hasRemove = computed(() => {\n const attribute = this.attribute();\n const values = this.values();\n const fieldIndex = this.fieldIndex();\n if (attribute && values && fieldIndex) {\n return getButtonToDisplayForMultivaluedAttributeField({\n attribute,\n values,\n fieldIndex\n }).hasRemove;\n }\n return false;\n });\n hasAdd = computed(() => {\n const attribute = this.attribute();\n const values = this.values();\n const fieldIndex = this.fieldIndex();\n if (attribute && values && fieldIndex) {\n return getButtonToDisplayForMultivaluedAttributeField({\n attribute,\n values,\n fieldIndex\n }).hasAdd;\n }\n return false;\n });\n\n onAdd() {\n this.dispatchFormAction.emit({\n action: 'update',\n name: this.attribute()?.name ?? '',\n valueOrValues: [...(this.values() ?? []), '']\n });\n }\n\n onRemove() {\n this.dispatchFormAction.emit({\n action: 'update',\n name: this.attribute()?.name ?? '',\n valueOrValues: (this.values() ?? []).filter((_, i) => i !== this.fieldIndex())\n });\n }\n}\n","@let idPostfix = attribute()?.name ?? '' + '-' + (fieldIndex() ?? 0 + 1);\n@if (hasRemove()) {\n <button\n type=\"button\"\n class=\"pf-c-button pf-m-inline pf-m-link\"\n [id]=\"'kc-remove-' + idPostfix\"\n (click)=\"onRemove()\"\n >\n {{ i18n.msgStr('remove') }}\n </button>\n @if (hasAdd()) {\n | \n }\n}\n@if (hasAdd()) {\n <button\n type=\"button\"\n class=\"pf-c-button pf-m-inline pf-m-link\"\n [id]=\"'kc-add-' + idPostfix\"\n (click)=\"onAdd()\"\n >\n {{ i18n.msgStr('addValue') }}\n </button>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;MAkBa,6CAA6C,CAAA;AAZ1D,IAAA,WAAA,GAAA;AAaI,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC;QAC/B,
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs","sources":["../../src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.ts","../../src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html","../../src/login/components/add-remove-buttons-multi-valued-attribute/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, inject, input, output } from '@angular/core';\nimport { getButtonToDisplayForMultivaluedAttributeField, type FormAction } from '@keycloakify/angular/login/services/user-profile-form';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport type { Attribute } from 'keycloakify/login/KcContext';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\n\n@Component({\n styles: [\n `\n :host {\n display: contents;\n }\n `\n ],\n selector: 'kc-add-remove-buttons-multi-valued-attribute',\n templateUrl: 'add-remove-buttons-multi-valued-attribute.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class AddRemoveButtonsMultiValuedAttributeComponent {\n i18n = inject<I18n>(LOGIN_I18N);\n attribute = input<Attribute>();\n values = input<string[]>();\n fieldIndex = input<number>();\n dispatchFormAction = output<FormAction>();\n\n hasRemove = computed(() => {\n const attribute = this.attribute();\n const values = this.values();\n const fieldIndex = this.fieldIndex();\n if (attribute && values && fieldIndex) {\n return getButtonToDisplayForMultivaluedAttributeField({\n attribute,\n values,\n fieldIndex\n }).hasRemove;\n }\n return false;\n });\n hasAdd = computed(() => {\n const attribute = this.attribute();\n const values = this.values();\n const fieldIndex = this.fieldIndex();\n if (attribute && values && fieldIndex) {\n return getButtonToDisplayForMultivaluedAttributeField({\n attribute,\n values,\n fieldIndex\n }).hasAdd;\n }\n return false;\n });\n\n onAdd() {\n this.dispatchFormAction.emit({\n action: 'update',\n name: this.attribute()?.name ?? '',\n valueOrValues: [...(this.values() ?? []), '']\n });\n }\n\n onRemove() {\n this.dispatchFormAction.emit({\n action: 'update',\n name: this.attribute()?.name ?? '',\n valueOrValues: (this.values() ?? []).filter((_, i) => i !== this.fieldIndex())\n });\n }\n}\n","@let idPostfix = attribute()?.name ?? '' + '-' + (fieldIndex() ?? 0 + 1);\n@if (hasRemove()) {\n <button\n type=\"button\"\n class=\"pf-c-button pf-m-inline pf-m-link\"\n [id]=\"'kc-remove-' + idPostfix\"\n (click)=\"onRemove()\"\n >\n {{ i18n.msgStr('remove') }}\n </button>\n @if (hasAdd()) {\n | \n }\n}\n@if (hasAdd()) {\n <button\n type=\"button\"\n class=\"pf-c-button pf-m-inline pf-m-link\"\n [id]=\"'kc-add-' + idPostfix\"\n (click)=\"onAdd()\"\n >\n {{ i18n.msgStr('addValue') }}\n </button>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -8,21 +8,21 @@ import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
|
8
8
|
class FieldErrorsComponent extends ComponentReference {
|
|
9
9
|
constructor() {
|
|
10
10
|
super(...arguments);
|
|
11
|
-
this.attribute = input(...(ngDevMode ?
|
|
12
|
-
this.displayableErrors = input(...(ngDevMode ?
|
|
13
|
-
this.fieldIndex = input(...(ngDevMode ?
|
|
11
|
+
this.attribute = input(undefined, { ...(ngDevMode ? { debugName: "attribute" } : {}) });
|
|
12
|
+
this.displayableErrors = input(undefined, { ...(ngDevMode ? { debugName: "displayableErrors" } : {}) });
|
|
13
|
+
this.fieldIndex = input(undefined, { ...(ngDevMode ? { debugName: "fieldIndex" } : {}) });
|
|
14
14
|
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
15
15
|
this.classes = inject(LOGIN_CLASSES);
|
|
16
16
|
}
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
18
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
17
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: FieldErrorsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
18
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.1", type: FieldErrorsComponent, isStandalone: true, selector: "kc-field-errors", inputs: { attribute: { classPropertyName: "attribute", publicName: "attribute", isSignal: true, isRequired: false, transformFunction: null }, displayableErrors: { classPropertyName: "displayableErrors", publicName: "displayableErrors", isSignal: true, isRequired: false, transformFunction: null }, fieldIndex: { classPropertyName: "fieldIndex", publicName: "fieldIndex", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
19
19
|
{
|
|
20
20
|
provide: ComponentReference,
|
|
21
21
|
useExisting: forwardRef(() => FieldErrorsComponent)
|
|
22
22
|
}
|
|
23
23
|
], usesInheritance: true, ngImport: i0, template: "@let index = fieldIndex();\n<span\n aria-live=\"polite\"\n [id]=\"'input-error-' + attribute.name + (index === undefined ? '' : '-' + index)\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n>\n @for (error of displayableErrors(); track error; let i = $index) {\n @if (error.fieldIndex === index) {\n <span [innerHTML]=\"error.errorMessage\"></span>\n @if (displayableErrors()?.length ?? 0 - 1 !== i) {\n <br />\n }\n }\n }\n</span>\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
24
24
|
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: FieldErrorsComponent, decorators: [{
|
|
26
26
|
type: Component,
|
|
27
27
|
args: [{ imports: [KcClassDirective], selector: 'kc-field-errors', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
28
28
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-login-components-field-errors.mjs","sources":["../../src/login/components/field-errors/field-errors.component.ts","../../src/login/components/field-errors/field-errors.component.html","../../src/login/components/field-errors/keycloakify-angular-login-components-field-errors.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, input } 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 { FormFieldError } from '@keycloakify/angular/login/services/user-profile-form';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport type { Attribute } from 'keycloakify/login/KcContext';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n styles: [\n `\n :host {\n display: contents;\n }\n `\n ],\n imports: [KcClassDirective],\n selector: 'kc-field-errors',\n templateUrl: 'field-errors.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => FieldErrorsComponent)\n }\n ]\n})\nexport class FieldErrorsComponent extends ComponentReference {\n attribute = input<Attribute>();\n displayableErrors = input<FormFieldError[]>();\n fieldIndex = input<number>();\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n}\n","@let index = fieldIndex();\n<span\n aria-live=\"polite\"\n [id]=\"'input-error-' + attribute.name + (index === undefined ? '' : '-' + index)\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n>\n @for (error of displayableErrors(); track error; let i = $index) {\n @if (error.fieldIndex === index) {\n <span [innerHTML]=\"error.errorMessage\"></span>\n @if (displayableErrors()?.length ?? 0 - 1 !== i) {\n <br />\n }\n }\n }\n</span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AA4BM,MAAO,oBAAqB,SAAQ,kBAAkB,CAAA;AAnB5D,IAAA,WAAA,GAAA;;QAoBI,
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-login-components-field-errors.mjs","sources":["../../src/login/components/field-errors/field-errors.component.ts","../../src/login/components/field-errors/field-errors.component.html","../../src/login/components/field-errors/keycloakify-angular-login-components-field-errors.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, forwardRef, inject, input } 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 { FormFieldError } from '@keycloakify/angular/login/services/user-profile-form';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport type { Attribute } from 'keycloakify/login/KcContext';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n styles: [\n `\n :host {\n display: contents;\n }\n `\n ],\n imports: [KcClassDirective],\n selector: 'kc-field-errors',\n templateUrl: 'field-errors.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => FieldErrorsComponent)\n }\n ]\n})\nexport class FieldErrorsComponent extends ComponentReference {\n attribute = input<Attribute>();\n displayableErrors = input<FormFieldError[]>();\n fieldIndex = input<number>();\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n}\n","@let index = fieldIndex();\n<span\n aria-live=\"polite\"\n [id]=\"'input-error-' + attribute.name + (index === undefined ? '' : '-' + index)\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n>\n @for (error of displayableErrors(); track error; let i = $index) {\n @if (error.fieldIndex === index) {\n <span [innerHTML]=\"error.errorMessage\"></span>\n @if (displayableErrors()?.length ?? 0 - 1 !== i) {\n <br />\n }\n }\n }\n</span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AA4BM,MAAO,oBAAqB,SAAQ,kBAAkB,CAAA;AAnB5D,IAAA,WAAA,GAAA;;QAoBI,IAAA,CAAA,SAAS,GAAG,KAAK,CAAA,SAAA,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,WAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAa;QAC9B,IAAA,CAAA,iBAAiB,GAAG,KAAK,CAAA,SAAA,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAoB;QAC7C,IAAA,CAAA,UAAU,GAAG,KAAK,CAAA,SAAA,EAAA,EAAA,IAAA,SAAA,GAAA,EAAA,SAAA,EAAA,YAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAU;AACnB,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,aAAa,CAAC;AAC9E,IAAA;8GANY,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAPlB;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,oBAAoB;AACrD;SACJ,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BL,6fAeA,mFDEc,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAWjB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAnBhC,SAAS;8BAQG,CAAC,gBAAgB,CAAC,EAAA,QAAA,EACjB,iBAAiB,mBAEV,uBAAuB,CAAC,MAAM,EAAA,SAAA,EACpC;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,0BAA0B;AACrD;AACJ,qBAAA,EAAA,QAAA,EAAA,6fAAA,EAAA,MAAA,EAAA,CAAA,2BAAA,CAAA,EAAA;;;AE1BL;;AAEG;;;;"}
|
|
@@ -11,8 +11,8 @@ class GroupLabelComponent extends ComponentReference {
|
|
|
11
11
|
constructor() {
|
|
12
12
|
super(...arguments);
|
|
13
13
|
this.i18n = inject(LOGIN_I18N);
|
|
14
|
-
this.attribute = input(...(ngDevMode ?
|
|
15
|
-
this.groupName = input(...(ngDevMode ?
|
|
14
|
+
this.attribute = input(undefined, { ...(ngDevMode ? { debugName: "attribute" } : {}) });
|
|
15
|
+
this.groupName = input(undefined, { ...(ngDevMode ? { debugName: "groupName" } : {}) });
|
|
16
16
|
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
17
17
|
this.classes = inject(LOGIN_CLASSES);
|
|
18
18
|
this.groupNameRef = computed(() => {
|
|
@@ -22,17 +22,17 @@ class GroupLabelComponent extends ComponentReference {
|
|
|
22
22
|
return attribute?.group?.name ?? '';
|
|
23
23
|
}
|
|
24
24
|
return '';
|
|
25
|
-
}, ...(ngDevMode ?
|
|
25
|
+
}, { ...(ngDevMode ? { debugName: "groupNameRef" } : {}) });
|
|
26
26
|
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
28
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: GroupLabelComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.1", type: GroupLabelComponent, isStandalone: true, selector: "kc-group-label", inputs: { attribute: { classPropertyName: "attribute", publicName: "attribute", isSignal: true, isRequired: false, transformFunction: null }, groupName: { classPropertyName: "groupName", publicName: "groupName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
29
29
|
{
|
|
30
30
|
provide: ComponentReference,
|
|
31
31
|
useExisting: forwardRef(() => GroupLabelComponent)
|
|
32
32
|
}
|
|
33
33
|
], usesInheritance: true, ngImport: i0, template: "@let attr = attribute();\n@let groupName = groupNameRef();\n@if (attr && groupName !== '') {\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n [kcAttributes]=\"attr.group?.html5DataAnnotations\"\n >\n @let groupDisplayHeader = attr.group?.displayHeader ?? '';\n @let groupHeaderText = groupDisplayHeader !== '' ? groupDisplayHeader : (attr.group?.name ?? '');\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <label\n [id]=\"'header-' + attr.group?.name\"\n [kcClass]=\"'kcFormGroupHeader'\"\n >\n {{ i18n.advancedMsgStr(groupHeaderText) }}\n </label>\n </div>\n @let groupDisplayDescription = attr.group?.displayDescription ?? '';\n @if (groupDisplayDescription !== '') {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n [id]=\"'description-' + attr.group?.name\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.advancedMsgStr(groupDisplayDescription) }}\n </label>\n </div>\n }\n </div>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "directive", type: AttributesDirective, selector: "[kcAttributes]", inputs: ["kcAttributes"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34
34
|
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: GroupLabelComponent, decorators: [{
|
|
36
36
|
type: Component,
|
|
37
37
|
args: [{ imports: [KcClassDirective, AttributesDirective], selector: 'kc-group-label', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
38
38
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-login-components-group-label.mjs","sources":["../../src/login/components/group-label/group-label.component.ts","../../src/login/components/group-label/group-label.component.html","../../src/login/components/group-label/keycloakify-angular-login-components-group-label.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, input } 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 { AttributesDirective } from '@keycloakify/angular/lib/directives/attributes';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport type { Attribute } from 'keycloakify/login/KcContext';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\n\n@Component({\n styles: [\n `\n :host {\n display: contents;\n }\n `\n ],\n imports: [KcClassDirective, AttributesDirective],\n selector: 'kc-group-label',\n templateUrl: 'group-label.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => GroupLabelComponent)\n }\n ]\n})\nexport class GroupLabelComponent extends ComponentReference {\n i18n = inject<I18n>(LOGIN_I18N);\n attribute = input<Attribute>();\n groupName = input<string>();\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n groupNameRef = computed(() => {\n const attribute = this.attribute();\n const groupName = this.groupName();\n if (attribute?.group?.name !== groupName) {\n return attribute?.group?.name ?? '';\n }\n return '';\n });\n}\n","@let attr = attribute();\n@let groupName = groupNameRef();\n@if (attr && groupName !== '') {\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n [kcAttributes]=\"attr.group?.html5DataAnnotations\"\n >\n @let groupDisplayHeader = attr.group?.displayHeader ?? '';\n @let groupHeaderText = groupDisplayHeader !== '' ? groupDisplayHeader : (attr.group?.name ?? '');\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <label\n [id]=\"'header-' + attr.group?.name\"\n [kcClass]=\"'kcFormGroupHeader'\"\n >\n {{ i18n.advancedMsgStr(groupHeaderText) }}\n </label>\n </div>\n @let groupDisplayDescription = attr.group?.displayDescription ?? '';\n @if (groupDisplayDescription !== '') {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n [id]=\"'description-' + attr.group?.name\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.advancedMsgStr(groupDisplayDescription) }}\n </label>\n </div>\n }\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;AA8BM,MAAO,mBAAoB,SAAQ,kBAAkB,CAAA;AAnB3D,IAAA,WAAA,GAAA;;AAoBI,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,UAAU,CAAC;QAC/B,
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-login-components-group-label.mjs","sources":["../../src/login/components/group-label/group-label.component.ts","../../src/login/components/group-label/group-label.component.html","../../src/login/components/group-label/keycloakify-angular-login-components-group-label.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, input } 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 { AttributesDirective } from '@keycloakify/angular/lib/directives/attributes';\nimport { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';\nimport type { Attribute } from 'keycloakify/login/KcContext';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\nimport type { I18n } from '@keycloakify/angular/login/i18n';\n\n@Component({\n styles: [\n `\n :host {\n display: contents;\n }\n `\n ],\n imports: [KcClassDirective, AttributesDirective],\n selector: 'kc-group-label',\n templateUrl: 'group-label.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => GroupLabelComponent)\n }\n ]\n})\nexport class GroupLabelComponent extends ComponentReference {\n i18n = inject<I18n>(LOGIN_I18N);\n attribute = input<Attribute>();\n groupName = input<string>();\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n groupNameRef = computed(() => {\n const attribute = this.attribute();\n const groupName = this.groupName();\n if (attribute?.group?.name !== groupName) {\n return attribute?.group?.name ?? '';\n }\n return '';\n });\n}\n","@let attr = attribute();\n@let groupName = groupNameRef();\n@if (attr && groupName !== '') {\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n [kcAttributes]=\"attr.group?.html5DataAnnotations\"\n >\n @let groupDisplayHeader = attr.group?.displayHeader ?? '';\n @let groupHeaderText = groupDisplayHeader !== '' ? groupDisplayHeader : (attr.group?.name ?? '');\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <label\n [id]=\"'header-' + attr.group?.name\"\n [kcClass]=\"'kcFormGroupHeader'\"\n >\n {{ i18n.advancedMsgStr(groupHeaderText) }}\n </label>\n </div>\n @let groupDisplayDescription = attr.group?.displayDescription ?? '';\n @if (groupDisplayDescription !== '') {\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n [id]=\"'description-' + attr.group?.name\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.advancedMsgStr(groupDisplayDescription) }}\n </label>\n </div>\n }\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -8,14 +8,15 @@ import { InputTagSelectsComponent } from '@keycloakify/angular/login/components/
|
|
|
8
8
|
import { PasswordWrapperComponent } from '@keycloakify/angular/login/components/password-wrapper';
|
|
9
9
|
import { SelectTagComponent } from '@keycloakify/angular/login/components/select-tag';
|
|
10
10
|
import { TextareaTagComponent } from '@keycloakify/angular/login/components/textarea-tag';
|
|
11
|
+
import '@keycloakify/angular/login/services/user-profile-form';
|
|
11
12
|
import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
12
13
|
|
|
13
14
|
class InputFieldByTypeComponent extends ComponentReference {
|
|
14
15
|
constructor() {
|
|
15
16
|
super(...arguments);
|
|
16
|
-
this.attribute = input(...(ngDevMode ?
|
|
17
|
-
this.valueOrValues = input(...(ngDevMode ?
|
|
18
|
-
this.displayableErrors = input(...(ngDevMode ?
|
|
17
|
+
this.attribute = input(undefined, { ...(ngDevMode ? { debugName: "attribute" } : {}) });
|
|
18
|
+
this.valueOrValues = input(undefined, { ...(ngDevMode ? { debugName: "valueOrValues" } : {}) });
|
|
19
|
+
this.displayableErrors = input(undefined, { ...(ngDevMode ? { debugName: "displayableErrors" } : {}) });
|
|
19
20
|
this.dispatchFormAction = output();
|
|
20
21
|
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
21
22
|
this.classes = inject(LOGIN_CLASSES);
|
|
@@ -25,17 +26,17 @@ class InputFieldByTypeComponent extends ComponentReference {
|
|
|
25
26
|
...attribute,
|
|
26
27
|
annotations: { ...(attribute.annotations ?? {}), inputType: 'password' }
|
|
27
28
|
};
|
|
28
|
-
}, ...(ngDevMode ?
|
|
29
|
+
}, { ...(ngDevMode ? { debugName: "attributePassword" } : {}) });
|
|
29
30
|
}
|
|
30
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
31
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: InputFieldByTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
32
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.1", type: InputFieldByTypeComponent, isStandalone: true, selector: "kc-input-field-by-type", inputs: { attribute: { classPropertyName: "attribute", publicName: "attribute", isSignal: true, isRequired: false, transformFunction: null }, valueOrValues: { classPropertyName: "valueOrValues", publicName: "valueOrValues", isSignal: true, isRequired: false, transformFunction: null }, displayableErrors: { classPropertyName: "displayableErrors", publicName: "displayableErrors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dispatchFormAction: "dispatchFormAction" }, providers: [
|
|
32
33
|
{
|
|
33
34
|
provide: ComponentReference,
|
|
34
35
|
useExisting: forwardRef(() => InputFieldByTypeComponent)
|
|
35
36
|
}
|
|
36
37
|
], usesInheritance: true, ngImport: i0, template: "@let attr = attribute();\n@if (attr) {\n @let type = attr.annotations.inputType;\n @switch (type) {\n @case ('hidden') {\n <input\n type=\"hidden\"\n [name]=\"attr.name\"\n [value]=\"$any(valueOrValues())\"\n />\n }\n @case ('textarea') {\n <kc-textarea-tag\n [attribute]=\"attribute()\"\n [value]=\"$any(valueOrValues())\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n @case (type === 'select' || type === 'multiselect' ? type : '') {\n <kc-select-tag\n [attribute]=\"attribute()\"\n [valueOrValues]=\"valueOrValues()\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n @case (type === 'select-radiobuttons' || type === 'multiselect-checkboxes' ? type : '') {\n <kc-input-tag-selects\n [attribute]=\"attribute()\"\n [valueOrValues]=\"valueOrValues()\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n @default {\n @let values = valueOrValues();\n <!-- if valueOrValues is string skip -->\n @if (values && (values | toArray: true).length) {\n @for (value of values; track value; let i = $index) {\n <kc-input-tag\n [attribute]=\"attribute()\"\n [valueOrValues]=\"valueOrValues()\"\n [fieldIndex]=\"i\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n } @else {\n @if (attr.name === 'password' || attr.name === 'password-confirm') {\n <kc-password-wrapper [passwordInputId]=\"attr.name\">\n <kc-input-tag\n [attribute]=\"attributePassword()\"\n [valueOrValues]=\"valueOrValues()\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n </kc-password-wrapper>\n } @else {\n <kc-input-tag\n [attribute]=\"attribute()\"\n [valueOrValues]=\"valueOrValues()\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n }\n }\n }\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "component", type: TextareaTagComponent, selector: "kc-textarea-tag", inputs: ["attribute", "value", "displayableErrors"], outputs: ["dispatchFormAction"] }, { kind: "component", type: SelectTagComponent, selector: "kc-select-tag", inputs: ["attribute", "valueOrValues", "displayableErrors"], outputs: ["dispatchFormAction"] }, { kind: "component", type: InputTagSelectsComponent, selector: "kc-input-tag-selects", inputs: ["attribute", "valueOrValues", "displayableErrors"], outputs: ["dispatchFormAction"] }, { kind: "component", type: InputTagComponent, selector: "kc-input-tag", inputs: ["attribute", "valueOrValues", "fieldIndex", "values", "displayableErrors"], outputs: ["dispatchFormAction"] }, { kind: "component", type: PasswordWrapperComponent, selector: "kc-password-wrapper", inputs: ["passwordInputId"] }, { kind: "pipe", type: ToArrayPipe, name: "toArray" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37
38
|
}
|
|
38
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.1", ngImport: i0, type: InputFieldByTypeComponent, decorators: [{
|
|
39
40
|
type: Component,
|
|
40
41
|
args: [{ imports: [ToArrayPipe, TextareaTagComponent, SelectTagComponent, InputTagSelectsComponent, InputTagComponent, PasswordWrapperComponent], selector: 'kc-input-field-by-type', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
41
42
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-login-components-input-field-by-type.mjs","sources":["../../src/login/components/input-field-by-type/input-field-by-type.component.ts","../../src/login/components/input-field-by-type/input-field-by-type.component.html","../../src/login/components/input-field-by-type/keycloakify-angular-login-components-input-field-by-type.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, input, output } from '@angular/core';\nimport { ToArrayPipe } from '@keycloakify/angular/lib/pipes/to-array';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { InputTagComponent } from '@keycloakify/angular/login/components/input-tag';\nimport { InputTagSelectsComponent } from '@keycloakify/angular/login/components/input-tag-selects';\nimport { PasswordWrapperComponent } from '@keycloakify/angular/login/components/password-wrapper';\nimport { SelectTagComponent } from '@keycloakify/angular/login/components/select-tag';\nimport { TextareaTagComponent } from '@keycloakify/angular/login/components/textarea-tag';\nimport { FormAction, FormFieldError } from '@keycloakify/angular/login/services/user-profile-form';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport type { Attribute } from 'keycloakify/login/KcContext';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n styles: [\n `\n :host {\n display: contents;\n }\n `\n ],\n imports: [ToArrayPipe, TextareaTagComponent, SelectTagComponent, InputTagSelectsComponent, InputTagComponent, PasswordWrapperComponent],\n selector: 'kc-input-field-by-type',\n templateUrl: 'input-field-by-type.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => InputFieldByTypeComponent)\n }\n ]\n})\nexport class InputFieldByTypeComponent extends ComponentReference {\n attribute = input<Attribute>();\n valueOrValues = input<string | string[]>();\n displayableErrors = input<FormFieldError[]>();\n dispatchFormAction = output<FormAction>();\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n attributePassword = computed<Attribute>(() => {\n const attribute: Attribute = this.attribute() ?? ({} as Attribute);\n return {\n ...attribute,\n annotations: { ...(attribute.annotations ?? {}), inputType: 'password' }\n };\n });\n}\n","@let attr = attribute();\n@if (attr) {\n @let type = attr.annotations.inputType;\n @switch (type) {\n @case ('hidden') {\n <input\n type=\"hidden\"\n [name]=\"attr.name\"\n [value]=\"$any(valueOrValues())\"\n />\n }\n @case ('textarea') {\n <kc-textarea-tag\n [attribute]=\"attribute()\"\n [value]=\"$any(valueOrValues())\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n @case (type === 'select' || type === 'multiselect' ? type : '') {\n <kc-select-tag\n [attribute]=\"attribute()\"\n [valueOrValues]=\"valueOrValues()\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n @case (type === 'select-radiobuttons' || type === 'multiselect-checkboxes' ? type : '') {\n <kc-input-tag-selects\n [attribute]=\"attribute()\"\n [valueOrValues]=\"valueOrValues()\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n @default {\n @let values = valueOrValues();\n <!-- if valueOrValues is string skip -->\n @if (values && (values | toArray: true).length) {\n @for (value of values; track value; let i = $index) {\n <kc-input-tag\n [attribute]=\"attribute()\"\n [valueOrValues]=\"valueOrValues()\"\n [fieldIndex]=\"i\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n } @else {\n @if (attr.name === 'password' || attr.name === 'password-confirm') {\n <kc-password-wrapper [passwordInputId]=\"attr.name\">\n <kc-input-tag\n [attribute]=\"attributePassword()\"\n [valueOrValues]=\"valueOrValues()\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n </kc-password-wrapper>\n } @else {\n <kc-input-tag\n [attribute]=\"attribute()\"\n [valueOrValues]=\"valueOrValues()\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-login-components-input-field-by-type.mjs","sources":["../../src/login/components/input-field-by-type/input-field-by-type.component.ts","../../src/login/components/input-field-by-type/input-field-by-type.component.html","../../src/login/components/input-field-by-type/keycloakify-angular-login-components-input-field-by-type.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, input, output } from '@angular/core';\nimport { ToArrayPipe } from '@keycloakify/angular/lib/pipes/to-array';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';\nimport { InputTagComponent } from '@keycloakify/angular/login/components/input-tag';\nimport { InputTagSelectsComponent } from '@keycloakify/angular/login/components/input-tag-selects';\nimport { PasswordWrapperComponent } from '@keycloakify/angular/login/components/password-wrapper';\nimport { SelectTagComponent } from '@keycloakify/angular/login/components/select-tag';\nimport { TextareaTagComponent } from '@keycloakify/angular/login/components/textarea-tag';\nimport { type FormAction, type FormFieldError } from '@keycloakify/angular/login/services/user-profile-form';\nimport { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';\nimport type { Attribute } from 'keycloakify/login/KcContext';\nimport type { ClassKey } from 'keycloakify/login/lib/kcClsx';\n\n@Component({\n styles: [\n `\n :host {\n display: contents;\n }\n `\n ],\n imports: [ToArrayPipe, TextareaTagComponent, SelectTagComponent, InputTagSelectsComponent, InputTagComponent, PasswordWrapperComponent],\n selector: 'kc-input-field-by-type',\n templateUrl: 'input-field-by-type.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => InputFieldByTypeComponent)\n }\n ]\n})\nexport class InputFieldByTypeComponent extends ComponentReference {\n attribute = input<Attribute>();\n valueOrValues = input<string | string[]>();\n displayableErrors = input<FormFieldError[]>();\n dispatchFormAction = output<FormAction>();\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(LOGIN_CLASSES);\n\n attributePassword = computed<Attribute>(() => {\n const attribute: Attribute = this.attribute() ?? ({} as Attribute);\n return {\n ...attribute,\n annotations: { ...(attribute.annotations ?? {}), inputType: 'password' }\n };\n });\n}\n","@let attr = attribute();\n@if (attr) {\n @let type = attr.annotations.inputType;\n @switch (type) {\n @case ('hidden') {\n <input\n type=\"hidden\"\n [name]=\"attr.name\"\n [value]=\"$any(valueOrValues())\"\n />\n }\n @case ('textarea') {\n <kc-textarea-tag\n [attribute]=\"attribute()\"\n [value]=\"$any(valueOrValues())\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n @case (type === 'select' || type === 'multiselect' ? type : '') {\n <kc-select-tag\n [attribute]=\"attribute()\"\n [valueOrValues]=\"valueOrValues()\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n @case (type === 'select-radiobuttons' || type === 'multiselect-checkboxes' ? type : '') {\n <kc-input-tag-selects\n [attribute]=\"attribute()\"\n [valueOrValues]=\"valueOrValues()\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n @default {\n @let values = valueOrValues();\n <!-- if valueOrValues is string skip -->\n @if (values && (values | toArray: true).length) {\n @for (value of values; track value; let i = $index) {\n <kc-input-tag\n [attribute]=\"attribute()\"\n [valueOrValues]=\"valueOrValues()\"\n [fieldIndex]=\"i\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n } @else {\n @if (attr.name === 'password' || attr.name === 'password-confirm') {\n <kc-password-wrapper [passwordInputId]=\"attr.name\">\n <kc-input-tag\n [attribute]=\"attributePassword()\"\n [valueOrValues]=\"valueOrValues()\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n </kc-password-wrapper>\n } @else {\n <kc-input-tag\n [attribute]=\"attribute()\"\n [valueOrValues]=\"valueOrValues()\"\n [displayableErrors]=\"displayableErrors()\"\n (dispatchFormAction)=\"dispatchFormAction.emit($event)\"\n />\n }\n }\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|