@keycloakify/angular 0.0.1-rc.16 → 0.0.1-rc.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/account/DefaultPage/DefaultPage.d.ts +38 -0
- package/account/DefaultPage/index.d.ts +5 -0
- package/account/KcContext/index.d.ts +5 -0
- package/account/classes/component-reference/component-reference.class.d.ts +6 -0
- package/account/classes/component-reference/index.d.ts +5 -0
- package/account/containers/template/index.d.ts +5 -0
- package/account/containers/template/template.component.d.ts +26 -0
- package/account/directives/kc-class/index.d.ts +5 -0
- package/account/directives/kc-class/kc-class.directive.d.ts +26 -0
- package/account/i18n/index.d.ts +5 -0
- package/account/pages/account/account.component.d.ts +14 -0
- package/account/pages/account/index.d.ts +5 -0
- package/account/pages/applications/applications.component.d.ts +13 -0
- package/account/pages/applications/index.d.ts +5 -0
- package/account/pages/federatedIdentity/federatedIdentity.component.d.ts +13 -0
- package/account/pages/federatedIdentity/index.d.ts +5 -0
- package/account/pages/log/index.d.ts +5 -0
- package/account/pages/log/log.component.d.ts +13 -0
- package/account/pages/password/index.d.ts +5 -0
- package/account/pages/password/password.component.d.ts +28 -0
- package/account/pages/sessions/index.d.ts +5 -0
- package/account/pages/sessions/sessions.component.d.ts +13 -0
- package/account/pages/totp/index.d.ts +5 -0
- package/account/pages/totp/totp.component.d.ts +13 -0
- package/account/providers/keycloakify-angular/index.d.ts +5 -0
- package/account/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +15 -0
- package/account/services/account-resource-injector/account-resource-injector.service.d.ts +10 -0
- package/account/services/account-resource-injector/index.d.ts +5 -0
- package/account/services/i18n/i18n.service.d.ts +6 -0
- package/account/services/i18n/index.d.ts +5 -0
- package/account/tokens/classes/classes.token.d.ts +16 -0
- package/account/tokens/classes/index.d.ts +5 -0
- package/account/tokens/i18n/i18n.token.d.ts +2 -0
- package/account/tokens/i18n/index.d.ts +5 -0
- package/account/tokens/kc-context/index.d.ts +5 -0
- package/account/tokens/kc-context/kc-context.token.d.ts +3 -0
- package/esm2022/account/DefaultPage/DefaultPage.mjs +34 -0
- package/esm2022/account/DefaultPage/keycloakify-angular-account-DefaultPage.mjs +5 -0
- package/esm2022/account/DefaultPage/public-api.mjs +2 -0
- package/esm2022/account/KcContext/KcContext.mjs +2 -0
- package/esm2022/account/KcContext/keycloakify-angular-account-KcContext.mjs +5 -0
- package/esm2022/account/KcContext/public-api.mjs +2 -0
- package/esm2022/account/classes/component-reference/component-reference.class.mjs +3 -0
- package/esm2022/account/classes/component-reference/keycloakify-angular-account-classes-component-reference.mjs +5 -0
- package/esm2022/account/classes/component-reference/public-api.mjs +2 -0
- package/esm2022/account/containers/template/keycloakify-angular-account-containers-template.mjs +5 -0
- package/esm2022/account/containers/template/public-api.mjs +2 -0
- package/esm2022/account/containers/template/template.component.mjs +66 -0
- package/esm2022/account/directives/kc-class/kc-class.directive.mjs +141 -0
- package/esm2022/account/directives/kc-class/keycloakify-angular-account-directives-kc-class.mjs +5 -0
- package/esm2022/account/directives/kc-class/public-api.mjs +2 -0
- package/esm2022/account/i18n/i18n.mjs +2 -0
- package/esm2022/account/i18n/keycloakify-angular-account-i18n.mjs +5 -0
- package/esm2022/account/i18n/public-api.mjs +2 -0
- package/esm2022/account/pages/account/account.component.mjs +39 -0
- package/esm2022/account/pages/account/keycloakify-angular-account-pages-account.mjs +5 -0
- package/esm2022/account/pages/account/public-api.mjs +2 -0
- package/esm2022/account/pages/applications/applications.component.mjs +37 -0
- package/esm2022/account/pages/applications/keycloakify-angular-account-pages-applications.mjs +5 -0
- package/esm2022/account/pages/applications/public-api.mjs +2 -0
- package/esm2022/account/pages/federatedIdentity/federatedIdentity.component.mjs +36 -0
- package/esm2022/account/pages/federatedIdentity/keycloakify-angular-account-pages-federatedIdentity.mjs +5 -0
- package/esm2022/account/pages/federatedIdentity/public-api.mjs +2 -0
- package/esm2022/account/pages/log/keycloakify-angular-account-pages-log.mjs +5 -0
- package/esm2022/account/pages/log/log.component.mjs +36 -0
- package/esm2022/account/pages/log/public-api.mjs +2 -0
- package/esm2022/account/pages/password/keycloakify-angular-account-pages-password.mjs +5 -0
- package/esm2022/account/pages/password/password.component.mjs +108 -0
- package/esm2022/account/pages/password/public-api.mjs +2 -0
- package/esm2022/account/pages/sessions/keycloakify-angular-account-pages-sessions.mjs +5 -0
- package/esm2022/account/pages/sessions/public-api.mjs +2 -0
- package/esm2022/account/pages/sessions/sessions.component.mjs +36 -0
- package/esm2022/account/pages/totp/keycloakify-angular-account-pages-totp.mjs +5 -0
- package/esm2022/account/pages/totp/public-api.mjs +2 -0
- package/esm2022/account/pages/totp/totp.component.mjs +37 -0
- package/esm2022/account/providers/keycloakify-angular/keycloakify-angular-account-providers-keycloakify-angular.mjs +5 -0
- package/esm2022/account/providers/keycloakify-angular/keycloakify-angular.providers.mjs +49 -0
- package/esm2022/account/providers/keycloakify-angular/public-api.mjs +2 -0
- package/esm2022/account/services/account-resource-injector/account-resource-injector.service.mjs +37 -0
- package/esm2022/account/services/account-resource-injector/keycloakify-angular-account-services-account-resource-injector.mjs +5 -0
- package/esm2022/account/services/account-resource-injector/public-api.mjs +2 -0
- package/esm2022/account/services/i18n/i18n.service.mjs +12 -0
- package/esm2022/account/services/i18n/keycloakify-angular-account-services-i18n.mjs +5 -0
- package/esm2022/account/services/i18n/public-api.mjs +2 -0
- package/esm2022/account/tokens/classes/classes.token.mjs +3 -0
- package/esm2022/account/tokens/classes/keycloakify-angular-account-tokens-classes.mjs +5 -0
- package/esm2022/account/tokens/classes/public-api.mjs +2 -0
- package/esm2022/account/tokens/i18n/i18n.token.mjs +3 -0
- package/esm2022/account/tokens/i18n/keycloakify-angular-account-tokens-i18n.mjs +5 -0
- package/esm2022/account/tokens/i18n/public-api.mjs +2 -0
- package/esm2022/account/tokens/kc-context/kc-context.token.mjs +3 -0
- package/esm2022/account/tokens/kc-context/keycloakify-angular-account-tokens-kc-context.mjs +5 -0
- package/esm2022/account/tokens/kc-context/public-api.mjs +2 -0
- package/esm2022/keycloakify-angular.mjs +5 -0
- package/esm2022/lib/directives/attributes/attributes.directive.mjs +26 -0
- package/esm2022/lib/directives/attributes/keycloakify-angular-lib-directives-attributes.mjs +5 -0
- package/esm2022/lib/directives/attributes/public-api.mjs +2 -0
- package/esm2022/lib/keycloakify-angular-lib.mjs +5 -0
- package/esm2022/lib/models/script/keycloakify-angular-lib-models-script.mjs +5 -0
- package/esm2022/lib/models/script/public-api.mjs +2 -0
- package/esm2022/lib/models/script/script.model.mjs +2 -0
- package/esm2022/lib/pipes/input-type/input-type.pipe.mjs +20 -0
- package/esm2022/lib/pipes/input-type/keycloakify-angular-lib-pipes-input-type.mjs +5 -0
- package/esm2022/lib/pipes/input-type/public-api.mjs +2 -0
- package/esm2022/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.mjs +20 -0
- package/esm2022/lib/pipes/is-array-with-empty-object/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs +5 -0
- package/esm2022/lib/pipes/is-array-with-empty-object/public-api.mjs +2 -0
- package/esm2022/lib/pipes/kc-sanitize/kc-sanitize.pipe.mjs +29 -0
- package/esm2022/lib/pipes/kc-sanitize/keycloakify-angular-lib-pipes-kc-sanitize.mjs +5 -0
- package/esm2022/lib/pipes/kc-sanitize/public-api.mjs +2 -0
- package/esm2022/lib/pipes/to-array/keycloakify-angular-lib-pipes-to-array.mjs +5 -0
- package/esm2022/lib/pipes/to-array/public-api.mjs +2 -0
- package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +21 -0
- package/esm2022/lib/pipes/to-number/keycloakify-angular-lib-pipes-to-number.mjs +5 -0
- package/esm2022/lib/pipes/to-number/public-api.mjs +2 -0
- package/esm2022/lib/pipes/to-number/to-number.pipe.mjs +20 -0
- package/esm2022/lib/public-api.mjs +2 -0
- package/esm2022/lib/services/resource-injector/keycloakify-angular-lib-services-resource-injector.mjs +5 -0
- package/esm2022/lib/services/resource-injector/public-api.mjs +2 -0
- package/esm2022/lib/services/resource-injector/resource-injector.service.mjs +54 -0
- package/esm2022/lib/tokens/use-default-css/keycloakify-angular-lib-tokens-use-default-css.mjs +5 -0
- package/esm2022/lib/tokens/use-default-css/public-api.mjs +2 -0
- package/esm2022/lib/tokens/use-default-css/use-default-css.token.mjs +3 -0
- package/esm2022/login/DefaultPage/DefaultPage.mjs +121 -0
- package/esm2022/login/DefaultPage/keycloakify-angular-login-DefaultPage.mjs +5 -0
- package/esm2022/login/DefaultPage/public-api.mjs +2 -0
- package/esm2022/login/KcContext/KcContext.mjs +2 -0
- package/esm2022/login/KcContext/keycloakify-angular-login-KcContext.mjs +5 -0
- package/esm2022/login/KcContext/public-api.mjs +2 -0
- package/esm2022/login/classes/component-reference/component-reference.class.mjs +3 -0
- package/esm2022/login/classes/component-reference/keycloakify-angular-login-classes-component-reference.mjs +5 -0
- package/esm2022/login/classes/component-reference/public-api.mjs +2 -0
- package/esm2022/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +106 -0
- package/esm2022/login/components/add-remove-buttons-multi-valued-attribute/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +5 -0
- package/esm2022/login/components/add-remove-buttons-multi-valued-attribute/public-api.mjs +2 -0
- package/esm2022/login/components/field-errors/field-errors.component.mjs +33 -0
- package/esm2022/login/components/field-errors/keycloakify-angular-login-components-field-errors.mjs +5 -0
- package/esm2022/login/components/field-errors/public-api.mjs +2 -0
- package/esm2022/login/components/group-label/group-label.component.mjs +43 -0
- package/esm2022/login/components/group-label/keycloakify-angular-login-components-group-label.mjs +5 -0
- package/esm2022/login/components/group-label/public-api.mjs +2 -0
- package/esm2022/login/components/input-field-by-type/input-field-by-type.component.mjs +46 -0
- package/esm2022/login/components/input-field-by-type/keycloakify-angular-login-components-input-field-by-type.mjs +5 -0
- package/esm2022/login/components/input-field-by-type/public-api.mjs +2 -0
- package/esm2022/login/components/input-tag/input-tag.component.mjs +90 -0
- package/esm2022/login/components/input-tag/keycloakify-angular-login-components-input-tag.mjs +5 -0
- package/esm2022/login/components/input-tag/public-api.mjs +2 -0
- package/esm2022/login/components/input-tag-selects/input-tag-selects.component.mjs +117 -0
- package/esm2022/login/components/input-tag-selects/keycloakify-angular-login-components-input-tag-selects.mjs +5 -0
- package/esm2022/login/components/input-tag-selects/public-api.mjs +2 -0
- package/esm2022/login/components/logout-other-sessions/keycloakify-angular-login-components-logout-other-sessions.mjs +5 -0
- package/esm2022/login/components/logout-other-sessions/logout-other-sessions.component.mjs +32 -0
- package/esm2022/login/components/logout-other-sessions/public-api.mjs +2 -0
- package/esm2022/login/components/password-wrapper/keycloakify-angular-login-components-password-wrapper.mjs +5 -0
- package/esm2022/login/components/password-wrapper/password-wrapper.component.mjs +46 -0
- package/esm2022/login/components/password-wrapper/public-api.mjs +2 -0
- package/esm2022/login/components/select-tag/keycloakify-angular-login-components-select-tag.mjs +5 -0
- package/esm2022/login/components/select-tag/public-api.mjs +2 -0
- package/esm2022/login/components/select-tag/select-tag.component.mjs +82 -0
- package/esm2022/login/components/textarea-tag/keycloakify-angular-login-components-textarea-tag.mjs +5 -0
- package/esm2022/login/components/textarea-tag/public-api.mjs +2 -0
- package/esm2022/login/components/textarea-tag/textarea-tag.component.mjs +49 -0
- package/esm2022/login/components/user-profile-form-fields/keycloakify-angular-login-components-user-profile-form-fields.mjs +5 -0
- package/esm2022/login/components/user-profile-form-fields/public-api.mjs +2 -0
- package/esm2022/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +62 -0
- package/esm2022/login/containers/template/keycloakify-angular-login-containers-template.mjs +5 -0
- package/esm2022/login/containers/template/public-api.mjs +2 -0
- package/esm2022/login/containers/template/template.component.mjs +72 -0
- package/esm2022/login/directives/kc-class/kc-class.directive.mjs +138 -0
- package/esm2022/login/directives/kc-class/keycloakify-angular-login-directives-kc-class.mjs +5 -0
- package/esm2022/login/directives/kc-class/public-api.mjs +2 -0
- package/esm2022/login/i18n/i18n.mjs +2 -0
- package/esm2022/login/i18n/keycloakify-angular-login-i18n.mjs +5 -0
- package/esm2022/login/i18n/public-api.mjs +2 -0
- package/esm2022/login/pages/code/code.component.mjs +35 -0
- package/esm2022/login/pages/code/keycloakify-angular-login-pages-code.mjs +5 -0
- package/esm2022/login/pages/code/public-api.mjs +2 -0
- package/esm2022/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +35 -0
- package/esm2022/login/pages/delete-account-confirm/keycloakify-angular-login-pages-delete-account-confirm.mjs +5 -0
- package/esm2022/login/pages/delete-account-confirm/public-api.mjs +2 -0
- package/esm2022/login/pages/delete-credential/delete-credential.component.mjs +40 -0
- package/esm2022/login/pages/delete-credential/keycloakify-angular-login-pages-delete-credential.mjs +5 -0
- package/esm2022/login/pages/delete-credential/public-api.mjs +2 -0
- package/esm2022/login/pages/error/error.component.mjs +35 -0
- package/esm2022/login/pages/error/keycloakify-angular-login-pages-error.mjs +5 -0
- package/esm2022/login/pages/error/public-api.mjs +2 -0
- package/esm2022/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +44 -0
- package/esm2022/login/pages/frontchannel-logout/keycloakify-angular-login-pages-frontchannel-logout.mjs +5 -0
- package/esm2022/login/pages/frontchannel-logout/public-api.mjs +2 -0
- package/esm2022/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +53 -0
- package/esm2022/login/pages/idp-review-user-profile/keycloakify-angular-login-pages-idp-review-user-profile.mjs +5 -0
- package/esm2022/login/pages/idp-review-user-profile/public-api.mjs +2 -0
- package/esm2022/login/pages/info/info.component.mjs +49 -0
- package/esm2022/login/pages/info/keycloakify-angular-login-pages-info.mjs +5 -0
- package/esm2022/login/pages/info/public-api.mjs +2 -0
- package/esm2022/login/pages/login/keycloakify-angular-login-pages-login.mjs +5 -0
- package/esm2022/login/pages/login/login.component.mjs +44 -0
- package/esm2022/login/pages/login/public-api.mjs +2 -0
- package/esm2022/login/pages/login-config-totp/keycloakify-angular-login-pages-login-config-totp.mjs +5 -0
- package/esm2022/login/pages/login-config-totp/login-config-totp.component.mjs +42 -0
- package/esm2022/login/pages/login-config-totp/public-api.mjs +2 -0
- package/esm2022/login/pages/login-idp-link-confirm/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +5 -0
- package/esm2022/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +40 -0
- package/esm2022/login/pages/login-idp-link-confirm/public-api.mjs +2 -0
- package/esm2022/login/pages/login-idp-link-confirm-override/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +5 -0
- package/esm2022/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +40 -0
- package/esm2022/login/pages/login-idp-link-confirm-override/public-api.mjs +2 -0
- package/esm2022/login/pages/login-idp-link-email/keycloakify-angular-login-pages-login-idp-link-email.mjs +5 -0
- package/esm2022/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +40 -0
- package/esm2022/login/pages/login-idp-link-email/public-api.mjs +2 -0
- package/esm2022/login/pages/login-oauth-grant/keycloakify-angular-login-pages-login-oauth-grant.mjs +5 -0
- package/esm2022/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +40 -0
- package/esm2022/login/pages/login-oauth-grant/public-api.mjs +2 -0
- package/esm2022/login/pages/login-oauth2-device-verify-user-code/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +5 -0
- package/esm2022/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +40 -0
- package/esm2022/login/pages/login-oauth2-device-verify-user-code/public-api.mjs +2 -0
- package/esm2022/login/pages/login-otp/keycloakify-angular-login-pages-login-otp.mjs +5 -0
- package/esm2022/login/pages/login-otp/login-otp.component.mjs +41 -0
- package/esm2022/login/pages/login-otp/public-api.mjs +2 -0
- package/esm2022/login/pages/login-page-expired/keycloakify-angular-login-pages-login-page-expired.mjs +5 -0
- package/esm2022/login/pages/login-page-expired/login-page-expired.component.mjs +39 -0
- package/esm2022/login/pages/login-page-expired/public-api.mjs +2 -0
- package/esm2022/login/pages/login-passkeys-conditional-authenticate/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +5 -0
- package/esm2022/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +84 -0
- package/esm2022/login/pages/login-passkeys-conditional-authenticate/public-api.mjs +2 -0
- package/esm2022/login/pages/login-password/keycloakify-angular-login-pages-login-password.mjs +5 -0
- package/esm2022/login/pages/login-password/login-password.component.mjs +43 -0
- package/esm2022/login/pages/login-password/public-api.mjs +2 -0
- package/esm2022/login/pages/login-recovery-authn-code-config/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +5 -0
- package/esm2022/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +43 -0
- package/esm2022/login/pages/login-recovery-authn-code-config/public-api.mjs +2 -0
- package/esm2022/login/pages/login-recovery-authn-code-input/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +5 -0
- package/esm2022/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +41 -0
- package/esm2022/login/pages/login-recovery-authn-code-input/public-api.mjs +2 -0
- package/esm2022/login/pages/login-reset-otp/keycloakify-angular-login-pages-login-reset-otp.mjs +5 -0
- package/esm2022/login/pages/login-reset-otp/login-reset-otp.component.mjs +40 -0
- package/esm2022/login/pages/login-reset-otp/public-api.mjs +2 -0
- package/esm2022/login/pages/login-reset-password/keycloakify-angular-login-pages-login-reset-password.mjs +5 -0
- package/esm2022/login/pages/login-reset-password/login-reset-password.component.mjs +41 -0
- package/esm2022/login/pages/login-reset-password/public-api.mjs +2 -0
- package/esm2022/login/pages/login-update-password/keycloakify-angular-login-pages-login-update-password.mjs +5 -0
- package/esm2022/login/pages/login-update-password/login-update-password.component.mjs +43 -0
- package/esm2022/login/pages/login-update-password/public-api.mjs +2 -0
- package/esm2022/login/pages/login-update-profile/keycloakify-angular-login-pages-login-update-profile.mjs +5 -0
- package/esm2022/login/pages/login-update-profile/login-update-profile.component.mjs +50 -0
- package/esm2022/login/pages/login-update-profile/public-api.mjs +2 -0
- package/esm2022/login/pages/login-username/keycloakify-angular-login-pages-login-username.mjs +5 -0
- package/esm2022/login/pages/login-username/login-username.component.mjs +43 -0
- package/esm2022/login/pages/login-username/public-api.mjs +2 -0
- package/esm2022/login/pages/login-verify-email/keycloakify-angular-login-pages-login-verify-email.mjs +5 -0
- package/esm2022/login/pages/login-verify-email/login-verify-email.component.mjs +40 -0
- package/esm2022/login/pages/login-verify-email/public-api.mjs +2 -0
- package/esm2022/login/pages/login-x509-info/keycloakify-angular-login-pages-login-x509-info.mjs +5 -0
- package/esm2022/login/pages/login-x509-info/login-x509-info.component.mjs +40 -0
- package/esm2022/login/pages/login-x509-info/public-api.mjs +2 -0
- package/esm2022/login/pages/logout-confirm/keycloakify-angular-login-pages-logout-confirm.mjs +5 -0
- package/esm2022/login/pages/logout-confirm/logout-confirm.component.mjs +40 -0
- package/esm2022/login/pages/logout-confirm/public-api.mjs +2 -0
- package/esm2022/login/pages/register/keycloakify-angular-login-pages-register.mjs +5 -0
- package/esm2022/login/pages/register/public-api.mjs +2 -0
- package/esm2022/login/pages/register/register.component.mjs +55 -0
- package/esm2022/login/pages/saml-post-form/keycloakify-angular-login-pages-saml-post-form.mjs +5 -0
- package/esm2022/login/pages/saml-post-form/public-api.mjs +2 -0
- package/esm2022/login/pages/saml-post-form/saml-post-form.component.mjs +52 -0
- package/esm2022/login/pages/select-authenticator/keycloakify-angular-login-pages-select-authenticator.mjs +5 -0
- package/esm2022/login/pages/select-authenticator/public-api.mjs +2 -0
- package/esm2022/login/pages/select-authenticator/select-authenticator.component.mjs +41 -0
- package/esm2022/login/pages/terms/keycloakify-angular-login-pages-terms.mjs +5 -0
- package/esm2022/login/pages/terms/public-api.mjs +2 -0
- package/esm2022/login/pages/terms/terms.component.mjs +40 -0
- package/esm2022/login/pages/update-email/keycloakify-angular-login-pages-update-email.mjs +5 -0
- package/esm2022/login/pages/update-email/public-api.mjs +2 -0
- package/esm2022/login/pages/update-email/update-email.component.mjs +51 -0
- package/esm2022/login/pages/webauthn-authenticate/keycloakify-angular-login-pages-webauthn-authenticate.mjs +5 -0
- package/esm2022/login/pages/webauthn-authenticate/public-api.mjs +2 -0
- package/esm2022/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +80 -0
- package/esm2022/login/pages/webauthn-error/keycloakify-angular-login-pages-webauthn-error.mjs +5 -0
- package/esm2022/login/pages/webauthn-error/public-api.mjs +2 -0
- package/esm2022/login/pages/webauthn-error/webauthn-error.component.mjs +49 -0
- package/esm2022/login/pages/webauthn-register/keycloakify-angular-login-pages-webauthn-register.mjs +5 -0
- package/esm2022/login/pages/webauthn-register/public-api.mjs +2 -0
- package/esm2022/login/pages/webauthn-register/webauthn-register.component.mjs +76 -0
- package/esm2022/login/providers/keycloakify-angular/keycloakify-angular-login-providers-keycloakify-angular.mjs +5 -0
- package/esm2022/login/providers/keycloakify-angular/keycloakify-angular.providers.mjs +54 -0
- package/esm2022/login/providers/keycloakify-angular/public-api.mjs +2 -0
- package/esm2022/login/services/i18n/i18n.service.mjs +12 -0
- package/esm2022/login/services/i18n/keycloakify-angular-login-services-i18n.mjs +5 -0
- package/esm2022/login/services/i18n/public-api.mjs +2 -0
- package/esm2022/login/services/login-resource-injector/keycloakify-angular-login-services-login-resource-injector.mjs +5 -0
- package/esm2022/login/services/login-resource-injector/login-resource-injector.service.mjs +68 -0
- package/esm2022/login/services/login-resource-injector/public-api.mjs +2 -0
- package/esm2022/login/services/submit/keycloakify-angular-login-services-submit.mjs +5 -0
- package/esm2022/login/services/submit/public-api.mjs +2 -0
- package/esm2022/login/services/submit/submit.service.mjs +20 -0
- package/esm2022/login/services/user-profile-form/keycloakify-angular-login-services-user-profile-form.mjs +5 -0
- package/esm2022/login/services/user-profile-form/public-api.mjs +2 -0
- package/esm2022/login/services/user-profile-form/user-profile-form.service.mjs +1019 -0
- package/esm2022/login/tokens/classes/classes.token.mjs +3 -0
- package/esm2022/login/tokens/classes/keycloakify-angular-login-tokens-classes.mjs +5 -0
- package/esm2022/login/tokens/classes/public-api.mjs +2 -0
- package/esm2022/login/tokens/i18n/i18n.token.mjs +3 -0
- package/esm2022/login/tokens/i18n/keycloakify-angular-login-tokens-i18n.mjs +5 -0
- package/esm2022/login/tokens/i18n/public-api.mjs +2 -0
- package/esm2022/login/tokens/kc-context/kc-context.token.mjs +3 -0
- package/esm2022/login/tokens/kc-context/keycloakify-angular-login-tokens-kc-context.mjs +5 -0
- package/esm2022/login/tokens/kc-context/public-api.mjs +2 -0
- package/esm2022/login/tokens/make-user-confirm-password/keycloakify-angular-login-tokens-make-user-confirm-password.mjs +5 -0
- package/esm2022/login/tokens/make-user-confirm-password/make-user-confirm-password.token.mjs +3 -0
- package/esm2022/login/tokens/make-user-confirm-password/public-api.mjs +2 -0
- package/esm2022/public-api.mjs +2 -0
- package/fesm2022/keycloakify-angular-account-DefaultPage.mjs +39 -0
- package/fesm2022/keycloakify-angular-account-DefaultPage.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-KcContext.mjs +4 -0
- package/fesm2022/keycloakify-angular-account-KcContext.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-classes-component-reference.mjs +9 -0
- package/fesm2022/keycloakify-angular-account-classes-component-reference.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-containers-template.mjs +73 -0
- package/fesm2022/keycloakify-angular-account-containers-template.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs +148 -0
- package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-i18n.mjs +4 -0
- package/fesm2022/keycloakify-angular-account-i18n.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-pages-account.mjs +46 -0
- package/fesm2022/keycloakify-angular-account-pages-account.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-pages-applications.mjs +44 -0
- package/fesm2022/keycloakify-angular-account-pages-applications.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs +43 -0
- package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-pages-log.mjs +43 -0
- package/fesm2022/keycloakify-angular-account-pages-log.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-pages-password.mjs +115 -0
- package/fesm2022/keycloakify-angular-account-pages-password.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-pages-sessions.mjs +43 -0
- package/fesm2022/keycloakify-angular-account-pages-sessions.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-pages-totp.mjs +44 -0
- package/fesm2022/keycloakify-angular-account-pages-totp.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs +56 -0
- package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs +44 -0
- package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-services-i18n.mjs +19 -0
- package/fesm2022/keycloakify-angular-account-services-i18n.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-tokens-classes.mjs +10 -0
- package/fesm2022/keycloakify-angular-account-tokens-classes.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-tokens-i18n.mjs +10 -0
- package/fesm2022/keycloakify-angular-account-tokens-i18n.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-account-tokens-kc-context.mjs +10 -0
- package/fesm2022/keycloakify-angular-account-tokens-kc-context.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs +33 -0
- package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-lib-models-script.mjs +4 -0
- package/fesm2022/keycloakify-angular-lib-models-script.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs +27 -0
- package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs +27 -0
- package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs +36 -0
- package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs +28 -0
- package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs +27 -0
- package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs +61 -0
- package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-lib-tokens-use-default-css.mjs +10 -0
- package/fesm2022/keycloakify-angular-lib-tokens-use-default-css.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-lib.mjs +8 -0
- package/fesm2022/keycloakify-angular-lib.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-DefaultPage.mjs +126 -0
- package/fesm2022/keycloakify-angular-login-DefaultPage.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-KcContext.mjs +4 -0
- package/fesm2022/keycloakify-angular-login-KcContext.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-classes-component-reference.mjs +9 -0
- package/fesm2022/keycloakify-angular-login-classes-component-reference.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +113 -0
- package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-components-field-errors.mjs +40 -0
- package/fesm2022/keycloakify-angular-login-components-field-errors.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-components-group-label.mjs +50 -0
- package/fesm2022/keycloakify-angular-login-components-group-label.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs +53 -0
- package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs +124 -0
- package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-components-input-tag.mjs +97 -0
- package/fesm2022/keycloakify-angular-login-components-input-tag.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs +39 -0
- package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs +53 -0
- package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-components-select-tag.mjs +89 -0
- package/fesm2022/keycloakify-angular-login-components-select-tag.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs +56 -0
- package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs +69 -0
- package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-containers-template.mjs +79 -0
- package/fesm2022/keycloakify-angular-login-containers-template.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs +145 -0
- package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-i18n.mjs +4 -0
- package/fesm2022/keycloakify-angular-login-i18n.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-code.mjs +42 -0
- package/fesm2022/keycloakify-angular-login-pages-code.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs +42 -0
- package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +47 -0
- package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-error.mjs +42 -0
- package/fesm2022/keycloakify-angular-login-pages-error.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs +51 -0
- package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +60 -0
- package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-info.mjs +56 -0
- package/fesm2022/keycloakify-angular-login-pages-info.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs +49 -0
- package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +47 -0
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +47 -0
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +47 -0
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +47 -0
- package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +47 -0
- package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs +48 -0
- package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +46 -0
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +91 -0
- package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +50 -0
- package/fesm2022/keycloakify-angular-login-pages-login-password.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +50 -0
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +48 -0
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs +47 -0
- package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +48 -0
- package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs +50 -0
- package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +57 -0
- package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +50 -0
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +47 -0
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs +47 -0
- package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-login.mjs +51 -0
- package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs +47 -0
- package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-register.mjs +62 -0
- package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs +59 -0
- package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +48 -0
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-terms.mjs +47 -0
- package/fesm2022/keycloakify-angular-login-pages-terms.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +58 -0
- package/fesm2022/keycloakify-angular-login-pages-update-email.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +87 -0
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs +56 -0
- package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs +83 -0
- package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs +61 -0
- package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-services-i18n.mjs +19 -0
- package/fesm2022/keycloakify-angular-login-services-i18n.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs +75 -0
- package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-services-submit.mjs +27 -0
- package/fesm2022/keycloakify-angular-login-services-submit.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs +1026 -0
- package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-tokens-classes.mjs +10 -0
- package/fesm2022/keycloakify-angular-login-tokens-classes.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-tokens-i18n.mjs +10 -0
- package/fesm2022/keycloakify-angular-login-tokens-i18n.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-tokens-kc-context.mjs +10 -0
- package/fesm2022/keycloakify-angular-login-tokens-kc-context.mjs.map +1 -0
- package/fesm2022/keycloakify-angular-login-tokens-make-user-confirm-password.mjs +10 -0
- package/fesm2022/keycloakify-angular-login-tokens-make-user-confirm-password.mjs.map +1 -0
- package/fesm2022/keycloakify-angular.mjs +8 -0
- package/fesm2022/keycloakify-angular.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/directives/attributes/attributes.directive.d.ts +8 -0
- package/lib/directives/attributes/index.d.ts +5 -0
- package/lib/index.d.ts +5 -0
- package/lib/models/script/index.d.ts +5 -0
- package/lib/models/script/script.model.d.ts +6 -0
- package/lib/pipes/input-type/index.d.ts +5 -0
- package/lib/pipes/input-type/input-type.pipe.d.ts +7 -0
- package/lib/pipes/is-array-with-empty-object/index.d.ts +5 -0
- package/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.d.ts +7 -0
- package/lib/pipes/kc-sanitize/index.d.ts +5 -0
- package/lib/pipes/kc-sanitize/kc-sanitize.pipe.d.ts +9 -0
- package/lib/pipes/to-array/index.d.ts +5 -0
- package/lib/pipes/to-array/to-array.pipe.d.ts +7 -0
- package/lib/pipes/to-number/index.d.ts +5 -0
- package/lib/pipes/to-number/to-number.pipe.d.ts +7 -0
- package/lib/public-api.d.ts +1 -0
- package/lib/services/resource-injector/index.d.ts +5 -0
- package/lib/services/resource-injector/resource-injector.service.d.ts +10 -0
- package/lib/tokens/use-default-css/index.d.ts +5 -0
- package/lib/tokens/use-default-css/use-default-css.token.d.ts +2 -0
- package/login/DefaultPage/DefaultPage.d.ts +260 -0
- package/login/DefaultPage/index.d.ts +5 -0
- package/login/KcContext/index.d.ts +5 -0
- package/login/classes/component-reference/component-reference.class.d.ts +5 -0
- package/login/classes/component-reference/index.d.ts +5 -0
- package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.d.ts +18 -0
- package/login/components/add-remove-buttons-multi-valued-attribute/index.d.ts +5 -0
- package/login/components/field-errors/field-errors.component.d.ts +14 -0
- package/login/components/field-errors/index.d.ts +5 -0
- package/login/components/group-label/group-label.component.d.ts +15 -0
- package/login/components/group-label/index.d.ts +5 -0
- package/login/components/input-field-by-type/index.d.ts +5 -0
- package/login/components/input-field-by-type/input-field-by-type.component.d.ts +16 -0
- package/login/components/input-tag/index.d.ts +5 -0
- package/login/components/input-tag/input-tag.component.d.ts +22 -0
- package/login/components/input-tag-selects/index.d.ts +5 -0
- package/login/components/input-tag-selects/input-tag-selects.component.d.ts +28 -0
- package/login/components/logout-other-sessions/index.d.ts +5 -0
- package/login/components/logout-other-sessions/logout-other-sessions.component.d.ts +11 -0
- package/login/components/password-wrapper/index.d.ts +5 -0
- package/login/components/password-wrapper/password-wrapper.component.d.ts +17 -0
- package/login/components/select-tag/index.d.ts +5 -0
- package/login/components/select-tag/select-tag.component.d.ts +21 -0
- package/login/components/textarea-tag/index.d.ts +5 -0
- package/login/components/textarea-tag/textarea-tag.component.d.ts +17 -0
- package/login/components/user-profile-form-fields/index.d.ts +5 -0
- package/login/components/user-profile-form-fields/user-profile-form-fields.component.d.ts +31 -0
- package/login/containers/template/index.d.ts +5 -0
- package/login/containers/template/template.component.d.ts +31 -0
- package/login/directives/kc-class/index.d.ts +5 -0
- package/login/directives/kc-class/kc-class.directive.d.ts +26 -0
- package/login/i18n/index.d.ts +5 -0
- package/login/pages/code/code.component.d.ts +13 -0
- package/login/pages/code/index.d.ts +5 -0
- package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +13 -0
- package/login/pages/delete-account-confirm/index.d.ts +5 -0
- package/login/pages/delete-credential/delete-credential.component.d.ts +18 -0
- package/login/pages/delete-credential/index.d.ts +5 -0
- package/login/pages/error/error.component.d.ts +13 -0
- package/login/pages/error/index.d.ts +5 -0
- package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +19 -0
- package/login/pages/frontchannel-logout/index.d.ts +5 -0
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +25 -0
- package/login/pages/idp-review-user-profile/index.d.ts +5 -0
- package/login/pages/info/index.d.ts +5 -0
- package/login/pages/info/info.component.d.ts +19 -0
- package/login/pages/login/index.d.ts +5 -0
- package/login/pages/login/login.component.d.ts +19 -0
- package/login/pages/login-config-totp/index.d.ts +5 -0
- package/login/pages/login-config-totp/login-config-totp.component.d.ts +18 -0
- package/login/pages/login-idp-link-confirm/index.d.ts +5 -0
- package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +18 -0
- package/login/pages/login-idp-link-confirm-override/index.d.ts +5 -0
- package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +18 -0
- package/login/pages/login-idp-link-email/index.d.ts +5 -0
- package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +18 -0
- package/login/pages/login-oauth-grant/index.d.ts +5 -0
- package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +18 -0
- package/login/pages/login-oauth2-device-verify-user-code/index.d.ts +5 -0
- package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +18 -0
- package/login/pages/login-otp/index.d.ts +5 -0
- package/login/pages/login-otp/login-otp.component.d.ts +18 -0
- package/login/pages/login-page-expired/index.d.ts +5 -0
- package/login/pages/login-page-expired/login-page-expired.component.d.ts +18 -0
- package/login/pages/login-passkeys-conditional-authenticate/index.d.ts +5 -0
- package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +19 -0
- package/login/pages/login-password/index.d.ts +5 -0
- package/login/pages/login-password/login-password.component.d.ts +19 -0
- package/login/pages/login-recovery-authn-code-config/index.d.ts +5 -0
- package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +20 -0
- package/login/pages/login-recovery-authn-code-input/index.d.ts +5 -0
- package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +18 -0
- package/login/pages/login-reset-otp/index.d.ts +5 -0
- package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +18 -0
- package/login/pages/login-reset-password/index.d.ts +5 -0
- package/login/pages/login-reset-password/login-reset-password.component.d.ts +18 -0
- package/login/pages/login-update-password/index.d.ts +5 -0
- package/login/pages/login-update-password/login-update-password.component.d.ts +18 -0
- package/login/pages/login-update-profile/index.d.ts +5 -0
- package/login/pages/login-update-profile/login-update-profile.component.d.ts +24 -0
- package/login/pages/login-username/index.d.ts +5 -0
- package/login/pages/login-username/login-username.component.d.ts +19 -0
- package/login/pages/login-verify-email/index.d.ts +5 -0
- package/login/pages/login-verify-email/login-verify-email.component.d.ts +18 -0
- package/login/pages/login-x509-info/index.d.ts +5 -0
- package/login/pages/login-x509-info/login-x509-info.component.d.ts +18 -0
- package/login/pages/logout-confirm/index.d.ts +5 -0
- package/login/pages/logout-confirm/logout-confirm.component.d.ts +18 -0
- package/login/pages/register/index.d.ts +5 -0
- package/login/pages/register/register.component.d.ts +26 -0
- package/login/pages/saml-post-form/index.d.ts +5 -0
- package/login/pages/saml-post-form/saml-post-form.component.d.ts +21 -0
- package/login/pages/select-authenticator/index.d.ts +5 -0
- package/login/pages/select-authenticator/select-authenticator.component.d.ts +18 -0
- package/login/pages/terms/index.d.ts +5 -0
- package/login/pages/terms/terms.component.d.ts +18 -0
- package/login/pages/update-email/index.d.ts +5 -0
- package/login/pages/update-email/update-email.component.d.ts +24 -0
- package/login/pages/webauthn-authenticate/index.d.ts +5 -0
- package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +23 -0
- package/login/pages/webauthn-error/index.d.ts +5 -0
- package/login/pages/webauthn-error/webauthn-error.component.d.ts +19 -0
- package/login/pages/webauthn-register/index.d.ts +5 -0
- package/login/pages/webauthn-register/webauthn-register.component.d.ts +22 -0
- package/login/providers/keycloakify-angular/index.d.ts +5 -0
- package/login/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +16 -0
- package/login/services/i18n/i18n.service.d.ts +6 -0
- package/login/services/i18n/index.d.ts +5 -0
- package/login/services/login-resource-injector/index.d.ts +5 -0
- package/login/services/login-resource-injector/login-resource-injector.service.d.ts +11 -0
- package/login/services/submit/index.d.ts +5 -0
- package/login/services/submit/submit.service.d.ts +9 -0
- package/login/services/user-profile-form/index.d.ts +5 -0
- package/login/services/user-profile-form/user-profile-form.service.d.ts +86 -0
- package/login/tokens/classes/classes.token.d.ts +127 -0
- package/login/tokens/classes/index.d.ts +5 -0
- package/login/tokens/i18n/i18n.token.d.ts +2 -0
- package/login/tokens/i18n/index.d.ts +5 -0
- package/login/tokens/kc-context/index.d.ts +5 -0
- package/login/tokens/kc-context/kc-context.token.d.ts +3 -0
- package/login/tokens/make-user-confirm-password/index.d.ts +5 -0
- package/login/tokens/make-user-confirm-password/make-user-confirm-password.token.d.ts +2 -0
- package/package.json +588 -51
- package/public-api.d.ts +1 -0
- package/src/account/DefaultPage.ts +61 -0
- package/src/account/KcContext.ts +1 -0
- package/src/account/containers/template/template.component.html +2 -2
- package/src/account/containers/template/template.component.ts +2 -2
- package/src/account/i18n.ts +4 -0
- package/src/account/pages/account/account.component.html +3 -3
- package/src/account/pages/account/account.component.ts +2 -2
- package/src/account/pages/applications/applications.component.html +2 -2
- package/src/account/pages/applications/applications.component.ts +2 -2
- package/src/account/pages/federatedIdentity/federatedIdentity.component.html +5 -5
- package/src/account/pages/federatedIdentity/federatedIdentity.component.ts +2 -2
- package/src/account/pages/log/log.component.ts +2 -2
- package/src/account/pages/password/password.component.html +4 -4
- package/src/account/pages/password/password.component.ts +3 -2
- package/src/account/pages/sessions/sessions.component.html +1 -1
- package/src/account/pages/sessions/sessions.component.ts +2 -2
- package/src/account/pages/totp/totp.component.html +11 -11
- package/src/account/pages/totp/totp.component.ts +2 -2
- package/src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts +2 -1
- package/src/account/services/account-resource-injector/account-resource-injector.service.ts +1 -1
- package/src/account/tokens/kc-context/kc-context.token.ts +1 -1
- package/src/login/DefaultPage.ts +208 -0
- package/src/login/KcContext.ts +1 -0
- package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +2 -2
- package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.ts +1 -1
- package/src/login/components/field-errors/field-errors.component.html +1 -1
- package/src/login/components/group-label/group-label.component.ts +1 -1
- package/src/login/components/input-field-by-type/input-field-by-type.component.html +6 -6
- package/src/login/components/input-tag/input-tag.component.html +2 -2
- package/src/login/components/input-tag/input-tag.component.ts +1 -1
- package/src/login/components/input-tag-selects/input-tag-selects.component.ts +1 -1
- package/src/login/components/logout-other-sessions/logout-other-sessions.component.ts +1 -1
- package/src/login/components/password-wrapper/password-wrapper.component.html +2 -2
- package/src/login/components/password-wrapper/password-wrapper.component.ts +1 -1
- package/src/login/components/select-tag/select-tag.component.ts +1 -1
- package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +7 -11
- package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.ts +2 -2
- package/src/login/containers/template/template.component.html +11 -11
- package/src/login/containers/template/template.component.ts +2 -2
- package/src/login/directives/kc-class/kc-class.directive.ts +1 -2
- package/src/login/i18n.ts +4 -0
- package/src/login/pages/code/code.component.ts +2 -2
- package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +3 -3
- package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +2 -2
- package/src/login/pages/delete-credential/delete-credential.component.html +4 -4
- package/src/login/pages/delete-credential/delete-credential.component.ts +2 -2
- package/src/login/pages/error/error.component.ts +2 -2
- package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +1 -1
- package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +2 -2
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +3 -3
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +2 -2
- package/src/login/pages/info/info.component.ts +2 -2
- package/src/login/pages/login/login.component.html +9 -9
- package/src/login/pages/login/login.component.ts +2 -2
- package/src/login/pages/login-config-totp/login-config-totp.component.html +10 -10
- package/src/login/pages/login-config-totp/login-config-totp.component.ts +2 -2
- package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +3 -3
- package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +2 -2
- package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +2 -2
- package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +2 -2
- package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +2 -2
- package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +5 -5
- package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +2 -2
- package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +3 -3
- package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +2 -2
- package/src/login/pages/login-otp/login-otp.component.html +7 -7
- package/src/login/pages/login-otp/login-otp.component.ts +2 -2
- package/src/login/pages/login-page-expired/login-page-expired.component.ts +2 -2
- package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +9 -9
- package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +2 -2
- package/src/login/pages/login-password/login-password.component.html +5 -5
- package/src/login/pages/login-password/login-password.component.ts +2 -2
- package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +9 -9
- package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +2 -2
- package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +5 -5
- package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +2 -2
- package/src/login/pages/login-reset-otp/login-reset-otp.component.html +5 -5
- package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +2 -2
- package/src/login/pages/login-reset-password/login-reset-password.component.html +4 -4
- package/src/login/pages/login-reset-password/login-reset-password.component.ts +2 -2
- package/src/login/pages/login-update-password/login-update-password.component.html +8 -8
- package/src/login/pages/login-update-password/login-update-password.component.ts +2 -2
- package/src/login/pages/login-update-profile/login-update-profile.component.html +4 -4
- package/src/login/pages/login-update-profile/login-update-profile.component.ts +2 -2
- package/src/login/pages/login-username/login-username.component.html +7 -7
- package/src/login/pages/login-username/login-username.component.ts +2 -2
- package/src/login/pages/login-verify-email/login-verify-email.component.ts +2 -2
- package/src/login/pages/login-x509-info/login-x509-info.component.html +3 -3
- package/src/login/pages/login-x509-info/login-x509-info.component.ts +2 -2
- package/src/login/pages/logout-confirm/logout-confirm.component.html +2 -2
- package/src/login/pages/logout-confirm/logout-confirm.component.ts +2 -2
- package/src/login/pages/register/register.component.html +7 -7
- package/src/login/pages/register/register.component.ts +2 -2
- package/src/login/pages/saml-post-form/saml-post-form.component.html +1 -1
- package/src/login/pages/saml-post-form/saml-post-form.component.ts +2 -2
- package/src/login/pages/select-authenticator/select-authenticator.component.html +2 -2
- package/src/login/pages/select-authenticator/select-authenticator.component.ts +2 -2
- package/src/login/pages/terms/terms.component.html +3 -3
- package/src/login/pages/terms/terms.component.ts +2 -2
- package/src/login/pages/update-email/update-email.component.html +5 -5
- package/src/login/pages/update-email/update-email.component.ts +2 -2
- package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +4 -5
- package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +2 -2
- package/src/login/pages/webauthn-error/webauthn-error.component.html +6 -6
- package/src/login/pages/webauthn-error/webauthn-error.component.ts +2 -2
- package/src/login/pages/webauthn-register/webauthn-register.component.html +4 -4
- package/src/login/pages/webauthn-register/webauthn-register.component.ts +2 -2
- package/src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts +2 -1
- package/src/login/services/login-resource-injector/login-resource-injector.service.ts +1 -1
- package/src/login/services/submit/submit.service.ts +1 -1
- package/src/login/services/user-profile-form/user-profile-form.service.ts +2 -2
- package/src/login/tokens/kc-context/kc-context.token.ts +1 -1
- package/.github/workflows/ci.yaml +0 -111
- package/.prettierignore +0 -15
- package/.prettierrc.json +0 -26
- package/angular.json +0 -33
- package/scripts/build.ts +0 -183
- package/scripts/tools/SemVer.ts +0 -114
- package/scripts/tools/crawl.ts +0 -35
- package/scripts/tools/fs.rmSync.ts +0 -34
- package/scripts/tools/getThisCodebaseRootDirPath.ts +0 -19
- package/scripts/tools/transformCodebase.ts +0 -88
- package/src/account/DefaultPage/DefaultPage.ts +0 -61
- package/src/account/DefaultPage/index.ts +0 -1
- package/src/account/DefaultPage/ng-package.json +0 -6
- package/src/account/KcContext/index.ts +0 -1
- package/src/account/KcContext/ng-package.json +0 -6
- package/src/account/classes/component-reference/index.ts +0 -1
- package/src/account/classes/component-reference/ng-package.json +0 -6
- package/src/account/containers/template/index.ts +0 -1
- package/src/account/containers/template/ng-package.json +0 -6
- package/src/account/directives/kc-class/index.ts +0 -1
- package/src/account/directives/kc-class/ng-package.json +0 -6
- package/src/account/i18n/index.ts +0 -1
- package/src/account/i18n/ng-package.json +0 -6
- package/src/account/pages/account/index.ts +0 -1
- package/src/account/pages/account/ng-package.json +0 -6
- package/src/account/pages/applications/index.ts +0 -1
- package/src/account/pages/applications/ng-package.json +0 -6
- package/src/account/pages/federatedIdentity/index.ts +0 -1
- package/src/account/pages/federatedIdentity/ng-package.json +0 -6
- package/src/account/pages/log/index.ts +0 -1
- package/src/account/pages/log/ng-package.json +0 -6
- package/src/account/pages/password/index.ts +0 -1
- package/src/account/pages/password/ng-package.json +0 -6
- package/src/account/pages/sessions/index.ts +0 -1
- package/src/account/pages/sessions/ng-package.json +0 -6
- package/src/account/pages/totp/index.ts +0 -1
- package/src/account/pages/totp/ng-package.json +0 -6
- package/src/account/providers/keycloakify-angular/index.ts +0 -1
- package/src/account/providers/keycloakify-angular/ng-package.json +0 -6
- package/src/account/services/account-resource-injector/index.ts +0 -1
- package/src/account/services/account-resource-injector/ng-package.json +0 -6
- package/src/account/services/i18n/index.ts +0 -1
- package/src/account/services/i18n/ng-package.json +0 -6
- package/src/account/tokens/classes/index.ts +0 -1
- package/src/account/tokens/classes/ng-package.json +0 -6
- package/src/account/tokens/i18n/index.ts +0 -1
- package/src/account/tokens/i18n/ng-package.json +0 -6
- package/src/account/tokens/kc-context/index.ts +0 -1
- package/src/account/tokens/kc-context/ng-package.json +0 -6
- package/src/lib/directives/attributes/index.ts +0 -1
- package/src/lib/directives/attributes/ng-package.json +0 -6
- package/src/lib/models/script/index.ts +0 -1
- package/src/lib/models/script/ng-package.json +0 -6
- package/src/lib/ng-package.json +0 -6
- package/src/lib/pipes/input-type/index.ts +0 -1
- package/src/lib/pipes/input-type/ng-package.json +0 -6
- package/src/lib/pipes/is-array-with-empty-object/index.ts +0 -1
- package/src/lib/pipes/is-array-with-empty-object/ng-package.json +0 -6
- package/src/lib/pipes/kc-sanitize/index.ts +0 -1
- package/src/lib/pipes/kc-sanitize/ng-package.json +0 -6
- package/src/lib/pipes/to-array/index.ts +0 -1
- package/src/lib/pipes/to-array/ng-package.json +0 -6
- package/src/lib/pipes/to-number/index.ts +0 -1
- package/src/lib/pipes/to-number/ng-package.json +0 -6
- package/src/lib/public-api.ts +0 -1
- package/src/lib/services/resource-injector/index.ts +0 -1
- package/src/lib/services/resource-injector/ng-package.json +0 -6
- package/src/lib/tokens/use-default-css/index.ts +0 -1
- package/src/lib/tokens/use-default-css/ng-package.json +0 -6
- package/src/login/DefaultPage/DefaultPage.ts +0 -208
- package/src/login/DefaultPage/index.ts +0 -1
- package/src/login/DefaultPage/ng-package.json +0 -6
- package/src/login/KcContext/index.ts +0 -1
- package/src/login/KcContext/ng-package.json +0 -6
- package/src/login/classes/component-reference/index.ts +0 -1
- package/src/login/classes/component-reference/ng-package.json +0 -6
- package/src/login/components/add-remove-buttons-multi-valued-attribute/index.ts +0 -1
- package/src/login/components/add-remove-buttons-multi-valued-attribute/ng-package.json +0 -6
- package/src/login/components/field-errors/index.ts +0 -1
- package/src/login/components/field-errors/ng-package.json +0 -6
- package/src/login/components/group-label/index.ts +0 -1
- package/src/login/components/group-label/ng-package.json +0 -6
- package/src/login/components/input-field-by-type/index.ts +0 -1
- package/src/login/components/input-field-by-type/ng-package.json +0 -6
- package/src/login/components/input-tag/index.ts +0 -1
- package/src/login/components/input-tag/ng-package.json +0 -6
- package/src/login/components/input-tag-selects/index.ts +0 -1
- package/src/login/components/input-tag-selects/ng-package.json +0 -6
- package/src/login/components/logout-other-sessions/index.ts +0 -1
- package/src/login/components/logout-other-sessions/ng-package.json +0 -6
- package/src/login/components/password-wrapper/index.ts +0 -1
- package/src/login/components/password-wrapper/ng-package.json +0 -6
- package/src/login/components/select-tag/index.ts +0 -1
- package/src/login/components/select-tag/ng-package.json +0 -6
- package/src/login/components/textarea-tag/index.ts +0 -1
- package/src/login/components/textarea-tag/ng-package.json +0 -6
- package/src/login/components/user-profile-form-fields/index.ts +0 -1
- package/src/login/components/user-profile-form-fields/ng-package.json +0 -6
- package/src/login/containers/template/index.ts +0 -1
- package/src/login/containers/template/ng-package.json +0 -6
- package/src/login/directives/kc-class/index.ts +0 -1
- package/src/login/directives/kc-class/ng-package.json +0 -6
- package/src/login/i18n/index.ts +0 -1
- package/src/login/i18n/ng-package.json +0 -6
- package/src/login/pages/code/index.ts +0 -1
- package/src/login/pages/code/ng-package.json +0 -6
- package/src/login/pages/delete-account-confirm/index.ts +0 -1
- package/src/login/pages/delete-account-confirm/ng-package.json +0 -6
- package/src/login/pages/delete-credential/index.ts +0 -1
- package/src/login/pages/delete-credential/ng-package.json +0 -6
- package/src/login/pages/error/index.ts +0 -1
- package/src/login/pages/error/ng-package.json +0 -6
- package/src/login/pages/frontchannel-logout/index.ts +0 -1
- package/src/login/pages/frontchannel-logout/ng-package.json +0 -6
- package/src/login/pages/idp-review-user-profile/index.ts +0 -1
- package/src/login/pages/idp-review-user-profile/ng-package.json +0 -6
- package/src/login/pages/info/index.ts +0 -1
- package/src/login/pages/info/ng-package.json +0 -6
- package/src/login/pages/login/index.ts +0 -1
- package/src/login/pages/login/ng-package.json +0 -6
- package/src/login/pages/login-config-totp/index.ts +0 -1
- package/src/login/pages/login-config-totp/ng-package.json +0 -6
- package/src/login/pages/login-idp-link-confirm/index.ts +0 -1
- package/src/login/pages/login-idp-link-confirm/ng-package.json +0 -6
- package/src/login/pages/login-idp-link-confirm-override/index.ts +0 -1
- package/src/login/pages/login-idp-link-confirm-override/ng-package.json +0 -6
- package/src/login/pages/login-idp-link-email/index.ts +0 -1
- package/src/login/pages/login-idp-link-email/ng-package.json +0 -6
- package/src/login/pages/login-oauth-grant/index.ts +0 -1
- package/src/login/pages/login-oauth-grant/ng-package.json +0 -6
- package/src/login/pages/login-oauth2-device-verify-user-code/index.ts +0 -1
- package/src/login/pages/login-oauth2-device-verify-user-code/ng-package.json +0 -6
- package/src/login/pages/login-otp/index.ts +0 -1
- package/src/login/pages/login-otp/ng-package.json +0 -6
- package/src/login/pages/login-page-expired/index.ts +0 -1
- package/src/login/pages/login-page-expired/ng-package.json +0 -6
- package/src/login/pages/login-passkeys-conditional-authenticate/index.ts +0 -1
- package/src/login/pages/login-passkeys-conditional-authenticate/ng-package.json +0 -6
- package/src/login/pages/login-password/index.ts +0 -1
- package/src/login/pages/login-password/ng-package.json +0 -6
- package/src/login/pages/login-recovery-authn-code-config/index.ts +0 -1
- package/src/login/pages/login-recovery-authn-code-config/ng-package.json +0 -6
- package/src/login/pages/login-recovery-authn-code-input/index.ts +0 -1
- package/src/login/pages/login-recovery-authn-code-input/ng-package.json +0 -6
- package/src/login/pages/login-reset-otp/index.ts +0 -1
- package/src/login/pages/login-reset-otp/ng-package.json +0 -6
- package/src/login/pages/login-reset-password/index.ts +0 -1
- package/src/login/pages/login-reset-password/ng-package.json +0 -6
- package/src/login/pages/login-update-password/index.ts +0 -1
- package/src/login/pages/login-update-password/ng-package.json +0 -6
- package/src/login/pages/login-update-profile/index.ts +0 -1
- package/src/login/pages/login-update-profile/ng-package.json +0 -6
- package/src/login/pages/login-username/index.ts +0 -1
- package/src/login/pages/login-username/ng-package.json +0 -6
- package/src/login/pages/login-verify-email/index.ts +0 -1
- package/src/login/pages/login-verify-email/ng-package.json +0 -6
- package/src/login/pages/login-x509-info/index.ts +0 -1
- package/src/login/pages/login-x509-info/ng-package.json +0 -6
- package/src/login/pages/logout-confirm/index.ts +0 -1
- package/src/login/pages/logout-confirm/ng-package.json +0 -6
- package/src/login/pages/register/index.ts +0 -1
- package/src/login/pages/register/ng-package.json +0 -6
- package/src/login/pages/saml-post-form/index.ts +0 -1
- package/src/login/pages/saml-post-form/ng-package.json +0 -6
- package/src/login/pages/select-authenticator/index.ts +0 -1
- package/src/login/pages/select-authenticator/ng-package.json +0 -6
- package/src/login/pages/terms/index.ts +0 -1
- package/src/login/pages/terms/ng-package.json +0 -6
- package/src/login/pages/update-email/index.ts +0 -1
- package/src/login/pages/update-email/ng-package.json +0 -6
- package/src/login/pages/webauthn-authenticate/index.ts +0 -1
- package/src/login/pages/webauthn-authenticate/ng-package.json +0 -6
- package/src/login/pages/webauthn-error/index.ts +0 -1
- package/src/login/pages/webauthn-error/ng-package.json +0 -6
- package/src/login/pages/webauthn-register/index.ts +0 -1
- package/src/login/pages/webauthn-register/ng-package.json +0 -6
- package/src/login/providers/keycloakify-angular/index.ts +0 -1
- package/src/login/providers/keycloakify-angular/ng-package.json +0 -6
- package/src/login/services/i18n/index.ts +0 -1
- package/src/login/services/i18n/ng-package.json +0 -6
- package/src/login/services/login-resource-injector/index.ts +0 -1
- package/src/login/services/login-resource-injector/ng-package.json +0 -6
- package/src/login/services/submit/index.ts +0 -1
- package/src/login/services/submit/ng-package.json +0 -6
- package/src/login/services/user-profile-form/index.ts +0 -1
- package/src/login/services/user-profile-form/ng-package.json +0 -6
- package/src/login/tokens/classes/index.ts +0 -1
- package/src/login/tokens/classes/ng-package.json +0 -6
- package/src/login/tokens/i18n/index.ts +0 -1
- package/src/login/tokens/i18n/ng-package.json +0 -6
- package/src/login/tokens/kc-context/index.ts +0 -1
- package/src/login/tokens/kc-context/ng-package.json +0 -6
- package/src/login/tokens/make-user-confirm-password/index.ts +0 -1
- package/src/login/tokens/make-user-confirm-password/ng-package.json +0 -6
- package/src/ng-package.json +0 -8
- package/src/package.json +0 -17
- package/src/public-api.ts +0 -1
- package/src/tsconfig.lib.json +0 -12
- package/src/tsconfig.lib.prod.json +0 -10
- package/tsconfig.json +0 -33
- package/tsproject.json +0 -15
- /package/{src/account/DefaultPage/public-api.ts → account/DefaultPage/public-api.d.ts} +0 -0
- /package/{src/account/KcContext/KcContext.ts → account/KcContext/KcContext.d.ts} +0 -0
- /package/{src/account/KcContext/public-api.ts → account/KcContext/public-api.d.ts} +0 -0
- /package/{src/account/classes/component-reference/public-api.ts → account/classes/component-reference/public-api.d.ts} +0 -0
- /package/{src/account/containers/template/public-api.ts → account/containers/template/public-api.d.ts} +0 -0
- /package/{src/account/directives/kc-class/public-api.ts → account/directives/kc-class/public-api.d.ts} +0 -0
- /package/{src/account/i18n/i18n.ts → account/i18n/i18n.d.ts} +0 -0
- /package/{src/account/i18n/public-api.ts → account/i18n/public-api.d.ts} +0 -0
- /package/{src/account/pages/account/public-api.ts → account/pages/account/public-api.d.ts} +0 -0
- /package/{src/account/pages/applications/public-api.ts → account/pages/applications/public-api.d.ts} +0 -0
- /package/{src/account/pages/federatedIdentity/public-api.ts → account/pages/federatedIdentity/public-api.d.ts} +0 -0
- /package/{src/account/pages/log/public-api.ts → account/pages/log/public-api.d.ts} +0 -0
- /package/{src/account/pages/password/public-api.ts → account/pages/password/public-api.d.ts} +0 -0
- /package/{src/account/pages/sessions/public-api.ts → account/pages/sessions/public-api.d.ts} +0 -0
- /package/{src/account/pages/totp/public-api.ts → account/pages/totp/public-api.d.ts} +0 -0
- /package/{src/account/providers/keycloakify-angular/public-api.ts → account/providers/keycloakify-angular/public-api.d.ts} +0 -0
- /package/{src/account/services/account-resource-injector/public-api.ts → account/services/account-resource-injector/public-api.d.ts} +0 -0
- /package/{src/account/services/i18n/public-api.ts → account/services/i18n/public-api.d.ts} +0 -0
- /package/{src/account/tokens/classes/public-api.ts → account/tokens/classes/public-api.d.ts} +0 -0
- /package/{src/account/tokens/i18n/public-api.ts → account/tokens/i18n/public-api.d.ts} +0 -0
- /package/{src/account/tokens/kc-context/public-api.ts → account/tokens/kc-context/public-api.d.ts} +0 -0
- /package/{src/lib/directives/attributes/public-api.ts → lib/directives/attributes/public-api.d.ts} +0 -0
- /package/{src/lib/models/script/public-api.ts → lib/models/script/public-api.d.ts} +0 -0
- /package/{src/lib/pipes/input-type/public-api.ts → lib/pipes/input-type/public-api.d.ts} +0 -0
- /package/{src/lib/pipes/is-array-with-empty-object/public-api.ts → lib/pipes/is-array-with-empty-object/public-api.d.ts} +0 -0
- /package/{src/lib/pipes/kc-sanitize/public-api.ts → lib/pipes/kc-sanitize/public-api.d.ts} +0 -0
- /package/{src/lib/pipes/to-array/public-api.ts → lib/pipes/to-array/public-api.d.ts} +0 -0
- /package/{src/lib/pipes/to-number/public-api.ts → lib/pipes/to-number/public-api.d.ts} +0 -0
- /package/{src/lib/services/resource-injector/public-api.ts → lib/services/resource-injector/public-api.d.ts} +0 -0
- /package/{src/lib/tokens/use-default-css/public-api.ts → lib/tokens/use-default-css/public-api.d.ts} +0 -0
- /package/{src/login/DefaultPage/public-api.ts → login/DefaultPage/public-api.d.ts} +0 -0
- /package/{src/login/KcContext/KcContext.ts → login/KcContext/KcContext.d.ts} +0 -0
- /package/{src/login/KcContext/public-api.ts → login/KcContext/public-api.d.ts} +0 -0
- /package/{src/login/classes/component-reference/public-api.ts → login/classes/component-reference/public-api.d.ts} +0 -0
- /package/{src/login/components/add-remove-buttons-multi-valued-attribute/public-api.ts → login/components/add-remove-buttons-multi-valued-attribute/public-api.d.ts} +0 -0
- /package/{src/login/components/field-errors/public-api.ts → login/components/field-errors/public-api.d.ts} +0 -0
- /package/{src/login/components/group-label/public-api.ts → login/components/group-label/public-api.d.ts} +0 -0
- /package/{src/login/components/input-field-by-type/public-api.ts → login/components/input-field-by-type/public-api.d.ts} +0 -0
- /package/{src/login/components/input-tag/public-api.ts → login/components/input-tag/public-api.d.ts} +0 -0
- /package/{src/login/components/input-tag-selects/public-api.ts → login/components/input-tag-selects/public-api.d.ts} +0 -0
- /package/{src/login/components/logout-other-sessions/public-api.ts → login/components/logout-other-sessions/public-api.d.ts} +0 -0
- /package/{src/login/components/password-wrapper/public-api.ts → login/components/password-wrapper/public-api.d.ts} +0 -0
- /package/{src/login/components/select-tag/public-api.ts → login/components/select-tag/public-api.d.ts} +0 -0
- /package/{src/login/components/textarea-tag/public-api.ts → login/components/textarea-tag/public-api.d.ts} +0 -0
- /package/{src/login/components/user-profile-form-fields/public-api.ts → login/components/user-profile-form-fields/public-api.d.ts} +0 -0
- /package/{src/login/containers/template/public-api.ts → login/containers/template/public-api.d.ts} +0 -0
- /package/{src/login/directives/kc-class/public-api.ts → login/directives/kc-class/public-api.d.ts} +0 -0
- /package/{src/login/i18n/i18n.ts → login/i18n/i18n.d.ts} +0 -0
- /package/{src/login/i18n/public-api.ts → login/i18n/public-api.d.ts} +0 -0
- /package/{src/login/pages/code/public-api.ts → login/pages/code/public-api.d.ts} +0 -0
- /package/{src/login/pages/delete-account-confirm/public-api.ts → login/pages/delete-account-confirm/public-api.d.ts} +0 -0
- /package/{src/login/pages/delete-credential/public-api.ts → login/pages/delete-credential/public-api.d.ts} +0 -0
- /package/{src/login/pages/error/public-api.ts → login/pages/error/public-api.d.ts} +0 -0
- /package/{src/login/pages/frontchannel-logout/public-api.ts → login/pages/frontchannel-logout/public-api.d.ts} +0 -0
- /package/{src/login/pages/idp-review-user-profile/public-api.ts → login/pages/idp-review-user-profile/public-api.d.ts} +0 -0
- /package/{src/login/pages/info/public-api.ts → login/pages/info/public-api.d.ts} +0 -0
- /package/{src/login/pages/login/public-api.ts → login/pages/login/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-config-totp/public-api.ts → login/pages/login-config-totp/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-idp-link-confirm/public-api.ts → login/pages/login-idp-link-confirm/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-idp-link-confirm-override/public-api.ts → login/pages/login-idp-link-confirm-override/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-idp-link-email/public-api.ts → login/pages/login-idp-link-email/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-oauth-grant/public-api.ts → login/pages/login-oauth-grant/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-oauth2-device-verify-user-code/public-api.ts → login/pages/login-oauth2-device-verify-user-code/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-otp/public-api.ts → login/pages/login-otp/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-page-expired/public-api.ts → login/pages/login-page-expired/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-passkeys-conditional-authenticate/public-api.ts → login/pages/login-passkeys-conditional-authenticate/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-password/public-api.ts → login/pages/login-password/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-recovery-authn-code-config/public-api.ts → login/pages/login-recovery-authn-code-config/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-recovery-authn-code-input/public-api.ts → login/pages/login-recovery-authn-code-input/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-reset-otp/public-api.ts → login/pages/login-reset-otp/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-reset-password/public-api.ts → login/pages/login-reset-password/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-update-password/public-api.ts → login/pages/login-update-password/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-update-profile/public-api.ts → login/pages/login-update-profile/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-username/public-api.ts → login/pages/login-username/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-verify-email/public-api.ts → login/pages/login-verify-email/public-api.d.ts} +0 -0
- /package/{src/login/pages/login-x509-info/public-api.ts → login/pages/login-x509-info/public-api.d.ts} +0 -0
- /package/{src/login/pages/logout-confirm/public-api.ts → login/pages/logout-confirm/public-api.d.ts} +0 -0
- /package/{src/login/pages/register/public-api.ts → login/pages/register/public-api.d.ts} +0 -0
- /package/{src/login/pages/saml-post-form/public-api.ts → login/pages/saml-post-form/public-api.d.ts} +0 -0
- /package/{src/login/pages/select-authenticator/public-api.ts → login/pages/select-authenticator/public-api.d.ts} +0 -0
- /package/{src/login/pages/terms/public-api.ts → login/pages/terms/public-api.d.ts} +0 -0
- /package/{src/login/pages/update-email/public-api.ts → login/pages/update-email/public-api.d.ts} +0 -0
- /package/{src/login/pages/webauthn-authenticate/public-api.ts → login/pages/webauthn-authenticate/public-api.d.ts} +0 -0
- /package/{src/login/pages/webauthn-error/public-api.ts → login/pages/webauthn-error/public-api.d.ts} +0 -0
- /package/{src/login/pages/webauthn-register/public-api.ts → login/pages/webauthn-register/public-api.d.ts} +0 -0
- /package/{src/login/providers/keycloakify-angular/public-api.ts → login/providers/keycloakify-angular/public-api.d.ts} +0 -0
- /package/{src/login/services/i18n/public-api.ts → login/services/i18n/public-api.d.ts} +0 -0
- /package/{src/login/services/login-resource-injector/public-api.ts → login/services/login-resource-injector/public-api.d.ts} +0 -0
- /package/{src/login/services/submit/public-api.ts → login/services/submit/public-api.d.ts} +0 -0
- /package/{src/login/services/user-profile-form/public-api.ts → login/services/user-profile-form/public-api.d.ts} +0 -0
- /package/{src/login/tokens/classes/public-api.ts → login/tokens/classes/public-api.d.ts} +0 -0
- /package/{src/login/tokens/i18n/public-api.ts → login/tokens/i18n/public-api.d.ts} +0 -0
- /package/{src/login/tokens/kc-context/public-api.ts → login/tokens/kc-context/public-api.d.ts} +0 -0
- /package/{src/login/tokens/make-user-confirm-password/public-api.ts → login/tokens/make-user-confirm-password/public-api.d.ts} +0 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input, output } from '@angular/core';
|
|
2
|
+
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
3
|
+
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
4
|
+
import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
|
|
5
|
+
import { ToNumberPipe } from '@keycloakify/angular/lib/pipes/to-number';
|
|
6
|
+
import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class TextareaTagComponent extends ComponentReference {
|
|
9
|
+
constructor() {
|
|
10
|
+
super(...arguments);
|
|
11
|
+
this.attribute = input();
|
|
12
|
+
this.value = input();
|
|
13
|
+
this.displayableErrors = input();
|
|
14
|
+
this.dispatchFormAction = output();
|
|
15
|
+
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
16
|
+
this.classes = inject(LOGIN_CLASSES);
|
|
17
|
+
}
|
|
18
|
+
onChange(event) {
|
|
19
|
+
this.dispatchFormAction.emit({
|
|
20
|
+
action: 'update',
|
|
21
|
+
name: this.attribute()?.name ?? '',
|
|
22
|
+
valueOrValues: event.target.value
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
onBlur() {
|
|
26
|
+
this.dispatchFormAction.emit({
|
|
27
|
+
action: 'focus lost',
|
|
28
|
+
name: this.attribute()?.name ?? '',
|
|
29
|
+
fieldIndex: undefined
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TextareaTagComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: TextareaTagComponent, isStandalone: true, selector: "kc-textarea-tag", inputs: { attribute: { classPropertyName: "attribute", publicName: "attribute", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, displayableErrors: { classPropertyName: "displayableErrors", publicName: "displayableErrors", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dispatchFormAction: "dispatchFormAction" }, providers: [
|
|
34
|
+
{
|
|
35
|
+
provide: ComponentReference,
|
|
36
|
+
useExisting: forwardRef(() => TextareaTagComponent)
|
|
37
|
+
}
|
|
38
|
+
], usesInheritance: true, ngImport: i0, template: "@let attr = attribute();\n@if (attr) {\n <textarea\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"!!displayableErrors()?.length\"\n [disabled]=\"attr.readOnly\"\n [cols]=\"attr.annotations.inputTypeCols === undefined ? undefined : (attr.annotations.inputTypeCols | toNumber)\"\n [rows]=\"attr.annotations.inputTypeRows === undefined ? undefined : (attr.annotations.inputTypeRows | toNumber)\"\n [maxLength]=\"attr.annotations.inputTypeMaxlength === undefined ? undefined : (attr.annotations.inputTypeMaxlength | toNumber)\"\n [value]=\"value()\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n ></textarea>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: ToNumberPipe, name: "toNumber" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
39
|
+
}
|
|
40
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TextareaTagComponent, decorators: [{
|
|
41
|
+
type: Component,
|
|
42
|
+
args: [{ standalone: true, imports: [KcClassDirective, ToNumberPipe], selector: 'kc-textarea-tag', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
43
|
+
{
|
|
44
|
+
provide: ComponentReference,
|
|
45
|
+
useExisting: forwardRef(() => TextareaTagComponent)
|
|
46
|
+
}
|
|
47
|
+
], template: "@let attr = attribute();\n@if (attr) {\n <textarea\n [id]=\"attr.name\"\n [name]=\"attr.name\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"!!displayableErrors()?.length\"\n [disabled]=\"attr.readOnly\"\n [cols]=\"attr.annotations.inputTypeCols === undefined ? undefined : (attr.annotations.inputTypeCols | toNumber)\"\n [rows]=\"attr.annotations.inputTypeRows === undefined ? undefined : (attr.annotations.inputTypeRows | toNumber)\"\n [maxLength]=\"attr.annotations.inputTypeMaxlength === undefined ? undefined : (attr.annotations.inputTypeMaxlength | toNumber)\"\n [value]=\"value()\"\n (change)=\"onChange($event)\"\n (blur)=\"onBlur()\"\n ></textarea>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
48
|
+
}] });
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtdGFnLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9jb21wb25lbnRzL3RleHRhcmVhLXRhZy90ZXh0YXJlYS10YWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL2NvbXBvbmVudHMvdGV4dGFyZWEtdGFnL3RleHRhcmVhLXRhZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDbEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBRXhFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQzs7QUF3QjFFLE1BQU0sT0FBTyxvQkFBcUIsU0FBUSxrQkFBa0I7SUFwQjVEOztRQXFCSSxjQUFTLEdBQUcsS0FBSyxFQUFhLENBQUM7UUFDL0IsVUFBSyxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3hCLHNCQUFpQixHQUFHLEtBQUssRUFBb0IsQ0FBQztRQUM5Qyx1QkFBa0IsR0FBRyxNQUFNLEVBQWMsQ0FBQztRQUNqQyxvQkFBZSxHQUFHLE1BQU0sQ0FBVSxlQUFlLENBQUMsQ0FBQztRQUNuRCxZQUFPLEdBQUcsTUFBTSxDQUFvQyxhQUFhLENBQUMsQ0FBQztLQWlCL0U7SUFmRyxRQUFRLENBQUMsS0FBWTtRQUNqQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1lBQ3pCLE1BQU0sRUFBRSxRQUFRO1lBQ2hCLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDbEMsYUFBYSxFQUFHLEtBQUssQ0FBQyxNQUE4QixDQUFDLEtBQUs7U0FDN0QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE1BQU07UUFDRixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDO1lBQ3pCLE1BQU0sRUFBRSxZQUFZO1lBQ3BCLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUU7WUFDbEMsVUFBVSxFQUFFLFNBQVM7U0FDeEIsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs4R0F0QlEsb0JBQW9CO2tHQUFwQixvQkFBb0IseWhCQVBsQjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7YUFDdEQ7U0FDSixpREM1Qkwsb3ZCQWdCQSxtRkRHYyxnQkFBZ0IsMEZBQUUsWUFBWTs7MkZBVy9CLG9CQUFvQjtrQkFwQmhDLFNBQVM7aUNBQ00sSUFBSSxXQVFQLENBQUMsZ0JBQWdCLEVBQUUsWUFBWSxDQUFDLFlBQy9CLGlCQUFpQixtQkFFVix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDO3lCQUN0RDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB7IFRvTnVtYmVyUGlwZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi9waXBlcy90by1udW1iZXInO1xuaW1wb3J0IHsgdHlwZSBGb3JtQWN0aW9uLCB0eXBlIEZvcm1GaWVsZEVycm9yIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vc2VydmljZXMvdXNlci1wcm9maWxlLWZvcm0nO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzJztcbmltcG9ydCB7IHR5cGUgQXR0cmlidXRlIH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vS2NDb250ZXh0JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICBgXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbS2NDbGFzc0RpcmVjdGl2ZSwgVG9OdW1iZXJQaXBlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXRleHRhcmVhLXRhZycsXG4gICAgdGVtcGxhdGVVcmw6ICd0ZXh0YXJlYS10YWcuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0YXJlYVRhZ0NvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFUYWdDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGF0dHJpYnV0ZSA9IGlucHV0PEF0dHJpYnV0ZT4oKTtcbiAgICB2YWx1ZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBkaXNwbGF5YWJsZUVycm9ycyA9IGlucHV0PEZvcm1GaWVsZEVycm9yW10+KCk7XG4gICAgZGlzcGF0Y2hGb3JtQWN0aW9uID0gb3V0cHV0PEZvcm1BY3Rpb24+KCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuXG4gICAgb25DaGFuZ2UoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hGb3JtQWN0aW9uLmVtaXQoe1xuICAgICAgICAgICAgYWN0aW9uOiAndXBkYXRlJyxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuYXR0cmlidXRlKCk/Lm5hbWUgPz8gJycsXG4gICAgICAgICAgICB2YWx1ZU9yVmFsdWVzOiAoZXZlbnQudGFyZ2V0IGFzIEhUTUxUZXh0QXJlYUVsZW1lbnQpLnZhbHVlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEZvcm1BY3Rpb24uZW1pdCh7XG4gICAgICAgICAgICBhY3Rpb246ICdmb2N1cyBsb3N0JyxcbiAgICAgICAgICAgIG5hbWU6IHRoaXMuYXR0cmlidXRlKCk/Lm5hbWUgPz8gJycsXG4gICAgICAgICAgICBmaWVsZEluZGV4OiB1bmRlZmluZWRcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiQGxldCBhdHRyID0gYXR0cmlidXRlKCk7XG5AaWYgKGF0dHIpIHtcbiAgICA8dGV4dGFyZWFcbiAgICAgICAgW2lkXT1cImF0dHIubmFtZVwiXG4gICAgICAgIFtuYW1lXT1cImF0dHIubmFtZVwiXG4gICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0Q2xhc3MnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIiEhZGlzcGxheWFibGVFcnJvcnMoKT8ubGVuZ3RoXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImF0dHIucmVhZE9ubHlcIlxuICAgICAgICBbY29sc109XCJhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZUNvbHMgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IChhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZUNvbHMgfCB0b051bWJlcilcIlxuICAgICAgICBbcm93c109XCJhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZVJvd3MgPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IChhdHRyLmFubm90YXRpb25zLmlucHV0VHlwZVJvd3MgfCB0b051bWJlcilcIlxuICAgICAgICBbbWF4TGVuZ3RoXT1cImF0dHIuYW5ub3RhdGlvbnMuaW5wdXRUeXBlTWF4bGVuZ3RoID09PSB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiAoYXR0ci5hbm5vdGF0aW9ucy5pbnB1dFR5cGVNYXhsZW5ndGggfCB0b051bWJlcilcIlxuICAgICAgICBbdmFsdWVdPVwidmFsdWUoKVwiXG4gICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICA+PC90ZXh0YXJlYT5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1jb21wb25lbnRzLXVzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9jb21wb25lbnRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy9rZXljbG9ha2lmeS1hbmd1bGFyLWxvZ2luLWNvbXBvbmVudHMtdXNlci1wcm9maWxlLWZvcm0tZmllbGRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './user-profile-form-fields.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9jb21wb25lbnRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsc0NBQXNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy5jb21wb25lbnQnO1xuIl19
|
package/esm2022/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, ContentChild, effect, forwardRef, inject, output } from '@angular/core';
|
|
3
|
+
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
4
|
+
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
5
|
+
import { FieldErrorsComponent } from '@keycloakify/angular/login/components/field-errors';
|
|
6
|
+
import { GroupLabelComponent } from '@keycloakify/angular/login/components/group-label';
|
|
7
|
+
import { InputFieldByTypeComponent } from '@keycloakify/angular/login/components/input-field-by-type';
|
|
8
|
+
import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
|
|
9
|
+
import { SubmitService } from '@keycloakify/angular/login/services/submit';
|
|
10
|
+
import { UserProfileFormService } from '@keycloakify/angular/login/services/user-profile-form';
|
|
11
|
+
import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
12
|
+
import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
|
|
13
|
+
import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
|
|
14
|
+
import { DO_MAKE_USER_CONFIRM_PASSWORD } from '@keycloakify/angular/login/tokens/make-user-confirm-password';
|
|
15
|
+
import * as i0 from "@angular/core";
|
|
16
|
+
export class UserProfileFormFieldsComponent extends ComponentReference {
|
|
17
|
+
#submitService;
|
|
18
|
+
constructor() {
|
|
19
|
+
super();
|
|
20
|
+
this.i18n = inject(LOGIN_I18N);
|
|
21
|
+
this.kcContext = inject(KC_LOGIN_CONTEXT);
|
|
22
|
+
this.userProfileFormService = inject(UserProfileFormService);
|
|
23
|
+
this.#submitService = inject(SubmitService);
|
|
24
|
+
this.doMakeUserConfirmPassword = inject(DO_MAKE_USER_CONFIRM_PASSWORD);
|
|
25
|
+
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
26
|
+
this.classes = inject(LOGIN_CLASSES);
|
|
27
|
+
this.onIsFormSubmittable = output();
|
|
28
|
+
this.formState = this.userProfileFormService.formState;
|
|
29
|
+
effect(() => {
|
|
30
|
+
const isFormSubmittable = this.formState().isFormSubmittable;
|
|
31
|
+
this.#submitService.setIsSubmittable(isFormSubmittable);
|
|
32
|
+
}, { allowSignalWrites: true });
|
|
33
|
+
}
|
|
34
|
+
onDispatch(formAction) {
|
|
35
|
+
this.userProfileFormService.dispatchFormAction(formAction);
|
|
36
|
+
}
|
|
37
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: UserProfileFormFieldsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
38
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: UserProfileFormFieldsComponent, isStandalone: true, selector: "kc-user-profile-form-fields", outputs: { onIsFormSubmittable: "onIsFormSubmittable" }, providers: [
|
|
39
|
+
UserProfileFormService,
|
|
40
|
+
{
|
|
41
|
+
provide: ComponentReference,
|
|
42
|
+
useExisting: forwardRef(() => UserProfileFormFieldsComponent)
|
|
43
|
+
}
|
|
44
|
+
], queries: [{ propertyName: "beforeField", first: true, predicate: ["beforField"], descendants: true }, { propertyName: "afterField", first: true, predicate: ["afterField"], descendants: true }], usesInheritance: true, ngImport: i0, template: "@let formFieldStates = formState().formFieldStates;\n\n@for (fieldState of formFieldStates; track fieldState.attribute) {\n <kc-group-label [attribute]=\"fieldState.attribute\" />\n\n @if (beforeField) {\n <ng-container\n [ngTemplateOutlet]=\"beforeField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors\n }\"\n />\n }\n\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n [style.display]=\"fieldState.attribute.name === 'password-confirm' && !doMakeUserConfirmPassword ? 'none' : 'block'\"\n >\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n [for]=\"fieldState.attribute.name\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.advancedMsgStr(fieldState.attribute.displayName ?? '') }}\n @if (fieldState.attribute.required) {\n *\n }\n </label>\n </div>\n\n <div [kcClass]=\"'kcInputWrapperClass'\">\n @if (fieldState.attribute.annotations.inputHelperTextBefore) {\n <div\n aria-live=\"polite\"\n [kcClass]=\"'kcInputHelperTextBeforeClass'\"\n [id]=\"'form-help-text-before-' + fieldState.attribute.name\"\n >\n {{ i18n.advancedMsgStr(fieldState.attribute.annotations.inputHelperTextBefore) }}\n </div>\n }\n\n <kc-input-field-by-type\n [attribute]=\"fieldState.attribute\"\n [valueOrValues]=\"fieldState.valueOrValues\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n (dispatchFormAction)=\"onDispatch($event)\"\n />\n\n <kc-field-errors\n [attribute]=\"fieldState.attribute\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n />\n @if (fieldState.attribute.annotations.inputHelperTextAfter) {\n <div\n aria-live=\"polite\"\n [kcClass]=\"'kcInputHelperTextAfterClass'\"\n [id]=\"'form-help-text-after-' + fieldState.attribute.name\"\n >\n {{ i18n.advancedMsgStr(fieldState.attribute.annotations.inputHelperTextAfter) }}\n </div>\n }\n\n @if (afterField) {\n <ng-container\n [ngTemplateOutlet]=\"afterField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors\n }\"\n />\n }\n <!-- NOTE: Downloading of html5DataAnnotations scripts is done in the useUserProfileForm hook -->\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"], dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: FieldErrorsComponent, selector: "kc-field-errors", inputs: ["attribute", "displayableErrors", "fieldIndex"] }, { kind: "component", type: InputFieldByTypeComponent, selector: "kc-input-field-by-type", inputs: ["attribute", "valueOrValues", "displayableErrors"], outputs: ["dispatchFormAction"] }, { kind: "component", type: GroupLabelComponent, selector: "kc-group-label", inputs: ["attribute", "groupName"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
45
|
+
}
|
|
46
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: UserProfileFormFieldsComponent, decorators: [{
|
|
47
|
+
type: Component,
|
|
48
|
+
args: [{ standalone: true, imports: [KcClassDirective, FieldErrorsComponent, InputFieldByTypeComponent, GroupLabelComponent, NgTemplateOutlet], selector: 'kc-user-profile-form-fields', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
49
|
+
UserProfileFormService,
|
|
50
|
+
{
|
|
51
|
+
provide: ComponentReference,
|
|
52
|
+
useExisting: forwardRef(() => UserProfileFormFieldsComponent)
|
|
53
|
+
}
|
|
54
|
+
], template: "@let formFieldStates = formState().formFieldStates;\n\n@for (fieldState of formFieldStates; track fieldState.attribute) {\n <kc-group-label [attribute]=\"fieldState.attribute\" />\n\n @if (beforeField) {\n <ng-container\n [ngTemplateOutlet]=\"beforeField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors\n }\"\n />\n }\n\n <div\n [kcClass]=\"'kcFormGroupClass'\"\n [style.display]=\"fieldState.attribute.name === 'password-confirm' && !doMakeUserConfirmPassword ? 'none' : 'block'\"\n >\n <div [kcClass]=\"'kcLabelWrapperClass'\">\n <label\n [for]=\"fieldState.attribute.name\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.advancedMsgStr(fieldState.attribute.displayName ?? '') }}\n @if (fieldState.attribute.required) {\n *\n }\n </label>\n </div>\n\n <div [kcClass]=\"'kcInputWrapperClass'\">\n @if (fieldState.attribute.annotations.inputHelperTextBefore) {\n <div\n aria-live=\"polite\"\n [kcClass]=\"'kcInputHelperTextBeforeClass'\"\n [id]=\"'form-help-text-before-' + fieldState.attribute.name\"\n >\n {{ i18n.advancedMsgStr(fieldState.attribute.annotations.inputHelperTextBefore) }}\n </div>\n }\n\n <kc-input-field-by-type\n [attribute]=\"fieldState.attribute\"\n [valueOrValues]=\"fieldState.valueOrValues\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n (dispatchFormAction)=\"onDispatch($event)\"\n />\n\n <kc-field-errors\n [attribute]=\"fieldState.attribute\"\n [displayableErrors]=\"fieldState.displayableErrors\"\n />\n @if (fieldState.attribute.annotations.inputHelperTextAfter) {\n <div\n aria-live=\"polite\"\n [kcClass]=\"'kcInputHelperTextAfterClass'\"\n [id]=\"'form-help-text-after-' + fieldState.attribute.name\"\n >\n {{ i18n.advancedMsgStr(fieldState.attribute.annotations.inputHelperTextAfter) }}\n </div>\n }\n\n @if (afterField) {\n <ng-container\n [ngTemplateOutlet]=\"afterField\"\n [ngTemplateOutletContext]=\"{\n attribute: fieldState.attribute,\n valueOrValues: fieldState.valueOrValues,\n displayableErrors: fieldState.displayableErrors\n }\"\n />\n }\n <!-- NOTE: Downloading of html5DataAnnotations scripts is done in the useUserProfileForm hook -->\n </div>\n </div>\n}\n", styles: [":host{display:contents}\n"] }]
|
|
55
|
+
}], ctorParameters: () => [], propDecorators: { beforeField: [{
|
|
56
|
+
type: ContentChild,
|
|
57
|
+
args: ['beforField']
|
|
58
|
+
}], afterField: [{
|
|
59
|
+
type: ContentChild,
|
|
60
|
+
args: ['afterField']
|
|
61
|
+
}] } });
|
|
62
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWZvcm0tZmllbGRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9jb21wb25lbnRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy91c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL2NvbXBvbmVudHMvdXNlci1wcm9maWxlLWZvcm0tZmllbGRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ3RHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMzRSxPQUFPLEVBQW1CLHNCQUFzQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDaEgsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQzs7QUF3QjdHLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxrQkFBa0I7SUFJbEUsY0FBYyxDQUF5QjtJQVl2QztRQUNJLEtBQUssRUFBRSxDQUFDO1FBaEJaLFNBQUksR0FBRyxNQUFNLENBQU8sVUFBVSxDQUFDLENBQUM7UUFDaEMsY0FBUyxHQUFHLE1BQU0sQ0FBWSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2hELDJCQUFzQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBQ3hELG1CQUFjLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3ZDLDhCQUF5QixHQUFHLE1BQU0sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ3pELG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLGFBQWEsQ0FBQyxDQUFDO1FBRTVFLHdCQUFtQixHQUFHLE1BQU0sRUFBVyxDQUFDO1FBRXhDLGNBQVMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsU0FBUyxDQUFDO1FBTzlDLE1BQU0sQ0FDRixHQUFHLEVBQUU7WUFDRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztZQUM3RCxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDNUQsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzlCLENBQUM7SUFDTixDQUFDO0lBRUQsVUFBVSxDQUFDLFVBQXNCO1FBQzdCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMvRCxDQUFDOzhHQTdCUSw4QkFBOEI7a0dBQTlCLDhCQUE4QixtSUFSNUI7WUFDUCxzQkFBc0I7WUFDdEI7Z0JBQ0ksT0FBTyxFQUFFLGtCQUFrQjtnQkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQzthQUNoRTtTQUNKLG1QQ3JDTCxnakdBOEVBLG1GRG5EYyxnQkFBZ0IsK0ZBQUUsb0JBQW9CLHNIQUFFLHlCQUF5QixpS0FBRSxtQkFBbUIsK0ZBQUUsZ0JBQWdCOzsyRkFZekcsOEJBQThCO2tCQXJCMUMsU0FBUztpQ0FDTSxJQUFJLFdBUVAsQ0FBQyxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSx5QkFBeUIsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxZQUN6Ryw2QkFBNkIsbUJBRXRCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Asc0JBQXNCO3dCQUN0Qjs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwrQkFBK0IsQ0FBQzt5QkFDaEU7cUJBQ0o7d0RBZTJCLFdBQVc7c0JBQXRDLFlBQVk7dUJBQUMsWUFBWTtnQkFDRSxVQUFVO3NCQUFyQyxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgZWZmZWN0LCBmb3J3YXJkUmVmLCBpbmplY3QsIG91dHB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBGaWVsZEVycm9yc0NvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NvbXBvbmVudHMvZmllbGQtZXJyb3JzJztcbmltcG9ydCB7IEdyb3VwTGFiZWxDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL2dyb3VwLWxhYmVsJztcbmltcG9ydCB7IElucHV0RmllbGRCeVR5cGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL2lucHV0LWZpZWxkLWJ5LXR5cGUnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MnO1xuaW1wb3J0IHR5cGUgeyBJMThuIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vaTE4bic7XG5pbXBvcnQgdHlwZSB7IEtjQ29udGV4dCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBTdWJtaXRTZXJ2aWNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vc2VydmljZXMvc3VibWl0JztcbmltcG9ydCB7IHR5cGUgRm9ybUFjdGlvbiwgVXNlclByb2ZpbGVGb3JtU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL3VzZXItcHJvZmlsZS1mb3JtJztcbmltcG9ydCB7IExPR0lOX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBMT0dJTl9JMThOIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2kxOG4nO1xuaW1wb3J0IHsgS0NfTE9HSU5fQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9rYy1jb250ZXh0JztcbmltcG9ydCB7IERPX01BS0VfVVNFUl9DT05GSVJNX1BBU1NXT1JEIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL21ha2UtdXNlci1jb25maXJtLXBhc3N3b3JkJztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9saWIva2NDbHN4JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzdHlsZXM6IFtcbiAgICAgICAgYFxuICAgICAgICAgICAgOmhvc3Qge1xuICAgICAgICAgICAgICAgIGRpc3BsYXk6IGNvbnRlbnRzO1xuICAgICAgICAgICAgfVxuICAgICAgICBgXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbS2NDbGFzc0RpcmVjdGl2ZSwgRmllbGRFcnJvcnNDb21wb25lbnQsIElucHV0RmllbGRCeVR5cGVDb21wb25lbnQsIEdyb3VwTGFiZWxDb21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXRdLFxuICAgIHNlbGVjdG9yOiAna2MtdXNlci1wcm9maWxlLWZvcm0tZmllbGRzJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFVzZXJQcm9maWxlRm9ybVNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFVzZXJQcm9maWxlRm9ybUZpZWxkc0NvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVXNlclByb2ZpbGVGb3JtRmllbGRzQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KExPR0lOX0kxOE4pO1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxLY0NvbnRleHQ+KEtDX0xPR0lOX0NPTlRFWFQpO1xuICAgIHVzZXJQcm9maWxlRm9ybVNlcnZpY2UgPSBpbmplY3QoVXNlclByb2ZpbGVGb3JtU2VydmljZSk7XG4gICAgI3N1Ym1pdFNlcnZpY2UgPSBpbmplY3QoU3VibWl0U2VydmljZSk7XG4gICAgZG9NYWtlVXNlckNvbmZpcm1QYXNzd29yZCA9IGluamVjdChET19NQUtFX1VTRVJfQ09ORklSTV9QQVNTV09SRCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuXG4gICAgb25Jc0Zvcm1TdWJtaXR0YWJsZSA9IG91dHB1dDxib29sZWFuPigpO1xuXG4gICAgZm9ybVN0YXRlID0gdGhpcy51c2VyUHJvZmlsZUZvcm1TZXJ2aWNlLmZvcm1TdGF0ZTtcblxuICAgIEBDb250ZW50Q2hpbGQoJ2JlZm9yRmllbGQnKSBiZWZvcmVGaWVsZDogVGVtcGxhdGVSZWY8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgQENvbnRlbnRDaGlsZCgnYWZ0ZXJGaWVsZCcpIGFmdGVyRmllbGQ6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpc0Zvcm1TdWJtaXR0YWJsZSA9IHRoaXMuZm9ybVN0YXRlKCkuaXNGb3JtU3VibWl0dGFibGU7XG4gICAgICAgICAgICAgICAgdGhpcy4jc3VibWl0U2VydmljZS5zZXRJc1N1Ym1pdHRhYmxlKGlzRm9ybVN1Ym1pdHRhYmxlKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBvbkRpc3BhdGNoKGZvcm1BY3Rpb246IEZvcm1BY3Rpb24pIHtcbiAgICAgICAgdGhpcy51c2VyUHJvZmlsZUZvcm1TZXJ2aWNlLmRpc3BhdGNoRm9ybUFjdGlvbihmb3JtQWN0aW9uKTtcbiAgICB9XG59XG4iLCJAbGV0IGZvcm1GaWVsZFN0YXRlcyA9IGZvcm1TdGF0ZSgpLmZvcm1GaWVsZFN0YXRlcztcblxuQGZvciAoZmllbGRTdGF0ZSBvZiBmb3JtRmllbGRTdGF0ZXM7IHRyYWNrIGZpZWxkU3RhdGUuYXR0cmlidXRlKSB7XG4gICAgPGtjLWdyb3VwLWxhYmVsIFthdHRyaWJ1dGVdPVwiZmllbGRTdGF0ZS5hdHRyaWJ1dGVcIiAvPlxuXG4gICAgQGlmIChiZWZvcmVGaWVsZCkge1xuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJiZWZvcmVGaWVsZFwiXG4gICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZTogZmllbGRTdGF0ZS5hdHRyaWJ1dGUsXG4gICAgICAgICAgICAgICAgdmFsdWVPclZhbHVlczogZmllbGRTdGF0ZS52YWx1ZU9yVmFsdWVzLFxuICAgICAgICAgICAgICAgIGRpc3BsYXlhYmxlRXJyb3JzOiBmaWVsZFN0YXRlLmRpc3BsYXlhYmxlRXJyb3JzXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgLz5cbiAgICB9XG5cbiAgICA8ZGl2XG4gICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cImZpZWxkU3RhdGUuYXR0cmlidXRlLm5hbWUgPT09ICdwYXNzd29yZC1jb25maXJtJyAmJiAhZG9NYWtlVXNlckNvbmZpcm1QYXNzd29yZCA/ICdub25lJyA6ICdibG9jaydcIlxuICAgID5cbiAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NMYWJlbFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgIFtmb3JdPVwiZmllbGRTdGF0ZS5hdHRyaWJ1dGUubmFtZVwiXG4gICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxDbGFzcydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGkxOG4uYWR2YW5jZWRNc2dTdHIoZmllbGRTdGF0ZS5hdHRyaWJ1dGUuZGlzcGxheU5hbWUgPz8gJycpIH19XG4gICAgICAgICAgICAgICAgQGlmIChmaWVsZFN0YXRlLmF0dHJpYnV0ZS5yZXF1aXJlZCkge1xuICAgICAgICAgICAgICAgICAgICAqXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NJbnB1dFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgIEBpZiAoZmllbGRTdGF0ZS5hdHRyaWJ1dGUuYW5ub3RhdGlvbnMuaW5wdXRIZWxwZXJUZXh0QmVmb3JlKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEhlbHBlclRleHRCZWZvcmVDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2Zvcm0taGVscC10ZXh0LWJlZm9yZS0nICsgZmllbGRTdGF0ZS5hdHRyaWJ1dGUubmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBpMThuLmFkdmFuY2VkTXNnU3RyKGZpZWxkU3RhdGUuYXR0cmlidXRlLmFubm90YXRpb25zLmlucHV0SGVscGVyVGV4dEJlZm9yZSkgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPGtjLWlucHV0LWZpZWxkLWJ5LXR5cGVcbiAgICAgICAgICAgICAgICBbYXR0cmlidXRlXT1cImZpZWxkU3RhdGUuYXR0cmlidXRlXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVPclZhbHVlc109XCJmaWVsZFN0YXRlLnZhbHVlT3JWYWx1ZXNcIlxuICAgICAgICAgICAgICAgIFtkaXNwbGF5YWJsZUVycm9yc109XCJmaWVsZFN0YXRlLmRpc3BsYXlhYmxlRXJyb3JzXCJcbiAgICAgICAgICAgICAgICAoZGlzcGF0Y2hGb3JtQWN0aW9uKT1cIm9uRGlzcGF0Y2goJGV2ZW50KVwiXG4gICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICA8a2MtZmllbGQtZXJyb3JzXG4gICAgICAgICAgICAgICAgW2F0dHJpYnV0ZV09XCJmaWVsZFN0YXRlLmF0dHJpYnV0ZVwiXG4gICAgICAgICAgICAgICAgW2Rpc3BsYXlhYmxlRXJyb3JzXT1cImZpZWxkU3RhdGUuZGlzcGxheWFibGVFcnJvcnNcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIEBpZiAoZmllbGRTdGF0ZS5hdHRyaWJ1dGUuYW5ub3RhdGlvbnMuaW5wdXRIZWxwZXJUZXh0QWZ0ZXIpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0SGVscGVyVGV4dEFmdGVyQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidmb3JtLWhlbHAtdGV4dC1hZnRlci0nICsgZmllbGRTdGF0ZS5hdHRyaWJ1dGUubmFtZVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7eyBpMThuLmFkdmFuY2VkTXNnU3RyKGZpZWxkU3RhdGUuYXR0cmlidXRlLmFubm90YXRpb25zLmlucHV0SGVscGVyVGV4dEFmdGVyKSB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBAaWYgKGFmdGVyRmllbGQpIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFmdGVyRmllbGRcIlxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie1xuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlOiBmaWVsZFN0YXRlLmF0dHJpYnV0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlT3JWYWx1ZXM6IGZpZWxkU3RhdGUudmFsdWVPclZhbHVlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlhYmxlRXJyb3JzOiBmaWVsZFN0YXRlLmRpc3BsYXlhYmxlRXJyb3JzXG4gICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8IS0tIE5PVEU6IERvd25sb2FkaW5nIG9mIGh0bWw1RGF0YUFubm90YXRpb25zIHNjcmlwdHMgaXMgZG9uZSBpbiB0aGUgdXNlVXNlclByb2ZpbGVGb3JtIGhvb2sgLS0+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufVxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1jb250YWluZXJzLXRlbXBsYXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUva2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1jb250YWluZXJzLXRlbXBsYXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './template.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9jb250YWluZXJzL3RlbXBsYXRlL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vdGVtcGxhdGUuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { AsyncPipe, NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input, Renderer2 } from '@angular/core';
|
|
3
|
+
import { Meta, Title } from '@angular/platform-browser';
|
|
4
|
+
import { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';
|
|
5
|
+
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
6
|
+
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
7
|
+
import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
|
|
8
|
+
import { LoginResourceInjectorService } from '@keycloakify/angular/login/services/login-resource-injector';
|
|
9
|
+
import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
10
|
+
import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
|
|
11
|
+
import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
|
|
12
|
+
import { getKcClsx } from 'keycloakify/login/lib/kcClsx';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
export class TemplateComponent extends ComponentReference {
|
|
15
|
+
constructor() {
|
|
16
|
+
super();
|
|
17
|
+
this.i18n = inject(LOGIN_I18N);
|
|
18
|
+
this.renderer = inject(Renderer2);
|
|
19
|
+
this.meta = inject(Meta);
|
|
20
|
+
this.title = inject(Title);
|
|
21
|
+
this.kcContext = inject(KC_LOGIN_CONTEXT);
|
|
22
|
+
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
23
|
+
this.classes = inject(LOGIN_CLASSES);
|
|
24
|
+
this.loginResourceInjectorService = inject(LoginResourceInjectorService);
|
|
25
|
+
this.displayInfo = input(false);
|
|
26
|
+
this.displayMessage = input(true);
|
|
27
|
+
this.displayRequiredFields = input(false);
|
|
28
|
+
this.documentTitle = input();
|
|
29
|
+
this.bodyClassName = input();
|
|
30
|
+
this.title.setTitle(this.documentTitle() ?? this.i18n.msgStr('loginTitle', this.kcContext.realm.displayName));
|
|
31
|
+
this.isReadyToRender$ = this.loginResourceInjectorService.injectResource(this.doUseDefaultCss);
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
this.applyKcIndexClasses();
|
|
35
|
+
}
|
|
36
|
+
applyKcIndexClasses() {
|
|
37
|
+
const kcClsx = getKcClsx({
|
|
38
|
+
doUseDefaultCss: this.doUseDefaultCss,
|
|
39
|
+
classes: this.classes
|
|
40
|
+
}).kcClsx;
|
|
41
|
+
const kcBodyClass = this.bodyClassName() ?? kcClsx('kcBodyClass');
|
|
42
|
+
const kcHtmlClass = kcClsx('kcHtmlClass');
|
|
43
|
+
const kcBodyClasses = kcBodyClass.split(/\s+/);
|
|
44
|
+
const kcHtmlClasses = kcHtmlClass.split(/\s+/);
|
|
45
|
+
kcBodyClasses.forEach(klass => {
|
|
46
|
+
this.renderer.addClass(document.body, klass);
|
|
47
|
+
});
|
|
48
|
+
kcHtmlClasses.forEach(klass => {
|
|
49
|
+
this.renderer.addClass(document.documentElement, klass);
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
tryAnotherWay() {
|
|
53
|
+
document.forms['kc-select-try-another-way-form'].submit();
|
|
54
|
+
}
|
|
55
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
56
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: TemplateComponent, isStandalone: true, selector: "kc-login-template", inputs: { displayInfo: { classPropertyName: "displayInfo", publicName: "displayInfo", isSignal: true, isRequired: false, transformFunction: null }, displayMessage: { classPropertyName: "displayMessage", publicName: "displayMessage", isSignal: true, isRequired: false, transformFunction: null }, displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
57
|
+
{
|
|
58
|
+
provide: ComponentReference,
|
|
59
|
+
useExisting: forwardRef(() => TemplateComponent)
|
|
60
|
+
}
|
|
61
|
+
], usesInheritance: true, ngImport: i0, template: "@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let auth = kcContext.auth;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n@let url = kcContext.url;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <div [kcClass]=\"'kcLoginClass'\">\n <div\n id=\"kc-header\"\n [kcClass]=\"'kcHeaderClass'\"\n >\n <div\n id=\"kc-header-wrapper\"\n [kcClass]=\"'kcHeaderWrapperClass'\"\n >\n <div [innerHTML]=\"realm?.displayNameHtml ?? '' | kcSanitize: 'html'\"></div>\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormCardClass'\">\n <header [kcClass]=\"'kcFormHeaderClass'\">\n <!-- Locale switcher -->\n @if (i18n.enabledLanguages.length > 1) {\n <div\n id=\"kc-locale\"\n [kcClass]=\"'kcLocaleMainClass'\"\n >\n <div\n id=\"kc-locale-wrapper\"\n [kcClass]=\"'kcLocaleWrapperClass'\"\n >\n <div\n id=\"kc-locale-dropdown\"\n class=\"menu-button-links\"\n [kcClass]=\"'kcLocaleDropDownClass'\"\n >\n <button\n tabindex=\"1\"\n id=\"kc-current-locale-link\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n aria-controls=\"language-switch1\"\n [attr.aria-label]=\"i18n.msgStr('languages')\"\n >\n {{ i18n.currentLanguage.label }}\n </button>\n <ul\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"kc-current-locale-link\"\n aria-activedescendant=\"\"\n id=\"language-switch1\"\n [kcClass]=\"'kcLocaleListClass'\"\n >\n @for (entry of i18n.enabledLanguages; track entry; let idx = $index) {\n <li\n role=\"none\"\n [kcClass]=\"'kcLocaleListItemClass'\"\n >\n <a\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"entry.href\"\n [kcClass]=\"'kcLocaleItemClass'\"\n [id]=\"'language-' + idx\"\n >\n {{ entry.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n }\n\n <!-- Header content -->\n <ng-template #node>\n @if (auth && !auth.showUsername && !auth.showResetCredentials) {\n <h1 id=\"kc-page-title\">\n <ng-content select=\"[headerNode]\" />\n </h1>\n } @else {\n <div\n id=\"kc-username\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <label id=\"kc-attempted-username\">{{ auth?.attemptedUsername }}</label>\n <a\n id=\"reset-login\"\n [href]=\"url?.loginRestartFlowUrl\"\n [attr.aria-label]=\"i18n.msgStr('restartLoginTooltip')\"\n >\n <div class=\"kc-login-tooltip\">\n <i [kcClass]=\"'kcResetFlowIcon'\"></i>\n <span class=\"kc-tooltip-text\">\n {{ i18n.msgStr('restartLoginTooltip') }}\n </span>\n </div>\n </a>\n </div>\n }\n </ng-template>\n\n @if (displayRequiredFields()) {\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <div\n class=\"subtitle\"\n [kcClass]=\"'kcLabelWrapperClass'\"\n >\n <span class=\"subtitle\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </span>\n </div>\n <div class=\"col-md-10\">\n <ng-container [ngTemplateOutlet]=\"node\" />\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"node\" />\n }\n </header>\n\n <div id=\"kc-content\">\n <div id=\"kc-content-wrapper\">\n <!-- Message display -->\n @if (displayMessage() && message && (message.type !== 'warning' || !isAppInitiatedAction)) {\n <div\n [kcClass]=\"'kcAlertClass'\"\n [ngClass]=\"message.type === 'error' ? 'pf-m-danger' : 'pf-m-' + message.type\"\n [class]=\"'alert-' + message.type\"\n >\n <div class=\"pf-c-alert__icon\">\n @switch (message.type) {\n @case ('success') {\n <span [kcClass]=\"'kcFeedbackSuccessIcon'\"></span>\n }\n @case ('warning') {\n <span [kcClass]=\"'kcFeedbackWarningIcon'\"></span>\n }\n @case ('info') {\n <span [kcClass]=\"'kcFeedbackInfoIcon'\"></span>\n }\n @case ('error') {\n <span [kcClass]=\"'kcFeedbackErrorIcon'\"></span>\n }\n }\n </div>\n <span\n [kcClass]=\"'kcAlertTitleClass'\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n <ng-content select=\"[content]\" />\n @if (!!auth && auth?.showTryAnotherWayLink) {\n <form\n id=\"kc-select-try-another-way-form\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n name=\"tryAnotherWay\"\n value=\"on\"\n />\n <a\n id=\"try-another-way\"\n (click)=\"tryAnotherWay()\"\n >\n {{ i18n.msgStr('doTryAnotherWay') }}\n </a>\n </div>\n </div>\n </form>\n }\n\n <ng-content select=\"[socialProvidersNode]\" />\n <!-- Info display -->\n @if (displayInfo()) {\n <div\n id=\"kc-info\"\n [kcClass]=\"'kcSignUpClass'\"\n >\n <div\n id=\"kc-info-wrapper\"\n [kcClass]=\"'kcInfoAreaWrapperClass'\"\n >\n <ng-content select=\"[infoNode]\" />\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n}\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
62
|
+
}
|
|
63
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TemplateComponent, decorators: [{
|
|
64
|
+
type: Component,
|
|
65
|
+
args: [{ selector: 'kc-login-template', standalone: true, imports: [AsyncPipe, KcSanitizePipe, NgTemplateOutlet, KcClassDirective], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
66
|
+
{
|
|
67
|
+
provide: ComponentReference,
|
|
68
|
+
useExisting: forwardRef(() => TemplateComponent)
|
|
69
|
+
}
|
|
70
|
+
], template: "@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let auth = kcContext.auth;\n@let isAppInitiatedAction = kcContext.isAppInitiatedAction;\n@let url = kcContext.url;\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <div [kcClass]=\"'kcLoginClass'\">\n <div\n id=\"kc-header\"\n [kcClass]=\"'kcHeaderClass'\"\n >\n <div\n id=\"kc-header-wrapper\"\n [kcClass]=\"'kcHeaderWrapperClass'\"\n >\n <div [innerHTML]=\"realm?.displayNameHtml ?? '' | kcSanitize: 'html'\"></div>\n </div>\n </div>\n\n <div [kcClass]=\"'kcFormCardClass'\">\n <header [kcClass]=\"'kcFormHeaderClass'\">\n <!-- Locale switcher -->\n @if (i18n.enabledLanguages.length > 1) {\n <div\n id=\"kc-locale\"\n [kcClass]=\"'kcLocaleMainClass'\"\n >\n <div\n id=\"kc-locale-wrapper\"\n [kcClass]=\"'kcLocaleWrapperClass'\"\n >\n <div\n id=\"kc-locale-dropdown\"\n class=\"menu-button-links\"\n [kcClass]=\"'kcLocaleDropDownClass'\"\n >\n <button\n tabindex=\"1\"\n id=\"kc-current-locale-link\"\n aria-haspopup=\"true\"\n aria-expanded=\"false\"\n aria-controls=\"language-switch1\"\n [attr.aria-label]=\"i18n.msgStr('languages')\"\n >\n {{ i18n.currentLanguage.label }}\n </button>\n <ul\n role=\"menu\"\n tabindex=\"-1\"\n aria-labelledby=\"kc-current-locale-link\"\n aria-activedescendant=\"\"\n id=\"language-switch1\"\n [kcClass]=\"'kcLocaleListClass'\"\n >\n @for (entry of i18n.enabledLanguages; track entry; let idx = $index) {\n <li\n role=\"none\"\n [kcClass]=\"'kcLocaleListItemClass'\"\n >\n <a\n role=\"menuitem\"\n tabindex=\"-1\"\n [href]=\"entry.href\"\n [kcClass]=\"'kcLocaleItemClass'\"\n [id]=\"'language-' + idx\"\n >\n {{ entry.label }}\n </a>\n </li>\n }\n </ul>\n </div>\n </div>\n </div>\n }\n\n <!-- Header content -->\n <ng-template #node>\n @if (auth && !auth.showUsername && !auth.showResetCredentials) {\n <h1 id=\"kc-page-title\">\n <ng-content select=\"[headerNode]\" />\n </h1>\n } @else {\n <div\n id=\"kc-username\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <label id=\"kc-attempted-username\">{{ auth?.attemptedUsername }}</label>\n <a\n id=\"reset-login\"\n [href]=\"url?.loginRestartFlowUrl\"\n [attr.aria-label]=\"i18n.msgStr('restartLoginTooltip')\"\n >\n <div class=\"kc-login-tooltip\">\n <i [kcClass]=\"'kcResetFlowIcon'\"></i>\n <span class=\"kc-tooltip-text\">\n {{ i18n.msgStr('restartLoginTooltip') }}\n </span>\n </div>\n </a>\n </div>\n }\n </ng-template>\n\n @if (displayRequiredFields()) {\n <div [kcClass]=\"'kcContentWrapperClass'\">\n <div\n class=\"subtitle\"\n [kcClass]=\"'kcLabelWrapperClass'\"\n >\n <span class=\"subtitle\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </span>\n </div>\n <div class=\"col-md-10\">\n <ng-container [ngTemplateOutlet]=\"node\" />\n </div>\n </div>\n } @else {\n <ng-container [ngTemplateOutlet]=\"node\" />\n }\n </header>\n\n <div id=\"kc-content\">\n <div id=\"kc-content-wrapper\">\n <!-- Message display -->\n @if (displayMessage() && message && (message.type !== 'warning' || !isAppInitiatedAction)) {\n <div\n [kcClass]=\"'kcAlertClass'\"\n [ngClass]=\"message.type === 'error' ? 'pf-m-danger' : 'pf-m-' + message.type\"\n [class]=\"'alert-' + message.type\"\n >\n <div class=\"pf-c-alert__icon\">\n @switch (message.type) {\n @case ('success') {\n <span [kcClass]=\"'kcFeedbackSuccessIcon'\"></span>\n }\n @case ('warning') {\n <span [kcClass]=\"'kcFeedbackWarningIcon'\"></span>\n }\n @case ('info') {\n <span [kcClass]=\"'kcFeedbackInfoIcon'\"></span>\n }\n @case ('error') {\n <span [kcClass]=\"'kcFeedbackErrorIcon'\"></span>\n }\n }\n </div>\n <span\n [kcClass]=\"'kcAlertTitleClass'\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <!-- Content -->\n <ng-content select=\"[content]\" />\n @if (!!auth && auth?.showTryAnotherWayLink) {\n <form\n id=\"kc-select-try-another-way-form\"\n method=\"post\"\n [action]=\"url?.loginAction\"\n >\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div [kcClass]=\"'kcFormGroupClass'\">\n <input\n type=\"hidden\"\n name=\"tryAnotherWay\"\n value=\"on\"\n />\n <a\n id=\"try-another-way\"\n (click)=\"tryAnotherWay()\"\n >\n {{ i18n.msgStr('doTryAnotherWay') }}\n </a>\n </div>\n </div>\n </form>\n }\n\n <ng-content select=\"[socialProvidersNode]\" />\n <!-- Info display -->\n @if (displayInfo()) {\n <div\n id=\"kc-info\"\n [kcClass]=\"'kcSignUpClass'\"\n >\n <div\n id=\"kc-info-wrapper\"\n [kcClass]=\"'kcInfoAreaWrapperClass'\"\n >\n <ng-content select=\"[infoNode]\" />\n </div>\n </div>\n }\n </div>\n </div>\n </div>\n </div>\n}\n" }]
|
|
71
|
+
}], ctorParameters: () => [] });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUvdGVtcGxhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL2NvbnRhaW5lcnMvdGVtcGxhdGUvdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNsRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3REFBd0QsQ0FBQztBQUM1RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNsRixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUMzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2hGLE9BQU8sRUFBaUIsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBa0J4RSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsa0JBQWtCO0lBa0JyRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBbEJa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YyxFQUFFLGdCQUFnQixFQUFFLGdCQUFnQixDQUFDLG1CQUN2RCx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDO3lCQUNuRDtxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0LCBPbkluaXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWV0YSwgVGl0bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IEtjU2FuaXRpemVQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3BpcGVzL2tjLXNhbml0aXplJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vZGlyZWN0aXZlcy9rYy1jbGFzcyc7XG5pbXBvcnQgeyBMb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vc2VydmljZXMvbG9naW4tcmVzb3VyY2UtaW5qZWN0b3InO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHsgdHlwZSBDbGFzc0tleSwgZ2V0S2NDbHN4IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgdHlwZSB7IEkxOG4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9pMThuJztcbmltcG9ydCB7IEtjQ29udGV4dCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL0tjQ29udGV4dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2MtbG9naW4tdGVtcGxhdGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBLY1Nhbml0aXplUGlwZSwgTmdUZW1wbGF0ZU91dGxldCwgS2NDbGFzc0RpcmVjdGl2ZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRlbXBsYXRlQ29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZUNvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcbiAgICByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIG1ldGEgPSBpbmplY3QoTWV0YSk7XG4gICAgdGl0bGUgPSBpbmplY3QoVGl0bGUpO1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxLY0NvbnRleHQ+KEtDX0xPR0lOX0NPTlRFWFQpO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihMT0dJTl9DTEFTU0VTKTtcbiAgICBsb2dpblJlc291cmNlSW5qZWN0b3JTZXJ2aWNlID0gaW5qZWN0KExvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UpO1xuXG4gICAgZGlzcGxheUluZm8gPSBpbnB1dChmYWxzZSk7XG4gICAgZGlzcGxheU1lc3NhZ2UgPSBpbnB1dCh0cnVlKTtcbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBpbnB1dChmYWxzZSk7XG4gICAgZG9jdW1lbnRUaXRsZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBib2R5Q2xhc3NOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gICAgaXNSZWFkeVRvUmVuZGVyJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnRpdGxlLnNldFRpdGxlKHRoaXMuZG9jdW1lbnRUaXRsZSgpID8/IHRoaXMuaTE4bi5tc2dTdHIoJ2xvZ2luVGl0bGUnLCB0aGlzLmtjQ29udGV4dC5yZWFsbS5kaXNwbGF5TmFtZSkpO1xuICAgICAgICB0aGlzLmlzUmVhZHlUb1JlbmRlciQgPSB0aGlzLmxvZ2luUmVzb3VyY2VJbmplY3RvclNlcnZpY2UuaW5qZWN0UmVzb3VyY2UodGhpcy5kb1VzZURlZmF1bHRDc3MpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmFwcGx5S2NJbmRleENsYXNzZXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5S2NJbmRleENsYXNzZXMoKSB7XG4gICAgICAgIGNvbnN0IGtjQ2xzeCA9IGdldEtjQ2xzeCh7XG4gICAgICAgICAgICBkb1VzZURlZmF1bHRDc3M6IHRoaXMuZG9Vc2VEZWZhdWx0Q3NzLFxuICAgICAgICAgICAgY2xhc3NlczogdGhpcy5jbGFzc2VzXG4gICAgICAgIH0pLmtjQ2xzeDtcbiAgICAgICAgY29uc3Qga2NCb2R5Q2xhc3MgPSB0aGlzLmJvZHlDbGFzc05hbWUoKSA/PyBrY0Nsc3goJ2tjQm9keUNsYXNzJyk7XG4gICAgICAgIGNvbnN0IGtjSHRtbENsYXNzID0ga2NDbHN4KCdrY0h0bWxDbGFzcycpO1xuICAgICAgICBjb25zdCBrY0JvZHlDbGFzc2VzID0ga2NCb2R5Q2xhc3Muc3BsaXQoL1xccysvKTtcbiAgICAgICAgY29uc3Qga2NIdG1sQ2xhc3NlcyA9IGtjSHRtbENsYXNzLnNwbGl0KC9cXHMrLyk7XG4gICAgICAgIGtjQm9keUNsYXNzZXMuZm9yRWFjaChrbGFzcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmJvZHksIGtsYXNzKTtcbiAgICAgICAgfSk7XG4gICAgICAgIGtjSHRtbENsYXNzZXMuZm9yRWFjaChrbGFzcyA9PiB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGRvY3VtZW50LmRvY3VtZW50RWxlbWVudCwga2xhc3MpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0cnlBbm90aGVyV2F5KCkge1xuICAgICAgICBkb2N1bWVudC5mb3Jtc1sna2Mtc2VsZWN0LXRyeS1hbm90aGVyLXdheS1mb3JtJyBhcyBuZXZlcl0uc3VibWl0KCk7XG4gICAgfVxufVxuIiwiQGxldCByZWFsbSA9IGtjQ29udGV4dC5yZWFsbTtcbkBsZXQgbWVzc2FnZSA9IGtjQ29udGV4dC5tZXNzYWdlO1xuQGxldCBhdXRoID0ga2NDb250ZXh0LmF1dGg7XG5AbGV0IGlzQXBwSW5pdGlhdGVkQWN0aW9uID0ga2NDb250ZXh0LmlzQXBwSW5pdGlhdGVkQWN0aW9uO1xuQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuQGxldCBpc1JlYWR5VG9SZW5kZXIgPSBpc1JlYWR5VG9SZW5kZXIkIHwgYXN5bmM7XG5cbkBpZiAoaXNSZWFkeVRvUmVuZGVyKSB7XG4gICAgPGRpdiBba2NDbGFzc109XCIna2NMb2dpbkNsYXNzJ1wiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBpZD1cImtjLWhlYWRlclwiXG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NIZWFkZXJDbGFzcydcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgaWQ9XCJrYy1oZWFkZXItd3JhcHBlclwiXG4gICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSGVhZGVyV3JhcHBlckNsYXNzJ1wiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInJlYWxtPy5kaXNwbGF5TmFtZUh0bWwgPz8gJycgfCBrY1Nhbml0aXplOiAnaHRtbCdcIj48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IFtrY0NsYXNzXT1cIidrY0Zvcm1DYXJkQ2xhc3MnXCI+XG4gICAgICAgICAgICA8aGVhZGVyIFtrY0NsYXNzXT1cIidrY0Zvcm1IZWFkZXJDbGFzcydcIj5cbiAgICAgICAgICAgICAgICA8IS0tIExvY2FsZSBzd2l0Y2hlciAtLT5cbiAgICAgICAgICAgICAgICBAaWYgKGkxOG4uZW5hYmxlZExhbmd1YWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtbG9jYWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvY2FsZU1haW5DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1sb2NhbGUtd3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTG9jYWxlV3JhcHBlckNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWxvY2FsZS1kcm9wZG93blwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibWVudS1idXR0b24tbGlua3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMb2NhbGVEcm9wRG93bkNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIjFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1jdXJyZW50LWxvY2FsZS1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibGFuZ3VhZ2Utc3dpdGNoMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImkxOG4ubXNnU3RyKCdsYW5ndWFnZXMnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4uY3VycmVudExhbmd1YWdlLmxhYmVsIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJtZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwia2MtY3VycmVudC1sb2NhbGUtbGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQ9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJsYW5ndWFnZS1zd2l0Y2gxXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xvY2FsZUxpc3RDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChlbnRyeSBvZiBpMThuLmVuYWJsZWRMYW5ndWFnZXM7IHRyYWNrIGVudHJ5OyBsZXQgaWR4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTG9jYWxlTGlzdEl0ZW1DbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJtZW51aXRlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cImVudHJ5LmhyZWZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTG9jYWxlSXRlbUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ2xhbmd1YWdlLScgKyBpZHhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBlbnRyeS5sYWJlbCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICA8IS0tIEhlYWRlciBjb250ZW50IC0tPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9kZT5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChhdXRoICYmICFhdXRoLnNob3dVc2VybmFtZSAmJiAhYXV0aC5zaG93UmVzZXRDcmVkZW50aWFscykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGgxIGlkPVwia2MtcGFnZS10aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltoZWFkZXJOb2RlXVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImtjLXVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cImtjLWF0dGVtcHRlZC11c2VybmFtZVwiPnt7IGF1dGg/LmF0dGVtcHRlZFVzZXJuYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInJlc2V0LWxvZ2luXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hyZWZdPVwidXJsPy5sb2dpblJlc3RhcnRGbG93VXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpMThuLm1zZ1N0cigncmVzdGFydExvZ2luVG9vbHRpcCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYy1sb2dpbi10b29sdGlwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBba2NDbGFzc109XCIna2NSZXNldEZsb3dJY29uJ1wiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwia2MtdG9vbHRpcC10ZXh0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3Jlc3RhcnRMb2dpblRvb2x0aXAnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICBAaWYgKGRpc3BsYXlSZXF1aXJlZEZpZWxkcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjQ29udGVudFdyYXBwZXJDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN1YnRpdGxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NMYWJlbFdyYXBwZXJDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdyZXF1aXJlZEZpZWxkcycpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJub2RlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJub2RlXCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICAgICAgPGRpdiBpZD1cImtjLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGlkPVwia2MtY29udGVudC13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDwhLS0gTWVzc2FnZSBkaXNwbGF5IC0tPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGRpc3BsYXlNZXNzYWdlKCkgJiYgbWVzc2FnZSAmJiAobWVzc2FnZS50eXBlICE9PSAnd2FybmluZycgfHwgIWlzQXBwSW5pdGlhdGVkQWN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0FsZXJ0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJtZXNzYWdlLnR5cGUgPT09ICdlcnJvcicgPyAncGYtbS1kYW5nZXInIDogJ3BmLW0tJyArIG1lc3NhZ2UudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIidhbGVydC0nICsgbWVzc2FnZS50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGYtYy1hbGVydF9faWNvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnc3VjY2VzcycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBba2NDbGFzc109XCIna2NGZWVkYmFja1N1Y2Nlc3NJY29uJ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnd2FybmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBba2NDbGFzc109XCIna2NGZWVkYmFja1dhcm5pbmdJY29uJ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnaW5mbycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBba2NDbGFzc109XCIna2NGZWVkYmFja0luZm9JY29uJ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnZXJyb3InKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW2tjQ2xhc3NdPVwiJ2tjRmVlZGJhY2tFcnJvckljb24nXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjQWxlcnRUaXRsZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibWVzc2FnZS5zdW1tYXJ5IHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPCEtLSBDb250ZW50IC0tPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY29udGVudF1cIiAvPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCEhYXV0aCAmJiBhdXRoPy5zaG93VHJ5QW5vdGhlcldheUxpbmspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1zZWxlY3QtdHJ5LWFub3RoZXItd2F5LWZvcm1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3Rpb25dPVwidXJsPy5sb2dpbkFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0cnlBbm90aGVyV2F5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIm9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidHJ5LWFub3RoZXItd2F5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwidHJ5QW5vdGhlcldheSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignZG9UcnlBbm90aGVyV2F5JykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc29jaWFsUHJvdmlkZXJzTm9kZV1cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8IS0tIEluZm8gZGlzcGxheSAtLT5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChkaXNwbGF5SW5mbygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1pbmZvXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NTaWduVXBDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1pbmZvLXdyYXBwZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbmZvQXJlYVdyYXBwZXJDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2luZm9Ob2RlXVwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufVxuIl19
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/* eslint-disable @typescript-eslint/consistent-indexed-object-style */
|
|
3
|
+
import { Directive, ElementRef, inject, Input, isDevMode, Renderer2, ɵstringify as stringify } from '@angular/core';
|
|
4
|
+
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
5
|
+
import { getKcClsx } from 'keycloakify/login/lib/kcClsx';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class KcClassDirective {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.initialClasses = [];
|
|
10
|
+
this.stateMap = new Map();
|
|
11
|
+
this.#renderer = inject(Renderer2);
|
|
12
|
+
this.#el = inject(ElementRef);
|
|
13
|
+
this.#host = inject(ComponentReference);
|
|
14
|
+
}
|
|
15
|
+
#renderer;
|
|
16
|
+
#el;
|
|
17
|
+
#host;
|
|
18
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
19
|
+
set klass(value) {
|
|
20
|
+
this.initialClasses = value != null ? value.trim().split(/\s+/) : [];
|
|
21
|
+
}
|
|
22
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
23
|
+
set ngClass(value) {
|
|
24
|
+
this.rawClass = typeof value === 'string' ? value.trim().split(/\s+/) : value;
|
|
25
|
+
}
|
|
26
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
27
|
+
set kcClass(value) {
|
|
28
|
+
this.rawKcClass =
|
|
29
|
+
typeof value === 'string' ? value.trim().split(/\s+/) : value;
|
|
30
|
+
}
|
|
31
|
+
ngDoCheck() {
|
|
32
|
+
for (const klass of this.initialClasses) {
|
|
33
|
+
this._updateState(klass, true);
|
|
34
|
+
}
|
|
35
|
+
// classes from the [ngClass] binding
|
|
36
|
+
const rawClass = this.rawClass;
|
|
37
|
+
if (Array.isArray(rawClass) || rawClass instanceof Set) {
|
|
38
|
+
for (const klass of rawClass) {
|
|
39
|
+
this._updateState(klass, true);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
else if (rawClass != null) {
|
|
43
|
+
for (const klass of Object.keys(rawClass)) {
|
|
44
|
+
this._updateState(klass, Boolean(rawClass[klass]));
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// classes from the [kcClass] binding
|
|
48
|
+
const rawKcClass = this.rawKcClass;
|
|
49
|
+
if (Array.isArray(rawKcClass) || rawKcClass instanceof Set) {
|
|
50
|
+
for (const klass of rawKcClass) {
|
|
51
|
+
this._updateState(klass, true, true);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
else if (rawKcClass != null) {
|
|
55
|
+
for (const klass of Object.keys(rawKcClass)) {
|
|
56
|
+
this._updateState(klass, Boolean(rawKcClass[klass]), true);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
this._applyStateDiff();
|
|
60
|
+
}
|
|
61
|
+
_updateState(klass, nextEnabled, kcClsxCheck = false) {
|
|
62
|
+
const state = this.stateMap.get(klass);
|
|
63
|
+
if (state !== undefined) {
|
|
64
|
+
if (state.enabled !== nextEnabled) {
|
|
65
|
+
state.changed = true;
|
|
66
|
+
state.enabled = nextEnabled;
|
|
67
|
+
}
|
|
68
|
+
state.touched = true;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
let klassChecked = klass;
|
|
72
|
+
if (kcClsxCheck) {
|
|
73
|
+
const doUseDefaultCss = this.#host.doUseDefaultCss ?? true;
|
|
74
|
+
const classes = this.#host.classes;
|
|
75
|
+
const kcClsx = getKcClsx({ doUseDefaultCss, classes }).kcClsx;
|
|
76
|
+
klassChecked = kcClsx(klass);
|
|
77
|
+
}
|
|
78
|
+
this.stateMap.set(klassChecked, {
|
|
79
|
+
enabled: nextEnabled,
|
|
80
|
+
changed: true,
|
|
81
|
+
touched: true
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
_applyStateDiff() {
|
|
86
|
+
for (const stateEntry of this.stateMap) {
|
|
87
|
+
const klass = stateEntry[0];
|
|
88
|
+
const state = stateEntry[1];
|
|
89
|
+
if (state.changed) {
|
|
90
|
+
this._toggleClass(klass, state.enabled);
|
|
91
|
+
state.changed = false;
|
|
92
|
+
}
|
|
93
|
+
else if (!state.touched) {
|
|
94
|
+
// A class that was previously active got removed from the new collection of classes -
|
|
95
|
+
// remove from the DOM as well.
|
|
96
|
+
if (state.enabled) {
|
|
97
|
+
this._toggleClass(klass, false);
|
|
98
|
+
}
|
|
99
|
+
this.stateMap.delete(klass);
|
|
100
|
+
}
|
|
101
|
+
state.touched = false;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
_toggleClass(klass, enabled) {
|
|
105
|
+
if (isDevMode()) {
|
|
106
|
+
if (typeof klass !== 'string') {
|
|
107
|
+
throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${stringify(klass)}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
klass = klass.trim();
|
|
111
|
+
if (klass.length > 0) {
|
|
112
|
+
klass.split(/\s+/).forEach(klass => {
|
|
113
|
+
if (enabled) {
|
|
114
|
+
this.#renderer.addClass(this.#el.nativeElement, klass);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this.#renderer.removeClass(this.#el.nativeElement, klass);
|
|
118
|
+
}
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: KcClassDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
123
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.7", type: KcClassDirective, isStandalone: true, selector: "[kcClass]", inputs: { klass: ["class", "klass"], ngClass: "ngClass", kcClass: "kcClass" }, ngImport: i0 }); }
|
|
124
|
+
}
|
|
125
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: KcClassDirective, decorators: [{
|
|
126
|
+
type: Directive,
|
|
127
|
+
args: [{ selector: '[kcClass]', standalone: true }]
|
|
128
|
+
}], propDecorators: { klass: [{
|
|
129
|
+
type: Input,
|
|
130
|
+
args: ['class']
|
|
131
|
+
}], ngClass: [{
|
|
132
|
+
type: Input,
|
|
133
|
+
args: ['ngClass']
|
|
134
|
+
}], kcClass: [{
|
|
135
|
+
type: Input,
|
|
136
|
+
args: ['kcClass']
|
|
137
|
+
}] } });
|
|
138
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2MtY2xhc3MuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3Mva2MtY2xhc3MuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVEQUF1RDtBQUN2RCx1RUFBdUU7QUFDdkUsT0FBTyxFQUNILFNBQVMsRUFFVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxTQUFTLEVBQ1QsU0FBUyxFQUNULFVBQVUsSUFBSSxTQUFTLEVBQzFCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzVGLE9BQU8sRUFBaUIsU0FBUyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBd0J4RSxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBRVksbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFJOUIsYUFBUSxHQUFHLElBQUksR0FBRyxFQUFvQyxDQUFDO1FBQ3RELGNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUIsUUFBRyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN6QixVQUFLLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7S0F3SC9DO0lBMUhZLFNBQVMsQ0FBcUI7SUFDOUIsR0FBRyxDQUFzQjtJQUN6QixLQUFLLENBQThCO0lBQzVDLDJEQUEyRDtJQUMzRCxJQUNJLEtBQUssQ0FBQyxLQUFhO1FBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ3pFLENBQUM7SUFFRCwyREFBMkQ7SUFDM0QsSUFDSSxPQUFPLENBQUMsS0FBcUM7UUFDN0MsSUFBSSxDQUFDLFFB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bGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L2NvbnNpc3RlbnQtaW5kZXhlZC1vYmplY3Qtc3R5bGUgKi9cbmltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5wdXQsXG4gICAgaXNEZXZNb2RlLFxuICAgIFJlbmRlcmVyMixcbiAgICDJtXN0cmluZ2lmeSBhcyBzdHJpbmdpZnlcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgdHlwZSBDbGFzc0tleSwgZ2V0S2NDbHN4IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5cbmludGVyZmFjZSBDc3NDbGFzc1N0YXRlIHtcbiAgICAvLyBQRVJGOiBjb3VsZCB1c2UgYSBiaXQgbWFzayB0byByZXByZXNlbnQgc3RhdGUgYXMgYWxsIGZpZWxkcyBhcmUgYm9vbGVhbiBmbGFnc1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgY2hhbmdlZDogYm9vbGVhbjtcbiAgICB0b3VjaGVkOiBib29sZWFuO1xufVxuXG50eXBlIEtjQ2xhc3NTdXBwb3J0ZWRUeXBlcyA9XG4gICAgfCBDbGFzc0tleVtdXG4gICAgfCBTZXQ8Q2xhc3NLZXk+XG4gICAgfCBQYXJ0aWFsPHsgW2tleSBpbiBDbGFzc0tleV06IGFueSB9PlxuICAgIHwgbnVsbFxuICAgIHwgdW5kZWZpbmVkO1xuXG50eXBlIE5nQ2xhc3NTdXBwb3J0ZWRUeXBlcyA9XG4gICAgfCBzdHJpbmdbXVxuICAgIHwgU2V0PHN0cmluZz5cbiAgICB8IHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgICB8IG51bGxcbiAgICB8IHVuZGVmaW5lZDtcblxuQERpcmVjdGl2ZSh7IHNlbGVjdG9yOiAnW2tjQ2xhc3NdJywgc3RhbmRhbG9uZTogdHJ1ZSB9KVxuZXhwb3J0IGNsYXNzIEtjQ2xhc3NEaXJlY3RpdmUgaW1wbGVtZW50cyBEb0NoZWNrIHtcbiAgICBwcml2YXRlIGluaXRpYWxDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHByaXZhdGUgcmF3Q2xhc3M6IE5nQ2xhc3NTdXBwb3J0ZWRUeXBlcztcbiAgICBwcml2YXRlIHJhd0tjQ2xhc3M6IEtjQ2xhc3NTdXBwb3J0ZWRUeXBlcztcblxuICAgIHByaXZhdGUgc3RhdGVNYXAgPSBuZXcgTWFwPHN0cmluZyB8IENsYXNzS2V5LCBDc3NDbGFzc1N0YXRlPigpO1xuICAgIHJlYWRvbmx5ICNyZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHJlYWRvbmx5ICNlbCA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgICByZWFkb25seSAjaG9zdCA9IGluamVjdChDb21wb25lbnRSZWZlcmVuY2UpO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdjbGFzcycpXG4gICAgc2V0IGtsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsQ2xhc3NlcyA9IHZhbHVlICE9IG51bGwgPyB2YWx1ZS50cmltKCkuc3BsaXQoL1xccysvKSA6IFtdO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCduZ0NsYXNzJylcbiAgICBzZXQgbmdDbGFzcyh2YWx1ZTogc3RyaW5nIHwgTmdDbGFzc1N1cHBvcnRlZFR5cGVzKSB7XG4gICAgICAgIHRoaXMucmF3Q2xhc3MgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gdmFsdWUudHJpbSgpLnNwbGl0KC9cXHMrLykgOiB2YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICAgIEBJbnB1dCgna2NDbGFzcycpXG4gICAgc2V0IGtjQ2xhc3ModmFsdWU6IENsYXNzS2V5IHwgS2NDbGFzc1N1cHBvcnRlZFR5cGVzKSB7XG4gICAgICAgIHRoaXMucmF3S2NDbGFzcyA9XG4gICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnID8gKHZhbHVlLnRyaW0oKS5zcGxpdCgvXFxzKy8pIGFzIENsYXNzS2V5W10pIDogdmFsdWU7XG4gICAgfVxuXG4gICAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgICAgICBmb3IgKGNvbnN0IGtsYXNzIG9mIHRoaXMuaW5pdGlhbENsYXNzZXMpIHtcbiAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVN0YXRlKGtsYXNzLCB0cnVlKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjbGFzc2VzIGZyb20gdGhlIFtuZ0NsYXNzXSBiaW5kaW5nXG4gICAgICAgIGNvbnN0IHJhd0NsYXNzID0gdGhpcy5yYXdDbGFzcztcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkocmF3Q2xhc3MpIHx8IHJhd0NsYXNzIGluc3RhbmNlb2YgU2V0KSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IGtsYXNzIG9mIHJhd0NsYXNzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlU3RhdGUoa2xhc3MsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYgKHJhd0NsYXNzICE9IG51bGwpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2xhc3Mgb2YgT2JqZWN0LmtleXMocmF3Q2xhc3MpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlU3RhdGUoa2xhc3MsIEJvb2xlYW4ocmF3Q2xhc3Nba2xhc3NdKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjbGFzc2VzIGZyb20gdGhlIFtrY0NsYXNzXSBiaW5kaW5nXG4gICAgICAgIGNvbnN0IHJhd0tjQ2xhc3MgPSB0aGlzLnJhd0tjQ2xhc3M7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJhd0tjQ2xhc3MpIHx8IHJhd0tjQ2xhc3MgaW5zdGFuY2VvZiBTZXQpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2xhc3Mgb2YgcmF3S2NDbGFzcykge1xuICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVN0YXRlKGtsYXNzLCB0cnVlLCB0cnVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChyYXdLY0NsYXNzICE9IG51bGwpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3Qga2xhc3Mgb2YgT2JqZWN0LmtleXMocmF3S2NDbGFzcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl91cGRhdGVTdGF0ZShrbGFzcywgQm9vbGVhbihyYXdLY0NsYXNzW2tsYXNzIGFzIENsYXNzS2V5XSksIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fYXBwbHlTdGF0ZURpZmYoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF91cGRhdGVTdGF0ZShcbiAgICAgICAga2xhc3M6IHN0cmluZyB8IENsYXNzS2V5LFxuICAgICAgICBuZXh0RW5hYmxlZDogYm9vbGVhbixcbiAgICAgICAga2NDbHN4Q2hlY2sgPSBmYWxzZVxuICAgICkge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVNYXAuZ2V0KGtsYXNzKTtcbiAgICAgICAgaWYgKHN0YXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGlmIChzdGF0ZS5lbmFibGVkICE9PSBuZXh0RW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHN0YXRlLmNoYW5nZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHN0YXRlLmVuYWJsZWQgPSBuZXh0RW5hYmxlZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHN0YXRlLnRvdWNoZWQgPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IGtsYXNzQ2hlY2tlZCA9IGtsYXNzO1xuICAgICAgICAgICAgaWYgKGtjQ2xzeENoZWNrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZG9Vc2VEZWZhdWx0Q3NzID0gdGhpcy4jaG9zdC5kb1VzZURlZmF1bHRDc3MgPz8gdHJ1ZTtcbiAgICAgICAgICAgICAgICBjb25zdCBjbGFzc2VzID0gdGhpcy4jaG9zdC5jbGFzc2VzO1xuICAgICAgICAgICAgICAgIGNvbnN0IGtjQ2xzeCA9IGdldEtjQ2xzeCh7IGRvVXNlRGVmYXVsdENzcywgY2xhc3NlcyB9KS5rY0Nsc3g7XG4gICAgICAgICAgICAgICAga2xhc3NDaGVja2VkID0ga2NDbHN4KGtsYXNzIGFzIENsYXNzS2V5KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RhdGVNYXAuc2V0KGtsYXNzQ2hlY2tlZCwge1xuICAgICAgICAgICAgICAgIGVuYWJsZWQ6IG5leHRFbmFibGVkLFxuICAgICAgICAgICAgICAgIGNoYW5nZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgdG91Y2hlZDogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9hcHBseVN0YXRlRGlmZigpIHtcbiAgICAgICAgZm9yIChjb25zdCBzdGF0ZUVudHJ5IG9mIHRoaXMuc3RhdGVNYXApIHtcbiAgICAgICAgICAgIGNvbnN0IGtsYXNzID0gc3RhdGVFbnRyeVswXTtcbiAgICAgICAgICAgIGNvbnN0IHN0YXRlID0gc3RhdGVFbnRyeVsxXTtcblxuICAgICAgICAgICAgaWYgKHN0YXRlLmNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90b2dnbGVDbGFzcyhrbGFzcywgc3RhdGUuZW5hYmxlZCk7XG4gICAgICAgICAgICAgICAgc3RhdGUuY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghc3RhdGUudG91Y2hlZCkge1xuICAgICAgICAgICAgICAgIC8vIEEgY2xhc3MgdGhhdCB3YXMgcHJldmlvdXNseSBhY3RpdmUgZ290IHJlbW92ZWQgZnJvbSB0aGUgbmV3IGNvbGxlY3Rpb24gb2YgY2xhc3NlcyAtXG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGZyb20gdGhlIERPTSBhcyB3ZWxsLlxuICAgICAgICAgICAgICAgIGlmIChzdGF0ZS5lbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RvZ2dsZUNsYXNzKGtsYXNzLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc3RhdGVNYXAuZGVsZXRlKGtsYXNzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc3RhdGUudG91Y2hlZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdG9nZ2xlQ2xhc3Moa2xhc3M6IHN0cmluZywgZW5hYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Yga2xhc3MgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgICAgICBgTmdDbGFzcyBjYW4gb25seSB0b2dnbGUgQ1NTIGNsYXNzZXMgZXhwcmVzc2VkIGFzIHN0cmluZ3MsIGdvdCAke3N0cmluZ2lmeShrbGFzcyl9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBrbGFzcyA9IGtsYXNzLnRyaW0oKTtcbiAgICAgICAgaWYgKGtsYXNzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGtsYXNzLnNwbGl0KC9cXHMrLykuZm9yRWFjaChrbGFzcyA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy4jZWwubmF0aXZlRWxlbWVudCwga2xhc3MpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuI2VsLm5hdGl2ZUVsZW1lbnQsIGtsYXNzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1kaXJlY3RpdmVzLWtjLWNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3Mva2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1kaXJlY3RpdmVzLWtjLWNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './kc-class.directive';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9sb2dpbi9kaXJlY3RpdmVzL2tjLWNsYXNzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4va2MtY2xhc3MuZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sb2dpbi9pMThuL2kxOG4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgR2VuZXJpY0kxOG5fbm9Kc3ggfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9pMThuL25vSnN4L0dlbmVyaWNJMThuX25vSnN4JztcbmltcG9ydCB7IHR5cGUgTWVzc2FnZUtleSBhcyBNZXNzYWdlS2V5X2RlZmF1bHRTZXQgfSBmcm9tICdrZXljbG9ha2lmeS9sb2dpbi9pMThuL21lc3NhZ2VzX2RlZmF1bHRTZXQvdHlwZXMnO1xuLyoqIElOVEVSTkFMOiBETyBOT1QgSU1QT1JUIFRISVMgKi9cbmV4cG9ydCB0eXBlIEkxOG4gPSBHZW5lcmljSTE4bl9ub0pzeDxNZXNzYWdlS2V5X2RlZmF1bHRTZXQsIHN0cmluZz47XG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1pMThuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2xvZ2luL2kxOG4va2V5Y2xvYWtpZnktYW5ndWxhci1sb2dpbi1pMThuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './i18n';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9sb2dpbi9pMThuL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2kxOG4nO1xuIl19
|