@keycloakify/angular 0.0.1-rc.17 → 0.0.1-rc.19
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/containers/template/template.component.d.ts +18 -5
- package/account/pages/account/account.component.d.ts +3 -2
- package/account/pages/applications/applications.component.d.ts +3 -2
- package/account/pages/federatedIdentity/federatedIdentity.component.d.ts +3 -2
- package/account/pages/log/log.component.d.ts +3 -2
- package/account/pages/password/password.component.d.ts +3 -2
- package/account/pages/sessions/sessions.component.d.ts +3 -2
- package/account/pages/totp/totp.component.d.ts +3 -2
- package/esm2022/account/containers/template/template.component.mjs +42 -9
- package/esm2022/account/directives/kc-class/kc-class.directive.mjs +3 -3
- package/esm2022/account/pages/account/account.component.mjs +8 -7
- package/esm2022/account/pages/applications/applications.component.mjs +8 -7
- package/esm2022/account/pages/federatedIdentity/federatedIdentity.component.mjs +8 -7
- package/esm2022/account/pages/log/log.component.mjs +8 -7
- package/esm2022/account/pages/password/password.component.mjs +9 -7
- package/esm2022/account/pages/sessions/sessions.component.mjs +8 -7
- package/esm2022/account/pages/totp/totp.component.mjs +8 -7
- package/esm2022/account/providers/keycloakify-angular/keycloakify-angular.providers.mjs +2 -1
- package/esm2022/account/services/account-resource-injector/account-resource-injector.service.mjs +3 -3
- package/esm2022/account/services/i18n/i18n.service.mjs +3 -3
- package/esm2022/lib/directives/attributes/attributes.directive.mjs +3 -3
- package/esm2022/lib/pipes/input-type/input-type.pipe.mjs +3 -3
- package/esm2022/lib/pipes/is-array-with-empty-object/is-array-with-empty-object.pipe.mjs +3 -3
- package/esm2022/lib/pipes/kc-sanitize/kc-sanitize.pipe.mjs +3 -3
- package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +3 -3
- package/esm2022/lib/pipes/to-number/to-number.pipe.mjs +3 -3
- package/esm2022/lib/services/resource-injector/resource-injector.service.mjs +3 -3
- package/esm2022/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.mjs +5 -5
- package/esm2022/login/components/field-errors/field-errors.component.mjs +6 -6
- package/esm2022/login/components/group-label/group-label.component.mjs +3 -3
- package/esm2022/login/components/input-field-by-type/input-field-by-type.component.mjs +6 -6
- package/esm2022/login/components/input-tag/input-tag.component.mjs +6 -6
- package/esm2022/login/components/input-tag-selects/input-tag-selects.component.mjs +3 -3
- package/esm2022/login/components/logout-other-sessions/logout-other-sessions.component.mjs +3 -3
- package/esm2022/login/components/password-wrapper/password-wrapper.component.mjs +6 -6
- package/esm2022/login/components/select-tag/select-tag.component.mjs +3 -3
- package/esm2022/login/components/textarea-tag/textarea-tag.component.mjs +3 -3
- package/esm2022/login/components/user-profile-form-fields/user-profile-form-fields.component.mjs +6 -6
- package/esm2022/login/containers/template/template.component.mjs +83 -15
- package/esm2022/login/directives/kc-class/kc-class.directive.mjs +5 -5
- package/esm2022/login/pages/code/code.component.mjs +16 -10
- package/esm2022/login/pages/delete-account-confirm/delete-account-confirm.component.mjs +14 -8
- package/esm2022/login/pages/delete-credential/delete-credential.component.mjs +12 -11
- package/esm2022/login/pages/error/error.component.mjs +16 -10
- package/esm2022/login/pages/frontchannel-logout/frontchannel-logout.component.mjs +14 -12
- package/esm2022/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +14 -13
- package/esm2022/login/pages/info/info.component.mjs +13 -12
- package/esm2022/login/pages/login/login.component.mjs +15 -14
- package/esm2022/login/pages/login-config-totp/login-config-totp.component.mjs +14 -13
- package/esm2022/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.mjs +13 -16
- package/esm2022/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.mjs +13 -16
- package/esm2022/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +12 -15
- package/esm2022/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +13 -15
- package/esm2022/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.mjs +12 -11
- package/esm2022/login/pages/login-otp/login-otp.component.mjs +13 -12
- package/esm2022/login/pages/login-page-expired/login-page-expired.component.mjs +12 -11
- package/esm2022/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +13 -8
- package/esm2022/login/pages/login-password/login-password.component.mjs +15 -13
- package/esm2022/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.mjs +14 -13
- package/esm2022/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +14 -13
- package/esm2022/login/pages/login-reset-otp/login-reset-otp.component.mjs +13 -12
- package/esm2022/login/pages/login-reset-password/login-reset-password.component.mjs +13 -12
- package/esm2022/login/pages/login-update-password/login-update-password.component.mjs +13 -12
- package/esm2022/login/pages/login-update-profile/login-update-profile.component.mjs +13 -12
- package/esm2022/login/pages/login-username/login-username.component.mjs +14 -13
- package/esm2022/login/pages/login-verify-email/login-verify-email.component.mjs +12 -11
- package/esm2022/login/pages/login-x509-info/login-x509-info.component.mjs +12 -11
- package/esm2022/login/pages/logout-confirm/logout-confirm.component.mjs +12 -15
- package/esm2022/login/pages/register/register.component.mjs +16 -15
- package/esm2022/login/pages/saml-post-form/saml-post-form.component.mjs +16 -17
- package/esm2022/login/pages/select-authenticator/select-authenticator.component.mjs +13 -12
- package/esm2022/login/pages/terms/terms.component.mjs +12 -11
- package/esm2022/login/pages/update-email/update-email.component.mjs +14 -17
- package/esm2022/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +12 -11
- package/esm2022/login/pages/webauthn-error/webauthn-error.component.mjs +13 -12
- package/esm2022/login/pages/webauthn-register/webauthn-register.component.mjs +12 -11
- package/esm2022/login/providers/keycloakify-angular/keycloakify-angular.providers.mjs +2 -1
- package/esm2022/login/services/i18n/i18n.service.mjs +3 -3
- package/esm2022/login/services/login-resource-injector/login-resource-injector.service.mjs +3 -3
- package/esm2022/login/services/submit/submit.service.mjs +4 -4
- package/esm2022/login/services/user-profile-form/user-profile-form.service.mjs +3 -3
- package/fesm2022/keycloakify-angular-account-containers-template.mjs +42 -9
- package/fesm2022/keycloakify-angular-account-containers-template.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-directives-kc-class.mjs +3 -3
- package/fesm2022/keycloakify-angular-account-pages-account.mjs +7 -6
- package/fesm2022/keycloakify-angular-account-pages-account.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-applications.mjs +7 -6
- package/fesm2022/keycloakify-angular-account-pages-applications.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs +7 -6
- package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-log.mjs +7 -6
- package/fesm2022/keycloakify-angular-account-pages-log.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-password.mjs +8 -6
- package/fesm2022/keycloakify-angular-account-pages-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-sessions.mjs +7 -6
- package/fesm2022/keycloakify-angular-account-pages-sessions.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-totp.mjs +7 -6
- package/fesm2022/keycloakify-angular-account-pages-totp.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs +1 -0
- package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-services-account-resource-injector.mjs +3 -3
- package/fesm2022/keycloakify-angular-account-services-i18n.mjs +3 -3
- package/fesm2022/keycloakify-angular-lib-directives-attributes.mjs +3 -3
- package/fesm2022/keycloakify-angular-lib-pipes-input-type.mjs +3 -3
- package/fesm2022/keycloakify-angular-lib-pipes-is-array-with-empty-object.mjs +3 -3
- package/fesm2022/keycloakify-angular-lib-pipes-kc-sanitize.mjs +3 -3
- package/fesm2022/keycloakify-angular-lib-pipes-to-array.mjs +3 -3
- package/fesm2022/keycloakify-angular-lib-pipes-to-number.mjs +3 -3
- package/fesm2022/keycloakify-angular-lib-services-resource-injector.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +4 -4
- package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-field-errors.mjs +5 -5
- package/fesm2022/keycloakify-angular-login-components-field-errors.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-group-label.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs +5 -5
- package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-components-input-tag.mjs +5 -5
- package/fesm2022/keycloakify-angular-login-components-input-tag.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-logout-other-sessions.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs +5 -5
- package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-select-tag.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs +5 -5
- package/fesm2022/keycloakify-angular-login-components-user-profile-form-fields.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-containers-template.mjs +83 -15
- package/fesm2022/keycloakify-angular-login-containers-template.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs +4 -4
- package/fesm2022/keycloakify-angular-login-directives-kc-class.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-code.mjs +15 -9
- package/fesm2022/keycloakify-angular-login-pages-code.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs +13 -7
- package/fesm2022/keycloakify-angular-login-pages-delete-account-confirm.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +11 -10
- package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-error.mjs +15 -9
- package/fesm2022/keycloakify-angular-login-pages-error.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs +13 -11
- package/fesm2022/keycloakify-angular-login-pages-frontchannel-logout.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +13 -12
- package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-info.mjs +12 -11
- package/fesm2022/keycloakify-angular-login-pages-info.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs +13 -12
- package/fesm2022/keycloakify-angular-login-pages-login-config-totp.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs +12 -15
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm-override.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs +12 -15
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-confirm.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +11 -14
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +12 -14
- package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs +11 -10
- package/fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs +12 -11
- package/fesm2022/keycloakify-angular-login-pages-login-otp.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +11 -10
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +12 -7
- package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +14 -12
- package/fesm2022/keycloakify-angular-login-pages-login-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs +13 -12
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-config.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +13 -12
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs +12 -11
- package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +12 -11
- package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs +12 -11
- package/fesm2022/keycloakify-angular-login-pages-login-update-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +12 -11
- package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +13 -12
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +11 -10
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs +11 -10
- package/fesm2022/keycloakify-angular-login-pages-login-x509-info.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login.mjs +14 -13
- package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs +11 -14
- package/fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-register.mjs +15 -14
- package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs +15 -16
- package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +12 -11
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-terms.mjs +11 -10
- package/fesm2022/keycloakify-angular-login-pages-terms.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +13 -16
- package/fesm2022/keycloakify-angular-login-pages-update-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +11 -10
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs +12 -11
- package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs +11 -10
- package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs +1 -0
- package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-services-i18n.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-services-submit.mjs +3 -3
- package/fesm2022/keycloakify-angular-login-services-submit.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-services-user-profile-form.mjs +3 -3
- package/login/containers/template/template.component.d.ts +25 -9
- package/login/directives/kc-class/kc-class.directive.d.ts +1 -1
- package/login/pages/code/code.component.d.ts +12 -3
- package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +11 -2
- package/login/pages/delete-credential/delete-credential.component.d.ts +9 -5
- package/login/pages/error/error.component.d.ts +11 -2
- package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +9 -5
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +10 -7
- package/login/pages/info/info.component.d.ts +9 -5
- package/login/pages/login/login.component.d.ts +10 -6
- package/login/pages/login-config-totp/login-config-totp.component.d.ts +9 -5
- package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +8 -7
- package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +8 -7
- package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +8 -7
- package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +8 -7
- package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +9 -5
- package/login/pages/login-otp/login-otp.component.d.ts +9 -5
- package/login/pages/login-page-expired/login-page-expired.component.d.ts +9 -5
- package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +11 -3
- package/login/pages/login-password/login-password.component.d.ts +10 -5
- package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +9 -5
- package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +9 -5
- package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +9 -5
- package/login/pages/login-reset-password/login-reset-password.component.d.ts +9 -5
- package/login/pages/login-update-password/login-update-password.component.d.ts +9 -5
- package/login/pages/login-update-profile/login-update-profile.component.d.ts +9 -6
- package/login/pages/login-username/login-username.component.d.ts +10 -6
- package/login/pages/login-verify-email/login-verify-email.component.d.ts +9 -5
- package/login/pages/login-x509-info/login-x509-info.component.d.ts +9 -5
- package/login/pages/logout-confirm/logout-confirm.component.d.ts +8 -7
- package/login/pages/register/register.component.d.ts +11 -8
- package/login/pages/saml-post-form/saml-post-form.component.d.ts +10 -7
- package/login/pages/select-authenticator/select-authenticator.component.d.ts +9 -5
- package/login/pages/terms/terms.component.d.ts +9 -5
- package/login/pages/update-email/update-email.component.d.ts +9 -9
- package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +10 -6
- package/login/pages/webauthn-error/webauthn-error.component.d.ts +9 -5
- package/login/pages/webauthn-register/webauthn-register.component.d.ts +10 -6
- package/package.json +8 -8
- package/src/account/containers/template/template.component.html +16 -11
- package/src/account/containers/template/template.component.ts +54 -7
- package/src/account/pages/account/account.component.html +139 -143
- package/src/account/pages/account/account.component.ts +4 -3
- package/src/account/pages/applications/applications.component.html +128 -136
- package/src/account/pages/applications/applications.component.ts +4 -3
- package/src/account/pages/federatedIdentity/federatedIdentity.component.html +84 -88
- package/src/account/pages/federatedIdentity/federatedIdentity.component.ts +4 -3
- package/src/account/pages/log/log.component.html +35 -39
- package/src/account/pages/log/log.component.ts +4 -3
- package/src/account/pages/password/password.component.html +109 -113
- package/src/account/pages/password/password.component.ts +6 -3
- package/src/account/pages/sessions/sessions.component.html +52 -56
- package/src/account/pages/sessions/sessions.component.ts +4 -3
- package/src/account/pages/totp/totp.component.html +234 -238
- package/src/account/pages/totp/totp.component.ts +4 -3
- package/src/account/providers/keycloakify-angular/keycloakify-angular.providers.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/field-errors/field-errors.component.html +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/password-wrapper/password-wrapper.component.html +2 -2
- package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +7 -11
- package/src/login/containers/template/template.component.html +29 -15
- package/src/login/containers/template/template.component.ts +100 -12
- package/src/login/directives/kc-class/kc-class.directive.ts +1 -2
- package/src/login/pages/code/code.component.html +19 -23
- package/src/login/pages/code/code.component.ts +18 -6
- package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +41 -45
- package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +16 -4
- package/src/login/pages/delete-credential/delete-credential.component.html +29 -31
- package/src/login/pages/delete-credential/delete-credential.component.ts +16 -9
- package/src/login/pages/error/error.component.html +20 -22
- package/src/login/pages/error/error.component.ts +17 -5
- package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +25 -34
- package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +17 -9
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +29 -38
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +18 -12
- package/src/login/pages/info/info.component.html +39 -48
- package/src/login/pages/info/info.component.ts +17 -10
- package/src/login/pages/login/login.component.html +184 -194
- package/src/login/pages/login/login.component.ts +20 -12
- package/src/login/pages/login-config-totp/login-config-totp.component.html +181 -190
- package/src/login/pages/login-config-totp/login-config-totp.component.ts +16 -10
- package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +27 -37
- package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +15 -14
- package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +26 -36
- package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +15 -14
- package/src/login/pages/login-idp-link-email/login-idp-link-email.component.html +24 -34
- package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +15 -14
- package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +75 -84
- package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +15 -14
- package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +49 -58
- package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +15 -9
- package/src/login/pages/login-otp/login-otp.component.html +89 -98
- package/src/login/pages/login-otp/login-otp.component.ts +16 -9
- package/src/login/pages/login-page-expired/login-page-expired.component.html +26 -33
- package/src/login/pages/login-page-expired/login-page-expired.component.ts +15 -9
- package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +181 -188
- package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +15 -5
- package/src/login/pages/login-password/login-password.component.html +73 -80
- package/src/login/pages/login-password/login-password.component.ts +17 -9
- package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +136 -145
- package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +17 -9
- package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +60 -68
- package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +16 -9
- package/src/login/pages/login-reset-otp/login-reset-otp.component.html +53 -60
- package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +15 -8
- package/src/login/pages/login-reset-password/login-reset-password.component.html +77 -86
- package/src/login/pages/login-reset-password/login-reset-password.component.ts +16 -9
- package/src/login/pages/login-update-password/login-update-password.component.html +98 -108
- package/src/login/pages/login-update-password/login-update-password.component.ts +15 -8
- package/src/login/pages/login-update-profile/login-update-profile.component.html +44 -53
- package/src/login/pages/login-update-profile/login-update-profile.component.ts +17 -10
- package/src/login/pages/login-username/login-username.component.html +138 -148
- package/src/login/pages/login-username/login-username.component.ts +16 -9
- package/src/login/pages/login-verify-email/login-verify-email.component.html +17 -25
- package/src/login/pages/login-verify-email/login-verify-email.component.ts +15 -9
- package/src/login/pages/login-x509-info/login-x509-info.component.html +85 -94
- package/src/login/pages/login-x509-info/login-x509-info.component.ts +15 -9
- package/src/login/pages/logout-confirm/logout-confirm.component.html +39 -49
- package/src/login/pages/logout-confirm/logout-confirm.component.ts +15 -14
- package/src/login/pages/register/register.component.html +100 -110
- package/src/login/pages/register/register.component.ts +19 -12
- package/src/login/pages/saml-post-form/saml-post-form.component.html +39 -48
- package/src/login/pages/saml-post-form/saml-post-form.component.ts +19 -13
- package/src/login/pages/select-authenticator/select-authenticator.component.html +36 -44
- package/src/login/pages/select-authenticator/select-authenticator.component.ts +16 -9
- package/src/login/pages/terms/terms.component.html +25 -34
- package/src/login/pages/terms/terms.component.ts +16 -9
- package/src/login/pages/update-email/update-email.component.html +44 -53
- package/src/login/pages/update-email/update-email.component.ts +16 -15
- package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +134 -145
- package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +16 -9
- package/src/login/pages/webauthn-error/webauthn-error.component.html +45 -55
- package/src/login/pages/webauthn-error/webauthn-error.component.ts +16 -9
- package/src/login/pages/webauthn-register/webauthn-register.component.html +65 -75
- package/src/login/pages/webauthn-register/webauthn-register.component.ts +16 -9
- package/src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts +1 -0
- package/src/login/services/submit/submit.service.ts +1 -1
- package/src/tsconfig.lib.json +0 -12
- package/src/tsconfig.lib.prod.json +0 -10
|
@@ -15,22 +15,23 @@ export class SessionsComponent extends ComponentReference {
|
|
|
15
15
|
this.kcContext = inject(KC_ACCOUNT_CONTEXT);
|
|
16
16
|
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
17
17
|
this.classes = inject(ACCOUNT_CLASSES);
|
|
18
|
+
this.active = 'sessions';
|
|
18
19
|
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
20
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SessionsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
21
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: SessionsComponent, isStandalone: true, selector: "kc-sessions", providers: [
|
|
21
22
|
{
|
|
22
23
|
provide: ComponentReference,
|
|
23
24
|
useExisting: forwardRef(() => SessionsComponent)
|
|
24
25
|
}
|
|
25
|
-
], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let sessions = kcContext.sessions;\n@let stateChecker = kcContext.stateChecker;\n\n<
|
|
26
|
+
], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let sessions = kcContext.sessions;\n@let stateChecker = kcContext.stateChecker;\n\n<div [kcClass]=\"'kcContentWrapperClass'\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('sessionsHtmlTitle') }}</h2>\n </div>\n</div>\n\n<table class=\"table table-striped table-bordered\">\n <thead>\n <tr>\n <th>{{ i18n.msgStr('ip') }}</th>\n <th>{{ i18n.msgStr('started') }}</th>\n <th>{{ i18n.msgStr('lastAccess') }}</th>\n <th>{{ i18n.msgStr('expires') }}</th>\n <th>{{ i18n.msgStr('clients') }}</th>\n </tr>\n </thead>\n\n <tbody role=\"rowgroup\">\n @for (session of sessions.sessions; track session) {\n <tr>\n <td>{{ session.ipAddress }}</td>\n <td>{{ session?.started }}</td>\n <td>{{ session?.lastAccess }}</td>\n <td>{{ session?.expires }}</td>\n <td>\n @for (client of session.clients; track client) {\n <div>\n {{ client }}\n <br />\n </div>\n }\n </td>\n </tr>\n }\n </tbody>\n</table>\n\n<form\n method=\"post\"\n [action]=\"url.sessionsUrl\"\n>\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <button\n id=\"logout-all-sessions\"\n type=\"submit\"\n [kcClass]=\"['kcButtonDefaultClass', 'kcButtonClass']\"\n >\n {{ i18n.msgStr('doLogOutAllSessions') }}\n </button>\n</form>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }] }); }
|
|
26
27
|
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
28
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: SessionsComponent, decorators: [{
|
|
28
29
|
type: Component,
|
|
29
|
-
args: [{ standalone: true, imports: [KcClassDirective, TemplateComponent, NgClass], selector: 'kc-
|
|
30
|
+
args: [{ standalone: true, imports: [KcClassDirective, TemplateComponent, NgClass], selector: 'kc-sessions', providers: [
|
|
30
31
|
{
|
|
31
32
|
provide: ComponentReference,
|
|
32
33
|
useExisting: forwardRef(() => SessionsComponent)
|
|
33
34
|
}
|
|
34
|
-
], template: "@let url = kcContext.url;\n@let sessions = kcContext.sessions;\n@let stateChecker = kcContext.stateChecker;\n\n<
|
|
35
|
+
], template: "@let url = kcContext.url;\n@let sessions = kcContext.sessions;\n@let stateChecker = kcContext.stateChecker;\n\n<div [kcClass]=\"'kcContentWrapperClass'\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('sessionsHtmlTitle') }}</h2>\n </div>\n</div>\n\n<table class=\"table table-striped table-bordered\">\n <thead>\n <tr>\n <th>{{ i18n.msgStr('ip') }}</th>\n <th>{{ i18n.msgStr('started') }}</th>\n <th>{{ i18n.msgStr('lastAccess') }}</th>\n <th>{{ i18n.msgStr('expires') }}</th>\n <th>{{ i18n.msgStr('clients') }}</th>\n </tr>\n </thead>\n\n <tbody role=\"rowgroup\">\n @for (session of sessions.sessions; track session) {\n <tr>\n <td>{{ session.ipAddress }}</td>\n <td>{{ session?.started }}</td>\n <td>{{ session?.lastAccess }}</td>\n <td>{{ session?.expires }}</td>\n <td>\n @for (client of session.clients; track client) {\n <div>\n {{ client }}\n <br />\n </div>\n }\n </td>\n </tr>\n }\n </tbody>\n</table>\n\n<form\n method=\"post\"\n [action]=\"url.sessionsUrl\"\n>\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <button\n id=\"logout-all-sessions\"\n type=\"submit\"\n [kcClass]=\"['kcButtonDefaultClass', 'kcButtonClass']\"\n >\n {{ i18n.msgStr('doLogOutAllSessions') }}\n </button>\n</form>\n" }]
|
|
35
36
|
}] });
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FjY291bnQvcGFnZXMvc2Vzc2lvbnMvc2Vzc2lvbnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2FjY291bnQvcGFnZXMvc2Vzc2lvbnMvc2Vzc2lvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUM5RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUNyRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUdwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpREFBaUQsQ0FBQzs7QUFlbEYsTUFBTSxPQUFPLGlCQUFrQixTQUFRLGtCQUFrQjtJQVp6RDs7UUFhSSxTQUFJLEdBQUcsTUFBTSxDQUFPLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxNQUFNLENBQWlELGtCQUFrQixDQUFDLENBQUM7UUFDOUUsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsZUFBZSxDQUFDLENBQUM7UUFDOUUsV0FBTSxHQUFHLFVBQVUsQ0FBQztLQUN2Qjs4R0FOWSxpQkFBaUI7a0dBQWpCLGlCQUFpQiwwREFQZjtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7YUFDbkQ7U0FDSixpREN2QkwsdXFEQTJEQSw0Q0Q1Q2MsZ0JBQWdCOzsyRkFVakIsaUJBQWlCO2tCQVo3QixTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxZQUM3QyxhQUFhLGFBRVo7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsa0JBQWtCLENBQUM7eUJBQ25EO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L2NvbnRhaW5lcnMvdGVtcGxhdGUnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvZGlyZWN0aXZlcy9rYy1jbGFzcyc7XG5pbXBvcnQgdHlwZSB7IEkxOG4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L2kxOG4nO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L0tjQ29udGV4dCc7XG5pbXBvcnQgeyBBQ0NPVU5UX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3Rva2Vucy9jbGFzc2VzJztcbmltcG9ydCB7IEFDQ09VTlRfSTE4TiB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvdG9rZW5zL2kxOG4nO1xuaW1wb3J0IHsgS0NfQUNDT1VOVF9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC90b2tlbnMva2MtY29udGV4dCc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcyc7XG5pbXBvcnQgdHlwZSB7IENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvYWNjb3VudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0tjQ2xhc3NEaXJlY3RpdmUsIFRlbXBsYXRlQ29tcG9uZW50LCBOZ0NsYXNzXSxcbiAgICBzZWxlY3RvcjogJ2tjLXNlc3Npb25zJyxcbiAgICB0ZW1wbGF0ZVVybDogJ3Nlc3Npb25zLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2Vzc2lvbnNDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlc3Npb25zQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KEFDQ09VTlRfSTE4Tik7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ3Nlc3Npb25zLmZ0bCcgfT4+KEtDX0FDQ09VTlRfQ09OVEVYVCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KEFDQ09VTlRfQ0xBU1NFUyk7XG4gICAgYWN0aXZlID0gJ3Nlc3Npb25zJztcbn1cbiIsIkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgc2Vzc2lvbnMgPSBrY0NvbnRleHQuc2Vzc2lvbnM7XG5AbGV0IHN0YXRlQ2hlY2tlciA9IGtjQ29udGV4dC5zdGF0ZUNoZWNrZXI7XG5cbjxkaXYgW2tjQ2xhc3NdPVwiJ2tjQ29udGVudFdyYXBwZXJDbGFzcydcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEwXCI+XG4gICAgICAgIDxoMj57eyBpMThuLm1zZ1N0cignc2Vzc2lvbnNIdG1sVGl0bGUnKSB9fTwvaDI+XG4gICAgPC9kaXY+XG48L2Rpdj5cblxuPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtc3RyaXBlZCB0YWJsZS1ib3JkZXJlZFwiPlxuICAgIDx0aGVhZD5cbiAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoPnt7IGkxOG4ubXNnU3RyKCdpcCcpIH19PC90aD5cbiAgICAgICAgICAgIDx0aD57eyBpMThuLm1zZ1N0cignc3RhcnRlZCcpIH19PC90aD5cbiAgICAgICAgICAgIDx0aD57eyBpMThuLm1zZ1N0cignbGFzdEFjY2VzcycpIH19PC90aD5cbiAgICAgICAgICAgIDx0aD57eyBpMThuLm1zZ1N0cignZXhwaXJlcycpIH19PC90aD5cbiAgICAgICAgICAgIDx0aD57eyBpMThuLm1zZ1N0cignY2xpZW50cycpIH19PC90aD5cbiAgICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuXG4gICAgPHRib2R5IHJvbGU9XCJyb3dncm91cFwiPlxuICAgICAgICBAZm9yIChzZXNzaW9uIG9mIHNlc3Npb25zLnNlc3Npb25zOyB0cmFjayBzZXNzaW9uKSB7XG4gICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgPHRkPnt7IHNlc3Npb24uaXBBZGRyZXNzIH19PC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+e3sgc2Vzc2lvbj8uc3RhcnRlZCB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgPHRkPnt7IHNlc3Npb24/Lmxhc3RBY2Nlc3MgfX08L3RkPlxuICAgICAgICAgICAgICAgIDx0ZD57eyBzZXNzaW9uPy5leHBpcmVzIH19PC90ZD5cbiAgICAgICAgICAgICAgICA8dGQ+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGNsaWVudCBvZiBzZXNzaW9uLmNsaWVudHM7IHRyYWNrIGNsaWVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjbGllbnQgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgIH1cbiAgICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPGZvcm1cbiAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICBbYWN0aW9uXT1cInVybC5zZXNzaW9uc1VybFwiXG4+XG4gICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICBpZD1cInN0YXRlQ2hlY2tlclwiXG4gICAgICAgIG5hbWU9XCJzdGF0ZUNoZWNrZXJcIlxuICAgICAgICBbdmFsdWVdPVwic3RhdGVDaGVja2VyXCJcbiAgICAvPlxuICAgIDxidXR0b25cbiAgICAgICAgaWQ9XCJsb2dvdXQtYWxsLXNlc3Npb25zXCJcbiAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25EZWZhdWx0Q2xhc3MnLCAna2NCdXR0b25DbGFzcyddXCJcbiAgICA+XG4gICAgICAgIHt7IGkxOG4ubXNnU3RyKCdkb0xvZ091dEFsbFNlc3Npb25zJykgfX1cbiAgICA8L2J1dHRvbj5cbjwvZm9ybT5cbiJdfQ==
|
|
@@ -16,22 +16,23 @@ export class TotpComponent extends ComponentReference {
|
|
|
16
16
|
this.kcContext = inject(KC_ACCOUNT_CONTEXT);
|
|
17
17
|
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
18
18
|
this.classes = inject(ACCOUNT_CLASSES);
|
|
19
|
+
this.active = 'totp';
|
|
19
20
|
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
21
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.
|
|
21
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TotpComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: TotpComponent, isStandalone: true, selector: "kc-totp", providers: [
|
|
22
23
|
{
|
|
23
24
|
provide: ComponentReference,
|
|
24
25
|
useExisting: forwardRef(() => TotpComponent)
|
|
25
26
|
}
|
|
26
|
-
], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let mode = kcContext.mode;\n@let messagesPerField = kcContext.messagesPerField;\n@let stateChecker = kcContext.stateChecker;\n@let totp = kcContext.totp;\n\n<kc-account-template [active]=\"'totp'\">\n <ng-container content>\n <div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('authenticatorTitle') }}</h2>\n </div>\n @if (totp.otpCredentials.length) {\n <div class=\"subtitle col-md-2\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </div>\n }\n </div>\n @if (totp.enabled) {\n <table class=\"table table-bordered table-striped\">\n <thead>\n @if (totp.otpCredentials.length > 1) {\n <tr>\n <th [colSpan]=\"4\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n } @else {\n <tr>\n <th [colSpan]=\"3\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n }\n </thead>\n <tbody>\n @for (credential of totp.otpCredentials; track credential; let index = $index) {\n <tr>\n <td class=\"provider\">{{ i18n.msgStr('mobile') }}</td>\n @if (totp.otpCredentials.length > 1) {\n <td class=\"provider\">{{ credential.id }}</td>\n }\n <td class=\"provider\">{{ credential.userLabel || '' }}</td>\n <td class=\"action\">\n <form\n [action]=\"url.totpUrl\"\n method=\"post\"\n class=\"form-inline\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n id=\"submitAction\"\n name=\"submitAction\"\n value=\"Delete\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n [value]=\"credential.id\"\n />\n <button\n [id]=\"'remove-mobile-' + index\"\n class=\"btn btn-default\"\n >\n <i class=\"pficon pficon-delete\"></i>\n </button>\n </form>\n </td>\n </tr>\n }\n </tbody>\n </table>\n } @else {\n <div>\n <hr />\n <ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('totpStep1') }}</p>\n\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (mode && mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('totpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n [href]=\"totp.qrUrl\"\n id=\"mode-barcode\"\n >\n {{ i18n.msgStr('totpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('totpManualStep3') }}</p>\n <ul>\n <li id=\"kc-totp-type\">{{ i18n.msgStr('totpType') }}: {{ i18n.msgStr($any('totp.' + totp.policy.type)) }}</li>\n <li id=\"kc-totp-algorithm\">{{ i18n.msgStr('totpAlgorithm') }}: {{ totp.policy.getAlgorithmKey() }}</li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('totpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">{{ i18n.msgStr('totpInterval') }}: {{ totp.policy.period }}</li>\n } @else {\n <li id=\"kc-totp-counter\">{{ i18n.msgStr('totpCounter') }}: {{ totp.policy.initialCounter }}</li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('totpStep2') }}</p>\n <p>\n <img\n id=\"kc-totp-secret-qr-code\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n alt=\"Figure: Barcode\"\n />\n </p>\n <p>\n <a\n [href]=\"totp.manualUrl\"\n id=\"mode-manual\"\n >\n {{ i18n.msgStr('totpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('totpStep3') }}</p>\n <p>{{ i18n.msgStr('totpStep3DeviceName') }}</p>\n </li>\n </ol>\n <hr />\n <form\n [action]=\"url.totpUrl\"\n [kcClass]=\"'kcFormClass'\"\n id=\"kc-totp-settings-form\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"totp\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('totpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n\n <div\n id=\"kc-form-buttons\"\n class=\"text-right\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveTOTPBtn\"\n [value]=\"i18n.msgStr('doSave')\"\n />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n id=\"cancelTOTPBtn\"\n name=\"submitAction\"\n value=\"Cancel\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n }\n </ng-container>\n</kc-account-template>\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "component", type: TemplateComponent, selector: "kc-account-template", inputs: ["active"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }] }); }
|
|
27
|
+
], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let mode = kcContext.mode;\n@let messagesPerField = kcContext.messagesPerField;\n@let stateChecker = kcContext.stateChecker;\n@let totp = kcContext.totp;\n\n<div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('authenticatorTitle') }}</h2>\n </div>\n @if (totp.otpCredentials.length) {\n <div class=\"subtitle col-md-2\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </div>\n }\n</div>\n@if (totp.enabled) {\n <table class=\"table table-bordered table-striped\">\n <thead>\n @if (totp.otpCredentials.length > 1) {\n <tr>\n <th [colSpan]=\"4\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n } @else {\n <tr>\n <th [colSpan]=\"3\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n }\n </thead>\n <tbody>\n @for (credential of totp.otpCredentials; track credential; let index = $index) {\n <tr>\n <td class=\"provider\">{{ i18n.msgStr('mobile') }}</td>\n @if (totp.otpCredentials.length > 1) {\n <td class=\"provider\">{{ credential.id }}</td>\n }\n <td class=\"provider\">{{ credential.userLabel || '' }}</td>\n <td class=\"action\">\n <form\n method=\"post\"\n class=\"form-inline\"\n [action]=\"url.totpUrl\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n id=\"submitAction\"\n name=\"submitAction\"\n value=\"Delete\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n [value]=\"credential.id\"\n />\n <button\n class=\"btn btn-default\"\n [id]=\"'remove-mobile-' + index\"\n >\n <i class=\"pficon pficon-delete\"></i>\n </button>\n </form>\n </td>\n </tr>\n }\n </tbody>\n </table>\n} @else {\n <div>\n <hr />\n <ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('totpStep1') }}</p>\n\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (mode && mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('totpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n id=\"mode-barcode\"\n [href]=\"totp.qrUrl\"\n >\n {{ i18n.msgStr('totpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('totpManualStep3') }}</p>\n <ul>\n <li id=\"kc-totp-type\">{{ i18n.msgStr('totpType') }}: {{ i18n.msgStr($any('totp.' + totp.policy.type)) }}</li>\n <li id=\"kc-totp-algorithm\">{{ i18n.msgStr('totpAlgorithm') }}: {{ totp.policy.getAlgorithmKey() }}</li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('totpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">{{ i18n.msgStr('totpInterval') }}: {{ totp.policy.period }}</li>\n } @else {\n <li id=\"kc-totp-counter\">{{ i18n.msgStr('totpCounter') }}: {{ totp.policy.initialCounter }}</li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('totpStep2') }}</p>\n <p>\n <img\n id=\"kc-totp-secret-qr-code\"\n alt=\"Figure: Barcode\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n />\n </p>\n <p>\n <a\n id=\"mode-manual\"\n [href]=\"totp.manualUrl\"\n >\n {{ i18n.msgStr('totpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('totpStep3') }}</p>\n <p>{{ i18n.msgStr('totpStep3DeviceName') }}</p>\n </li>\n </ol>\n <hr />\n <form\n id=\"kc-totp-settings-form\"\n method=\"post\"\n [action]=\"url.totpUrl\"\n [kcClass]=\"'kcFormClass'\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"totp\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('totpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n\n <div\n id=\"kc-form-buttons\"\n class=\"text-right\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSave')\"\n />\n <button\n type=\"submit\"\n id=\"cancelTOTPBtn\"\n name=\"submitAction\"\n value=\"Cancel\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n}\n", dependencies: [{ kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }] }); }
|
|
27
28
|
}
|
|
28
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: TotpComponent, decorators: [{
|
|
29
30
|
type: Component,
|
|
30
|
-
args: [{ standalone: true, imports: [KcClassDirective, TemplateComponent, KcSanitizePipe, NgClass], selector: 'kc-
|
|
31
|
+
args: [{ standalone: true, imports: [KcClassDirective, TemplateComponent, KcSanitizePipe, NgClass], selector: 'kc-totp', providers: [
|
|
31
32
|
{
|
|
32
33
|
provide: ComponentReference,
|
|
33
34
|
useExisting: forwardRef(() => TotpComponent)
|
|
34
35
|
}
|
|
35
|
-
], template: "@let url = kcContext.url;\n@let mode = kcContext.mode;\n@let messagesPerField = kcContext.messagesPerField;\n@let stateChecker = kcContext.stateChecker;\n@let totp = kcContext.totp;\n\n<kc-account-template [active]=\"'totp'\">\n <ng-container content>\n <div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('authenticatorTitle') }}</h2>\n </div>\n @if (totp.otpCredentials.length) {\n <div class=\"subtitle col-md-2\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </div>\n }\n </div>\n @if (totp.enabled) {\n <table class=\"table table-bordered table-striped\">\n <thead>\n @if (totp.otpCredentials.length > 1) {\n <tr>\n <th [colSpan]=\"4\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n } @else {\n <tr>\n <th [colSpan]=\"3\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n }\n </thead>\n <tbody>\n @for (credential of totp.otpCredentials; track credential; let index = $index) {\n <tr>\n <td class=\"provider\">{{ i18n.msgStr('mobile') }}</td>\n @if (totp.otpCredentials.length > 1) {\n <td class=\"provider\">{{ credential.id }}</td>\n }\n <td class=\"provider\">{{ credential.userLabel || '' }}</td>\n <td class=\"action\">\n <form\n [action]=\"url.totpUrl\"\n method=\"post\"\n class=\"form-inline\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n id=\"submitAction\"\n name=\"submitAction\"\n value=\"Delete\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n [value]=\"credential.id\"\n />\n <button\n [id]=\"'remove-mobile-' + index\"\n class=\"btn btn-default\"\n >\n <i class=\"pficon pficon-delete\"></i>\n </button>\n </form>\n </td>\n </tr>\n }\n </tbody>\n </table>\n } @else {\n <div>\n <hr />\n <ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('totpStep1') }}</p>\n\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (mode && mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('totpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n [href]=\"totp.qrUrl\"\n id=\"mode-barcode\"\n >\n {{ i18n.msgStr('totpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('totpManualStep3') }}</p>\n <ul>\n <li id=\"kc-totp-type\">{{ i18n.msgStr('totpType') }}: {{ i18n.msgStr($any('totp.' + totp.policy.type)) }}</li>\n <li id=\"kc-totp-algorithm\">{{ i18n.msgStr('totpAlgorithm') }}: {{ totp.policy.getAlgorithmKey() }}</li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('totpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">{{ i18n.msgStr('totpInterval') }}: {{ totp.policy.period }}</li>\n } @else {\n <li id=\"kc-totp-counter\">{{ i18n.msgStr('totpCounter') }}: {{ totp.policy.initialCounter }}</li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('totpStep2') }}</p>\n <p>\n <img\n id=\"kc-totp-secret-qr-code\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n alt=\"Figure: Barcode\"\n />\n </p>\n <p>\n <a\n [href]=\"totp.manualUrl\"\n id=\"mode-manual\"\n >\n {{ i18n.msgStr('totpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('totpStep3') }}</p>\n <p>{{ i18n.msgStr('totpStep3DeviceName') }}</p>\n </li>\n </ol>\n <hr />\n <form\n [action]=\"url.totpUrl\"\n [kcClass]=\"'kcFormClass'\"\n id=\"kc-totp-settings-form\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"totp\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('totpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n aria-live=\"polite\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n\n <div\n id=\"kc-form-buttons\"\n class=\"text-right\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n id=\"saveTOTPBtn\"\n [value]=\"i18n.msgStr('doSave')\"\n />\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n id=\"cancelTOTPBtn\"\n name=\"submitAction\"\n value=\"Cancel\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n }\n </ng-container>\n</kc-account-template>\n" }]
|
|
36
|
+
], template: "@let url = kcContext.url;\n@let mode = kcContext.mode;\n@let messagesPerField = kcContext.messagesPerField;\n@let stateChecker = kcContext.stateChecker;\n@let totp = kcContext.totp;\n\n<div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('authenticatorTitle') }}</h2>\n </div>\n @if (totp.otpCredentials.length) {\n <div class=\"subtitle col-md-2\">\n <span class=\"required\">*</span>\n {{ i18n.msgStr('requiredFields') }}\n </div>\n }\n</div>\n@if (totp.enabled) {\n <table class=\"table table-bordered table-striped\">\n <thead>\n @if (totp.otpCredentials.length > 1) {\n <tr>\n <th [colSpan]=\"4\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n } @else {\n <tr>\n <th [colSpan]=\"3\">{{ i18n.msgStr('configureAuthenticators') }}</th>\n </tr>\n }\n </thead>\n <tbody>\n @for (credential of totp.otpCredentials; track credential; let index = $index) {\n <tr>\n <td class=\"provider\">{{ i18n.msgStr('mobile') }}</td>\n @if (totp.otpCredentials.length > 1) {\n <td class=\"provider\">{{ credential.id }}</td>\n }\n <td class=\"provider\">{{ credential.userLabel || '' }}</td>\n <td class=\"action\">\n <form\n method=\"post\"\n class=\"form-inline\"\n [action]=\"url.totpUrl\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <input\n type=\"hidden\"\n id=\"submitAction\"\n name=\"submitAction\"\n value=\"Delete\"\n />\n <input\n type=\"hidden\"\n id=\"credentialId\"\n name=\"credentialId\"\n [value]=\"credential.id\"\n />\n <button\n class=\"btn btn-default\"\n [id]=\"'remove-mobile-' + index\"\n >\n <i class=\"pficon pficon-delete\"></i>\n </button>\n </form>\n </td>\n </tr>\n }\n </tbody>\n </table>\n} @else {\n <div>\n <hr />\n <ol id=\"kc-totp-settings\">\n <li>\n <p>{{ i18n.msgStr('totpStep1') }}</p>\n\n <ul id=\"kc-totp-supported-apps\">\n @for (app of totp.supportedApplications; track app) {\n <li>{{ i18n.advancedMsgStr(app) }}</li>\n }\n </ul>\n </li>\n @if (mode && mode === 'manual') {\n <li>\n <p>{{ i18n.msgStr('totpManualStep2') }}</p>\n <p>\n <span id=\"kc-totp-secret-key\">{{ totp.totpSecretEncoded }}</span>\n </p>\n <p>\n <a\n id=\"mode-barcode\"\n [href]=\"totp.qrUrl\"\n >\n {{ i18n.msgStr('totpScanBarcode') }}\n </a>\n </p>\n </li>\n <li>\n <p>{{ i18n.msgStr('totpManualStep3') }}</p>\n <ul>\n <li id=\"kc-totp-type\">{{ i18n.msgStr('totpType') }}: {{ i18n.msgStr($any('totp.' + totp.policy.type)) }}</li>\n <li id=\"kc-totp-algorithm\">{{ i18n.msgStr('totpAlgorithm') }}: {{ totp.policy.getAlgorithmKey() }}</li>\n <li id=\"kc-totp-digits\">{{ i18n.msgStr('totpDigits') }}: {{ totp.policy.digits }}</li>\n @if (totp.policy.type === 'totp') {\n <li id=\"kc-totp-period\">{{ i18n.msgStr('totpInterval') }}: {{ totp.policy.period }}</li>\n } @else {\n <li id=\"kc-totp-counter\">{{ i18n.msgStr('totpCounter') }}: {{ totp.policy.initialCounter }}</li>\n }\n </ul>\n </li>\n } @else {\n <li>\n <p>{{ i18n.msgStr('totpStep2') }}</p>\n <p>\n <img\n id=\"kc-totp-secret-qr-code\"\n alt=\"Figure: Barcode\"\n [src]=\"'data:image/png;base64, ' + totp.totpSecretQrCode\"\n />\n </p>\n <p>\n <a\n id=\"mode-manual\"\n [href]=\"totp.manualUrl\"\n >\n {{ i18n.msgStr('totpUnableToScan') }}\n </a>\n </p>\n </li>\n }\n <li>\n <p>{{ i18n.msgStr('totpStep3') }}</p>\n <p>{{ i18n.msgStr('totpStep3DeviceName') }}</p>\n </li>\n </ol>\n <hr />\n <form\n id=\"kc-totp-settings-form\"\n method=\"post\"\n [action]=\"url.totpUrl\"\n [kcClass]=\"'kcFormClass'\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"totp\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('authenticatorCode') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"totp\"\n name=\"totp\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('totp')\"\n />\n @if (messagesPerField.existsError('totp')) {\n <span\n id=\"input-error-otp-code\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('totp') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n <input\n type=\"hidden\"\n id=\"totpSecret\"\n name=\"totpSecret\"\n [value]=\"totp.totpSecret\"\n />\n @if (mode) {\n <input\n type=\"hidden\"\n id=\"mode\"\n [value]=\"mode\"\n />\n }\n </div>\n\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"userLabel\"\n [kcClass]=\"'kcLabelClass'\"\n >\n {{ i18n.msgStr('totpDeviceName') }}\n </label>\n @if (totp.otpCredentials.length >= 1) {\n <span class=\"required\">*</span>\n }\n </div>\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n id=\"userLabel\"\n name=\"userLabel\"\n autoComplete=\"off\"\n [kcClass]=\"'kcInputClass'\"\n [attr.aria-invalid]=\"messagesPerField.existsError('userLabel')\"\n />\n @if (messagesPerField.existsError('userLabel')) {\n <span\n id=\"input-error-otp-label\"\n aria-live=\"polite\"\n [kcClass]=\"'kcInputErrorMessageClass'\"\n [innerHTML]=\"messagesPerField.get('userLabel') | kcSanitize: 'html'\"\n ></span>\n }\n </div>\n </div>\n\n <div\n id=\"kc-form-buttons\"\n class=\"text-right\"\n [kcClass]=\"'kcFormGroupClass'\"\n >\n <div [kcClass]=\"'kcInputWrapperClass'\">\n <input\n type=\"submit\"\n id=\"saveTOTPBtn\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n [value]=\"i18n.msgStr('doSave')\"\n />\n <button\n type=\"submit\"\n id=\"cancelTOTPBtn\"\n name=\"submitAction\"\n value=\"Cancel\"\n [kcClass]=\"['kcButtonClass', 'kcButtonDefaultClass', 'kcButtonLargeClass']\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </div>\n </div>\n </form>\n </div>\n}\n" }]
|
|
36
37
|
}] });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC9wYWdlcy90b3RwL3RvdHAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2FjY291bnQvcGFnZXMvdG90cC90b3RwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOztBQWlCbEYsTUFBTSxPQUFPLGFBQWMsU0FBUSxrQkFBa0I7SUFackQ7O1FBYUksU0FBSSxHQUFHLE1BQU0sQ0FBTyxZQUFZLENBQUMsQ0FBQztRQUNsQyxjQUFTLEdBQUcsTUFBTSxDQUE2QyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzFFLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLGVBQWUsQ0FBQyxDQUFDO0tBQ2pGOzhHQUxZLGFBQWE7a0dBQWIsYUFBYSxzREFQWDtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsYUFBYSxDQUFDO2FBQy9DO1NBQ0osaURDeEJMLGdwWUFrUUEsNENEbFBjLGdCQUFnQiwrRkFBRSxpQkFBaUIsK0VBQUUsY0FBYzs7MkZBVXBELGFBQWE7a0JBWnpCLFNBQVM7aUNBQ00sSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsY0FBYyxFQUFFLE9BQU8sQ0FBQyxZQUM3RCxTQUFTLGFBRVI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsY0FBYyxDQUFDO3lCQUMvQztxQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlJztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC9jb250YWluZXJzL3RlbXBsYXRlJztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L2RpcmVjdGl2ZXMva2MtY2xhc3MnO1xuaW1wb3J0IHsgQUNDT1VOVF9DTEFTU0VTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBBQ0NPVU5UX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3Rva2Vucy9pMThuJztcbmltcG9ydCB7IEtDX0FDQ09VTlRfQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHsgS2NTYW5pdGl6ZVBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcGlwZXMva2Mtc2FuaXRpemUnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MnO1xuaW1wb3J0IHR5cGUgeyBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2FjY291bnQnO1xuaW1wb3J0IHR5cGUgeyBJMThuIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC9pMThuJztcbmltcG9ydCB0eXBlIHsgS2NDb250ZXh0IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC9LY0NvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLY0NsYXNzRGlyZWN0aXZlLCBUZW1wbGF0ZUNvbXBvbmVudCwgS2NTYW5pdGl6ZVBpcGUsIE5nQ2xhc3NdLFxuICAgIHNlbGVjdG9yOiAna2Mtcm9vdCcsXG4gICAgdGVtcGxhdGVVcmw6ICd0b3RwLmNvbXBvbmVudC5odG1sJyxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVG90cENvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVG90cENvbXBvbmVudCBleHRlbmRzIENvbXBvbmVudFJlZmVyZW5jZSB7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihBQ0NPVU5UX0kxOE4pO1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICd0b3RwLmZ0bCcgfT4+KEtDX0FDQ09VTlRfQ09OVEVYVCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KEFDQ09VTlRfQ0xBU1NFUyk7XG59XG4iLCJAbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IG1vZGUgPSBrY0NvbnRleHQubW9kZTtcbkBsZXQgbWVzc2FnZXNQZXJGaWVsZCA9IGtjQ29udGV4dC5tZXNzYWdlc1BlckZpZWxkO1xuQGxldCBzdGF0ZUNoZWNrZXIgPSBrY0NvbnRleHQuc3RhdGVDaGVja2VyO1xuQGxldCB0b3RwID0ga2NDb250ZXh0LnRvdHA7XG5cbjxrYy1hY2NvdW50LXRlbXBsYXRlIFthY3RpdmVdPVwiJ3RvdHAnXCI+XG4gICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEwXCI+XG4gICAgICAgICAgICAgICAgPGgyPnt7IGkxOG4ubXNnU3RyKCdhdXRoZW50aWNhdG9yVGl0bGUnKSB9fTwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIEBpZiAodG90cC5vdHBDcmVkZW50aWFscy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGUgY29sLW1kLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdyZXF1aXJlZEZpZWxkcycpIH19XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICBAaWYgKHRvdHAuZW5hYmxlZCkge1xuICAgICAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtYm9yZGVyZWQgdGFibGUtc3RyaXBlZFwiPlxuICAgICAgICAgICAgICAgIDx0aGVhZD5cbiAgICAgICAgICAgICAgICAgICAgQGlmICh0b3RwLm90cENyZWRlbnRpYWxzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGggW2NvbFNwYW5dPVwiNFwiPnt7IGkxOG4ubXNnU3RyKCdjb25maWd1cmVBdXRoZW50aWNhdG9ycycpIH19PC90aD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBbY29sU3Bhbl09XCIzXCI+e3sgaTE4bi5tc2dTdHIoJ2NvbmZpZ3VyZUF1dGhlbnRpY2F0b3JzJykgfX08L3RoPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvdGhlYWQ+XG4gICAgICAgICAgICAgICAgPHRib2R5PlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChjcmVkZW50aWFsIG9mIHRvdHAub3RwQ3JlZGVudGlhbHM7IHRyYWNrIGNyZWRlbnRpYWw7IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInByb3ZpZGVyXCI+e3sgaTE4bi5tc2dTdHIoJ21vYmlsZScpIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKHRvdHAub3RwQ3JlZGVudGlhbHMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwcm92aWRlclwiPnt7IGNyZWRlbnRpYWwuaWQgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwcm92aWRlclwiPnt7IGNyZWRlbnRpYWwudXNlckxhYmVsIHx8ICcnIH19PC90ZD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFthY3Rpb25dPVwidXJsLnRvdHBVcmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0taW5saW5lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzdGF0ZUNoZWNrZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzdGF0ZUNoZWNrZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJzdGF0ZUNoZWNrZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwic3VibWl0QWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic3VibWl0QWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIkRlbGV0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjcmVkZW50aWFsSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjcmVkZW50aWFsSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjcmVkZW50aWFsLmlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidyZW1vdmUtbW9iaWxlLScgKyBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwicGZpY29uIHBmaWNvbi1kZWxldGVcIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC90Ym9keT5cbiAgICAgICAgICAgIDwvdGFibGU+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgICAgICA8b2wgaWQ9XCJrYy10b3RwLXNldHRpbmdzXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IGkxOG4ubXNnU3RyKCd0b3RwU3RlcDEnKSB9fTwvcD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsIGlkPVwia2MtdG90cC1zdXBwb3J0ZWQtYXBwc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGFwcCBvZiB0b3RwLnN1cHBvcnRlZEFwcGxpY2F0aW9uczsgdHJhY2sgYXBwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaT57eyBpMThuLmFkdmFuY2VkTXNnU3RyKGFwcCkgfX08L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAobW9kZSAmJiBtb2RlID09PSAnbWFudWFsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IGkxOG4ubXNnU3RyKCd0b3RwTWFudWFsU3RlcDInKSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gaWQ9XCJrYy10b3RwLXNlY3JldC1rZXlcIj57eyB0b3RwLnRvdHBTZWNyZXRFbmNvZGVkIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInRvdHAucXJVcmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJtb2RlLWJhcmNvZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cigndG90cFNjYW5CYXJjb2RlJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHA+e3sgaTE4bi5tc2dTdHIoJ3RvdHBNYW51YWxTdGVwMycpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGlkPVwia2MtdG90cC10eXBlXCI+e3sgaTE4bi5tc2dTdHIoJ3RvdHBUeXBlJykgfX06IHt7IGkxOG4ubXNnU3RyKCRhbnkoJ3RvdHAuJyArIHRvdHAucG9saWN5LnR5cGUpKSB9fTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBpZD1cImtjLXRvdHAtYWxnb3JpdGhtXCI+e3sgaTE4bi5tc2dTdHIoJ3RvdHBBbGdvcml0aG0nKSB9fToge3sgdG90cC5wb2xpY3kuZ2V0QWxnb3JpdGhtS2V5KCkgfX08L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgaWQ9XCJrYy10b3RwLWRpZ2l0c1wiPnt7IGkxOG4ubXNnU3RyKCd0b3RwRGlnaXRzJykgfX06IHt7IHRvdHAucG9saWN5LmRpZ2l0cyB9fTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodG90cC5wb2xpY3kudHlwZSA9PT0gJ3RvdHAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgaWQ9XCJrYy10b3RwLXBlcmlvZFwiPnt7IGkxOG4ubXNnU3RyKCd0b3RwSW50ZXJ2YWwnKSB9fToge3sgdG90cC5wb2xpY3kucGVyaW9kIH19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgaWQ9XCJrYy10b3RwLWNvdW50ZXJcIj57eyBpMThuLm1zZ1N0cigndG90cENvdW50ZXInKSB9fToge3sgdG90cC5wb2xpY3kuaW5pdGlhbENvdW50ZXIgfX08L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IGkxOG4ubXNnU3RyKCd0b3RwU3RlcDInKSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy10b3RwLXNlY3JldC1xci1jb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwgJyArIHRvdHAudG90cFNlY3JldFFyQ29kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJGaWd1cmU6IEJhcmNvZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInRvdHAubWFudWFsVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibW9kZS1tYW51YWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cigndG90cFVuYWJsZVRvU2NhbicpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IGkxOG4ubXNnU3RyKCd0b3RwU3RlcDMnKSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxwPnt7IGkxOG4ubXNnU3RyKCd0b3RwU3RlcDNEZXZpY2VOYW1lJykgfX08L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgPC9vbD5cbiAgICAgICAgICAgICAgICA8aHIgLz5cbiAgICAgICAgICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgICAgICAgICBbYWN0aW9uXT1cInVybC50b3RwVXJsXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwia2MtdG90cC1zZXR0aW5ncy1mb3JtXCJcbiAgICAgICAgICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzdGF0ZUNoZWNrZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInN0YXRlQ2hlY2tlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RhdGVDaGVja2VyXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMiBjb2wtbWQtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJ0b3RwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250cm9sLWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdhdXRoZW50aWNhdG9yQ29kZScpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMCBjb2wtbWQtMTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInRvdHBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidG90cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0lucHV0Q2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3RvdHAnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3RvdHAnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpbnB1dC1lcnJvci1vdHAtY29kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEVycm9yTWVzc2FnZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlc1BlckZpZWxkLmdldCgndG90cCcpIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidG90cFNlY3JldFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInRvdHBTZWNyZXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0b3RwLnRvdHBTZWNyZXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAobW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJtb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm1vZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTIgY29sLW1kLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwidXNlckxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjTGFiZWxDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3RvdHBEZXZpY2VOYW1lJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodG90cC5vdHBDcmVkZW50aWFscy5sZW5ndGggPj0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTAgY29sLW1kLTEwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ1c2VyTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwidXNlckxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwibWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndXNlckxhYmVsJylcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCd1c2VyTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpbnB1dC1lcnJvci1vdHAtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRFcnJvck1lc3NhZ2VDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwibWVzc2FnZXNQZXJGaWVsZC5nZXQoJ3VzZXJMYWJlbCcpIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1mb3JtLWJ1dHRvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1Hcm91cENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInNhdmVUT1RQQnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdkb1NhdmUnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25EZWZhdWx0Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNhbmNlbFRPVFBCdG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic3VibWl0QWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJDYW5jZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2RvQ2FuY2VsJykgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Zvcm0+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvbmctY29udGFpbmVyPlxuPC9rYy1hY2NvdW50LXRlbXBsYXRlPlxuIl19
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG90cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC9wYWdlcy90b3RwL3RvdHAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vc3JjL2FjY291bnQvcGFnZXMvdG90cC90b3RwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDOUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDckYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFHcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUNwRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOztBQWVsRixNQUFNLE9BQU8sYUFBYyxTQUFRLGtCQUFrQjtJQVpyRDs7UUFhSSxTQUFJLEdBQUcsTUFBTSxDQUFPLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxNQUFNLENBQTZDLGtCQUFrQixDQUFDLENBQUM7UUFDMUUsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsZUFBZSxDQUFDLENBQUM7UUFDOUUsV0FBTSxHQUFHLE1BQU0sQ0FBQztLQUNuQjs4R0FOWSxhQUFhO2tHQUFiLGFBQWEsc0RBUFg7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGFBQWEsQ0FBQzthQUMvQztTQUNKLGlEQ3hCTCxvblVBOFBBLDRDRDlPYyxnQkFBZ0IsMEZBQXFCLGNBQWM7OzJGQVVwRCxhQUFhO2tCQVp6QixTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxPQUFPLENBQUMsWUFDN0QsU0FBUyxhQUVSO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQzt5QkFDL0M7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZSc7XG5pbXBvcnQgeyBUZW1wbGF0ZUNvbXBvbmVudCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvY29udGFpbmVycy90ZW1wbGF0ZSc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC9kaXJlY3RpdmVzL2tjLWNsYXNzJztcbmltcG9ydCB0eXBlIHsgSTE4biB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvaTE4bic7XG5pbXBvcnQgdHlwZSB7IEtjQ29udGV4dCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvS2NDb250ZXh0JztcbmltcG9ydCB7IEFDQ09VTlRfQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvdG9rZW5zL2NsYXNzZXMnO1xuaW1wb3J0IHsgQUNDT1VOVF9JMThOIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC90b2tlbnMvaTE4bic7XG5pbXBvcnQgeyBLQ19BQ0NPVU5UX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3Rva2Vucy9rYy1jb250ZXh0JztcbmltcG9ydCB7IEtjU2FuaXRpemVQaXBlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3BpcGVzL2tjLXNhbml0aXplJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzJztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9hY2NvdW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbS2NDbGFzc0RpcmVjdGl2ZSwgVGVtcGxhdGVDb21wb25lbnQsIEtjU2FuaXRpemVQaXBlLCBOZ0NsYXNzXSxcbiAgICBzZWxlY3RvcjogJ2tjLXRvdHAnLFxuICAgIHRlbXBsYXRlVXJsOiAndG90cC5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENvbXBvbmVudFJlZmVyZW5jZSxcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFRvdHBDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFRvdHBDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGkxOG4gPSBpbmplY3Q8STE4bj4oQUNDT1VOVF9JMThOKTtcbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAndG90cC5mdGwnIH0+PihLQ19BQ0NPVU5UX0NPTlRFWFQpO1xuICAgIG92ZXJyaWRlIGRvVXNlRGVmYXVsdENzcyA9IGluamVjdDxib29sZWFuPihVU0VfREVGQVVMVF9DU1MpO1xuICAgIG92ZXJyaWRlIGNsYXNzZXMgPSBpbmplY3Q8UGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+PihBQ0NPVU5UX0NMQVNTRVMpO1xuICAgIGFjdGl2ZSA9ICd0b3RwJztcbn1cbiIsIkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbkBsZXQgbW9kZSA9IGtjQ29udGV4dC5tb2RlO1xuQGxldCBtZXNzYWdlc1BlckZpZWxkID0ga2NDb250ZXh0Lm1lc3NhZ2VzUGVyRmllbGQ7XG5AbGV0IHN0YXRlQ2hlY2tlciA9IGtjQ29udGV4dC5zdGF0ZUNoZWNrZXI7XG5AbGV0IHRvdHAgPSBrY0NvbnRleHQudG90cDtcblxuPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTBcIj5cbiAgICAgICAgPGgyPnt7IGkxOG4ubXNnU3RyKCdhdXRoZW50aWNhdG9yVGl0bGUnKSB9fTwvaDI+XG4gICAgPC9kaXY+XG4gICAgQGlmICh0b3RwLm90cENyZWRlbnRpYWxzLmxlbmd0aCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwic3VidGl0bGUgY29sLW1kLTJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3JlcXVpcmVkRmllbGRzJykgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG5AaWYgKHRvdHAuZW5hYmxlZCkge1xuICAgIDx0YWJsZSBjbGFzcz1cInRhYmxlIHRhYmxlLWJvcmRlcmVkIHRhYmxlLXN0cmlwZWRcIj5cbiAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgQGlmICh0b3RwLm90cENyZWRlbnRpYWxzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBbY29sU3Bhbl09XCI0XCI+e3sgaTE4bi5tc2dTdHIoJ2NvbmZpZ3VyZUF1dGhlbnRpY2F0b3JzJykgfX08L3RoPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8dHI+XG4gICAgICAgICAgICAgICAgICAgIDx0aCBbY29sU3Bhbl09XCIzXCI+e3sgaTE4bi5tc2dTdHIoJ2NvbmZpZ3VyZUF1dGhlbnRpY2F0b3JzJykgfX08L3RoPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvdGhlYWQ+XG4gICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIEBmb3IgKGNyZWRlbnRpYWwgb2YgdG90cC5vdHBDcmVkZW50aWFsczsgdHJhY2sgY3JlZGVudGlhbDsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgPHRyPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwcm92aWRlclwiPnt7IGkxOG4ubXNnU3RyKCdtb2JpbGUnKSB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAodG90cC5vdHBDcmVkZW50aWFscy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwcm92aWRlclwiPnt7IGNyZWRlbnRpYWwuaWQgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInByb3ZpZGVyXCI+e3sgY3JlZGVudGlhbC51c2VyTGFiZWwgfHwgJycgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJhY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWlubGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2FjdGlvbl09XCJ1cmwudG90cFVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cInN0YXRlQ2hlY2tlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzdGF0ZUNoZWNrZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RhdGVDaGVja2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJzdWJtaXRBY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwic3VibWl0QWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJEZWxldGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNyZWRlbnRpYWxJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJjcmVkZW50aWFsSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY3JlZGVudGlhbC5pZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIidyZW1vdmUtbW9iaWxlLScgKyBpbmRleFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cInBmaWNvbiBwZmljb24tZGVsZXRlXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgICAgICAgICA8L3RkPlxuICAgICAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvdGJvZHk+XG4gICAgPC90YWJsZT5cbn0gQGVsc2Uge1xuICAgIDxkaXY+XG4gICAgICAgIDxociAvPlxuICAgICAgICA8b2wgaWQ9XCJrYy10b3RwLXNldHRpbmdzXCI+XG4gICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgPHA+e3sgaTE4bi5tc2dTdHIoJ3RvdHBTdGVwMScpIH19PC9wPlxuXG4gICAgICAgICAgICAgICAgPHVsIGlkPVwia2MtdG90cC1zdXBwb3J0ZWQtYXBwc1wiPlxuICAgICAgICAgICAgICAgICAgICBAZm9yIChhcHAgb2YgdG90cC5zdXBwb3J0ZWRBcHBsaWNhdGlvbnM7IHRyYWNrIGFwcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPnt7IGkxOG4uYWR2YW5jZWRNc2dTdHIoYXBwKSB9fTwvbGk+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIEBpZiAobW9kZSAmJiBtb2RlID09PSAnbWFudWFsJykge1xuICAgICAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICAgICAgPHA+e3sgaTE4bi5tc2dTdHIoJ3RvdHBNYW51YWxTdGVwMicpIH19PC9wPlxuICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGlkPVwia2MtdG90cC1zZWNyZXQta2V5XCI+e3sgdG90cC50b3RwU2VjcmV0RW5jb2RlZCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICA8cD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJtb2RlLWJhcmNvZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtocmVmXT1cInRvdHAucXJVcmxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCd0b3RwU2NhbkJhcmNvZGUnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgIDxwPnt7IGkxOG4ubXNnU3RyKCd0b3RwTWFudWFsU3RlcDMnKSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGlkPVwia2MtdG90cC10eXBlXCI+e3sgaTE4bi5tc2dTdHIoJ3RvdHBUeXBlJykgfX06IHt7IGkxOG4ubXNnU3RyKCRhbnkoJ3RvdHAuJyArIHRvdHAucG9saWN5LnR5cGUpKSB9fTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bGkgaWQ9XCJrYy10b3RwLWFsZ29yaXRobVwiPnt7IGkxOG4ubXNnU3RyKCd0b3RwQWxnb3JpdGhtJykgfX06IHt7IHRvdHAucG9saWN5LmdldEFsZ29yaXRobUtleSgpIH19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBpZD1cImtjLXRvdHAtZGlnaXRzXCI+e3sgaTE4bi5tc2dTdHIoJ3RvdHBEaWdpdHMnKSB9fToge3sgdG90cC5wb2xpY3kuZGlnaXRzIH19PC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAodG90cC5wb2xpY3kudHlwZSA9PT0gJ3RvdHAnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGlkPVwia2MtdG90cC1wZXJpb2RcIj57eyBpMThuLm1zZ1N0cigndG90cEludGVydmFsJykgfX06IHt7IHRvdHAucG9saWN5LnBlcmlvZCB9fTwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgaWQ9XCJrYy10b3RwLWNvdW50ZXJcIj57eyBpMThuLm1zZ1N0cigndG90cENvdW50ZXInKSB9fToge3sgdG90cC5wb2xpY3kuaW5pdGlhbENvdW50ZXIgfX08L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8bGk+XG4gICAgICAgICAgICAgICAgICAgIDxwPnt7IGkxOG4ubXNnU3RyKCd0b3RwU3RlcDInKSB9fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy10b3RwLXNlY3JldC1xci1jb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJGaWd1cmU6IEJhcmNvZGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwiJ2RhdGE6aW1hZ2UvcG5nO2Jhc2U2NCwgJyArIHRvdHAudG90cFNlY3JldFFyQ29kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgIDxwPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm1vZGUtbWFudWFsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJ0b3RwLm1hbnVhbFVybFwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3RvdHBVbmFibGVUb1NjYW4nKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxsaT5cbiAgICAgICAgICAgICAgICA8cD57eyBpMThuLm1zZ1N0cigndG90cFN0ZXAzJykgfX08L3A+XG4gICAgICAgICAgICAgICAgPHA+e3sgaTE4bi5tc2dTdHIoJ3RvdHBTdGVwM0RldmljZU5hbWUnKSB9fTwvcD5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvb2w+XG4gICAgICAgIDxociAvPlxuICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgaWQ9XCJrYy10b3RwLXNldHRpbmdzLWZvcm1cIlxuICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgICAgICBbYWN0aW9uXT1cInVybC50b3RwVXJsXCJcbiAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1DbGFzcydcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICBpZD1cInN0YXRlQ2hlY2tlclwiXG4gICAgICAgICAgICAgICAgbmFtZT1cInN0YXRlQ2hlY2tlclwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInN0YXRlQ2hlY2tlclwiXG4gICAgICAgICAgICAvPlxuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTIgY29sLW1kLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJ0b3RwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29udHJvbC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCdhdXRoZW50aWNhdG9yQ29kZScpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTAgY29sLW1kLTEwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ0b3RwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0b3RwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Db21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dENsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWludmFsaWRdPVwibWVzc2FnZXNQZXJGaWVsZC5leGlzdHNFcnJvcigndG90cCcpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCd0b3RwJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpbnB1dC1lcnJvci1vdHAtY29kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEVycm9yTWVzc2FnZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlc1BlckZpZWxkLmdldCgndG90cCcpIHwga2NTYW5pdGl6ZTogJ2h0bWwnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwidG90cFNlY3JldFwiXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ0b3RwU2VjcmV0XCJcbiAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRvdHAudG90cFNlY3JldFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICBAaWYgKG1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiaGlkZGVuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibW9kZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwibW9kZVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0yIGNvbC1tZC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwidXNlckxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0xhYmVsQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ3RvdHBEZXZpY2VOYW1lJykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgQGlmICh0b3RwLm90cENyZWRlbnRpYWxzLmxlbmd0aCA+PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTAgY29sLW1kLTEwXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ1c2VyTGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInVzZXJMYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRDbGFzcydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cIm1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3VzZXJMYWJlbCcpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgQGlmIChtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCd1c2VyTGFiZWwnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlucHV0LWVycm9yLW90cC1sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NJbnB1dEVycm9yTWVzc2FnZUNsYXNzJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJtZXNzYWdlc1BlckZpZWxkLmdldCgndXNlckxhYmVsJykgfCBrY1Nhbml0aXplOiAnaHRtbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBpZD1cImtjLWZvcm0tYnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ0ZXh0LXJpZ2h0XCJcbiAgICAgICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjSW5wdXRXcmFwcGVyQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cInNhdmVUT1RQQnRuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIlsna2NCdXR0b25DbGFzcycsICdrY0J1dHRvblByaW1hcnlDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaTE4bi5tc2dTdHIoJ2RvU2F2ZScpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImNhbmNlbFRPVFBCdG5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cInN1Ym1pdEFjdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cIkNhbmNlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25EZWZhdWx0Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignZG9DYW5jZWwnKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9kaXY+XG59XG4iXX0=
|
|
@@ -8,6 +8,7 @@ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css
|
|
|
8
8
|
export const provideKeycloakifyAngularAccount = (config) => makeEnvironmentProviders([
|
|
9
9
|
{
|
|
10
10
|
provide: KC_ACCOUNT_CONTEXT,
|
|
11
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
11
12
|
// @ts-ignore
|
|
12
13
|
useValue: window.kcContext
|
|
13
14
|
},
|
|
@@ -45,4 +46,4 @@ export const provideKeycloakifyAngularAccount = (config) => makeEnvironmentProvi
|
|
|
45
46
|
{ provide: USE_DEFAULT_CSS, useValue: config?.doUseDefaultCss ?? true },
|
|
46
47
|
{ provide: ACCOUNT_CLASSES, useValue: config?.classes ?? {} }
|
|
47
48
|
]);
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvYWNjb3VudC9wcm92aWRlcnMva2V5Y2xvYWtpZnktYW5ndWxhci9rZXljbG9ha2lmeS1hbmd1bGFyLnByb3ZpZGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDcEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBY2xGLE1BQU0sQ0FBQyxNQUFNLGdDQUFnQyxHQUFHLENBQzVDLE1BQXVDLEVBQ3pDLEVBQUUsQ0FDQSx3QkFBd0IsQ0FBQztJQUNyQjtRQUNJLE9BQU8sRUFBRSxrQkFBa0I7UUFDM0IsNkRBQTZEO1FBQzdELGFBQWE7UUFDYixRQUFRLEVBQUUsTUFBTSxDQUFDLFNBQVM7S0FDN0I7SUFDRDtRQUNJLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFVBQVUsRUFBRSxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUMvQixPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDO0tBQ25CO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxDQUFDLFdBQXdCLEVBQUUsU0FBb0IsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUUvQixNQUFNLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsT0FBTyxDQUFDO2dCQUM3QyxTQUFTO2FBQ1osQ0FBQyxDQUFDO1lBQ0gsSUFBSSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQWMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNyRSxJQUFJLHNCQUFzQixFQUFFLENBQUM7Z0JBQ3pCLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMzQixXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLGtCQUFrQixDQUFDO0tBQzFDO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsWUFBWTtRQUNyQixVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSTtRQUMxRCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7S0FDdEI7SUFDRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxlQUFlLElBQUksSUFBSSxFQUFFO0lBQ3ZFLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUU7Q0FDaEUsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBMT0NBTEVfSUQsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3NlcnZpY2VzL2kxOG4nO1xuaW1wb3J0IHsgQUNDT1VOVF9DTEFTU0VTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC90b2tlbnMvY2xhc3Nlcyc7XG5pbXBvcnQgeyBBQ0NPVU5UX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3Rva2Vucy9pMThuJztcbmltcG9ydCB7IEtDX0FDQ09VTlRfQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvdG9rZW5zL2tjLWNvbnRleHQnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MnO1xuaW1wb3J0IHsgdHlwZSBLY0NvbnRleHRMaWtlIH0gZnJvbSAna2V5Y2xvYWtpZnkvYWNjb3VudC9pMThuL25vSnN4JztcbmltcG9ydCB0eXBlIHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9hY2NvdW50L2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHR5cGUgeyBLY0NvbnRleHQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L0tjQ29udGV4dCc7XG5cbmV4cG9ydCB0eXBlIEtleWNsb2FraWZ5QW5ndWxhckFjY291bnRDb25maWcgPSB7XG4gICAgZG9Vc2VEZWZhdWx0Q3NzPzogYm9vbGVhbjtcbiAgICBjbGFzc2VzPzogeyBba2V5IGluIENsYXNzS2V5XT86IHN0cmluZyB9O1xuICAgIGdldEkxOG46IChwYXJhbXM6IHsga2NDb250ZXh0OiBLY0NvbnRleHRMaWtlIH0pID0+IHtcbiAgICAgICAgaTE4bjogdW5rbm93bjtcbiAgICAgICAgcHJJMThuX2N1cnJlbnRMYW5ndWFnZTogUHJvbWlzZTx1bmtub3duPiB8IHVuZGVmaW5lZDtcbiAgICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHByb3ZpZGVLZXljbG9ha2lmeUFuZ3VsYXJBY2NvdW50ID0gKFxuICAgIGNvbmZpZzogS2V5Y2xvYWtpZnlBbmd1bGFyQWNjb3VudENvbmZpZ1xuKSA9PlxuICAgIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyhbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEtDX0FDQ09VTlRfQ09OVEVYVCxcbiAgICAgICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHVzZVZhbHVlOiB3aW5kb3cua2NDb250ZXh0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IExPQ0FMRV9JRCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChkb2N1bWVudDogRG9jdW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPz8gJ2VuJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZXBzOiBbRE9DVU1FTlRdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSwga2NDb250ZXh0OiBLY0NvbnRleHQpID0+IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBnZXRJMThuID0gY29uZmlnLmdldEkxOG47XG5cbiAgICAgICAgICAgICAgICBjb25zdCB7IGkxOG4sIHBySTE4bl9jdXJyZW50TGFuZ3VhZ2UgfSA9IGdldEkxOG4oe1xuICAgICAgICAgICAgICAgICAgICBrY0NvbnRleHRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBsZXQgaTE4blByb21pc2UgPSBuZXcgUHJvbWlzZTx0eXBlb2YgaTE4bj4ocmVzb2x2ZSA9PiByZXNvbHZlKGkxOG4pKTtcbiAgICAgICAgICAgICAgICBpZiAocHJJMThuX2N1cnJlbnRMYW5ndWFnZSkge1xuICAgICAgICAgICAgICAgICAgICBpMThuUHJvbWlzZSA9IHBySTE4bl9jdXJyZW50TGFuZ3VhZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpMThuUHJvbWlzZS50aGVuKGkxOG4gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpMThuU2VydmljZS5pMThuID0gaTE4bjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVwczogW0kxOG5TZXJ2aWNlLCBLQ19BQ0NPVU5UX0NPTlRFWFRdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFDQ09VTlRfSTE4TixcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChpMThuU2VydmljZTogSTE4blNlcnZpY2UpID0+IGkxOG5TZXJ2aWNlLmkxOG4sXG4gICAgICAgICAgICBkZXBzOiBbSTE4blNlcnZpY2VdXG4gICAgICAgIH0sXG4gICAgICAgIHsgcHJvdmlkZTogVVNFX0RFRkFVTFRfQ1NTLCB1c2VWYWx1ZTogY29uZmlnPy5kb1VzZURlZmF1bHRDc3MgPz8gdHJ1ZSB9LFxuICAgICAgICB7IHByb3ZpZGU6IEFDQ09VTlRfQ0xBU1NFUywgdXNlVmFsdWU6IGNvbmZpZz8uY2xhc3NlcyA/PyB7fSB9XG4gICAgXSk7XG4iXX0=
|
package/esm2022/account/services/account-resource-injector/account-resource-injector.service.mjs
CHANGED
|
@@ -25,10 +25,10 @@ export class AccountResourceInjectorService {
|
|
|
25
25
|
insertAdditionalScripts(scripts) {
|
|
26
26
|
scripts.map(script => this.resourceInjectorService.createScript(script));
|
|
27
27
|
}
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
29
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AccountResourceInjectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
29
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AccountResourceInjectorService, providedIn: 'root' }); }
|
|
30
30
|
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AccountResourceInjectorService, decorators: [{
|
|
32
32
|
type: Injectable,
|
|
33
33
|
args: [{
|
|
34
34
|
providedIn: 'root'
|
|
@@ -2,10 +2,10 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
/** INTERNAL: DO NOT IMPORT THIS */
|
|
4
4
|
export class I18nService {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
6
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
5
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: I18nService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
6
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: I18nService, providedIn: 'root' }); }
|
|
7
7
|
}
|
|
8
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: I18nService, decorators: [{
|
|
9
9
|
type: Injectable,
|
|
10
10
|
args: [{ providedIn: 'root' }]
|
|
11
11
|
}] });
|
|
@@ -16,10 +16,10 @@ export class AttributesDirective {
|
|
|
16
16
|
}
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
20
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AttributesDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
20
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.7", type: AttributesDirective, isStandalone: true, selector: "[kcAttributes]", inputs: { kcAttributes: { classPropertyName: "kcAttributes", publicName: "kcAttributes", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
|
|
21
21
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: AttributesDirective, decorators: [{
|
|
23
23
|
type: Directive,
|
|
24
24
|
args: [{ selector: '[kcAttributes]', standalone: true }]
|
|
25
25
|
}], ctorParameters: () => [] });
|
|
@@ -7,10 +7,10 @@ export class InputTypePipe {
|
|
|
7
7
|
}
|
|
8
8
|
return inputType ?? 'text';
|
|
9
9
|
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
11
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: InputTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
11
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: InputTypePipe, isStandalone: true, name: "inputType" }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: InputTypePipe, decorators: [{
|
|
14
14
|
type: Pipe,
|
|
15
15
|
args: [{
|
|
16
16
|
name: 'inputType',
|
|
@@ -7,10 +7,10 @@ export class IsArrayWithEmptyObjectPipe {
|
|
|
7
7
|
typeof variable[0] === 'object' &&
|
|
8
8
|
Object.keys(variable[0]).length === 0);
|
|
9
9
|
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
11
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: IsArrayWithEmptyObjectPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
11
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: IsArrayWithEmptyObjectPipe, isStandalone: true, name: "isArrayWithEmptyObject" }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: IsArrayWithEmptyObjectPipe, decorators: [{
|
|
14
14
|
type: Pipe,
|
|
15
15
|
args: [{
|
|
16
16
|
name: 'isArrayWithEmptyObject',
|
|
@@ -19,10 +19,10 @@ export class KcSanitizePipe {
|
|
|
19
19
|
throw new Error(`Invalid safe type specified: ${type}`);
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
23
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: KcSanitizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
23
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: KcSanitizePipe, isStandalone: true, name: "kcSanitize" }); }
|
|
24
24
|
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: KcSanitizePipe, decorators: [{
|
|
26
26
|
type: Pipe,
|
|
27
27
|
args: [{ name: 'kcSanitize', standalone: true }]
|
|
28
28
|
}] });
|
|
@@ -8,10 +8,10 @@ export class ToArrayPipe {
|
|
|
8
8
|
}
|
|
9
9
|
return emptyWhenString ? [] : [value];
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
12
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ToArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
12
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: ToArrayPipe, isStandalone: true, name: "toArray" }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ToArrayPipe, decorators: [{
|
|
15
15
|
type: Pipe,
|
|
16
16
|
args: [{
|
|
17
17
|
name: 'toArray',
|
|
@@ -7,10 +7,10 @@ export class ToNumberPipe {
|
|
|
7
7
|
throw new Error('number is NaN');
|
|
8
8
|
return number;
|
|
9
9
|
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
11
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.
|
|
10
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ToNumberPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
11
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.7", ngImport: i0, type: ToNumberPipe, isStandalone: true, name: "toNumber" }); }
|
|
12
12
|
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
13
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ToNumberPipe, decorators: [{
|
|
14
14
|
type: Pipe,
|
|
15
15
|
args: [{
|
|
16
16
|
name: 'toNumber',
|
|
@@ -42,10 +42,10 @@ export class ResourceInjectorService {
|
|
|
42
42
|
script.id = id;
|
|
43
43
|
this.renderer.appendChild(document.head, script);
|
|
44
44
|
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.
|
|
46
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ResourceInjectorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
46
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ResourceInjectorService, providedIn: 'root' }); }
|
|
47
47
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: ResourceInjectorService, decorators: [{
|
|
49
49
|
type: Injectable,
|
|
50
50
|
args: [{
|
|
51
51
|
providedIn: 'root'
|