@keycloakify/angular 0.2.23 → 20.0.0
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/README.md +2 -1
- package/account/DefaultPage/index.d.ts +12 -1
- package/account/KcContext/index.d.ts +1 -1
- package/account/classes/component-reference/index.d.ts +9 -1
- package/account/directives/kc-class/index.d.ts +28 -1
- package/account/i18n/index.d.ts +7 -1
- package/account/index.d.ts +18 -1
- package/account/pages/account/index.d.ts +18 -1
- package/account/pages/applications/index.d.ts +17 -1
- package/account/pages/federatedIdentity/index.d.ts +17 -1
- package/account/pages/log/index.d.ts +17 -1
- package/account/pages/password/index.d.ts +32 -1
- package/account/pages/sessions/index.d.ts +17 -1
- package/account/pages/totp/index.d.ts +17 -1
- package/account/providers/keycloakify-angular/index.d.ts +21 -1
- package/account/services/account-resource-injector/index.d.ts +14 -1
- package/account/services/i18n/index.d.ts +9 -1
- package/account/template/index.d.ts +33 -1
- package/account/tokens/classes/index.d.ts +19 -1
- package/account/tokens/i18n/index.d.ts +5 -1
- package/account/tokens/kc-context/index.d.ts +6 -1
- package/bin/187.index.js +4 -4
- package/bin/{279.index.js → 484.index.js} +269 -338
- package/bin/index.js +12 -1
- package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs +3 -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 +3 -3
- 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 +1 -2
- package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs +3 -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 +3 -3
- package/fesm2022/keycloakify-angular-account-template.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs +3 -3
- 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 +3 -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 +3 -3
- 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 +3 -3
- package/fesm2022/keycloakify-angular-login-components-field-errors.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-group-label.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-components-group-label.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-input-tag.mjs +3 -3
- 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 +3 -3
- package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-select-tag.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-components-select-tag.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs +3 -3
- 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 +3 -3
- package/fesm2022/keycloakify-angular-login-pages-code.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-error.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-error.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-info.mjs +5 -5
- package/fesm2022/keycloakify-angular-login-pages-info.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs +3 -3
- 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 +3 -3
- 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 +3 -3
- 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 +3 -3
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +3 -3
- 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 +3 -3
- 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 +3 -3
- package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-login-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +3 -3
- 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 +3 -3
- 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 +3 -3
- package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-register.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-terms.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-terms.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-update-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs +1 -2
- 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 +3 -3
- package/fesm2022/keycloakify-angular-login-template.mjs.map +1 -1
- package/index.d.ts +3 -1
- package/lib/directives/attributes/index.d.ts +11 -1
- package/lib/index.d.ts +3 -1
- package/lib/models/script/index.d.ts +8 -1
- package/lib/pipes/input-type/index.d.ts +10 -1
- package/lib/pipes/is-array-with-empty-object/index.d.ts +10 -1
- package/lib/pipes/kc-sanitize/index.d.ts +12 -1
- package/lib/pipes/to-array/index.d.ts +10 -1
- package/lib/pipes/to-number/index.d.ts +10 -1
- package/lib/services/resource-injector/index.d.ts +13 -1
- package/lib/tokens/use-default-css/index.d.ts +5 -1
- package/login/KcContext/index.d.ts +1 -1
- package/login/classes/component-reference/index.d.ts +8 -1
- package/login/components/add-remove-buttons-multi-valued-attribute/index.d.ts +20 -1
- package/login/components/field-errors/index.d.ts +17 -1
- package/login/components/group-label/index.d.ts +18 -1
- package/login/components/input-field-by-type/index.d.ts +19 -1
- package/login/components/input-tag/index.d.ts +25 -1
- package/login/components/input-tag-selects/index.d.ts +31 -1
- package/login/components/logout-other-sessions/index.d.ts +14 -1
- package/login/components/password-wrapper/index.d.ts +20 -1
- package/login/components/select-tag/index.d.ts +24 -1
- package/login/components/textarea-tag/index.d.ts +20 -1
- package/login/components/user-profile-form-fields/index.d.ts +27 -1
- package/login/directives/kc-class/index.d.ts +28 -1
- package/login/i18n/index.d.ts +7 -1
- package/login/index.d.ts +20 -1
- package/login/pages/code/index.d.ts +25 -1
- package/login/pages/delete-account-confirm/index.d.ts +25 -1
- package/login/pages/delete-credential/index.d.ts +25 -1
- package/login/pages/error/index.d.ts +25 -1
- package/login/pages/frontchannel-logout/index.d.ts +26 -1
- package/login/pages/idp-review-user-profile/index.d.ts +30 -1
- package/login/pages/info/index.d.ts +26 -1
- package/login/pages/login/index.d.ts +26 -1
- package/login/pages/login-config-totp/index.d.ts +25 -1
- package/login/pages/login-idp-link-confirm/index.d.ts +22 -1
- package/login/pages/login-idp-link-confirm-override/index.d.ts +22 -1
- package/login/pages/login-idp-link-email/index.d.ts +22 -1
- package/login/pages/login-oauth-grant/index.d.ts +22 -1
- package/login/pages/login-oauth2-device-verify-user-code/index.d.ts +25 -1
- package/login/pages/login-otp/index.d.ts +25 -1
- package/login/pages/login-page-expired/index.d.ts +25 -1
- package/login/pages/login-passkeys-conditional-authenticate/index.d.ts +30 -1
- package/login/pages/login-password/index.d.ts +27 -1
- package/login/pages/login-recovery-authn-code-config/index.d.ts +31 -1
- package/login/pages/login-recovery-authn-code-input/index.d.ts +25 -1
- package/login/pages/login-reset-otp/index.d.ts +25 -1
- package/login/pages/login-reset-password/index.d.ts +25 -1
- package/login/pages/login-update-password/index.d.ts +25 -1
- package/login/pages/login-update-profile/index.d.ts +29 -1
- package/login/pages/login-username/index.d.ts +26 -1
- package/login/pages/login-verify-email/index.d.ts +25 -1
- package/login/pages/login-x509-info/index.d.ts +25 -1
- package/login/pages/logout-confirm/index.d.ts +22 -1
- package/login/pages/register/index.d.ts +31 -1
- package/login/pages/saml-post-form/index.d.ts +27 -1
- package/login/pages/select-authenticator/index.d.ts +25 -1
- package/login/pages/terms/index.d.ts +25 -1
- package/login/pages/update-email/index.d.ts +26 -1
- package/login/pages/webauthn-authenticate/index.d.ts +30 -1
- package/login/pages/webauthn-error/index.d.ts +26 -1
- package/login/pages/webauthn-register/index.d.ts +29 -1
- package/login/providers/keycloakify-angular/index.d.ts +22 -1
- package/login/services/i18n/index.d.ts +9 -1
- package/login/services/login-resource-injector/index.d.ts +15 -1
- package/login/services/user-profile-form/index.d.ts +69 -1
- package/login/template/index.d.ts +41 -1
- package/login/tokens/classes/index.d.ts +130 -1
- package/login/tokens/i18n/index.d.ts +5 -1
- package/login/tokens/kc-context/index.d.ts +6 -1
- package/login/tokens/make-user-confirm-password/index.d.ts +5 -1
- package/package.json +12 -12
- package/src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts +2 -2
- package/src/login/pages/info/info.component.html +2 -4
- package/src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts +2 -2
- package/account/DefaultPage/DefaultPage.d.ts +0 -10
- package/account/KcContext/KcContext.d.ts +0 -1
- package/account/account.d.ts +0 -12
- package/account/classes/component-reference/component-reference.class.d.ts +0 -6
- package/account/defaultPage.d.ts +0 -3
- package/account/directives/kc-class/kc-class.directive.d.ts +0 -26
- package/account/i18n/i18n.d.ts +0 -4
- package/account/pages/account/account.component.d.ts +0 -15
- package/account/pages/applications/applications.component.d.ts +0 -14
- package/account/pages/federatedIdentity/federatedIdentity.component.d.ts +0 -14
- package/account/pages/log/log.component.d.ts +0 -14
- package/account/pages/password/password.component.d.ts +0 -29
- package/account/pages/sessions/sessions.component.d.ts +0 -14
- package/account/pages/totp/totp.component.d.ts +0 -14
- package/account/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +0 -16
- package/account/services/account-resource-injector/account-resource-injector.service.d.ts +0 -10
- package/account/services/i18n/i18n.service.d.ts +0 -6
- package/account/template/template.component.d.ts +0 -31
- package/account/tokens/classes/classes.token.d.ts +0 -16
- package/account/tokens/i18n/i18n.token.d.ts +0 -2
- package/account/tokens/kc-context/kc-context.token.d.ts +0 -3
- package/lib/directives/attributes/attributes.directive.d.ts +0 -8
- package/lib/models/script/script.model.d.ts +0 -6
- package/lib/pipes/input-type/input-type.pipe.d.ts +0 -7
- package/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.d.ts +0 -7
- package/lib/pipes/kc-sanitize/kc-sanitize.pipe.d.ts +0 -9
- package/lib/pipes/to-array/to-array.pipe.d.ts +0 -7
- package/lib/pipes/to-number/to-number.pipe.d.ts +0 -7
- package/lib/services/resource-injector/resource-injector.service.d.ts +0 -10
- package/lib/tokens/use-default-css/use-default-css.token.d.ts +0 -2
- package/login/KcContext/KcContext.d.ts +0 -1
- package/login/classes/component-reference/component-reference.class.d.ts +0 -5
- package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.d.ts +0 -17
- package/login/components/field-errors/field-errors.component.d.ts +0 -14
- package/login/components/group-label/group-label.component.d.ts +0 -15
- package/login/components/input-field-by-type/input-field-by-type.component.d.ts +0 -16
- package/login/components/input-tag/input-tag.component.d.ts +0 -22
- package/login/components/input-tag-selects/input-tag-selects.component.d.ts +0 -28
- package/login/components/logout-other-sessions/logout-other-sessions.component.d.ts +0 -11
- package/login/components/password-wrapper/password-wrapper.component.d.ts +0 -17
- package/login/components/select-tag/select-tag.component.d.ts +0 -21
- package/login/components/textarea-tag/textarea-tag.component.d.ts +0 -17
- package/login/components/user-profile-form-fields/user-profile-form-fields.component.d.ts +0 -22
- package/login/defaultPage.d.ts +0 -3
- package/login/directives/kc-class/kc-class.directive.d.ts +0 -26
- package/login/i18n/i18n.d.ts +0 -4
- package/login/login.d.ts +0 -14
- package/login/pages/code/code.component.d.ts +0 -22
- package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +0 -22
- package/login/pages/delete-credential/delete-credential.component.d.ts +0 -22
- package/login/pages/error/error.component.d.ts +0 -22
- package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +0 -23
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +0 -27
- package/login/pages/info/info.component.d.ts +0 -23
- package/login/pages/login/login.component.d.ts +0 -23
- package/login/pages/login-config-totp/login-config-totp.component.d.ts +0 -22
- package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +0 -19
- package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +0 -19
- package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +0 -19
- package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +0 -19
- package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +0 -22
- package/login/pages/login-otp/login-otp.component.d.ts +0 -22
- package/login/pages/login-page-expired/login-page-expired.component.d.ts +0 -22
- package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +0 -27
- package/login/pages/login-password/login-password.component.d.ts +0 -24
- package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +0 -28
- package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +0 -22
- package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +0 -22
- package/login/pages/login-reset-password/login-reset-password.component.d.ts +0 -22
- package/login/pages/login-update-password/login-update-password.component.d.ts +0 -22
- package/login/pages/login-update-profile/login-update-profile.component.d.ts +0 -26
- package/login/pages/login-username/login-username.component.d.ts +0 -23
- package/login/pages/login-verify-email/login-verify-email.component.d.ts +0 -22
- package/login/pages/login-x509-info/login-x509-info.component.d.ts +0 -22
- package/login/pages/logout-confirm/logout-confirm.component.d.ts +0 -19
- package/login/pages/register/register.component.d.ts +0 -28
- package/login/pages/saml-post-form/saml-post-form.component.d.ts +0 -24
- package/login/pages/select-authenticator/select-authenticator.component.d.ts +0 -22
- package/login/pages/terms/terms.component.d.ts +0 -22
- package/login/pages/update-email/update-email.component.d.ts +0 -23
- package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +0 -27
- package/login/pages/webauthn-error/webauthn-error.component.d.ts +0 -23
- package/login/pages/webauthn-register/webauthn-register.component.d.ts +0 -26
- package/login/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +0 -17
- package/login/services/i18n/i18n.service.d.ts +0 -6
- package/login/services/login-resource-injector/login-resource-injector.service.d.ts +0 -11
- package/login/services/user-profile-form/user-profile-form.service.d.ts +0 -65
- package/login/template/template.component.d.ts +0 -38
- package/login/tokens/classes/classes.token.d.ts +0 -127
- package/login/tokens/i18n/i18n.token.d.ts +0 -2
- package/login/tokens/kc-context/kc-context.token.d.ts +0 -3
- package/login/tokens/make-user-confirm-password/make-user-confirm-password.token.d.ts +0 -2
|
@@ -18,15 +18,15 @@ class TotpComponent extends ComponentReference {
|
|
|
18
18
|
this.classes = inject(ACCOUNT_CLASSES);
|
|
19
19
|
this.active = 'totp';
|
|
20
20
|
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TotpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: TotpComponent, isStandalone: true, selector: "kc-totp", providers: [
|
|
23
23
|
{
|
|
24
24
|
provide: ComponentReference,
|
|
25
25
|
useExisting: forwardRef(() => TotpComponent)
|
|
26
26
|
}
|
|
27
27
|
], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let mode = kcContext.mode;\n@let messagesPerField = kcContext.messagesPerField;\n@let stateChecker = kcContext.stateChecker;\n@let totp = kcContext.totp;\n\n<div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('authenticatorTitle') }}</h2>\n </div>\n @if (totp.otpCredentials.length) {\n <div class=\"subtitle col-md-2\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </div>\n }\n</div>\n@if (totp.enabled) {\n <table class=\"table table-bordered table-striped\">\n <thead>\n @if (totp.otpCredentials.length > 1) {\n <tr>\n <th [colSpan]=\"4\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n } @else {\n <tr>\n <th [colSpan]=\"3\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n }\n </thead>\n <tbody>\n @for (credential of totp.otpCredentials; track credential; let index = $index) {\n <tr>\n <td class=\"provider\">{{ i18n.msgStr('mobile') }}</td>\n @if (totp.otpCredentials.length > 1) {\n <td class=\"provider\">{{ credential.id }}</td>\n }\n <td class=\"provider\">{{ credential.userLabel || '' }}</td>\n <td class=\"action\">\n <form\n method=\"post\"\n class=\"form-inline\"\n [action]=\"url.totpUrl\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n id=\"submitAction\"\n name=\"submitAction\"\n value=\"Delete\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n [value]=\"credential.id\"\n />\n <button\n class=\"btn btn-default\"\n [id]=\"'remove-mobile-' + index\"\n >\n <i class=\"pficon pficon-delete\"></i>\n </button>\n </form>\n </td>\n </tr>\n }\n </tbody>\n </table>\n} @else {\n <div>\n <hr />\n <ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('totpStep1') }}</p>\n\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (mode && mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('totpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n id=\"mode-barcode\"\n [href]=\"totp.qrUrl\"\n >\n {{ i18n.msgStr('totpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('totpManualStep3') }}</p>\n <ul>\n <li id=\"kc-totp-type\">{{ i18n.msgStr('totpType') }}: {{ i18n.msgStr($any('totp.' + totp.policy.type)) }}</li>\n <li id=\"kc-totp-algorithm\">{{ i18n.msgStr('totpAlgorithm') }}: {{ totp.policy.getAlgorithmKey() }}</li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('totpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">{{ i18n.msgStr('totpInterval') }}: {{ totp.policy.period }}</li>\n } @else {\n <li id=\"kc-totp-counter\">{{ i18n.msgStr('totpCounter') }}: {{ totp.policy.initialCounter }}</li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('totpStep2') }}</p>\n <p>\n <img\n id=\"kc-totp-secret-qr-code\"\n alt=\"Figure: Barcode\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n />\n </p>\n <p>\n <a\n id=\"mode-manual\"\n [href]=\"totp.manualUrl\"\n >\n {{ i18n.msgStr('totpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('totpStep3') }}</p>\n <p>{{ i18n.msgStr('totpStep3DeviceName') }}</p>\n </li>\n </ol>\n <hr />\n <form\n id=\"kc-totp-settings-form\"\n method=\"post\"\n [action]=\"url.totpUrl\"\n [kcClass]=\"'kcFormClass'\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"totp\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('totpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n\n <div\n id=\"kc-form-buttons\"\n class=\"text-right\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSave')\"\n />\n <button\n type=\"submit\"\n id=\"cancelTOTPBtn\"\n name=\"submitAction\"\n value=\"Cancel\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n}\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }] }); }
|
|
28
28
|
}
|
|
29
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TotpComponent, decorators: [{
|
|
30
30
|
type: Component,
|
|
31
31
|
args: [{ imports: [KcClassDirective, KcSanitizePipe, NgClass], selector: 'kc-totp', providers: [
|
|
32
32
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-account-pages-totp.mjs","sources":["../../src/account/pages/totp/totp.component.ts","../../src/account/pages/totp/totp.component.html","../../src/account/pages/totp/keycloakify-angular-account-pages-totp.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/account/i18n';\nimport type { KcContext } from '@keycloakify/angular/account/KcContext';\nimport { ACCOUNT_CLASSES } from '@keycloakify/angular/account/tokens/classes';\nimport { ACCOUNT_I18N } from '@keycloakify/angular/account/tokens/i18n';\nimport { KC_ACCOUNT_CONTEXT } from '@keycloakify/angular/account/tokens/kc-context';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport type { ClassKey } from 'keycloakify/account';\n\n@Component({\n imports: [KcClassDirective, KcSanitizePipe, NgClass],\n selector: 'kc-totp',\n templateUrl: 'totp.component.html',\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => TotpComponent)\n }\n ]\n})\nexport class TotpComponent extends ComponentReference {\n i18n = inject<I18n>(ACCOUNT_I18N);\n kcContext = inject<Extract<KcContext, { pageId: 'totp.ftl' }>>(KC_ACCOUNT_CONTEXT);\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(ACCOUNT_CLASSES);\n active = 'totp';\n}\n","@let url = kcContext.url;\n@let mode = kcContext.mode;\n@let messagesPerField = kcContext.messagesPerField;\n@let stateChecker = kcContext.stateChecker;\n@let totp = kcContext.totp;\n\n<div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('authenticatorTitle') }}</h2>\n </div>\n @if (totp.otpCredentials.length) {\n <div class=\"subtitle col-md-2\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </div>\n }\n</div>\n@if (totp.enabled) {\n <table class=\"table table-bordered table-striped\">\n <thead>\n @if (totp.otpCredentials.length > 1) {\n <tr>\n <th [colSpan]=\"4\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n } @else {\n <tr>\n <th [colSpan]=\"3\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n }\n </thead>\n <tbody>\n @for (credential of totp.otpCredentials; track credential; let index = $index) {\n <tr>\n <td class=\"provider\">{{ i18n.msgStr('mobile') }}</td>\n @if (totp.otpCredentials.length > 1) {\n <td class=\"provider\">{{ credential.id }}</td>\n }\n <td class=\"provider\">{{ credential.userLabel || '' }}</td>\n <td class=\"action\">\n <form\n method=\"post\"\n class=\"form-inline\"\n [action]=\"url.totpUrl\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n id=\"submitAction\"\n name=\"submitAction\"\n value=\"Delete\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n [value]=\"credential.id\"\n />\n <button\n class=\"btn btn-default\"\n [id]=\"'remove-mobile-' + index\"\n >\n <i class=\"pficon pficon-delete\"></i>\n </button>\n </form>\n </td>\n </tr>\n }\n </tbody>\n </table>\n} @else {\n <div>\n <hr />\n <ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('totpStep1') }}</p>\n\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (mode && mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('totpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n id=\"mode-barcode\"\n [href]=\"totp.qrUrl\"\n >\n {{ i18n.msgStr('totpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('totpManualStep3') }}</p>\n <ul>\n <li id=\"kc-totp-type\">{{ i18n.msgStr('totpType') }}: {{ i18n.msgStr($any('totp.' + totp.policy.type)) }}</li>\n <li id=\"kc-totp-algorithm\">{{ i18n.msgStr('totpAlgorithm') }}: {{ totp.policy.getAlgorithmKey() }}</li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('totpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">{{ i18n.msgStr('totpInterval') }}: {{ totp.policy.period }}</li>\n } @else {\n <li id=\"kc-totp-counter\">{{ i18n.msgStr('totpCounter') }}: {{ totp.policy.initialCounter }}</li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('totpStep2') }}</p>\n <p>\n <img\n id=\"kc-totp-secret-qr-code\"\n alt=\"Figure: Barcode\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n />\n </p>\n <p>\n <a\n id=\"mode-manual\"\n [href]=\"totp.manualUrl\"\n >\n {{ i18n.msgStr('totpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('totpStep3') }}</p>\n <p>{{ i18n.msgStr('totpStep3DeviceName') }}</p>\n </li>\n </ol>\n <hr />\n <form\n id=\"kc-totp-settings-form\"\n method=\"post\"\n [action]=\"url.totpUrl\"\n [kcClass]=\"'kcFormClass'\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"totp\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('totpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n\n <div\n id=\"kc-form-buttons\"\n class=\"text-right\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSave')\"\n />\n <button\n type=\"submit\"\n id=\"cancelTOTPBtn\"\n name=\"submitAction\"\n value=\"Cancel\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAwBM,MAAO,aAAc,SAAQ,kBAAkB,CAAA;AAXrD,IAAA,WAAA,GAAA;;AAYI,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,YAAY,CAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA6C,kBAAkB,CAAC;AACzE,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,eAAe,CAAC;QAC7E,IAAM,CAAA,MAAA,GAAG,MAAM;AAClB;+GANY,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAPX,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,aAAa;AAC9C;AACJ,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBL,onUA8PA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhPc,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAUjC,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;8BACG,CAAC,gBAAgB,EAAE,cAAc,EAAE,OAAO,CAAC,EAAA,QAAA,EAC1C,SAAS,EAER,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,mBAAmB;AAC9C;AACJ,qBAAA,EAAA,QAAA,EAAA,onUAAA,EAAA;;;AEtBL;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-account-pages-totp.mjs","sources":["../../src/account/pages/totp/totp.component.ts","../../src/account/pages/totp/totp.component.html","../../src/account/pages/totp/keycloakify-angular-account-pages-totp.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { Component, forwardRef, inject } from '@angular/core';\nimport { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/account/i18n';\nimport type { KcContext } from '@keycloakify/angular/account/KcContext';\nimport { ACCOUNT_CLASSES } from '@keycloakify/angular/account/tokens/classes';\nimport { ACCOUNT_I18N } from '@keycloakify/angular/account/tokens/i18n';\nimport { KC_ACCOUNT_CONTEXT } from '@keycloakify/angular/account/tokens/kc-context';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport type { ClassKey } from 'keycloakify/account';\n\n@Component({\n imports: [KcClassDirective, KcSanitizePipe, NgClass],\n selector: 'kc-totp',\n templateUrl: 'totp.component.html',\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => TotpComponent)\n }\n ]\n})\nexport class TotpComponent extends ComponentReference {\n i18n = inject<I18n>(ACCOUNT_I18N);\n kcContext = inject<Extract<KcContext, { pageId: 'totp.ftl' }>>(KC_ACCOUNT_CONTEXT);\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(ACCOUNT_CLASSES);\n active = 'totp';\n}\n","@let url = kcContext.url;\n@let mode = kcContext.mode;\n@let messagesPerField = kcContext.messagesPerField;\n@let stateChecker = kcContext.stateChecker;\n@let totp = kcContext.totp;\n\n<div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('authenticatorTitle') }}</h2>\n </div>\n @if (totp.otpCredentials.length) {\n <div class=\"subtitle col-md-2\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </div>\n }\n</div>\n@if (totp.enabled) {\n <table class=\"table table-bordered table-striped\">\n <thead>\n @if (totp.otpCredentials.length > 1) {\n <tr>\n <th [colSpan]=\"4\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n } @else {\n <tr>\n <th [colSpan]=\"3\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n }\n </thead>\n <tbody>\n @for (credential of totp.otpCredentials; track credential; let index = $index) {\n <tr>\n <td class=\"provider\">{{ i18n.msgStr('mobile') }}</td>\n @if (totp.otpCredentials.length > 1) {\n <td class=\"provider\">{{ credential.id }}</td>\n }\n <td class=\"provider\">{{ credential.userLabel || '' }}</td>\n <td class=\"action\">\n <form\n method=\"post\"\n class=\"form-inline\"\n [action]=\"url.totpUrl\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n id=\"submitAction\"\n name=\"submitAction\"\n value=\"Delete\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n [value]=\"credential.id\"\n />\n <button\n class=\"btn btn-default\"\n [id]=\"'remove-mobile-' + index\"\n >\n <i class=\"pficon pficon-delete\"></i>\n </button>\n </form>\n </td>\n </tr>\n }\n </tbody>\n </table>\n} @else {\n <div>\n <hr />\n <ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('totpStep1') }}</p>\n\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (mode && mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('totpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n id=\"mode-barcode\"\n [href]=\"totp.qrUrl\"\n >\n {{ i18n.msgStr('totpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('totpManualStep3') }}</p>\n <ul>\n <li id=\"kc-totp-type\">{{ i18n.msgStr('totpType') }}: {{ i18n.msgStr($any('totp.' + totp.policy.type)) }}</li>\n <li id=\"kc-totp-algorithm\">{{ i18n.msgStr('totpAlgorithm') }}: {{ totp.policy.getAlgorithmKey() }}</li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('totpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">{{ i18n.msgStr('totpInterval') }}: {{ totp.policy.period }}</li>\n } @else {\n <li id=\"kc-totp-counter\">{{ i18n.msgStr('totpCounter') }}: {{ totp.policy.initialCounter }}</li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('totpStep2') }}</p>\n <p>\n <img\n id=\"kc-totp-secret-qr-code\"\n alt=\"Figure: Barcode\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n />\n </p>\n <p>\n <a\n id=\"mode-manual\"\n [href]=\"totp.manualUrl\"\n >\n {{ i18n.msgStr('totpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('totpStep3') }}</p>\n <p>{{ i18n.msgStr('totpStep3DeviceName') }}</p>\n </li>\n </ol>\n <hr />\n <form\n id=\"kc-totp-settings-form\"\n method=\"post\"\n [action]=\"url.totpUrl\"\n [kcClass]=\"'kcFormClass'\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"totp\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('totpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n\n <div\n id=\"kc-form-buttons\"\n class=\"text-right\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSave')\"\n />\n <button\n type=\"submit\"\n id=\"cancelTOTPBtn\"\n name=\"submitAction\"\n value=\"Cancel\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AAwBM,MAAO,aAAc,SAAQ,kBAAkB,CAAA;AAXrD,IAAA,WAAA,GAAA;;AAYI,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,YAAY,CAAC;AACjC,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA6C,kBAAkB,CAAC;AACzE,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,eAAe,CAAC;QAC7E,IAAM,CAAA,MAAA,GAAG,MAAM;AAClB;8GANY,aAAa,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,EAPX,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,aAAa;AAC9C;AACJ,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtBL,onUA8PA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhPc,gBAAgB,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,cAAc,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAUjC,aAAa,EAAA,UAAA,EAAA,CAAA;kBAXzB,SAAS;8BACG,CAAC,gBAAgB,EAAE,cAAc,EAAE,OAAO,CAAC,EAAA,QAAA,EAC1C,SAAS,EAER,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,mBAAmB;AAC9C;AACJ,qBAAA,EAAA,QAAA,EAAA,onUAAA,EAAA;;;AEtBL;;AAEG;;;;"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/
|
|
2
|
-
import { makeEnvironmentProviders, LOCALE_ID, provideAppInitializer, inject } from '@angular/core';
|
|
1
|
+
import { makeEnvironmentProviders, DOCUMENT, LOCALE_ID, provideAppInitializer, inject } from '@angular/core';
|
|
3
2
|
import { I18nService } from '@keycloakify/angular/account/services/i18n';
|
|
4
3
|
import { ACCOUNT_CLASSES } from '@keycloakify/angular/account/tokens/classes';
|
|
5
4
|
import { ACCOUNT_I18N } from '@keycloakify/angular/account/tokens/i18n';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-account-providers-keycloakify-angular.mjs","sources":["../../src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts","../../src/account/providers/keycloakify-angular/keycloakify-angular-account-providers-keycloakify-angular.ts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-account-providers-keycloakify-angular.mjs","sources":["../../src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts","../../src/account/providers/keycloakify-angular/keycloakify-angular-account-providers-keycloakify-angular.ts"],"sourcesContent":["import {\n LOCALE_ID,\n makeEnvironmentProviders,\n inject,\n provideAppInitializer,\n DOCUMENT\n} from '@angular/core';\nimport type { KcContext } from '@keycloakify/angular/account/KcContext';\nimport { I18nService } from '@keycloakify/angular/account/services/i18n';\nimport { ACCOUNT_CLASSES } from '@keycloakify/angular/account/tokens/classes';\nimport { ACCOUNT_I18N } from '@keycloakify/angular/account/tokens/i18n';\nimport { KC_ACCOUNT_CONTEXT } from '@keycloakify/angular/account/tokens/kc-context';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { type KcContextLike } from 'keycloakify/account/i18n/noJsx';\nimport type { ClassKey } from 'keycloakify/account/lib/kcClsx';\n\nexport type KeycloakifyAngularAccountConfig = {\n doUseDefaultCss?: boolean;\n classes?: { [key in ClassKey]?: string };\n kcContext: unknown;\n getI18n: (params: { kcContext: KcContextLike }) => {\n i18n: unknown;\n prI18n_currentLanguage: Promise<unknown> | undefined;\n };\n};\n\nexport const provideKeycloakifyAngular = (config: KeycloakifyAngularAccountConfig) =>\n makeEnvironmentProviders([\n {\n provide: KC_ACCOUNT_CONTEXT,\n useValue: config.kcContext\n },\n {\n provide: LOCALE_ID,\n useFactory: (document: Document) => {\n return document.documentElement.lang ?? 'en';\n },\n deps: [DOCUMENT]\n },\n provideAppInitializer(() => {\n const i18nService: I18nService = inject(I18nService);\n const kcContext: KcContext = inject(KC_ACCOUNT_CONTEXT);\n const getI18n = config.getI18n;\n\n const { i18n, prI18n_currentLanguage } = getI18n({\n kcContext\n });\n let i18nPromise = new Promise<typeof i18n>(resolve => resolve(i18n));\n if (prI18n_currentLanguage) {\n i18nPromise = prI18n_currentLanguage;\n }\n return i18nPromise.then(i18n => {\n i18nService.i18n = i18n;\n return true;\n });\n }),\n {\n provide: ACCOUNT_I18N,\n useFactory: (i18nService: I18nService) => i18nService.i18n,\n deps: [I18nService]\n },\n { provide: USE_DEFAULT_CSS, useValue: config?.doUseDefaultCss ?? true },\n { provide: ACCOUNT_CLASSES, useValue: config?.classes ?? {} }\n ]);\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AA0Ba,MAAA,yBAAyB,GAAG,CAAC,MAAuC,KAC7E,wBAAwB,CAAC;AACrB,IAAA;AACI,QAAA,OAAO,EAAE,kBAAkB;QAC3B,QAAQ,EAAE,MAAM,CAAC;AACpB,KAAA;AACD,IAAA;AACI,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,UAAU,EAAE,CAAC,QAAkB,KAAI;AAC/B,YAAA,OAAO,QAAQ,CAAC,eAAe,CAAC,IAAI,IAAI,IAAI;SAC/C;QACD,IAAI,EAAE,CAAC,QAAQ;AAClB,KAAA;IACD,qBAAqB,CAAC,MAAK;AACvB,QAAA,MAAM,WAAW,GAAgB,MAAM,CAAC,WAAW,CAAC;AACpD,QAAA,MAAM,SAAS,GAAc,MAAM,CAAC,kBAAkB,CAAC;AACvD,QAAA,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO;AAE9B,QAAA,MAAM,EAAE,IAAI,EAAE,sBAAsB,EAAE,GAAG,OAAO,CAAC;YAC7C;AACH,SAAA,CAAC;AACF,QAAA,IAAI,WAAW,GAAG,IAAI,OAAO,CAAc,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;QACpE,IAAI,sBAAsB,EAAE;YACxB,WAAW,GAAG,sBAAsB;;AAExC,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,IAAG;AAC3B,YAAA,WAAW,CAAC,IAAI,GAAG,IAAI;AACvB,YAAA,OAAO,IAAI;AACf,SAAC,CAAC;AACN,KAAC,CAAC;AACF,IAAA;AACI,QAAA,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,CAAC,WAAwB,KAAK,WAAW,CAAC,IAAI;QAC1D,IAAI,EAAE,CAAC,WAAW;AACrB,KAAA;IACD,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,IAAI,IAAI,EAAE;IACvE,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,IAAI,EAAE;AAC9D,CAAA;;AC/DL;;AAEG;;;;"}
|
|
@@ -26,10 +26,10 @@ class AccountResourceInjectorService {
|
|
|
26
26
|
insertAdditionalScripts(scripts) {
|
|
27
27
|
scripts.map(script => this.resourceInjectorService.createScript(script));
|
|
28
28
|
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
30
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AccountResourceInjectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AccountResourceInjectorService, providedIn: 'root' }); }
|
|
31
31
|
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: AccountResourceInjectorService, decorators: [{
|
|
33
33
|
type: Injectable,
|
|
34
34
|
args: [{
|
|
35
35
|
providedIn: 'root'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-account-services-account-resource-injector.mjs","sources":["../../src/account/services/account-resource-injector/account-resource-injector.service.ts","../../src/account/services/account-resource-injector/keycloakify-angular-account-services-account-resource-injector.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { KC_ACCOUNT_CONTEXT } from '@keycloakify/angular/account/tokens/kc-context';\nimport { Script } from '@keycloakify/angular/lib/models/script';\nimport { ResourceInjectorService } from '@keycloakify/angular/lib/services/resource-injector';\nimport { catchError, forkJoin, of, switchMap } from 'rxjs';\nimport type { KcContext } from '@keycloakify/angular/account/KcContext';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AccountResourceInjectorService {\n private kcContext: KcContext = inject<KcContext>(KC_ACCOUNT_CONTEXT);\n private resourceInjectorService: ResourceInjectorService = inject(\n ResourceInjectorService\n );\n\n injectResource(doUseDefaultCss = true) {\n if (!doUseDefaultCss) {\n return of(true);\n }\n const stylesheets = [\n `${this.kcContext.url.resourcesCommonPath}/node_modules/patternfly/dist/css/patternfly.min.css`,\n `${this.kcContext.url.resourcesCommonPath}/node_modules/patternfly/dist/css/patternfly-additions.min.css`,\n `${this.kcContext.url.resourcesPath}/css/account.css`\n ];\n\n return forkJoin(\n stylesheets.map(url => this.resourceInjectorService.createLink(url))\n ).pipe(\n switchMap(() => of(true)),\n catchError(error => {\n console.error('Error loading styles:', error);\n return of(false);\n })\n );\n }\n\n insertAdditionalScripts(scripts: Script[]) {\n scripts.map(script => this.resourceInjectorService.createScript(script));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAUa,8BAA8B,CAAA;AAH3C,IAAA,WAAA,GAAA;AAIY,QAAA,IAAA,CAAA,SAAS,GAAc,MAAM,CAAY,kBAAkB,CAAC;AAC5D,QAAA,IAAA,CAAA,uBAAuB,GAA4B,MAAM,CAC7D,uBAAuB,CAC1B;AA0BJ;IAxBG,cAAc,CAAC,eAAe,GAAG,IAAI,EAAA;QACjC,IAAI,CAAC,eAAe,EAAE;AAClB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;;AAEnB,QAAA,MAAM,WAAW,GAAG;AAChB,YAAA,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAsD,oDAAA,CAAA;AAC/F,YAAA,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAgE,8DAAA,CAAA;AACzG,YAAA,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAkB,gBAAA;SACxD;AAED,QAAA,OAAO,QAAQ,CACX,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CACvE,CAAC,IAAI,CACF,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,EACzB,UAAU,CAAC,KAAK,IAAG;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC;AAC7C,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC;SACnB,CAAC,CACL;;AAGL,IAAA,uBAAuB,CAAC,OAAiB,EAAA;AACrC,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-account-services-account-resource-injector.mjs","sources":["../../src/account/services/account-resource-injector/account-resource-injector.service.ts","../../src/account/services/account-resource-injector/keycloakify-angular-account-services-account-resource-injector.ts"],"sourcesContent":["import { inject, Injectable } from '@angular/core';\nimport { KC_ACCOUNT_CONTEXT } from '@keycloakify/angular/account/tokens/kc-context';\nimport { Script } from '@keycloakify/angular/lib/models/script';\nimport { ResourceInjectorService } from '@keycloakify/angular/lib/services/resource-injector';\nimport { catchError, forkJoin, of, switchMap } from 'rxjs';\nimport type { KcContext } from '@keycloakify/angular/account/KcContext';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AccountResourceInjectorService {\n private kcContext: KcContext = inject<KcContext>(KC_ACCOUNT_CONTEXT);\n private resourceInjectorService: ResourceInjectorService = inject(\n ResourceInjectorService\n );\n\n injectResource(doUseDefaultCss = true) {\n if (!doUseDefaultCss) {\n return of(true);\n }\n const stylesheets = [\n `${this.kcContext.url.resourcesCommonPath}/node_modules/patternfly/dist/css/patternfly.min.css`,\n `${this.kcContext.url.resourcesCommonPath}/node_modules/patternfly/dist/css/patternfly-additions.min.css`,\n `${this.kcContext.url.resourcesPath}/css/account.css`\n ];\n\n return forkJoin(\n stylesheets.map(url => this.resourceInjectorService.createLink(url))\n ).pipe(\n switchMap(() => of(true)),\n catchError(error => {\n console.error('Error loading styles:', error);\n return of(false);\n })\n );\n }\n\n insertAdditionalScripts(scripts: Script[]) {\n scripts.map(script => this.resourceInjectorService.createScript(script));\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAUa,8BAA8B,CAAA;AAH3C,IAAA,WAAA,GAAA;AAIY,QAAA,IAAA,CAAA,SAAS,GAAc,MAAM,CAAY,kBAAkB,CAAC;AAC5D,QAAA,IAAA,CAAA,uBAAuB,GAA4B,MAAM,CAC7D,uBAAuB,CAC1B;AA0BJ;IAxBG,cAAc,CAAC,eAAe,GAAG,IAAI,EAAA;QACjC,IAAI,CAAC,eAAe,EAAE;AAClB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC;;AAEnB,QAAA,MAAM,WAAW,GAAG;AAChB,YAAA,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAsD,oDAAA,CAAA;AAC/F,YAAA,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAgE,8DAAA,CAAA;AACzG,YAAA,CAAA,EAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,aAAa,CAAkB,gBAAA;SACxD;AAED,QAAA,OAAO,QAAQ,CACX,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,uBAAuB,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CACvE,CAAC,IAAI,CACF,SAAS,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,EACzB,UAAU,CAAC,KAAK,IAAG;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,KAAK,CAAC;AAC7C,YAAA,OAAO,EAAE,CAAC,KAAK,CAAC;SACnB,CAAC,CACL;;AAGL,IAAA,uBAAuB,CAAC,OAAiB,EAAA;AACrC,QAAA,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;;8GA5BnE,8BAA8B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA9B,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,8BAA8B,cAF3B,MAAM,EAAA,CAAA,CAAA;;2FAET,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBAH1C,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACTD;;AAEG;;;;"}
|
|
@@ -3,10 +3,10 @@ import { Injectable } from '@angular/core';
|
|
|
3
3
|
|
|
4
4
|
/** INTERNAL: DO NOT IMPORT THIS */
|
|
5
5
|
class I18nService {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
7
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
6
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: I18nService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
7
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: I18nService, providedIn: 'root' }); }
|
|
8
8
|
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: I18nService, decorators: [{
|
|
10
10
|
type: Injectable,
|
|
11
11
|
args: [{ providedIn: 'root' }]
|
|
12
12
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-account-services-i18n.mjs","sources":["../../src/account/services/i18n/i18n.service.ts","../../src/account/services/i18n/keycloakify-angular-account-services-i18n.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\n/** INTERNAL: DO NOT IMPORT THIS */\nexport class I18nService {\n i18n!: unknown;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAGA;MACa,WAAW,CAAA
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-account-services-i18n.mjs","sources":["../../src/account/services/i18n/i18n.service.ts","../../src/account/services/i18n/keycloakify-angular-account-services-i18n.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({ providedIn: 'root' })\n/** INTERNAL: DO NOT IMPORT THIS */\nexport class I18nService {\n i18n!: unknown;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAGA;MACa,WAAW,CAAA;8GAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,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,WAAW,cAFE,MAAM,EAAA,CAAA,CAAA;;2FAEnB,WAAW,EAAA,UAAA,EAAA,CAAA;kBAFvB,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;ACFlC;;AAEG;;;;"}
|
|
@@ -64,15 +64,15 @@ class TemplateComponent extends ComponentReference {
|
|
|
64
64
|
this.#cdr.markForCheck();
|
|
65
65
|
this.#effectRef.destroy();
|
|
66
66
|
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
68
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
68
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", type: TemplateComponent, isStandalone: true, selector: "kc-root", inputs: { page: { classPropertyName: "page", publicName: "page", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
69
69
|
{
|
|
70
70
|
provide: ComponentReference,
|
|
71
71
|
useExisting: forwardRef(() => TemplateComponent)
|
|
72
72
|
}
|
|
73
73
|
], viewQueries: [{ propertyName: "pageRef", first: true, predicate: ["pageRef"], descendants: true, read: ViewContainerRef, isSignal: true }], usesInheritance: true, ngImport: i0, template: "@let enabledLanguages = i18n.enabledLanguages;\n@let currentLanguage = i18n.currentLanguage;\n@let url = kcContext.url;\n@let features = kcContext.features;\n@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let referrer = kcContext.referrer;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <header class=\"navbar navbar-default navbar-pf navbar-main header\">\n <nav\n class=\"navbar\"\n role=\"navigation\"\n >\n <div class=\"navbar-header\">\n <div class=\"container\">\n <h1 class=\"navbar-title\">Keycloak</h1>\n </div>\n </div>\n <div class=\"navbar-collapse navbar-collapse-1\">\n <div class=\"container\">\n <ul class=\"nav navbar-nav navbar-utility\">\n @if (enabledLanguages.length > 1) {\n <li>\n <div\n class=\"kc-dropdown\"\n id=\"kc-locale-dropdown\"\n >\n <a\n href=\"#\"\n id=\"kc-current-locale-link\"\n >\n {{ currentLanguage.label }}\n </a>\n <ul>\n @for (enabledLanguage of enabledLanguages; track enabledLanguage.languageTag) {\n @let label = enabledLanguage.label;\n @let href = enabledLanguage.href;\n\n <li class=\"kc-dropdown-item\">\n <a [href]=\"href\">{{ label }}</a>\n </li>\n }\n </ul>\n </div>\n </li>\n }\n @if (!!referrer?.url) {\n <a\n id=\"referrer\"\n [href]=\"referrer?.url\"\n >\n {{ i18n.msgStr('backTo', referrer?.name) }}\n </a>\n }\n <li>\n <a [href]=\"url.getLogoutUrl()\">{{ i18n.msgStr('doSignOut') }}</a>\n </li>\n </ul>\n </div>\n </div>\n </nav>\n </header>\n\n <div class=\"container\">\n <div class=\"bs-sidebar col-sm-3\">\n <ul>\n <li [ngClass]=\"{ active: active === 'account' }\">\n <a [href]=\"url.accountUrl\">{{ i18n.msgStr('account') }}</a>\n </li>\n @if (features.passwordUpdateSupported) {\n <li [ngClass]=\"{ active: active === 'password' }\">\n <a [href]=\"url.passwordUrl\">{{ i18n.msgStr('password') }}</a>\n </li>\n }\n <li [ngClass]=\"{ active: active === 'totp' }\">\n <a [href]=\"url.totpUrl\">{{ i18n.msgStr('authenticator') }}</a>\n </li>\n @if (features.identityFederation) {\n <li [ngClass]=\"{ active: active === 'social' }\">\n <a [href]=\"url.socialUrl\">{{ i18n.msgStr('federatedIdentity') }}</a>\n </li>\n }\n <li [ngClass]=\"{ active: active === 'sessions' }\">\n <a [href]=\"url.sessionsUrl\">{{ i18n.msgStr('sessions') }}</a>\n </li>\n <li [ngClass]=\"{ active: active === 'applications' }\">\n <a [href]=\"url.applicationsUrl\">{{ i18n.msgStr('applications') }}</a>\n </li>\n @if (features.log) {\n <li [ngClass]=\"{ active: active === 'log' }\">\n <a [href]=\"url.logUrl\">{{ i18n.msgStr('log') }}</a>\n </li>\n }\n @if (realm.userManagedAccessAllowed && features.authorization) {\n <li [ngClass]=\"{ active: active === 'authorization' }\">\n <a [href]=\"url.resourceUrl\">{{ i18n.msgStr('myResources') }}</a>\n </li>\n }\n </ul>\n </div>\n\n <div class=\"col-sm-9 content-area\">\n @if (message) {\n <div [ngClass]=\"['alert', 'alert-' + message.type]\">\n @switch (message.type) {\n @case ('success') {\n <span class=\"pficon pficon-ok\"></span>\n }\n @case ('error') {\n <span class=\"pficon pficon-error-circle-o\"></span>\n }\n }\n <span\n class=\"kc-feedback-text\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n <ng-template #pageRef></ng-template>\n </div>\n </div>\n}\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
74
74
|
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
75
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: TemplateComponent, decorators: [{
|
|
76
76
|
type: Component,
|
|
77
77
|
args: [{ selector: 'kc-root', imports: [AsyncPipe, KcSanitizePipe, KcClassDirective, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
78
78
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keycloakify-angular-account-template.mjs","sources":["../../src/account/template/template.component.ts","../../src/account/template/template.component.html","../../src/account/template/keycloakify-angular-account-template.ts"],"sourcesContent":["import { AsyncPipe, NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n effect,\n EffectRef,\n forwardRef,\n inject,\n input,\n Renderer2,\n Type,\n viewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/account/i18n';\nimport type { KcContext } from '@keycloakify/angular/account/KcContext';\nimport { AccountResourceInjectorService } from '@keycloakify/angular/account/services/account-resource-injector';\nimport { ACCOUNT_CLASSES } from '@keycloakify/angular/account/tokens/classes';\nimport { ACCOUNT_I18N } from '@keycloakify/angular/account/tokens/i18n';\nimport { KC_ACCOUNT_CONTEXT } from '@keycloakify/angular/account/tokens/kc-context';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ClassKey, getKcClsx } from 'keycloakify/account/lib/kcClsx';\nimport { Observable } from 'rxjs';\n\ntype ActiveType = 'account' | 'password' | 'totp' | 'social' | 'sessions' | 'applications' | 'log' | 'authorization' | undefined;\n\n@Component({\n selector: 'kc-root',\n templateUrl: 'template.component.html',\n imports: [AsyncPipe, KcSanitizePipe, KcClassDirective, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => TemplateComponent)\n }\n ]\n})\nexport class TemplateComponent extends ComponentReference {\n i18n = inject<I18n>(ACCOUNT_I18N);\n renderer = inject(Renderer2);\n #cdr = inject(ChangeDetectorRef);\n #effectRef: EffectRef;\n meta = inject(Meta);\n title = inject(Title);\n kcContext = inject<KcContext>(KC_ACCOUNT_CONTEXT);\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(ACCOUNT_CLASSES);\n accountResourceInjectorService = inject(AccountResourceInjectorService);\n\n isReadyToRender$: Observable<boolean>;\n\n page = input<Type<unknown>>();\n pageRef = viewChild('pageRef', { read: ViewContainerRef });\n\n active: ActiveType;\n\n constructor() {\n super();\n\n this.isReadyToRender$ = this.accountResourceInjectorService.injectResource(this.doUseDefaultCss);\n this.#effectRef = effect(\n () => {\n const page = this.page();\n const pageRef = this.pageRef();\n if (!page || !pageRef) return;\n\n const compRef = pageRef.createComponent(page);\n this.onComponentCreated(compRef.instance as object);\n },\n { manualCleanup: true }\n );\n }\n\n private applyKcIndexClasses() {\n const kcClsx = getKcClsx({\n doUseDefaultCss: this.doUseDefaultCss,\n classes: this.classes\n }).kcClsx;\n const kcBodyClass = kcClsx('kcBodyClass');\n const kcHtmlClass = kcClsx('kcHtmlClass');\n const kcBodyClasses = kcBodyClass.split(/\\s+/);\n const kcHtmlClasses = kcHtmlClass.split(/\\s+/);\n kcBodyClasses.push('admin-console', 'user');\n kcBodyClasses.forEach(klass => {\n this.renderer.addClass(document.body, klass);\n });\n kcHtmlClasses.forEach(klass => {\n this.renderer.addClass(document.documentElement, klass);\n });\n }\n\n onComponentCreated(compRef: object) {\n if ('active' in compRef && compRef.active) {\n this.active = compRef.active as ActiveType;\n }\n\n this.title.setTitle(this.i18n.msgStr('accountManagementTitle'));\n this.applyKcIndexClasses();\n this.#cdr.markForCheck();\n this.#effectRef.destroy();\n }\n}\n","@let enabledLanguages = i18n.enabledLanguages;\n@let currentLanguage = i18n.currentLanguage;\n@let url = kcContext.url;\n@let features = kcContext.features;\n@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let referrer = kcContext.referrer;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <header class=\"navbar navbar-default navbar-pf navbar-main header\">\n <nav\n class=\"navbar\"\n role=\"navigation\"\n >\n <div class=\"navbar-header\">\n <div class=\"container\">\n <h1 class=\"navbar-title\">Keycloak</h1>\n </div>\n </div>\n <div class=\"navbar-collapse navbar-collapse-1\">\n <div class=\"container\">\n <ul class=\"nav navbar-nav navbar-utility\">\n @if (enabledLanguages.length > 1) {\n <li>\n <div\n class=\"kc-dropdown\"\n id=\"kc-locale-dropdown\"\n >\n <a\n href=\"#\"\n id=\"kc-current-locale-link\"\n >\n {{ currentLanguage.label }}\n </a>\n <ul>\n @for (enabledLanguage of enabledLanguages; track enabledLanguage.languageTag) {\n @let label = enabledLanguage.label;\n @let href = enabledLanguage.href;\n\n <li class=\"kc-dropdown-item\">\n <a [href]=\"href\">{{ label }}</a>\n </li>\n }\n </ul>\n </div>\n </li>\n }\n @if (!!referrer?.url) {\n <a\n id=\"referrer\"\n [href]=\"referrer?.url\"\n >\n {{ i18n.msgStr('backTo', referrer?.name) }}\n </a>\n }\n <li>\n <a [href]=\"url.getLogoutUrl()\">{{ i18n.msgStr('doSignOut') }}</a>\n </li>\n </ul>\n </div>\n </div>\n </nav>\n </header>\n\n <div class=\"container\">\n <div class=\"bs-sidebar col-sm-3\">\n <ul>\n <li [ngClass]=\"{ active: active === 'account' }\">\n <a [href]=\"url.accountUrl\">{{ i18n.msgStr('account') }}</a>\n </li>\n @if (features.passwordUpdateSupported) {\n <li [ngClass]=\"{ active: active === 'password' }\">\n <a [href]=\"url.passwordUrl\">{{ i18n.msgStr('password') }}</a>\n </li>\n }\n <li [ngClass]=\"{ active: active === 'totp' }\">\n <a [href]=\"url.totpUrl\">{{ i18n.msgStr('authenticator') }}</a>\n </li>\n @if (features.identityFederation) {\n <li [ngClass]=\"{ active: active === 'social' }\">\n <a [href]=\"url.socialUrl\">{{ i18n.msgStr('federatedIdentity') }}</a>\n </li>\n }\n <li [ngClass]=\"{ active: active === 'sessions' }\">\n <a [href]=\"url.sessionsUrl\">{{ i18n.msgStr('sessions') }}</a>\n </li>\n <li [ngClass]=\"{ active: active === 'applications' }\">\n <a [href]=\"url.applicationsUrl\">{{ i18n.msgStr('applications') }}</a>\n </li>\n @if (features.log) {\n <li [ngClass]=\"{ active: active === 'log' }\">\n <a [href]=\"url.logUrl\">{{ i18n.msgStr('log') }}</a>\n </li>\n }\n @if (realm.userManagedAccessAllowed && features.authorization) {\n <li [ngClass]=\"{ active: active === 'authorization' }\">\n <a [href]=\"url.resourceUrl\">{{ i18n.msgStr('myResources') }}</a>\n </li>\n }\n </ul>\n </div>\n\n <div class=\"col-sm-9 content-area\">\n @if (message) {\n <div [ngClass]=\"['alert', 'alert-' + message.type]\">\n @switch (message.type) {\n @case ('success') {\n <span class=\"pficon pficon-ok\"></span>\n }\n @case ('error') {\n <span class=\"pficon pficon-error-circle-o\"></span>\n }\n }\n <span\n class=\"kc-feedback-text\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n <ng-template #pageRef></ng-template>\n </div>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;AA2CM,MAAO,iBAAkB,SAAQ,kBAAkB,CAAA;AAGrD,IAAA,IAAI;AACJ,IAAA,UAAU;AAeV,IAAA,WAAA,GAAA;AACI,QAAA,KAAK,EAAE;AAnBX,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAO,YAAY,CAAC;AACjC,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;AAC5B,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAEhC,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;AACnB,QAAA,IAAA,CAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AACrB,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAAY,kBAAkB,CAAC;AACxC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAU,eAAe,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAoC,eAAe,CAAC;AAC7E,QAAA,IAAA,CAAA,8BAA8B,GAAG,MAAM,CAAC,8BAA8B,CAAC;QAIvE,IAAI,CAAA,IAAA,GAAG,KAAK,EAAiB;QAC7B,IAAO,CAAA,OAAA,GAAG,SAAS,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;AAOtD,QAAA,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,8BAA8B,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC;AAChG,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CACpB,MAAK;AACD,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE;AACxB,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE;AAC9B,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO;gBAAE;YAEvB,MAAM,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC;AAC7C,YAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAkB,CAAC;AACvD,SAAC,EACD,EAAE,aAAa,EAAE,IAAI,EAAE,CAC1B;;IAGG,mBAAmB,GAAA;QACvB,MAAM,MAAM,GAAG,SAAS,CAAC;YACrB,eAAe,EAAE,IAAI,CAAC,eAAe;YACrC,OAAO,EAAE,IAAI,CAAC;SACjB,CAAC,CAAC,MAAM;AACT,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC;AACzC,QAAA,MAAM,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC;QACzC,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;QAC9C,MAAM,aAAa,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;AAC9C,QAAA,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,CAAC;AAC3C,QAAA,aAAa,CAAC,OAAO,CAAC,KAAK,IAAG;YAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC;AAChD,SAAC,CAAC;AACF,QAAA,aAAa,CAAC,OAAO,CAAC,KAAK,IAAG;YAC1B,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,EAAE,KAAK,CAAC;AAC3D,SAAC,CAAC;;AAGN,IAAA,kBAAkB,CAAC,OAAe,EAAA;QAC9B,IAAI,QAAQ,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;AACvC,YAAA,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAoB;;AAG9C,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;QAC/D,IAAI,CAAC,mBAAmB,EAAE;AAC1B,QAAA,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;;+GA9DpB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,iBAAiB,EAPf,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACP,YAAA;AACI,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAiB;AAClD;SACJ,EAiBsC,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,SAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,oEC1D3D,w8KA6HA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,ED3Fc,SAAS,EAAE,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,cAAc,mDAAoB,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;4FASrD,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAZ7B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAEV,OAAA,EAAA,CAAC,SAAS,EAAE,cAAc,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAA,eAAA,EAC9C,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACP,wBAAA;AACI,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,UAAU,CAAC,uBAAuB;AAClD;AACJ,qBAAA,EAAA,QAAA,EAAA,w8KAAA,EAAA;;;AEzCL;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"keycloakify-angular-account-template.mjs","sources":["../../src/account/template/template.component.ts","../../src/account/template/template.component.html","../../src/account/template/keycloakify-angular-account-template.ts"],"sourcesContent":["import { AsyncPipe, NgClass } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n effect,\n EffectRef,\n forwardRef,\n inject,\n input,\n Renderer2,\n Type,\n viewChild,\n ViewContainerRef\n} from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';\nimport { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';\nimport type { I18n } from '@keycloakify/angular/account/i18n';\nimport type { KcContext } from '@keycloakify/angular/account/KcContext';\nimport { AccountResourceInjectorService } from '@keycloakify/angular/account/services/account-resource-injector';\nimport { ACCOUNT_CLASSES } from '@keycloakify/angular/account/tokens/classes';\nimport { ACCOUNT_I18N } from '@keycloakify/angular/account/tokens/i18n';\nimport { KC_ACCOUNT_CONTEXT } from '@keycloakify/angular/account/tokens/kc-context';\nimport { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';\nimport { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';\nimport { ClassKey, getKcClsx } from 'keycloakify/account/lib/kcClsx';\nimport { Observable } from 'rxjs';\n\ntype ActiveType = 'account' | 'password' | 'totp' | 'social' | 'sessions' | 'applications' | 'log' | 'authorization' | undefined;\n\n@Component({\n selector: 'kc-root',\n templateUrl: 'template.component.html',\n imports: [AsyncPipe, KcSanitizePipe, KcClassDirective, NgClass],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: ComponentReference,\n useExisting: forwardRef(() => TemplateComponent)\n }\n ]\n})\nexport class TemplateComponent extends ComponentReference {\n i18n = inject<I18n>(ACCOUNT_I18N);\n renderer = inject(Renderer2);\n #cdr = inject(ChangeDetectorRef);\n #effectRef: EffectRef;\n meta = inject(Meta);\n title = inject(Title);\n kcContext = inject<KcContext>(KC_ACCOUNT_CONTEXT);\n override doUseDefaultCss = inject<boolean>(USE_DEFAULT_CSS);\n override classes = inject<Partial<Record<ClassKey, string>>>(ACCOUNT_CLASSES);\n accountResourceInjectorService = inject(AccountResourceInjectorService);\n\n isReadyToRender$: Observable<boolean>;\n\n page = input<Type<unknown>>();\n pageRef = viewChild('pageRef', { read: ViewContainerRef });\n\n active: ActiveType;\n\n constructor() {\n super();\n\n this.isReadyToRender$ = this.accountResourceInjectorService.injectResource(this.doUseDefaultCss);\n this.#effectRef = effect(\n () => {\n const page = this.page();\n const pageRef = this.pageRef();\n if (!page || !pageRef) return;\n\n const compRef = pageRef.createComponent(page);\n this.onComponentCreated(compRef.instance as object);\n },\n { manualCleanup: true }\n );\n }\n\n private applyKcIndexClasses() {\n const kcClsx = getKcClsx({\n doUseDefaultCss: this.doUseDefaultCss,\n classes: this.classes\n }).kcClsx;\n const kcBodyClass = kcClsx('kcBodyClass');\n const kcHtmlClass = kcClsx('kcHtmlClass');\n const kcBodyClasses = kcBodyClass.split(/\\s+/);\n const kcHtmlClasses = kcHtmlClass.split(/\\s+/);\n kcBodyClasses.push('admin-console', 'user');\n kcBodyClasses.forEach(klass => {\n this.renderer.addClass(document.body, klass);\n });\n kcHtmlClasses.forEach(klass => {\n this.renderer.addClass(document.documentElement, klass);\n });\n }\n\n onComponentCreated(compRef: object) {\n if ('active' in compRef && compRef.active) {\n this.active = compRef.active as ActiveType;\n }\n\n this.title.setTitle(this.i18n.msgStr('accountManagementTitle'));\n this.applyKcIndexClasses();\n this.#cdr.markForCheck();\n this.#effectRef.destroy();\n }\n}\n","@let enabledLanguages = i18n.enabledLanguages;\n@let currentLanguage = i18n.currentLanguage;\n@let url = kcContext.url;\n@let features = kcContext.features;\n@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let referrer = kcContext.referrer;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <header class=\"navbar navbar-default navbar-pf navbar-main header\">\n <nav\n class=\"navbar\"\n role=\"navigation\"\n >\n <div class=\"navbar-header\">\n <div class=\"container\">\n <h1 class=\"navbar-title\">Keycloak</h1>\n </div>\n </div>\n <div class=\"navbar-collapse navbar-collapse-1\">\n <div class=\"container\">\n <ul class=\"nav navbar-nav navbar-utility\">\n @if (enabledLanguages.length > 1) {\n <li>\n <div\n class=\"kc-dropdown\"\n id=\"kc-locale-dropdown\"\n >\n <a\n href=\"#\"\n id=\"kc-current-locale-link\"\n >\n {{ currentLanguage.label }}\n </a>\n <ul>\n @for (enabledLanguage of enabledLanguages; track enabledLanguage.languageTag) {\n @let label = enabledLanguage.label;\n @let href = enabledLanguage.href;\n\n <li class=\"kc-dropdown-item\">\n <a [href]=\"href\">{{ label }}</a>\n </li>\n }\n </ul>\n </div>\n </li>\n }\n @if (!!referrer?.url) {\n <a\n id=\"referrer\"\n [href]=\"referrer?.url\"\n >\n {{ i18n.msgStr('backTo', referrer?.name) }}\n </a>\n }\n <li>\n <a [href]=\"url.getLogoutUrl()\">{{ i18n.msgStr('doSignOut') }}</a>\n </li>\n </ul>\n </div>\n </div>\n </nav>\n </header>\n\n <div class=\"container\">\n <div class=\"bs-sidebar col-sm-3\">\n <ul>\n <li [ngClass]=\"{ active: active === 'account' }\">\n <a [href]=\"url.accountUrl\">{{ i18n.msgStr('account') }}</a>\n </li>\n @if (features.passwordUpdateSupported) {\n <li [ngClass]=\"{ active: active === 'password' }\">\n <a [href]=\"url.passwordUrl\">{{ i18n.msgStr('password') }}</a>\n </li>\n }\n <li [ngClass]=\"{ active: active === 'totp' }\">\n <a [href]=\"url.totpUrl\">{{ i18n.msgStr('authenticator') }}</a>\n </li>\n @if (features.identityFederation) {\n <li [ngClass]=\"{ active: active === 'social' }\">\n <a [href]=\"url.socialUrl\">{{ i18n.msgStr('federatedIdentity') }}</a>\n </li>\n }\n <li [ngClass]=\"{ active: active === 'sessions' }\">\n <a [href]=\"url.sessionsUrl\">{{ i18n.msgStr('sessions') }}</a>\n </li>\n <li [ngClass]=\"{ active: active === 'applications' }\">\n <a [href]=\"url.applicationsUrl\">{{ i18n.msgStr('applications') }}</a>\n </li>\n @if (features.log) {\n <li [ngClass]=\"{ active: active === 'log' }\">\n <a [href]=\"url.logUrl\">{{ i18n.msgStr('log') }}</a>\n </li>\n }\n @if (realm.userManagedAccessAllowed && features.authorization) {\n <li [ngClass]=\"{ active: active === 'authorization' }\">\n <a [href]=\"url.resourceUrl\">{{ i18n.msgStr('myResources') }}</a>\n </li>\n }\n </ul>\n </div>\n\n <div class=\"col-sm-9 content-area\">\n @if (message) {\n <div [ngClass]=\"['alert', 'alert-' + message.type]\">\n @switch (message.type) {\n @case ('success') {\n <span class=\"pficon pficon-ok\"></span>\n }\n @case ('error') {\n <span class=\"pficon pficon-error-circle-o\"></span>\n }\n }\n <span\n class=\"kc-feedback-text\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n <ng-template #pageRef></ng-template>\n </div>\n </div>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -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: "20.0.3", ngImport: i0, type: AttributesDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
21
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.3", 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: "20.0.3", ngImport: i0, type: AttributesDirective, decorators: [{
|
|
24
24
|
type: Directive,
|
|
25
25
|
args: [{ selector: '[kcAttributes]' }]
|
|
26
26
|
}], ctorParameters: () => [] });
|
|
@@ -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,IAAY,CAAA,YAAA,GAAG,KAAK,EAA0B;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,CAAQ,KAAA,EAAA,GAAG,EAAE,EACb,KAAK,CACR;AACL,iBAAC,CAAC;;AAEV,SAAC,CAAC
|
|
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,IAAY,CAAA,YAAA,GAAG,KAAK,EAA0B;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,CAAQ,KAAA,EAAA,GAAG,EAAE,EACb,KAAK,CACR;AACL,iBAAC,CAAC;;AAEV,SAAC,CAAC;;8GAjBG,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: "20.0.3", ngImport: i0, type: InputTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.3", 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: "20.0.3", 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;;QAG7B,OAAO,SAAS,IAAI,MAAM
|
|
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;;QAG7B,OAAO,SAAS,IAAI,MAAM;;8GANrB,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: "20.0.3", ngImport: i0, type: IsArrayWithEmptyObjectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.3", 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: "20.0.3", 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, 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;;8GANpC,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: "20.0.3", ngImport: i0, type: KcSanitizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
24
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.3", 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: "20.0.3", 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, 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;;;8GAnB1D,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: "20.0.3", ngImport: i0, type: ToArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
13
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.3", 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: "20.0.3", 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;;QAEhB,OAAO,eAAe,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC
|
|
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;;QAEhB,OAAO,eAAe,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;;8GANhC,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: "20.0.3", ngImport: i0, type: ToNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.0.3", 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: "20.0.3", 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, 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;;8GAJR,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;;;;"}
|
|
@@ -44,10 +44,10 @@ class ResourceInjectorService {
|
|
|
44
44
|
script.id = id;
|
|
45
45
|
this.renderer.appendChild(document.head, script);
|
|
46
46
|
}
|
|
47
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
48
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
47
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ResourceInjectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
48
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ResourceInjectorService, providedIn: 'root' }); }
|
|
49
49
|
}
|
|
50
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.3", ngImport: i0, type: ResourceInjectorService, decorators: [{
|
|
51
51
|
type: Injectable,
|
|
52
52
|
args: [{
|
|
53
53
|
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":";;;;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;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;;YAEJ,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,aAAC;AAED,YAAA,IAAI,CAAC,OAAO,GAAG,MAAK;gBAChB,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,GAAG,CAAA,CAAE,CAAC,CAAC;AAClE,aAAC;AAED,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI;YAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;AAC5C,SAAC,CAAC;;IAEN,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;;QAEJ,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
|
|
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":";;;;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;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;;YAEJ,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,aAAC;AAED,YAAA,IAAI,CAAC,OAAO,GAAG,MAAK;gBAChB,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAA,2BAAA,EAA8B,GAAG,CAAA,CAAE,CAAC,CAAC;AAClE,aAAC;AAED,YAAA,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI;YAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC;AAC5C,SAAC,CAAC;;IAEN,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;;QAEJ,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;;8GAzC3C,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
|
@@ -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: "20.0.3", ngImport: i0, type: AddRemoveButtonsMultiValuedAttributeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
55
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.0.3", 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: "20.0.3", ngImport: i0, type: AddRemoveButtonsMultiValuedAttributeComponent, decorators: [{
|
|
58
58
|
type: Component,
|
|
59
59
|
args: [{ imports: [], 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
|
}] });
|