@keycloakify/angular 0.0.1-rc.0 → 0.0.1-rc.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/account/DefaultPage.d.ts +38 -0
- package/account/DefaultPage.js +34 -0
- package/account/KcContext.d.ts +1 -0
- package/account/KcContext.js +2 -0
- package/account/classes/component-reference.class.d.ts +6 -0
- package/account/classes/component-reference.class.js +3 -0
- package/account/containers/template.component.d.ts +26 -0
- package/account/containers/template.component.js +66 -0
- package/account/directives/kc-class.directive.d.ts +26 -0
- package/account/directives/kc-class.directive.js +137 -0
- package/account/i18n.d.ts +4 -0
- package/account/i18n.js +2 -0
- package/account/pages/account/account.component.d.ts +14 -0
- package/account/pages/account/account.component.js +39 -0
- package/account/pages/applications/applications.component.d.ts +13 -0
- package/account/pages/applications/applications.component.js +37 -0
- package/account/pages/federatedIdentity/federatedIdentity.component.d.ts +13 -0
- package/account/pages/federatedIdentity/federatedIdentity.component.js +36 -0
- package/account/pages/log/log.component.d.ts +13 -0
- package/account/pages/log/log.component.js +36 -0
- package/account/pages/password/password.component.d.ts +28 -0
- package/account/pages/password/password.component.js +107 -0
- package/account/pages/sessions/sessions.component.d.ts +13 -0
- package/account/pages/sessions/sessions.component.js +36 -0
- package/account/pages/totp/totp.component.d.ts +13 -0
- package/account/pages/totp/totp.component.js +37 -0
- package/account/providers/keycloakify-angular.providers.d.ts +15 -0
- package/account/providers/keycloakify-angular.providers.js +48 -0
- package/account/services/i18n.service.d.ts +6 -0
- package/account/services/i18n.service.js +12 -0
- package/account/services/resource-injector.service.d.ts +10 -0
- package/account/services/resource-injector.service.js +37 -0
- package/account/tokens/classes.token.d.ts +16 -0
- package/account/tokens/classes.token.js +3 -0
- package/account/tokens/i18n.token.d.ts +2 -0
- package/account/tokens/i18n.token.js +3 -0
- package/account/tokens/kc-context.token.d.ts +3 -0
- package/account/tokens/kc-context.token.js +3 -0
- package/lib/directives/attributes.directive.d.ts +8 -0
- package/lib/directives/attributes.directive.js +26 -0
- package/lib/models/script.model.js +1 -1
- package/lib/pipes/input-type.pipe.d.ts +7 -0
- package/lib/pipes/input-type.pipe.js +20 -0
- package/lib/pipes/is-array-with-empty-object.pipe.d.ts +7 -0
- package/lib/pipes/is-array-with-empty-object.pipe.js +20 -0
- package/lib/pipes/kc-sanitize.pipe.d.ts +9 -0
- package/lib/pipes/kc-sanitize.pipe.js +29 -0
- package/lib/pipes/to-array.pipe.d.ts +7 -0
- package/lib/pipes/to-array.pipe.js +21 -0
- package/lib/pipes/to-number.pipe.d.ts +7 -0
- package/lib/pipes/to-number.pipe.js +20 -0
- package/lib/services/resource-injector.service.d.ts +5 -2
- package/lib/services/resource-injector.service.js +19 -22
- package/lib/tokens/use-default-css.token.d.ts +2 -0
- package/lib/tokens/use-default-css.token.js +3 -0
- package/login/DefaultPage.d.ts +28 -28
- package/login/DefaultPage.js +74 -74
- package/login/KcContext.d.ts +1 -1
- package/login/KcContext.js +1 -1
- package/login/classes/component-reference.class.d.ts +1 -1
- package/login/classes/component-reference.class.js +1 -1
- package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.d.ts +7 -2
- package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.js +19 -36
- package/login/components/field-errors/field-errors.component.d.ts +7 -4
- package/login/components/field-errors/field-errors.component.js +23 -35
- package/login/components/group-label/group-label.component.d.ts +8 -3
- package/login/components/group-label/group-label.component.js +29 -41
- package/login/components/input-field-by-type/input-field-by-type.component.d.ts +7 -4
- package/login/components/input-field-by-type/input-field-by-type.component.js +33 -50
- package/login/components/input-tag/input-tag.component.d.ts +9 -4
- package/login/components/input-tag/input-tag.component.js +47 -64
- package/login/components/input-tag-selects/input-tag-selects.component.d.ts +11 -6
- package/login/components/input-tag-selects/input-tag-selects.component.js +41 -56
- package/login/components/logout-other-sessions/logout-other-sessions.component.d.ts +7 -2
- package/login/components/logout-other-sessions/logout-other-sessions.component.js +25 -36
- package/login/components/password-wrapper/password-wrapper.component.d.ts +8 -3
- package/login/components/password-wrapper/password-wrapper.component.js +27 -38
- package/login/components/select-tag/select-tag.component.d.ts +9 -4
- package/login/components/select-tag/select-tag.component.js +32 -47
- package/login/components/textarea-tag/textarea-tag.component.d.ts +7 -4
- package/login/components/textarea-tag/textarea-tag.component.js +28 -42
- package/login/components/user-profile-form-fields/user-profile-form-fields.component.d.ts +11 -5
- package/login/components/user-profile-form-fields/user-profile-form-fields.component.js +45 -57
- package/login/containers/template.component.d.ts +11 -8
- package/login/containers/template.component.js +36 -42
- package/login/directives/kc-class.directive.d.ts +5 -2
- package/login/directives/kc-class.directive.js +35 -43
- package/login/i18n.d.ts +2 -2
- package/login/i18n.js +1 -1
- package/login/pages/code/code.component.d.ts +8 -3
- package/login/pages/code/code.component.js +28 -31
- package/login/pages/delete-account-confirm/delete-account-confirm.component.d.ts +8 -3
- package/login/pages/delete-account-confirm/delete-account-confirm.component.js +28 -31
- package/login/pages/delete-credential/delete-credential.component.d.ts +8 -3
- package/login/pages/delete-credential/delete-credential.component.js +28 -31
- package/login/pages/error/error.component.d.ts +8 -3
- package/login/pages/error/error.component.js +28 -31
- package/login/pages/frontchannel-logout/frontchannel-logout.component.d.ts +9 -4
- package/login/pages/frontchannel-logout/frontchannel-logout.component.js +28 -31
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +13 -3
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.js +40 -41
- package/login/pages/info/info.component.d.ts +8 -9
- package/login/pages/info/info.component.js +31 -43
- package/login/pages/login/login.component.d.ts +8 -3
- package/login/pages/login/login.component.js +33 -47
- package/login/pages/login-config-totp/login-config-totp.component.d.ts +8 -3
- package/login/pages/login-config-totp/login-config-totp.component.js +31 -42
- package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.d.ts +8 -3
- package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.js +28 -31
- package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.d.ts +8 -3
- package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.js +28 -31
- package/login/pages/login-idp-link-email/login-idp-link-email.component.d.ts +8 -3
- package/login/pages/login-idp-link-email/login-idp-link-email.component.js +28 -31
- package/login/pages/login-oauth-grant/login-oauth-grant.component.d.ts +8 -3
- package/login/pages/login-oauth-grant/login-oauth-grant.component.js +29 -33
- package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.d.ts +8 -3
- package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.js +28 -31
- package/login/pages/login-otp/login-otp.component.d.ts +8 -3
- package/login/pages/login-otp/login-otp.component.js +30 -33
- package/login/pages/login-page-expired/login-page-expired.component.d.ts +8 -3
- package/login/pages/login-page-expired/login-page-expired.component.js +27 -30
- package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.d.ts +9 -6
- package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.js +37 -44
- package/login/pages/login-password/login-password.component.d.ts +8 -3
- package/login/pages/login-password/login-password.component.js +31 -40
- package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.d.ts +8 -3
- package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.js +30 -38
- package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.d.ts +8 -3
- package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.js +30 -33
- package/login/pages/login-reset-otp/login-reset-otp.component.d.ts +8 -3
- package/login/pages/login-reset-otp/login-reset-otp.component.js +29 -32
- package/login/pages/login-reset-password/login-reset-password.component.d.ts +8 -3
- package/login/pages/login-reset-password/login-reset-password.component.js +30 -33
- package/login/pages/login-update-password/login-update-password.component.d.ts +8 -3
- package/login/pages/login-update-password/login-update-password.component.js +32 -42
- package/login/pages/login-update-profile/login-update-profile.component.d.ts +13 -3
- package/login/pages/login-update-profile/login-update-profile.component.js +39 -39
- package/login/pages/login-username/login-username.component.d.ts +8 -3
- package/login/pages/login-username/login-username.component.js +32 -45
- package/login/pages/login-verify-email/login-verify-email.component.d.ts +8 -3
- package/login/pages/login-verify-email/login-verify-email.component.js +28 -31
- package/login/pages/login-x509-info/login-x509-info.component.d.ts +8 -3
- package/login/pages/login-x509-info/login-x509-info.component.js +28 -31
- package/login/pages/logout-confirm/logout-confirm.component.d.ts +8 -3
- package/login/pages/logout-confirm/logout-confirm.component.js +28 -31
- package/login/pages/register/register.component.d.ts +13 -3
- package/login/pages/register/register.component.js +41 -48
- package/login/pages/saml-post-form/saml-post-form.component.d.ts +9 -4
- package/login/pages/saml-post-form/saml-post-form.component.js +32 -35
- package/login/pages/select-authenticator/select-authenticator.component.d.ts +8 -3
- package/login/pages/select-authenticator/select-authenticator.component.js +29 -39
- package/login/pages/terms/terms.component.d.ts +8 -3
- package/login/pages/terms/terms.component.js +28 -31
- package/login/pages/update-email/update-email.component.d.ts +13 -3
- package/login/pages/update-email/update-email.component.js +40 -41
- package/login/pages/webauthn-authenticate/webauthn-authenticate.component.d.ts +9 -6
- package/login/pages/webauthn-authenticate/webauthn-authenticate.component.js +37 -50
- package/login/pages/webauthn-error/webauthn-error.component.d.ts +8 -3
- package/login/pages/webauthn-error/webauthn-error.component.js +32 -40
- package/login/pages/webauthn-register/webauthn-register.component.d.ts +9 -6
- package/login/pages/webauthn-register/webauthn-register.component.js +36 -46
- package/login/providers/keycloakify-angular.providers.d.ts +16 -0
- package/login/providers/keycloakify-angular.providers.js +53 -0
- package/login/services/i18n.service.d.ts +6 -0
- package/login/services/i18n.service.js +12 -0
- package/login/services/login-resource-injector.service.d.ts +4 -1
- package/login/services/login-resource-injector.service.js +22 -25
- package/login/services/submit.service.d.ts +9 -0
- package/login/services/submit.service.js +20 -0
- package/login/services/user-profile-form.service.d.ts +16 -12
- package/login/services/user-profile-form.service.js +293 -305
- package/{lib/providers/keycloakify-angular.providers.d.ts → login/tokens/classes.token.d.ts} +14 -37
- package/login/tokens/classes.token.js +3 -0
- package/login/tokens/i18n.token.d.ts +2 -0
- package/login/tokens/i18n.token.js +3 -0
- package/login/tokens/kc-context.token.d.ts +3 -0
- package/login/tokens/kc-context.token.js +3 -0
- package/login/tokens/make-user-confirm-password.token.d.ts +2 -0
- package/login/tokens/make-user-confirm-password.token.js +3 -0
- package/package.json +123 -181
- package/src/account/DefaultPage.ts +51 -0
- package/src/account/KcContext.ts +1 -0
- package/src/account/classes/component-reference.class.ts +6 -0
- package/src/account/containers/template.component.html +125 -0
- package/src/account/containers/template.component.ts +71 -0
- package/src/account/directives/kc-class.directive.ts +150 -0
- package/src/account/i18n.ts +4 -0
- package/src/account/pages/account/account.component.html +165 -0
- package/src/account/pages/account/account.component.ts +34 -0
- package/src/account/pages/applications/applications.component.html +156 -0
- package/src/account/pages/applications/applications.component.ts +32 -0
- package/src/account/pages/federatedIdentity/federatedIdentity.component.html +97 -0
- package/src/account/pages/federatedIdentity/federatedIdentity.component.ts +31 -0
- package/src/account/pages/log/log.component.html +44 -0
- package/src/account/pages/log/log.component.ts +31 -0
- package/src/account/pages/password/password.component.html +131 -0
- package/src/account/pages/password/password.component.ts +110 -0
- package/src/account/pages/sessions/sessions.component.html +63 -0
- package/src/account/pages/sessions/sessions.component.ts +31 -0
- package/src/account/pages/totp/totp.component.html +258 -0
- package/src/account/pages/totp/totp.component.ts +32 -0
- package/src/account/providers/keycloakify-angular.providers.ts +64 -0
- package/src/account/services/i18n.service.ts +7 -0
- package/src/account/services/resource-injector.service.ts +37 -0
- package/src/account/tokens/classes.token.ts +6 -0
- package/src/account/tokens/i18n.token.ts +3 -0
- package/src/account/tokens/kc-context.token.ts +4 -0
- package/src/{login → lib}/directives/attributes.directive.ts +2 -2
- package/src/{login → lib}/pipes/input-type.pipe.ts +4 -4
- package/src/lib/pipes/is-array-with-empty-object.pipe.ts +16 -0
- package/src/lib/pipes/kc-sanitize.pipe.ts +34 -0
- package/src/lib/pipes/to-array.pipe.ts +15 -0
- package/src/lib/pipes/to-number.pipe.ts +13 -0
- package/src/lib/services/resource-injector.service.ts +7 -7
- package/src/lib/tokens/use-default-css.token.ts +3 -0
- package/src/login/DefaultPage.ts +76 -76
- package/src/login/KcContext.ts +1 -1
- package/src/login/classes/component-reference.class.ts +1 -1
- package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +19 -19
- package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.ts +15 -23
- package/src/login/components/field-errors/field-errors.component.html +10 -10
- package/src/login/components/field-errors/field-errors.component.ts +11 -16
- package/src/login/components/group-label/group-label.component.html +25 -25
- package/src/login/components/group-label/group-label.component.ts +17 -21
- package/src/login/components/input-field-by-type/input-field-by-type.component.html +57 -57
- package/src/login/components/input-field-by-type/input-field-by-type.component.ts +18 -35
- package/src/login/components/input-tag/input-tag.component.html +41 -45
- package/src/login/components/input-tag/input-tag.component.ts +25 -34
- package/src/login/components/input-tag-selects/input-tag-selects.component.html +22 -22
- package/src/login/components/input-tag-selects/input-tag-selects.component.ts +32 -43
- package/src/login/components/logout-other-sessions/logout-other-sessions.component.html +15 -15
- package/src/login/components/logout-other-sessions/logout-other-sessions.component.ts +13 -10
- package/src/login/components/password-wrapper/password-wrapper.component.html +13 -13
- package/src/login/components/password-wrapper/password-wrapper.component.ts +15 -25
- package/src/login/components/select-tag/select-tag.component.html +26 -26
- package/src/login/components/select-tag/select-tag.component.ts +23 -35
- package/src/login/components/textarea-tag/textarea-tag.component.html +13 -15
- package/src/login/components/textarea-tag/textarea-tag.component.ts +16 -25
- package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.html +70 -73
- package/src/login/components/user-profile-form-fields/user-profile-form-fields.component.ts +33 -47
- package/src/login/containers/template.component.html +183 -183
- package/src/login/containers/template.component.ts +26 -42
- package/src/login/directives/kc-class.directive.ts +11 -11
- package/src/login/i18n.ts +2 -2
- package/src/login/pages/code/code.component.html +21 -21
- package/src/login/pages/code/code.component.ts +17 -17
- package/src/login/pages/delete-account-confirm/delete-account-confirm.component.html +44 -42
- package/src/login/pages/delete-account-confirm/delete-account-confirm.component.ts +17 -18
- package/src/login/pages/delete-credential/delete-credential.component.html +29 -29
- package/src/login/pages/delete-credential/delete-credential.component.ts +17 -24
- package/src/login/pages/error/error.component.html +20 -20
- package/src/login/pages/error/error.component.ts +17 -17
- package/src/login/pages/frontchannel-logout/frontchannel-logout.component.html +31 -31
- package/src/login/pages/frontchannel-logout/frontchannel-logout.component.ts +17 -25
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +36 -36
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +34 -33
- package/src/login/pages/info/info.component.html +45 -45
- package/src/login/pages/info/info.component.ts +20 -37
- package/src/login/pages/login/login.component.html +194 -194
- package/src/login/pages/login/login.component.ts +22 -43
- package/src/login/pages/login-config-totp/login-config-totp.component.html +189 -179
- package/src/login/pages/login-config-totp/login-config-totp.component.ts +20 -39
- package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +35 -35
- package/src/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.ts +17 -24
- package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +34 -34
- package/src/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.ts +17 -26
- package/src/login/pages/login-idp-link-email/login-idp-link-email.component.html +32 -30
- package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +17 -24
- package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +83 -81
- package/src/login/pages/login-oauth-grant/login-oauth-grant.component.ts +18 -26
- package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +57 -57
- package/src/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.ts +17 -26
- package/src/login/pages/login-otp/login-otp.component.html +96 -96
- package/src/login/pages/login-otp/login-otp.component.ts +19 -25
- package/src/login/pages/login-page-expired/login-page-expired.component.html +31 -31
- package/src/login/pages/login-page-expired/login-page-expired.component.ts +16 -23
- package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +183 -181
- package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +25 -32
- package/src/login/pages/login-password/login-password.component.html +82 -82
- package/src/login/pages/login-password/login-password.component.ts +20 -33
- package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +142 -142
- package/src/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.ts +19 -34
- package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +67 -67
- package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.ts +19 -29
- package/src/login/pages/login-reset-otp/login-reset-otp.component.html +61 -59
- package/src/login/pages/login-reset-otp/login-reset-otp.component.ts +18 -24
- package/src/login/pages/login-reset-password/login-reset-password.component.html +84 -84
- package/src/login/pages/login-reset-password/login-reset-password.component.ts +19 -26
- package/src/login/pages/login-update-password/login-update-password.component.html +107 -107
- package/src/login/pages/login-update-password/login-update-password.component.ts +21 -38
- package/src/login/pages/login-update-profile/login-update-profile.component.html +52 -53
- package/src/login/pages/login-update-profile/login-update-profile.component.ts +31 -32
- package/src/login/pages/login-username/login-username.component.html +146 -146
- package/src/login/pages/login-username/login-username.component.ts +21 -38
- package/src/login/pages/login-verify-email/login-verify-email.component.html +22 -22
- package/src/login/pages/login-verify-email/login-verify-email.component.ts +17 -24
- package/src/login/pages/login-x509-info/login-x509-info.component.html +96 -96
- package/src/login/pages/login-x509-info/login-x509-info.component.ts +17 -23
- package/src/login/pages/logout-confirm/logout-confirm.component.html +51 -51
- package/src/login/pages/logout-confirm/logout-confirm.component.ts +17 -23
- package/src/login/pages/register/register.component.html +113 -113
- package/src/login/pages/register/register.component.ts +33 -39
- package/src/login/pages/saml-post-form/saml-post-form.component.html +47 -48
- package/src/login/pages/saml-post-form/saml-post-form.component.ts +19 -27
- package/src/login/pages/select-authenticator/select-authenticator.component.html +43 -44
- package/src/login/pages/select-authenticator/select-authenticator.component.ts +18 -32
- package/src/login/pages/terms/terms.component.html +32 -32
- package/src/login/pages/terms/terms.component.ts +17 -23
- package/src/login/pages/update-email/update-email.component.html +52 -52
- package/src/login/pages/update-email/update-email.component.ts +33 -33
- package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +146 -148
- package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +26 -50
- package/src/login/pages/webauthn-error/webauthn-error.component.html +53 -53
- package/src/login/pages/webauthn-error/webauthn-error.component.ts +21 -32
- package/src/login/pages/webauthn-register/webauthn-register.component.html +73 -73
- package/src/login/pages/webauthn-register/webauthn-register.component.ts +26 -40
- package/src/login/providers/keycloakify-angular.providers.ts +68 -0
- package/src/login/services/i18n.service.ts +7 -0
- package/src/login/services/login-resource-injector.service.ts +13 -12
- package/src/login/services/submit.service.ts +12 -0
- package/src/login/services/user-profile-form.service.ts +185 -187
- package/src/login/tokens/classes.token.ts +6 -0
- package/src/login/tokens/i18n.token.ts +3 -0
- package/src/login/tokens/kc-context.token.ts +4 -0
- package/src/login/tokens/make-user-confirm-password.token.ts +5 -0
- package/src/tsconfig.json +6 -1
- package/stories/login/pages/login/login.stories.ts +146 -0
- package/lib/i18n.d.ts +0 -4
- package/lib/i18n.js +0 -6
- package/lib/i18n.js.map +0 -1
- package/lib/models/index.d.ts +0 -1
- package/lib/models/index.js +0 -2
- package/lib/models/index.js.map +0 -1
- package/lib/models/script.model.js.map +0 -1
- package/lib/providers/keycloakify-angular.providers.js +0 -58
- package/lib/providers/keycloakify-angular.providers.js.map +0 -1
- package/lib/public-api.d.ts +0 -10
- package/lib/public-api.js +0 -4
- package/lib/public-api.js.map +0 -1
- package/lib/services/i18n.service.d.ts +0 -3
- package/lib/services/i18n.service.js +0 -14
- package/lib/services/i18n.service.js.map +0 -1
- package/lib/services/index.d.ts +0 -2
- package/lib/services/index.js +0 -3
- package/lib/services/index.js.map +0 -1
- package/lib/services/resource-injector.service.js.map +0 -1
- package/login/DefaultPage.js.map +0 -1
- package/login/KcContext.js.map +0 -1
- package/login/classes/component-reference.class.js.map +0 -1
- package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.html +0 -24
- package/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.js.map +0 -1
- package/login/components/field-errors/field-errors.component.html +0 -15
- package/login/components/field-errors/field-errors.component.js.map +0 -1
- package/login/components/group-label/group-label.component.html +0 -30
- package/login/components/group-label/group-label.component.js.map +0 -1
- package/login/components/index.d.ts +0 -11
- package/login/components/index.js +0 -12
- package/login/components/index.js.map +0 -1
- package/login/components/input-field-by-type/input-field-by-type.component.html +0 -63
- package/login/components/input-field-by-type/input-field-by-type.component.js.map +0 -1
- package/login/components/input-tag/input-tag.component.html +0 -49
- package/login/components/input-tag/input-tag.component.js.map +0 -1
- package/login/components/input-tag-selects/input-tag-selects.component.html +0 -29
- package/login/components/input-tag-selects/input-tag-selects.component.js.map +0 -1
- package/login/components/logout-other-sessions/logout-other-sessions.component.html +0 -19
- package/login/components/logout-other-sessions/logout-other-sessions.component.js.map +0 -1
- package/login/components/password-wrapper/password-wrapper.component.html +0 -15
- package/login/components/password-wrapper/password-wrapper.component.js.map +0 -1
- package/login/components/select-tag/select-tag.component.html +0 -31
- package/login/components/select-tag/select-tag.component.js.map +0 -1
- package/login/components/textarea-tag/textarea-tag.component.html +0 -18
- package/login/components/textarea-tag/textarea-tag.component.js.map +0 -1
- package/login/components/user-profile-form-fields/user-profile-form-fields.component.html +0 -85
- package/login/components/user-profile-form-fields/user-profile-form-fields.component.js.map +0 -1
- package/login/containers/template.component.html +0 -203
- package/login/containers/template.component.js.map +0 -1
- package/login/directives/attributes.directive.d.ts +0 -5
- package/login/directives/attributes.directive.js +0 -34
- package/login/directives/attributes.directive.js.map +0 -1
- package/login/directives/index.d.ts +0 -2
- package/login/directives/index.js +0 -3
- package/login/directives/index.js.map +0 -1
- package/login/directives/kc-class.directive.js.map +0 -1
- package/login/i18n.js.map +0 -1
- package/login/pages/code/code.component.html +0 -26
- package/login/pages/code/code.component.js.map +0 -1
- package/login/pages/delete-account-confirm/delete-account-confirm.component.html +0 -46
- package/login/pages/delete-account-confirm/delete-account-confirm.component.js.map +0 -1
- package/login/pages/delete-credential/delete-credential.component.html +0 -35
- package/login/pages/delete-credential/delete-credential.component.js.map +0 -1
- package/login/pages/error/error.component.html +0 -25
- package/login/pages/error/error.component.js.map +0 -1
- package/login/pages/frontchannel-logout/frontchannel-logout.component.html +0 -35
- package/login/pages/frontchannel-logout/frontchannel-logout.component.js.map +0 -1
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +0 -41
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.js.map +0 -1
- package/login/pages/info/info.component.html +0 -54
- package/login/pages/info/info.component.js.map +0 -1
- package/login/pages/login/login.component.html +0 -212
- package/login/pages/login/login.component.js.map +0 -1
- package/login/pages/login-config-totp/login-config-totp.component.html +0 -190
- package/login/pages/login-config-totp/login-config-totp.component.js.map +0 -1
- package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.html +0 -41
- package/login/pages/login-idp-link-confirm/login-idp-link-confirm.component.js.map +0 -1
- package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.html +0 -40
- package/login/pages/login-idp-link-confirm-override/login-idp-link-confirm-override.component.js.map +0 -1
- package/login/pages/login-idp-link-email/login-idp-link-email.component.html +0 -37
- package/login/pages/login-idp-link-email/login-idp-link-email.component.js.map +0 -1
- package/login/pages/login-oauth-grant/login-oauth-grant.component.html +0 -92
- package/login/pages/login-oauth-grant/login-oauth-grant.component.js.map +0 -1
- package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.html +0 -63
- package/login/pages/login-oauth2-device-verify-user-code/login-oauth2-device-verify-user-code.component.js.map +0 -1
- package/login/pages/login-otp/login-otp.component.html +0 -103
- package/login/pages/login-otp/login-otp.component.js.map +0 -1
- package/login/pages/login-page-expired/login-page-expired.component.html +0 -35
- package/login/pages/login-page-expired/login-page-expired.component.js.map +0 -1
- package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +0 -203
- package/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.js.map +0 -1
- package/login/pages/login-password/login-password.component.html +0 -90
- package/login/pages/login-password/login-password.component.js.map +0 -1
- package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.html +0 -155
- package/login/pages/login-recovery-authn-code-config/login-recovery-authn-code-config.component.js.map +0 -1
- package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +0 -76
- package/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.js.map +0 -1
- package/login/pages/login-reset-otp/login-reset-otp.component.html +0 -65
- package/login/pages/login-reset-otp/login-reset-otp.component.js.map +0 -1
- package/login/pages/login-reset-password/login-reset-password.component.html +0 -95
- package/login/pages/login-reset-password/login-reset-password.component.js.map +0 -1
- package/login/pages/login-update-password/login-update-password.component.html +0 -116
- package/login/pages/login-update-password/login-update-password.component.js.map +0 -1
- package/login/pages/login-update-profile/login-update-profile.component.html +0 -59
- package/login/pages/login-update-profile/login-update-profile.component.js.map +0 -1
- package/login/pages/login-username/login-username.component.html +0 -161
- package/login/pages/login-username/login-username.component.js.map +0 -1
- package/login/pages/login-verify-email/login-verify-email.component.html +0 -27
- package/login/pages/login-verify-email/login-verify-email.component.js.map +0 -1
- package/login/pages/login-x509-info/login-x509-info.component.html +0 -102
- package/login/pages/login-x509-info/login-x509-info.component.js.map +0 -1
- package/login/pages/logout-confirm/logout-confirm.component.html +0 -59
- package/login/pages/logout-confirm/logout-confirm.component.js.map +0 -1
- package/login/pages/register/register.component.html +0 -126
- package/login/pages/register/register.component.js.map +0 -1
- package/login/pages/saml-post-form/saml-post-form.component.html +0 -51
- package/login/pages/saml-post-form/saml-post-form.component.js.map +0 -1
- package/login/pages/select-authenticator/select-authenticator.component.html +0 -49
- package/login/pages/select-authenticator/select-authenticator.component.js.map +0 -1
- package/login/pages/terms/terms.component.html +0 -36
- package/login/pages/terms/terms.component.js.map +0 -1
- package/login/pages/update-email/update-email.component.html +0 -58
- package/login/pages/update-email/update-email.component.js.map +0 -1
- package/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +0 -162
- package/login/pages/webauthn-authenticate/webauthn-authenticate.component.js.map +0 -1
- package/login/pages/webauthn-error/webauthn-error.component.html +0 -60
- package/login/pages/webauthn-error/webauthn-error.component.js.map +0 -1
- package/login/pages/webauthn-register/webauthn-register.component.html +0 -82
- package/login/pages/webauthn-register/webauthn-register.component.js.map +0 -1
- package/login/pipes/advanced-msg-str.pipe.d.ts +0 -5
- package/login/pipes/advanced-msg-str.pipe.js +0 -31
- package/login/pipes/advanced-msg-str.pipe.js.map +0 -1
- package/login/pipes/index.d.ts +0 -6
- package/login/pipes/index.js +0 -7
- package/login/pipes/index.js.map +0 -1
- package/login/pipes/input-type.pipe.d.ts +0 -4
- package/login/pipes/input-type.pipe.js +0 -23
- package/login/pipes/input-type.pipe.js.map +0 -1
- package/login/pipes/kc-sanitize.pipe.d.ts +0 -7
- package/login/pipes/kc-sanitize.pipe.js +0 -36
- package/login/pipes/kc-sanitize.pipe.js.map +0 -1
- package/login/pipes/msg-str.pipe.d.ts +0 -6
- package/login/pipes/msg-str.pipe.js +0 -31
- package/login/pipes/msg-str.pipe.js.map +0 -1
- package/login/pipes/to-array.pipe.d.ts +0 -4
- package/login/pipes/to-array.pipe.js +0 -24
- package/login/pipes/to-array.pipe.js.map +0 -1
- package/login/pipes/to-number.pipe.d.ts +0 -4
- package/login/pipes/to-number.pipe.js +0 -23
- package/login/pipes/to-number.pipe.js.map +0 -1
- package/login/services/index.d.ts +0 -2
- package/login/services/index.js +0 -3
- package/login/services/index.js.map +0 -1
- package/login/services/login-resource-injector.service.js.map +0 -1
- package/login/services/user-profile-form.service.js.map +0 -1
- package/src/lib/i18n.ts +0 -9
- package/src/lib/models/index.ts +0 -1
- package/src/lib/providers/keycloakify-angular.providers.ts +0 -92
- package/src/lib/public-api.ts +0 -12
- package/src/lib/services/i18n.service.ts +0 -5
- package/src/lib/services/index.ts +0 -2
- package/src/login/components/index.ts +0 -11
- package/src/login/directives/index.ts +0 -2
- package/src/login/pipes/advanced-msg-str.pipe.ts +0 -13
- package/src/login/pipes/index.ts +0 -6
- package/src/login/pipes/kc-sanitize.pipe.ts +0 -36
- package/src/login/pipes/msg-str.pipe.ts +0 -14
- package/src/login/pipes/to-array.pipe.ts +0 -15
- package/src/login/pipes/to-number.pipe.ts +0 -13
- package/src/login/services/index.ts +0 -2
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Type } from '@angular/core';
|
|
2
|
+
import { type ClassKey } from 'keycloakify/account';
|
|
3
|
+
import { type KcContext } from './KcContext';
|
|
4
|
+
declare const DefaultPage: (pageId: KcContext['pageId'], doUseDefaultCss?: boolean, classes?: {
|
|
5
|
+
kcHtmlClass?: string | undefined;
|
|
6
|
+
kcBodyClass?: string | undefined;
|
|
7
|
+
kcButtonClass?: string | undefined;
|
|
8
|
+
kcButtonPrimaryClass?: string | undefined;
|
|
9
|
+
kcButtonLargeClass?: string | undefined;
|
|
10
|
+
kcButtonDefaultClass?: string | undefined;
|
|
11
|
+
kcContentWrapperClass?: string | undefined;
|
|
12
|
+
kcFormClass?: string | undefined;
|
|
13
|
+
kcFormGroupClass?: string | undefined;
|
|
14
|
+
kcInputWrapperClass?: string | undefined;
|
|
15
|
+
kcLabelClass?: string | undefined;
|
|
16
|
+
kcInputClass?: string | undefined;
|
|
17
|
+
kcInputErrorMessageClass?: string | undefined;
|
|
18
|
+
}) => Promise<{
|
|
19
|
+
ComponentBootstrap: Type<unknown>;
|
|
20
|
+
doMakeUserConfirmPassword: boolean;
|
|
21
|
+
doUseDefaultCss: boolean;
|
|
22
|
+
classes: {
|
|
23
|
+
kcHtmlClass?: string | undefined;
|
|
24
|
+
kcBodyClass?: string | undefined;
|
|
25
|
+
kcButtonClass?: string | undefined;
|
|
26
|
+
kcButtonPrimaryClass?: string | undefined;
|
|
27
|
+
kcButtonLargeClass?: string | undefined;
|
|
28
|
+
kcButtonDefaultClass?: string | undefined;
|
|
29
|
+
kcContentWrapperClass?: string | undefined;
|
|
30
|
+
kcFormClass?: string | undefined;
|
|
31
|
+
kcFormGroupClass?: string | undefined;
|
|
32
|
+
kcInputWrapperClass?: string | undefined;
|
|
33
|
+
kcLabelClass?: string | undefined;
|
|
34
|
+
kcInputClass?: string | undefined;
|
|
35
|
+
kcInputErrorMessageClass?: string | undefined;
|
|
36
|
+
};
|
|
37
|
+
}>;
|
|
38
|
+
export { DefaultPage };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
const DefaultPage = async (pageId, doUseDefaultCss = true, classes = {}) => {
|
|
2
|
+
let ComponentBootstrapPromise;
|
|
3
|
+
switch (pageId) {
|
|
4
|
+
case 'password.ftl':
|
|
5
|
+
ComponentBootstrapPromise = import('../account/pages/password/password.component').then((c) => c.PasswordComponent);
|
|
6
|
+
break;
|
|
7
|
+
case 'account.ftl':
|
|
8
|
+
ComponentBootstrapPromise = import('../account/pages/account/account.component').then((c) => c.AccountComponent);
|
|
9
|
+
break;
|
|
10
|
+
case 'sessions.ftl':
|
|
11
|
+
ComponentBootstrapPromise = import('../account/pages/sessions/sessions.component').then((c) => c.SessionsComponent);
|
|
12
|
+
break;
|
|
13
|
+
case 'totp.ftl':
|
|
14
|
+
ComponentBootstrapPromise = import('../account/pages/totp/totp.component').then((c) => c.TotpComponent);
|
|
15
|
+
break;
|
|
16
|
+
case 'applications.ftl':
|
|
17
|
+
ComponentBootstrapPromise = import('../account/pages/applications/applications.component').then((c) => c.ApplicationsComponent);
|
|
18
|
+
break;
|
|
19
|
+
case 'log.ftl':
|
|
20
|
+
ComponentBootstrapPromise = import('../account/pages/log/log.component').then((c) => c.LogComponent);
|
|
21
|
+
break;
|
|
22
|
+
case 'federatedIdentity.ftl':
|
|
23
|
+
ComponentBootstrapPromise = import('../account/pages/federatedIdentity/federatedIdentity.component').then((c) => c.FederatedIdentityComponent);
|
|
24
|
+
break;
|
|
25
|
+
}
|
|
26
|
+
return ComponentBootstrapPromise?.then((ComponentBootstrap) => ({
|
|
27
|
+
ComponentBootstrap,
|
|
28
|
+
doMakeUserConfirmPassword: false,
|
|
29
|
+
doUseDefaultCss,
|
|
30
|
+
classes,
|
|
31
|
+
}));
|
|
32
|
+
};
|
|
33
|
+
export { DefaultPage };
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFBhZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9hY2NvdW50L0RlZmF1bHRQYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sV0FBVyxHQUFHLEtBQUssRUFDdkIsTUFBMkIsRUFDM0IsZUFBZSxHQUFHLElBQUksRUFDdEIsVUFBMEMsRUFBRSxFQU0zQyxFQUFFO0lBQ0gsSUFBSSx5QkFBeUIsQ0FBQztJQUM5QixRQUFRLE1BQU0sRUFBRSxDQUFDO1FBQ2YsS0FBSyxjQUFjO1lBQ2pCLHlCQUF5QixHQUFHLE1BQU0sQ0FBQyxnRUFBZ0UsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdEksTUFBTTtRQUNSLEtBQUssYUFBYTtZQUNoQix5QkFBeUIsR0FBRyxNQUFNLENBQUMsOERBQThELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ25JLE1BQU07UUFDUixLQUFLLGNBQWM7WUFDakIseUJBQXlCLEdBQUcsTUFBTSxDQUFDLGdFQUFnRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUN0SSxNQUFNO1FBQ1IsS0FBSyxVQUFVO1lBQ2IseUJBQXlCLEdBQUcsTUFBTSxDQUFDLHdEQUF3RCxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDMUgsTUFBTTtRQUNSLEtBQUssa0JBQWtCO1lBQ3JCLHlCQUF5QixHQUFHLE1BQU0sQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDLElBQUksQ0FDL0csQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsQ0FDL0IsQ0FBQztZQUNGLE1BQU07UUFDUixLQUFLLFNBQVM7WUFDWix5QkFBeUIsR0FBRyxNQUFNLENBQUMsc0RBQXNELENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUN2SCxNQUFNO1FBQ1IsS0FBSyx1QkFBdUI7WUFDMUIseUJBQXlCLEdBQUcsTUFBTSxDQUFDLGtGQUFrRixDQUFDLENBQUMsSUFBSSxDQUN6SCxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUNwQyxDQUFDO1lBQ0YsTUFBTTtJQUNWLENBQUM7SUFDRCxPQUFPLHlCQUF5QixFQUFFLElBQUksQ0FBQyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlELGtCQUFrQjtRQUNsQix5QkFBeUIsRUFBRSxLQUFLO1FBQ2hDLGVBQWU7UUFDZixPQUFPO0tBQ1IsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDLENBQUM7QUFFRixPQUFPLEVBQUUsV0FBVyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0eXBlIENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvYWNjb3VudCc7XG5pbXBvcnQgeyB0eXBlIEtjQ29udGV4dCB9IGZyb20gJy4vS2NDb250ZXh0JztcblxuY29uc3QgRGVmYXVsdFBhZ2UgPSBhc3luYyAoXG4gIHBhZ2VJZDogS2NDb250ZXh0WydwYWdlSWQnXSxcbiAgZG9Vc2VEZWZhdWx0Q3NzID0gdHJ1ZSxcbiAgY2xhc3NlczogeyBba2V5IGluIENsYXNzS2V5XT86IHN0cmluZyB9ID0ge30sXG4pOiBQcm9taXNlPHtcbiAgQ29tcG9uZW50Qm9vdHN0cmFwOiBUeXBlPHVua25vd24+O1xuICBkb01ha2VVc2VyQ29uZmlybVBhc3N3b3JkOiBib29sZWFuO1xuICBkb1VzZURlZmF1bHRDc3M6IGJvb2xlYW47XG4gIGNsYXNzZXM6IHsgW2tleSBpbiBDbGFzc0tleV0/OiBzdHJpbmcgfTtcbn0+ID0+IHtcbiAgbGV0IENvbXBvbmVudEJvb3RzdHJhcFByb21pc2U7XG4gIHN3aXRjaCAocGFnZUlkKSB7XG4gICAgY2FzZSAncGFzc3dvcmQuZnRsJzpcbiAgICAgIENvbXBvbmVudEJvb3RzdHJhcFByb21pc2UgPSBpbXBvcnQoJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvcGFnZXMvcGFzc3dvcmQvcGFzc3dvcmQuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5QYXNzd29yZENvbXBvbmVudCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICdhY2NvdW50LmZ0bCc6XG4gICAgICBDb21wb25lbnRCb290c3RyYXBQcm9taXNlID0gaW1wb3J0KCdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3BhZ2VzL2FjY291bnQvYWNjb3VudC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLkFjY291bnRDb21wb25lbnQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnc2Vzc2lvbnMuZnRsJzpcbiAgICAgIENvbXBvbmVudEJvb3RzdHJhcFByb21pc2UgPSBpbXBvcnQoJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvcGFnZXMvc2Vzc2lvbnMvc2Vzc2lvbnMuY29tcG9uZW50JykudGhlbigoYykgPT4gYy5TZXNzaW9uc0NvbXBvbmVudCk7XG4gICAgICBicmVhaztcbiAgICBjYXNlICd0b3RwLmZ0bCc6XG4gICAgICBDb21wb25lbnRCb290c3RyYXBQcm9taXNlID0gaW1wb3J0KCdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3BhZ2VzL3RvdHAvdG90cC5jb21wb25lbnQnKS50aGVuKChjKSA9PiBjLlRvdHBDb21wb25lbnQpO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSAnYXBwbGljYXRpb25zLmZ0bCc6XG4gICAgICBDb21wb25lbnRCb290c3RyYXBQcm9taXNlID0gaW1wb3J0KCdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3BhZ2VzL2FwcGxpY2F0aW9ucy9hcHBsaWNhdGlvbnMuY29tcG9uZW50JykudGhlbihcbiAgICAgICAgKGMpID0+IGMuQXBwbGljYXRpb25zQ29tcG9uZW50LFxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2xvZy5mdGwnOlxuICAgICAgQ29tcG9uZW50Qm9vdHN0cmFwUHJvbWlzZSA9IGltcG9ydCgnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC9wYWdlcy9sb2cvbG9nLmNvbXBvbmVudCcpLnRoZW4oKGMpID0+IGMuTG9nQ29tcG9uZW50KTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgJ2ZlZGVyYXRlZElkZW50aXR5LmZ0bCc6XG4gICAgICBDb21wb25lbnRCb290c3RyYXBQcm9taXNlID0gaW1wb3J0KCdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3BhZ2VzL2ZlZGVyYXRlZElkZW50aXR5L2ZlZGVyYXRlZElkZW50aXR5LmNvbXBvbmVudCcpLnRoZW4oXG4gICAgICAgIChjKSA9PiBjLkZlZGVyYXRlZElkZW50aXR5Q29tcG9uZW50LFxuICAgICAgKTtcbiAgICAgIGJyZWFrO1xuICB9XG4gIHJldHVybiBDb21wb25lbnRCb290c3RyYXBQcm9taXNlPy50aGVuKChDb21wb25lbnRCb290c3RyYXApID0+ICh7XG4gICAgQ29tcG9uZW50Qm9vdHN0cmFwLFxuICAgIGRvTWFrZVVzZXJDb25maXJtUGFzc3dvcmQ6IGZhbHNlLFxuICAgIGRvVXNlRGVmYXVsdENzcyxcbiAgICBjbGFzc2VzLFxuICB9KSk7XG59O1xuXG5leHBvcnQgeyBEZWZhdWx0UGFnZSB9O1xuIl19
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type { KcContext } from 'keycloakify/account/KcContext';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiS2NDb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvYWNjb3VudC9LY0NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIHsgS2NDb250ZXh0IH0gZnJvbSAna2V5Y2xvYWtpZnkvYWNjb3VudC9LY0NvbnRleHQnO1xuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export class ComponentReference {
|
|
2
|
+
}
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2FjY291bnQvY2xhc3Nlcy9jb21wb25lbnQtcmVmZXJlbmNlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sT0FBZ0Isa0JBQWtCO0NBSXZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9hY2NvdW50JztcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICBkb1VzZURlZmF1bHRDc3MhOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBjbGFzc2VzITogUGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+IHwgdW5kZWZpbmVkO1xuICBhZGRpdGlvbmFsQ2xhc3NlcyE6IFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pjtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { OnInit, Renderer2 } from '@angular/core';
|
|
2
|
+
import { Meta, Title } from '@angular/platform-browser';
|
|
3
|
+
import { ComponentReference } from '../../account/classes/component-reference.class';
|
|
4
|
+
import { AccountResourceInjectorService } from '../../account/services/resource-injector.service';
|
|
5
|
+
import { ClassKey } from 'keycloakify/account/lib/kcClsx';
|
|
6
|
+
import { Observable } from 'rxjs';
|
|
7
|
+
import { I18n } from '../i18n';
|
|
8
|
+
import { type KcContext } from '../KcContext';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
export declare class TemplateComponent extends ComponentReference implements OnInit {
|
|
11
|
+
i18n: I18n;
|
|
12
|
+
renderer: Renderer2;
|
|
13
|
+
meta: Meta;
|
|
14
|
+
title: Title;
|
|
15
|
+
kcContext: KcContext;
|
|
16
|
+
doUseDefaultCss: boolean;
|
|
17
|
+
classes: Partial<Record<ClassKey, string>>;
|
|
18
|
+
accountResourceInjectorService: AccountResourceInjectorService;
|
|
19
|
+
active: import("@angular/core").InputSignal<"password" | "applications" | "account" | "sessions" | "log" | "totp" | "social" | "authorization" | undefined>;
|
|
20
|
+
isReadyToRender$: Observable<boolean>;
|
|
21
|
+
constructor();
|
|
22
|
+
ngOnInit(): void;
|
|
23
|
+
private applyKcIndexClasses;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<TemplateComponent, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TemplateComponent, "kc-account-template", never, { "active": { "alias": "active"; "required": false; "isSignal": true; }; }, {}, never, ["[content]"], true, never>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { AsyncPipe, NgClass, NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input, Renderer2 } from '@angular/core';
|
|
3
|
+
import { Meta, Title } from '@angular/platform-browser';
|
|
4
|
+
import { ComponentReference } from '../../account/classes/component-reference.class';
|
|
5
|
+
import { KcClassDirective } from '../../account/directives/kc-class.directive';
|
|
6
|
+
import { AccountResourceInjectorService } from '../../account/services/resource-injector.service';
|
|
7
|
+
import { ACCOUNT_CLASSES } from '../../account/tokens/classes.token';
|
|
8
|
+
import { ACCOUNT_I18N } from '../../account/tokens/i18n.token';
|
|
9
|
+
import { KC_ACCOUNT_CONTEXT } from '../../account/tokens/kc-context.token';
|
|
10
|
+
import { KcSanitizePipe } from '../../lib/pipes/kc-sanitize.pipe';
|
|
11
|
+
import { USE_DEFAULT_CSS } from '../../lib/tokens/use-default-css.token';
|
|
12
|
+
import { getKcClsx } from 'keycloakify/account/lib/kcClsx';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
export class TemplateComponent extends ComponentReference {
|
|
15
|
+
constructor() {
|
|
16
|
+
super();
|
|
17
|
+
this.i18n = inject(ACCOUNT_I18N);
|
|
18
|
+
this.renderer = inject(Renderer2);
|
|
19
|
+
this.meta = inject(Meta);
|
|
20
|
+
this.title = inject(Title);
|
|
21
|
+
this.kcContext = inject(KC_ACCOUNT_CONTEXT);
|
|
22
|
+
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
23
|
+
this.classes = inject(ACCOUNT_CLASSES);
|
|
24
|
+
this.accountResourceInjectorService = inject(AccountResourceInjectorService);
|
|
25
|
+
this.active = input(undefined);
|
|
26
|
+
this.title.setTitle(this.i18n.msgStr('accountManagementTitle'));
|
|
27
|
+
this.isReadyToRender$ = this.accountResourceInjectorService.injectResource(this.doUseDefaultCss);
|
|
28
|
+
}
|
|
29
|
+
ngOnInit() {
|
|
30
|
+
this.applyKcIndexClasses();
|
|
31
|
+
}
|
|
32
|
+
applyKcIndexClasses() {
|
|
33
|
+
const kcClsx = getKcClsx({
|
|
34
|
+
doUseDefaultCss: this.doUseDefaultCss,
|
|
35
|
+
classes: this.classes
|
|
36
|
+
}).kcClsx;
|
|
37
|
+
const kcBodyClass = kcClsx('kcBodyClass');
|
|
38
|
+
const kcHtmlClass = kcClsx('kcHtmlClass');
|
|
39
|
+
const kcBodyClasses = kcBodyClass.split(/\s+/);
|
|
40
|
+
const kcHtmlClasses = kcHtmlClass.split(/\s+/);
|
|
41
|
+
kcBodyClasses.push('admin-console', 'user');
|
|
42
|
+
kcBodyClasses.forEach(klass => {
|
|
43
|
+
this.renderer.addClass(document.body, klass);
|
|
44
|
+
});
|
|
45
|
+
kcHtmlClasses.forEach(klass => {
|
|
46
|
+
this.renderer.addClass(document.documentElement, klass);
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TemplateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
50
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: TemplateComponent, isStandalone: true, selector: "kc-account-template", inputs: { active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
51
|
+
{
|
|
52
|
+
provide: ComponentReference,
|
|
53
|
+
useExisting: forwardRef(() => TemplateComponent)
|
|
54
|
+
}
|
|
55
|
+
], usesInheritance: true, ngImport: i0, template: "@let enabledLanguages = i18n.enabledLanguages;\n@let currentLanguage = i18n.currentLanguage;\n@let url = kcContext.url;\n@let features = kcContext.features;\n@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let referrer = kcContext.referrer;\n@let activeLink = active();\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <header class=\"navbar navbar-default navbar-pf navbar-main header\">\n <nav\n class=\"navbar\"\n role=\"navigation\"\n >\n <div class=\"navbar-header\">\n <div class=\"container\">\n <h1 class=\"navbar-title\">Keycloak</h1>\n </div>\n </div>\n <div class=\"navbar-collapse navbar-collapse-1\">\n <div class=\"container\">\n <ul class=\"nav navbar-nav navbar-utility\">\n @if (enabledLanguages.length > 1) {\n <li>\n <div\n class=\"kc-dropdown\"\n id=\"kc-locale-dropdown\"\n >\n <a\n href=\"#\"\n id=\"kc-current-locale-link\"\n >\n {{ currentLanguage.label }}\n </a>\n <ul>\n @for (enabledLanguage of enabledLanguages; track enabledLanguage.languageTag) {\n @let label = enabledLanguage.label;\n @let href = enabledLanguage.href;\n\n <li class=\"kc-dropdown-item\">\n <a [href]=\"href\">{{ label }}</a>\n </li>\n }\n </ul>\n </div>\n </li>\n }\n @if (!!referrer?.url) {\n <a\n [href]=\"referrer?.url\"\n id=\"referrer\"\n >\n {{ i18n.msgStr('backTo', referrer?.name) }}\n </a>\n }\n <li>\n <a [href]=\"url.getLogoutUrl()\">{{ i18n.msgStr('doSignOut') }}</a>\n </li>\n </ul>\n </div>\n </div>\n </nav>\n </header>\n\n <div class=\"container\">\n <div class=\"bs-sidebar col-sm-3\">\n <ul>\n <li [ngClass]=\"{ active: activeLink === 'account' }\">\n <a [href]=\"url.accountUrl\">{{ i18n.msgStr('account') }}</a>\n </li>\n @if (features.passwordUpdateSupported) {\n <li [ngClass]=\"{ active: activeLink === 'password' }\">\n <a [href]=\"url.passwordUrl\">{{ i18n.msgStr('password') }}</a>\n </li>\n }\n <li [ngClass]=\"{ active: activeLink === 'totp' }\">\n <a [href]=\"url.totpUrl\">{{ i18n.msgStr('authenticator') }}</a>\n </li>\n @if (features.identityFederation) {\n <li [ngClass]=\"{ active: activeLink === 'social' }\">\n <a [href]=\"url.socialUrl\">{{ i18n.msgStr('federatedIdentity') }}</a>\n </li>\n }\n <li [ngClass]=\"{ active: activeLink === 'sessions' }\">\n <a [href]=\"url.sessionsUrl\">{{ i18n.msgStr('sessions') }}</a>\n </li>\n <li [ngClass]=\"{ active: activeLink === 'applications' }\">\n <a [href]=\"url.applicationsUrl\">{{ i18n.msgStr('applications') }}</a>\n </li>\n @if (features.log) {\n <li [ngClass]=\"{ active: activeLink === 'log' }\">\n <a [href]=\"url.logUrl\">{{ i18n.msgStr('log') }}</a>\n </li>\n }\n @if (realm.userManagedAccessAllowed && features.authorization) {\n <li [ngClass]=\"{ active: activeLink === 'authorization' }\">\n <a [href]=\"url.resourceUrl\">{{ i18n.msgStr('myResources') }}</a>\n </li>\n }\n </ul>\n </div>\n\n <div class=\"col-sm-9 content-area\">\n @if (message) {\n <div [ngClass]=\"['alert', 'alert-' + message.type]\">\n @switch (message.type) {\n @case ('success') {\n <span class=\"pficon pficon-ok\"></span>\n }\n @case ('error') {\n <span class=\"pficon pficon-error-circle-o\"></span>\n }\n }\n <span\n class=\"kc-feedback-text\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <ng-content select=\"[content]\"></ng-content>\n </div>\n </div>\n}\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: KcSanitizePipe, name: "kcSanitize" }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
56
|
+
}
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: TemplateComponent, decorators: [{
|
|
58
|
+
type: Component,
|
|
59
|
+
args: [{ selector: 'kc-account-template', standalone: true, imports: [AsyncPipe, KcSanitizePipe, NgTemplateOutlet, KcClassDirective, NgClass], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
60
|
+
{
|
|
61
|
+
provide: ComponentReference,
|
|
62
|
+
useExisting: forwardRef(() => TemplateComponent)
|
|
63
|
+
}
|
|
64
|
+
], template: "@let enabledLanguages = i18n.enabledLanguages;\n@let currentLanguage = i18n.currentLanguage;\n@let url = kcContext.url;\n@let features = kcContext.features;\n@let realm = kcContext.realm;\n@let message = kcContext.message;\n@let referrer = kcContext.referrer;\n@let activeLink = active();\n@let isReadyToRender = isReadyToRender$ | async;\n\n@if (isReadyToRender) {\n <header class=\"navbar navbar-default navbar-pf navbar-main header\">\n <nav\n class=\"navbar\"\n role=\"navigation\"\n >\n <div class=\"navbar-header\">\n <div class=\"container\">\n <h1 class=\"navbar-title\">Keycloak</h1>\n </div>\n </div>\n <div class=\"navbar-collapse navbar-collapse-1\">\n <div class=\"container\">\n <ul class=\"nav navbar-nav navbar-utility\">\n @if (enabledLanguages.length > 1) {\n <li>\n <div\n class=\"kc-dropdown\"\n id=\"kc-locale-dropdown\"\n >\n <a\n href=\"#\"\n id=\"kc-current-locale-link\"\n >\n {{ currentLanguage.label }}\n </a>\n <ul>\n @for (enabledLanguage of enabledLanguages; track enabledLanguage.languageTag) {\n @let label = enabledLanguage.label;\n @let href = enabledLanguage.href;\n\n <li class=\"kc-dropdown-item\">\n <a [href]=\"href\">{{ label }}</a>\n </li>\n }\n </ul>\n </div>\n </li>\n }\n @if (!!referrer?.url) {\n <a\n [href]=\"referrer?.url\"\n id=\"referrer\"\n >\n {{ i18n.msgStr('backTo', referrer?.name) }}\n </a>\n }\n <li>\n <a [href]=\"url.getLogoutUrl()\">{{ i18n.msgStr('doSignOut') }}</a>\n </li>\n </ul>\n </div>\n </div>\n </nav>\n </header>\n\n <div class=\"container\">\n <div class=\"bs-sidebar col-sm-3\">\n <ul>\n <li [ngClass]=\"{ active: activeLink === 'account' }\">\n <a [href]=\"url.accountUrl\">{{ i18n.msgStr('account') }}</a>\n </li>\n @if (features.passwordUpdateSupported) {\n <li [ngClass]=\"{ active: activeLink === 'password' }\">\n <a [href]=\"url.passwordUrl\">{{ i18n.msgStr('password') }}</a>\n </li>\n }\n <li [ngClass]=\"{ active: activeLink === 'totp' }\">\n <a [href]=\"url.totpUrl\">{{ i18n.msgStr('authenticator') }}</a>\n </li>\n @if (features.identityFederation) {\n <li [ngClass]=\"{ active: activeLink === 'social' }\">\n <a [href]=\"url.socialUrl\">{{ i18n.msgStr('federatedIdentity') }}</a>\n </li>\n }\n <li [ngClass]=\"{ active: activeLink === 'sessions' }\">\n <a [href]=\"url.sessionsUrl\">{{ i18n.msgStr('sessions') }}</a>\n </li>\n <li [ngClass]=\"{ active: activeLink === 'applications' }\">\n <a [href]=\"url.applicationsUrl\">{{ i18n.msgStr('applications') }}</a>\n </li>\n @if (features.log) {\n <li [ngClass]=\"{ active: activeLink === 'log' }\">\n <a [href]=\"url.logUrl\">{{ i18n.msgStr('log') }}</a>\n </li>\n }\n @if (realm.userManagedAccessAllowed && features.authorization) {\n <li [ngClass]=\"{ active: activeLink === 'authorization' }\">\n <a [href]=\"url.resourceUrl\">{{ i18n.msgStr('myResources') }}</a>\n </li>\n }\n </ul>\n </div>\n\n <div class=\"col-sm-9 content-area\">\n @if (message) {\n <div [ngClass]=\"['alert', 'alert-' + message.type]\">\n @switch (message.type) {\n @case ('success') {\n <span class=\"pficon pficon-ok\"></span>\n }\n @case ('error') {\n <span class=\"pficon pficon-error-circle-o\"></span>\n }\n }\n <span\n class=\"kc-feedback-text\"\n [innerHTML]=\"message.summary | kcSanitize: 'html'\"\n ></span>\n </div>\n }\n <ng-content select=\"[content]\"></ng-content>\n </div>\n </div>\n}\n" }]
|
|
65
|
+
}], ctorParameters: () => [] });
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvYWNjb3VudC9jb250YWluZXJzL3RlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2FjY291bnQvY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDcEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDOUYsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDakgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUMxRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDakYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3hGLE9BQU8sRUFBWSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFrQnJFLE1BQU0sT0FB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fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGEsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBLY0NsYXNzRGlyZWN0aXZlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC9kaXJlY3RpdmVzL2tjLWNsYXNzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBY2NvdW50UmVzb3VyY2VJbmplY3RvclNlcnZpY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3NlcnZpY2VzL3Jlc291cmNlLWluamVjdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgQUNDT1VOVF9DTEFTU0VTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC90b2tlbnMvY2xhc3Nlcy50b2tlbic7XG5pbXBvcnQgeyBBQ0NPVU5UX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3Rva2Vucy9pMThuLnRva2VuJztcbmltcG9ydCB7IEtDX0FDQ09VTlRfQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvdG9rZW5zL2tjLWNvbnRleHQudG9rZW4nO1xuaW1wb3J0IHsgS2NTYW5pdGl6ZVBpcGUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvcGlwZXMva2Mtc2FuaXRpemUucGlwZSc7XG5pbXBvcnQgeyBVU0VfREVGQVVMVF9DU1MgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9saWIvdG9rZW5zL3VzZS1kZWZhdWx0LWNzcy50b2tlbic7XG5pbXBvcnQgeyBDbGFzc0tleSwgZ2V0S2NDbHN4IH0gZnJvbSAna2V5Y2xvYWtpZnkvYWNjb3VudC9saWIva2NDbHN4JztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEkxOG4gfSBmcm9tICcuLi9pMThuJztcbmltcG9ydCB7IHR5cGUgS2NDb250ZXh0IH0gZnJvbSAnLi4vS2NDb250ZXh0JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdrYy1hY2NvdW50LXRlbXBsYXRlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0FzeW5jUGlwZSwgS2NTYW5pdGl6ZVBpcGUsIE5nVGVtcGxhdGVPdXRsZXQsIEtjQ2xhc3NEaXJlY3RpdmUsIE5nQ2xhc3NdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZW1wbGF0ZUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgVGVtcGxhdGVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2UgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGkxOG4gPSBpbmplY3Q8STE4bj4oQUNDT1VOVF9JMThOKTtcbiAgICByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIG1ldGEgPSBpbmplY3QoTWV0YSk7XG4gICAgdGl0bGUgPSBpbmplY3QoVGl0bGUpO1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxLY0NvbnRleHQ+KEtDX0FDQ09VTlRfQ09OVEVYVCk7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KEFDQ09VTlRfQ0xBU1NFUyk7XG4gICAgYWNjb3VudFJlc291cmNlSW5qZWN0b3JTZXJ2aWNlID0gaW5qZWN0KEFjY291bnRSZXNvdXJjZUluamVjdG9yU2VydmljZSk7XG5cbiAgICBhY3RpdmUgPSBpbnB1dDwnYWNjb3VudCcgfCAncGFzc3dvcmQnIHwgJ3RvdHAnIHwgJ3NvY2lhbCcgfCAnc2Vzc2lvbnMnIHwgJ2FwcGxpY2F0aW9ucycgfCAnbG9nJyB8ICdhdXRob3JpemF0aW9uJyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAgIGlzUmVhZHlUb1JlbmRlciQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy50aXRsZS5zZXRUaXRsZSh0aGlzLmkxOG4ubXNnU3RyKCdhY2NvdW50TWFuYWdlbWVudFRpdGxlJykpO1xuICAgICAgICB0aGlzLmlzUmVhZHlUb1JlbmRlciQgPSB0aGlzLmFjY291bnRSZXNvdXJjZUluamVjdG9yU2VydmljZS5pbmplY3RSZXNvdXJjZSh0aGlzLmRvVXNlRGVmYXVsdENzcyk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYXBwbHlLY0luZGV4Q2xhc3NlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlLY0luZGV4Q2xhc3NlcygpIHtcbiAgICAgICAgY29uc3Qga2NDbHN4ID0gZ2V0S2NDbHN4KHtcbiAgICAgICAgICAgIGRvVXNlRGVmYXVsdENzczogdGhpcy5kb1VzZURlZmF1bHRDc3MsXG4gICAgICAgICAgICBjbGFzc2VzOiB0aGlzLmNsYXNzZXNcbiAgICAgICAgfSkua2NDbHN4O1xuICAgICAgICBjb25zdCBrY0JvZHlDbGFzcyA9IGtjQ2xzeCgna2NCb2R5Q2xhc3MnKTtcbiAgICAgICAgY29uc3Qga2NIdG1sQ2xhc3MgPSBrY0Nsc3goJ2tjSHRtbENsYXNzJyk7XG4gICAgICAgIGNvbnN0IGtjQm9keUNsYXNzZXMgPSBrY0JvZHlDbGFzcy5zcGxpdCgvXFxzKy8pO1xuICAgICAgICBjb25zdCBrY0h0bWxDbGFzc2VzID0ga2NIdG1sQ2xhc3Muc3BsaXQoL1xccysvKTtcbiAgICAgICAga2NCb2R5Q2xhc3Nlcy5wdXNoKCdhZG1pbi1jb25zb2xlJywgJ3VzZXInKTtcbiAgICAgICAga2NCb2R5Q2xhc3Nlcy5mb3JFYWNoKGtsYXNzID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG9jdW1lbnQuYm9keSwga2xhc3MpO1xuICAgICAgICB9KTtcbiAgICAgICAga2NIdG1sQ2xhc3Nlcy5mb3JFYWNoKGtsYXNzID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBrbGFzcyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIkBsZXQgZW5hYmxlZExhbmd1YWdlcyA9IGkxOG4uZW5hYmxlZExhbmd1YWdlcztcbkBsZXQgY3VycmVudExhbmd1YWdlID0gaTE4bi5jdXJyZW50TGFuZ3VhZ2U7XG5AbGV0IHVybCA9IGtjQ29udGV4dC51cmw7XG5AbGV0IGZlYXR1cmVzID0ga2NDb250ZXh0LmZlYXR1cmVzO1xuQGxldCByZWFsbSA9IGtjQ29udGV4dC5yZWFsbTtcbkBsZXQgbWVzc2FnZSA9IGtjQ29udGV4dC5tZXNzYWdlO1xuQGxldCByZWZlcnJlciA9IGtjQ29udGV4dC5yZWZlcnJlcjtcbkBsZXQgYWN0aXZlTGluayA9IGFjdGl2ZSgpO1xuQGxldCBpc1JlYWR5VG9SZW5kZXIgPSBpc1JlYWR5VG9SZW5kZXIkIHwgYXN5bmM7XG5cbkBpZiAoaXNSZWFkeVRvUmVuZGVyKSB7XG4gICAgPGhlYWRlciBjbGFzcz1cIm5hdmJhciBuYXZiYXItZGVmYXVsdCBuYXZiYXItcGYgbmF2YmFyLW1haW4gaGVhZGVyXCI+XG4gICAgICAgIDxuYXZcbiAgICAgICAgICAgIGNsYXNzPVwibmF2YmFyXCJcbiAgICAgICAgICAgIHJvbGU9XCJuYXZpZ2F0aW9uXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdmJhci1oZWFkZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoMSBjbGFzcz1cIm5hdmJhci10aXRsZVwiPktleWNsb2FrPC9oMT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdmJhci1jb2xsYXBzZSBuYXZiYXItY29sbGFwc2UtMVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwibmF2IG5hdmJhci1uYXYgbmF2YmFyLXV0aWxpdHlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBpZiAoZW5hYmxlZExhbmd1YWdlcy5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImtjLWRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwia2MtbG9jYWxlLWRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPVwiI1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJrYy1jdXJyZW50LWxvY2FsZS1saW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjdXJyZW50TGFuZ3VhZ2UubGFiZWwgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1bD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChlbmFibGVkTGFuZ3VhZ2Ugb2YgZW5hYmxlZExhbmd1YWdlczsgdHJhY2sgZW5hYmxlZExhbmd1YWdlLmxhbmd1YWdlVGFnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgbGFiZWwgPSBlbmFibGVkTGFuZ3VhZ2UubGFiZWw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBsZXQgaHJlZiA9IGVuYWJsZWRMYW5ndWFnZS5ocmVmO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImtjLWRyb3Bkb3duLWl0ZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cImhyZWZcIj57eyBsYWJlbCB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghIXJlZmVycmVyPy51cmwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaHJlZl09XCJyZWZlcnJlcj8udXJsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJyZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignYmFja1RvJywgcmVmZXJyZXI/Lm5hbWUpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPGxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cInVybC5nZXRMb2dvdXRVcmwoKVwiPnt7IGkxOG4ubXNnU3RyKCdkb1NpZ25PdXQnKSB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uYXY+XG4gICAgPC9oZWFkZXI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJicy1zaWRlYmFyIGNvbC1zbS0zXCI+XG4gICAgICAgICAgICA8dWw+XG4gICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBhY3RpdmVMaW5rID09PSAnYWNjb3VudCcgfVwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJ1cmwuYWNjb3VudFVybFwiPnt7IGkxOG4ubXNnU3RyKCdhY2NvdW50JykgfX08L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICBAaWYgKGZlYXR1cmVzLnBhc3N3b3JkVXBkYXRlU3VwcG9ydGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJ7IGFjdGl2ZTogYWN0aXZlTGluayA9PT0gJ3Bhc3N3b3JkJyB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJ1cmwucGFzc3dvcmRVcmxcIj57eyBpMThuLm1zZ1N0cigncGFzc3dvcmQnKSB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBhY3RpdmVMaW5rID09PSAndG90cCcgfVwiPlxuICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJ1cmwudG90cFVybFwiPnt7IGkxOG4ubXNnU3RyKCdhdXRoZW50aWNhdG9yJykgfX08L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICBAaWYgKGZlYXR1cmVzLmlkZW50aXR5RmVkZXJhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGFjdGl2ZUxpbmsgPT09ICdzb2NpYWwnIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cInVybC5zb2NpYWxVcmxcIj57eyBpMThuLm1zZ1N0cignZmVkZXJhdGVkSWRlbnRpdHknKSB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cInsgYWN0aXZlOiBhY3RpdmVMaW5rID09PSAnc2Vzc2lvbnMnIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwidXJsLnNlc3Npb25zVXJsXCI+e3sgaTE4bi5tc2dTdHIoJ3Nlc3Npb25zJykgfX08L2E+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGFjdGl2ZUxpbmsgPT09ICdhcHBsaWNhdGlvbnMnIH1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwidXJsLmFwcGxpY2F0aW9uc1VybFwiPnt7IGkxOG4ubXNnU3RyKCdhcHBsaWNhdGlvbnMnKSB9fTwvYT5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIEBpZiAoZmVhdHVyZXMubG9nKSB7XG4gICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJ7IGFjdGl2ZTogYWN0aXZlTGluayA9PT0gJ2xvZycgfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGEgW2hyZWZdPVwidXJsLmxvZ1VybFwiPnt7IGkxOG4ubXNnU3RyKCdsb2cnKSB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChyZWFsbS51c2VyTWFuYWdlZEFjY2Vzc0FsbG93ZWQgJiYgZmVhdHVyZXMuYXV0aG9yaXphdGlvbikge1xuICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwieyBhY3RpdmU6IGFjdGl2ZUxpbmsgPT09ICdhdXRob3JpemF0aW9uJyB9XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YSBbaHJlZl09XCJ1cmwucmVzb3VyY2VVcmxcIj57eyBpMThuLm1zZ1N0cignbXlSZXNvdXJjZXMnKSB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTkgY29udGVudC1hcmVhXCI+XG4gICAgICAgICAgICBAaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cIlsnYWxlcnQnLCAnYWxlcnQtJyArIG1lc3NhZ2UudHlwZV1cIj5cbiAgICAgICAgICAgICAgICAgICAgQHN3aXRjaCAobWVzc2FnZS50eXBlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ3N1Y2Nlc3MnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwZmljb24gcGZpY29uLW9rXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdlcnJvcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInBmaWNvbiBwZmljb24tZXJyb3ItY2lyY2xlLW9cIj48L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwia2MtZmVlZGJhY2stdGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cIm1lc3NhZ2Uuc3VtbWFyeSB8IGtjU2FuaXRpemU6ICdodG1sJ1wiXG4gICAgICAgICAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { DoCheck } from '@angular/core';
|
|
2
|
+
import { ClassKey } from 'keycloakify/account';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
type KcClassSupportedTypes = ClassKey[] | Set<ClassKey> | Partial<{
|
|
5
|
+
[key in ClassKey]: any;
|
|
6
|
+
}> | null | undefined;
|
|
7
|
+
type NgClassSupportedTypes = string[] | Set<string> | {
|
|
8
|
+
[key: string]: any;
|
|
9
|
+
} | null | undefined;
|
|
10
|
+
export declare class KcClassDirective implements DoCheck {
|
|
11
|
+
#private;
|
|
12
|
+
private initialClasses;
|
|
13
|
+
private rawClass;
|
|
14
|
+
private rawKcClass;
|
|
15
|
+
private stateMap;
|
|
16
|
+
set klass(value: string);
|
|
17
|
+
set ngClass(value: string | NgClassSupportedTypes);
|
|
18
|
+
set kcClass(value: ClassKey | KcClassSupportedTypes);
|
|
19
|
+
ngDoCheck(): void;
|
|
20
|
+
private _updateState;
|
|
21
|
+
private _applyStateDiff;
|
|
22
|
+
private _toggleClass;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<KcClassDirective, never>;
|
|
24
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<KcClassDirective, "[kcClass]", never, { "klass": { "alias": "class"; "required": false; }; "ngClass": { "alias": "ngClass"; "required": false; }; "kcClass": { "alias": "kcClass"; "required": false; }; }, {}, never, never, true, never>;
|
|
25
|
+
}
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
/* eslint-disable @typescript-eslint/consistent-indexed-object-style */
|
|
3
|
+
import { Directive, ElementRef, inject, Input, isDevMode, Renderer2, ɵstringify as stringify, } from '@angular/core';
|
|
4
|
+
import { getKcClsx } from 'keycloakify/account/lib/kcClsx';
|
|
5
|
+
import { ComponentReference } from '../classes/component-reference.class';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class KcClassDirective {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.initialClasses = [];
|
|
10
|
+
this.stateMap = new Map();
|
|
11
|
+
this.#renderer = inject(Renderer2);
|
|
12
|
+
this.#el = inject(ElementRef);
|
|
13
|
+
this.#host = inject(ComponentReference);
|
|
14
|
+
}
|
|
15
|
+
#renderer;
|
|
16
|
+
#el;
|
|
17
|
+
#host;
|
|
18
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
19
|
+
set klass(value) {
|
|
20
|
+
this.initialClasses = value != null ? value.trim().split(/\s+/) : [];
|
|
21
|
+
}
|
|
22
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
23
|
+
set ngClass(value) {
|
|
24
|
+
this.rawClass = typeof value === 'string' ? value.trim().split(/\s+/) : value;
|
|
25
|
+
}
|
|
26
|
+
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
27
|
+
set kcClass(value) {
|
|
28
|
+
this.rawKcClass = typeof value === 'string' ? value.trim().split(/\s+/) : value;
|
|
29
|
+
}
|
|
30
|
+
ngDoCheck() {
|
|
31
|
+
for (const klass of this.initialClasses) {
|
|
32
|
+
this._updateState(klass, true);
|
|
33
|
+
}
|
|
34
|
+
// classes from the [ngClass] binding
|
|
35
|
+
const rawClass = this.rawClass;
|
|
36
|
+
if (Array.isArray(rawClass) || rawClass instanceof Set) {
|
|
37
|
+
for (const klass of rawClass) {
|
|
38
|
+
this._updateState(klass, true);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
else if (rawClass != null) {
|
|
42
|
+
for (const klass of Object.keys(rawClass)) {
|
|
43
|
+
this._updateState(klass, Boolean(rawClass[klass]));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// classes from the [kcClass] binding
|
|
47
|
+
const rawKcClass = this.rawKcClass;
|
|
48
|
+
if (Array.isArray(rawKcClass) || rawKcClass instanceof Set) {
|
|
49
|
+
for (const klass of rawKcClass) {
|
|
50
|
+
this._updateState(klass, true, true);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
else if (rawKcClass != null) {
|
|
54
|
+
for (const klass of Object.keys(rawKcClass)) {
|
|
55
|
+
this._updateState(klass, Boolean(rawKcClass[klass]), true);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
this._applyStateDiff();
|
|
59
|
+
}
|
|
60
|
+
_updateState(klass, nextEnabled, kcClsxCheck = false) {
|
|
61
|
+
const state = this.stateMap.get(klass);
|
|
62
|
+
if (state !== undefined) {
|
|
63
|
+
if (state.enabled !== nextEnabled) {
|
|
64
|
+
state.changed = true;
|
|
65
|
+
state.enabled = nextEnabled;
|
|
66
|
+
}
|
|
67
|
+
state.touched = true;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
let klassChecked = klass;
|
|
71
|
+
if (kcClsxCheck) {
|
|
72
|
+
const doUseDefaultCss = this.#host.doUseDefaultCss ?? true;
|
|
73
|
+
const classes = { ...(this.#host.classes ?? {}), ...(this.#host.additionalClasses ?? {}) };
|
|
74
|
+
const kcClsx = getKcClsx({ doUseDefaultCss, classes }).kcClsx;
|
|
75
|
+
klassChecked = kcClsx(klass);
|
|
76
|
+
}
|
|
77
|
+
this.stateMap.set(klassChecked, {
|
|
78
|
+
enabled: nextEnabled,
|
|
79
|
+
changed: true,
|
|
80
|
+
touched: true,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
_applyStateDiff() {
|
|
85
|
+
for (const stateEntry of this.stateMap) {
|
|
86
|
+
const klass = stateEntry[0];
|
|
87
|
+
const state = stateEntry[1];
|
|
88
|
+
if (state.changed) {
|
|
89
|
+
this._toggleClass(klass, state.enabled);
|
|
90
|
+
state.changed = false;
|
|
91
|
+
}
|
|
92
|
+
else if (!state.touched) {
|
|
93
|
+
// A class that was previously active got removed from the new collection of classes -
|
|
94
|
+
// remove from the DOM as well.
|
|
95
|
+
if (state.enabled) {
|
|
96
|
+
this._toggleClass(klass, false);
|
|
97
|
+
}
|
|
98
|
+
this.stateMap.delete(klass);
|
|
99
|
+
}
|
|
100
|
+
state.touched = false;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
_toggleClass(klass, enabled) {
|
|
104
|
+
if (isDevMode()) {
|
|
105
|
+
if (typeof klass !== 'string') {
|
|
106
|
+
throw new Error(`NgClass can only toggle CSS classes expressed as strings, got ${stringify(klass)}`);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
klass = klass.trim();
|
|
110
|
+
if (klass.length > 0) {
|
|
111
|
+
klass.split(/\s+/).forEach((klass) => {
|
|
112
|
+
if (enabled) {
|
|
113
|
+
this.#renderer.addClass(this.#el.nativeElement, klass);
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
this.#renderer.removeClass(this.#el.nativeElement, klass);
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KcClassDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
122
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: KcClassDirective, isStandalone: true, selector: "[kcClass]", inputs: { klass: ["class", "klass"], ngClass: "ngClass", kcClass: "kcClass" }, ngImport: i0 }); }
|
|
123
|
+
}
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KcClassDirective, decorators: [{
|
|
125
|
+
type: Directive,
|
|
126
|
+
args: [{ selector: '[kcClass]', standalone: true }]
|
|
127
|
+
}], propDecorators: { klass: [{
|
|
128
|
+
type: Input,
|
|
129
|
+
args: ['class']
|
|
130
|
+
}], ngClass: [{
|
|
131
|
+
type: Input,
|
|
132
|
+
args: ['ngClass']
|
|
133
|
+
}], kcClass: [{
|
|
134
|
+
type: Input,
|
|
135
|
+
args: ['kcClass']
|
|
136
|
+
}] } });
|
|
137
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2MtY2xhc3MuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvYWNjb3VudC9kaXJlY3RpdmVzL2tjLWNsYXNzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsdUVBQXVFO0FBQ3ZFLE9BQU8sRUFDTCxTQUFTLEVBRVQsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUNULFNBQVMsRUFDVCxVQUFVLElBQUksU0FBUyxHQUN4QixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBYzFFLE1BQU0sT0FBTyxnQkFBZ0I7SUFEN0I7UUFFVSxtQkFBYyxHQUFhLEVBQUUsQ0FBQztRQUk5QixhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQW9DLENBQUM7UUFDdEQsY0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QixRQUFHLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pCLFVBQUssR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQWlIN0M7SUFuSFUsU0FBUyxDQUFxQjtJQUM5QixHQUFHLENBQXNCO0lBQ3pCLEtBQUssQ0FBOEI7SUFDNUMsMkRBQTJEO0lBQzNELElBQ0ksS0FBSyxDQUFDLEtBQWE7UUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDdkUsQ0FBQztJQUVELDJEQUEyRDtJQUMzRCxJQUNJLE9BQU8sQ0FBQyxLQUFx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QUs7dUJBQUMsT0FBTztnQkFPVixPQUFPO3NCQURWLEtBQUs7dUJBQUMsU0FBUztnQkFPWixPQUFPO3NCQURWLEtBQUs7dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9jb25zaXN0ZW50LWluZGV4ZWQtb2JqZWN0LXN0eWxlICovXG5pbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIERvQ2hlY2ssXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIGlzRGV2TW9kZSxcbiAgUmVuZGVyZXIyLFxuICDJtXN0cmluZ2lmeSBhcyBzdHJpbmdpZnksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9hY2NvdW50JztcbmltcG9ydCB7IGdldEtjQ2xzeCB9IGZyb20gJ2tleWNsb2FraWZ5L2FjY291bnQvbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBDb21wb25lbnRSZWZlcmVuY2UgfSBmcm9tICcuLi9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuXG5pbnRlcmZhY2UgQ3NzQ2xhc3NTdGF0ZSB7XG4gIC8vIFBFUkY6IGNvdWxkIHVzZSBhIGJpdCBtYXNrIHRvIHJlcHJlc2VudCBzdGF0ZSBhcyBhbGwgZmllbGRzIGFyZSBib29sZWFuIGZsYWdzXG4gIGVuYWJsZWQ6IGJvb2xlYW47XG4gIGNoYW5nZWQ6IGJvb2xlYW47XG4gIHRvdWNoZWQ6IGJvb2xlYW47XG59XG5cbnR5cGUgS2NDbGFzc1N1cHBvcnRlZFR5cGVzID0gQ2xhc3NLZXlbXSB8IFNldDxDbGFzc0tleT4gfCBQYXJ0aWFsPHsgW2tleSBpbiBDbGFzc0tleV06IGFueSB9PiB8IG51bGwgfCB1bmRlZmluZWQ7XG5cbnR5cGUgTmdDbGFzc1N1cHBvcnRlZFR5cGVzID0gc3RyaW5nW10gfCBTZXQ8c3RyaW5nPiB8IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsIHwgdW5kZWZpbmVkO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdba2NDbGFzc10nLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgS2NDbGFzc0RpcmVjdGl2ZSBpbXBsZW1lbnRzIERvQ2hlY2sge1xuICBwcml2YXRlIGluaXRpYWxDbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICBwcml2YXRlIHJhd0NsYXNzOiBOZ0NsYXNzU3VwcG9ydGVkVHlwZXM7XG4gIHByaXZhdGUgcmF3S2NDbGFzczogS2NDbGFzc1N1cHBvcnRlZFR5cGVzO1xuXG4gIHByaXZhdGUgc3RhdGVNYXAgPSBuZXcgTWFwPHN0cmluZyB8IENsYXNzS2V5LCBDc3NDbGFzc1N0YXRlPigpO1xuICByZWFkb25seSAjcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcmVhZG9ubHkgI2VsID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICByZWFkb25seSAjaG9zdCA9IGluamVjdChDb21wb25lbnRSZWZlcmVuY2UpO1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ2NsYXNzJylcbiAgc2V0IGtsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLmluaXRpYWxDbGFzc2VzID0gdmFsdWUgIT0gbnVsbCA/IHZhbHVlLnRyaW0oKS5zcGxpdCgvXFxzKy8pIDogW107XG4gIH1cblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICBASW5wdXQoJ25nQ2xhc3MnKVxuICBzZXQgbmdDbGFzcyh2YWx1ZTogc3RyaW5nIHwgTmdDbGFzc1N1cHBvcnRlZFR5cGVzKSB7XG4gICAgdGhpcy5yYXdDbGFzcyA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgPyB2YWx1ZS50cmltKCkuc3BsaXQoL1xccysvKSA6IHZhbHVlO1xuICB9XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgQElucHV0KCdrY0NsYXNzJylcbiAgc2V0IGtjQ2xhc3ModmFsdWU6IENsYXNzS2V5IHwgS2NDbGFzc1N1cHBvcnRlZFR5cGVzKSB7XG4gICAgdGhpcy5yYXdLY0NsYXNzID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyA/ICh2YWx1ZS50cmltKCkuc3BsaXQoL1xccysvKSBhcyBDbGFzc0tleVtdKSA6IHZhbHVlO1xuICB9XG5cbiAgbmdEb0NoZWNrKCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qga2xhc3Mgb2YgdGhpcy5pbml0aWFsQ2xhc3Nlcykge1xuICAgICAgdGhpcy5fdXBkYXRlU3RhdGUoa2xhc3MsIHRydWUpO1xuICAgIH1cbiAgICAvLyBjbGFzc2VzIGZyb20gdGhlIFtuZ0NsYXNzXSBiaW5kaW5nXG4gICAgY29uc3QgcmF3Q2xhc3MgPSB0aGlzLnJhd0NsYXNzO1xuICAgIGlmIChBcnJheS5pc0FycmF5KHJhd0NsYXNzKSB8fCByYXdDbGFzcyBpbnN0YW5jZW9mIFNldCkge1xuICAgICAgZm9yIChjb25zdCBrbGFzcyBvZiByYXdDbGFzcykge1xuICAgICAgICB0aGlzLl91cGRhdGVTdGF0ZShrbGFzcywgdHJ1ZSk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChyYXdDbGFzcyAhPSBudWxsKSB7XG4gICAgICBmb3IgKGNvbnN0IGtsYXNzIG9mIE9iamVjdC5rZXlzKHJhd0NsYXNzKSkge1xuICAgICAgICB0aGlzLl91cGRhdGVTdGF0ZShrbGFzcywgQm9vbGVhbihyYXdDbGFzc1trbGFzc10pKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBjbGFzc2VzIGZyb20gdGhlIFtrY0NsYXNzXSBiaW5kaW5nXG4gICAgY29uc3QgcmF3S2NDbGFzcyA9IHRoaXMucmF3S2NDbGFzcztcbiAgICBpZiAoQXJyYXkuaXNBcnJheShyYXdLY0NsYXNzKSB8fCByYXdLY0NsYXNzIGluc3RhbmNlb2YgU2V0KSB7XG4gICAgICBmb3IgKGNvbnN0IGtsYXNzIG9mIHJhd0tjQ2xhc3MpIHtcbiAgICAgICAgdGhpcy5fdXBkYXRlU3RhdGUoa2xhc3MsIHRydWUsIHRydWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSBpZiAocmF3S2NDbGFzcyAhPSBudWxsKSB7XG4gICAgICBmb3IgKGNvbnN0IGtsYXNzIG9mIE9iamVjdC5rZXlzKHJhd0tjQ2xhc3MpKSB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVN0YXRlKGtsYXNzLCBCb29sZWFuKHJhd0tjQ2xhc3Nba2xhc3MgYXMgQ2xhc3NLZXldKSwgdHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fYXBwbHlTdGF0ZURpZmYoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVN0YXRlKGtsYXNzOiBzdHJpbmcgfCBDbGFzc0tleSwgbmV4dEVuYWJsZWQ6IGJvb2xlYW4sIGtjQ2xzeENoZWNrID0gZmFsc2UpIHtcbiAgICBjb25zdCBzdGF0ZSA9IHRoaXMuc3RhdGVNYXAuZ2V0KGtsYXNzKTtcbiAgICBpZiAoc3RhdGUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgaWYgKHN0YXRlLmVuYWJsZWQgIT09IG5leHRFbmFibGVkKSB7XG4gICAgICAgIHN0YXRlLmNoYW5nZWQgPSB0cnVlO1xuICAgICAgICBzdGF0ZS5lbmFibGVkID0gbmV4dEVuYWJsZWQ7XG4gICAgICB9XG4gICAgICBzdGF0ZS50b3VjaGVkID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGtsYXNzQ2hlY2tlZCA9IGtsYXNzO1xuICAgICAgaWYgKGtjQ2xzeENoZWNrKSB7XG4gICAgICAgIGNvbnN0IGRvVXNlRGVmYXVsdENzcyA9IHRoaXMuI2hvc3QuZG9Vc2VEZWZhdWx0Q3NzID8/IHRydWU7XG4gICAgICAgIGNvbnN0IGNsYXNzZXMgPSB7IC4uLih0aGlzLiNob3N0LmNsYXNzZXMgPz8ge30pLCAuLi4odGhpcy4jaG9zdC5hZGRpdGlvbmFsQ2xhc3NlcyA/PyB7fSkgfTtcbiAgICAgICAgY29uc3Qga2NDbHN4ID0gZ2V0S2NDbHN4KHsgZG9Vc2VEZWZhdWx0Q3NzLCBjbGFzc2VzIH0pLmtjQ2xzeDtcbiAgICAgICAga2xhc3NDaGVja2VkID0ga2NDbHN4KGtsYXNzIGFzIENsYXNzS2V5KTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc3RhdGVNYXAuc2V0KGtsYXNzQ2hlY2tlZCwge1xuICAgICAgICBlbmFibGVkOiBuZXh0RW5hYmxlZCxcbiAgICAgICAgY2hhbmdlZDogdHJ1ZSxcbiAgICAgICAgdG91Y2hlZDogdHJ1ZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2FwcGx5U3RhdGVEaWZmKCkge1xuICAgIGZvciAoY29uc3Qgc3RhdGVFbnRyeSBvZiB0aGlzLnN0YXRlTWFwKSB7XG4gICAgICBjb25zdCBrbGFzcyA9IHN0YXRlRW50cnlbMF07XG4gICAgICBjb25zdCBzdGF0ZSA9IHN0YXRlRW50cnlbMV07XG5cbiAgICAgIGlmIChzdGF0ZS5jaGFuZ2VkKSB7XG4gICAgICAgIHRoaXMuX3RvZ2dsZUNsYXNzKGtsYXNzLCBzdGF0ZS5lbmFibGVkKTtcbiAgICAgICAgc3RhdGUuY2hhbmdlZCA9IGZhbHNlO1xuICAgICAgfSBlbHNlIGlmICghc3RhdGUudG91Y2hlZCkge1xuICAgICAgICAvLyBBIGNsYXNzIHRoYXQgd2FzIHByZXZpb3VzbHkgYWN0aXZlIGdvdCByZW1vdmVkIGZyb20gdGhlIG5ldyBjb2xsZWN0aW9uIG9mIGNsYXNzZXMgLVxuICAgICAgICAvLyByZW1vdmUgZnJvbSB0aGUgRE9NIGFzIHdlbGwuXG4gICAgICAgIGlmIChzdGF0ZS5lbmFibGVkKSB7XG4gICAgICAgICAgdGhpcy5fdG9nZ2xlQ2xhc3Moa2xhc3MsIGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0YXRlTWFwLmRlbGV0ZShrbGFzcyk7XG4gICAgICB9XG5cbiAgICAgIHN0YXRlLnRvdWNoZWQgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF90b2dnbGVDbGFzcyhrbGFzczogc3RyaW5nLCBlbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzRGV2TW9kZSgpKSB7XG4gICAgICBpZiAodHlwZW9mIGtsYXNzICE9PSAnc3RyaW5nJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5nQ2xhc3MgY2FuIG9ubHkgdG9nZ2xlIENTUyBjbGFzc2VzIGV4cHJlc3NlZCBhcyBzdHJpbmdzLCBnb3QgJHtzdHJpbmdpZnkoa2xhc3MpfWApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGtsYXNzID0ga2xhc3MudHJpbSgpO1xuICAgIGlmIChrbGFzcy5sZW5ndGggPiAwKSB7XG4gICAgICBrbGFzcy5zcGxpdCgvXFxzKy8pLmZvckVhY2goKGtsYXNzKSA9PiB7XG4gICAgICAgIGlmIChlbmFibGVkKSB7XG4gICAgICAgICAgdGhpcy4jcmVuZGVyZXIuYWRkQ2xhc3ModGhpcy4jZWwubmF0aXZlRWxlbWVudCwga2xhc3MpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuI3JlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuI2VsLm5hdGl2ZUVsZW1lbnQsIGtsYXNzKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { GenericI18n_noJsx } from 'keycloakify/account/i18n/noJsx/GenericI18n_noJsx';
|
|
2
|
+
import { type MessageKey as MessageKey_defaultSet } from 'keycloakify/account/i18n/messages_defaultSet/types';
|
|
3
|
+
/** INTERNAL: DO NOT IMPORT THIS */
|
|
4
|
+
export type I18n = GenericI18n_noJsx<MessageKey_defaultSet, string>;
|
package/account/i18n.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2FjY291bnQvaTE4bi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBHZW5lcmljSTE4bl9ub0pzeCB9IGZyb20gJ2tleWNsb2FraWZ5L2FjY291bnQvaTE4bi9ub0pzeC9HZW5lcmljSTE4bl9ub0pzeCc7XG5pbXBvcnQgeyB0eXBlIE1lc3NhZ2VLZXkgYXMgTWVzc2FnZUtleV9kZWZhdWx0U2V0IH0gZnJvbSAna2V5Y2xvYWtpZnkvYWNjb3VudC9pMThuL21lc3NhZ2VzX2RlZmF1bHRTZXQvdHlwZXMnO1xuLyoqIElOVEVSTkFMOiBETyBOT1QgSU1QT1JUIFRISVMgKi9cbmV4cG9ydCB0eXBlIEkxOG4gPSBHZW5lcmljSTE4bl9ub0pzeDxNZXNzYWdlS2V5X2RlZmF1bHRTZXQsIHN0cmluZz47XG4iXX0=
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ComponentReference } from '../../../account/classes/component-reference.class';
|
|
2
|
+
import { type ClassKey } from 'keycloakify/account';
|
|
3
|
+
import { type I18n } from '../../i18n';
|
|
4
|
+
import { type KcContext } from '../../KcContext';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class AccountComponent extends ComponentReference {
|
|
7
|
+
i18n: I18n;
|
|
8
|
+
kcContext: KcContext.Account;
|
|
9
|
+
doUseDefaultCss: boolean;
|
|
10
|
+
classes: Partial<Record<ClassKey, string>>;
|
|
11
|
+
additionalClasses: Partial<Record<ClassKey, string>>;
|
|
12
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AccountComponent, never>;
|
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AccountComponent, "kc-root", never, {}, {}, never, never, true, never>;
|
|
14
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { NgClass } from '@angular/common';
|
|
2
|
+
import { Component, forwardRef, inject } from '@angular/core';
|
|
3
|
+
import { ComponentReference } from '../../../account/classes/component-reference.class';
|
|
4
|
+
import { TemplateComponent } from '../../../account/containers/template.component';
|
|
5
|
+
import { KcClassDirective } from '../../../account/directives/kc-class.directive';
|
|
6
|
+
import { ACCOUNT_CLASSES } from '../../../account/tokens/classes.token';
|
|
7
|
+
import { ACCOUNT_I18N } from '../../../account/tokens/i18n.token';
|
|
8
|
+
import { KC_ACCOUNT_CONTEXT } from '../../../account/tokens/kc-context.token';
|
|
9
|
+
import { USE_DEFAULT_CSS } from '../../../lib/tokens/use-default-css.token';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
export class AccountComponent extends ComponentReference {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.i18n = inject(ACCOUNT_I18N);
|
|
15
|
+
this.kcContext = inject(KC_ACCOUNT_CONTEXT);
|
|
16
|
+
this.doUseDefaultCss = inject(USE_DEFAULT_CSS);
|
|
17
|
+
this.classes = inject(ACCOUNT_CLASSES);
|
|
18
|
+
this.additionalClasses = {
|
|
19
|
+
kcBodyClass: `${this.classes?.kcBodyClass} user`
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AccountComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: AccountComponent, isStandalone: true, selector: "kc-root", providers: [
|
|
24
|
+
{
|
|
25
|
+
provide: ComponentReference,
|
|
26
|
+
useExisting: forwardRef(() => AccountComponent)
|
|
27
|
+
}
|
|
28
|
+
], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n@let realm = kcContext.realm;\n@let messagesPerField = kcContext.messagesPerField;\n@let stateChecker = kcContext.stateChecker;\n@let account = kcContext.account;\n@let referrer = kcContext.referrer;\n\n<kc-account-template [active]=\"'account'\">\n <ng-container content>\n <div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('editAccountHtmlTitle') }}</h2>\n </div>\n <div class=\"col-md-2 subtitle\">\n <span class=\"subtitle\"> <span class=\"required\">*</span> {{ i18n.msgStr('requiredFields') }} </span>\n </div>\n </div>\n <form\n [action]=\"url.accountUrl\"\n class=\"form-horizontal\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n @if (!realm.registrationEmailAsUsername) {\n <div\n class=\"form-group\"\n [ngClass]=\"{ 'has-error': messagesPerField.existsError('username') }\"\n >\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"username\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('username') }}\n </label>\n @if (realm.editUsernameAllowed) {\n <span class=\"required\">*</span>\n }\n </div>\n\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"username\"\n name=\"username\"\n [disabled]=\"!realm.editUsernameAllowed\"\n [defaultValue]=\"account.username ?? ''\"\n />\n </div>\n </div>\n }\n\n <div\n class=\"form-group\"\n [ngClass]=\"{ 'has-error': messagesPerField.existsError('email') }\"\n >\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"email\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('email') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"email\"\n name=\"email\"\n autoFocus\n [defaultValue]=\"account.email ?? ''\"\n />\n </div>\n </div>\n\n <div\n class=\"form-group\"\n [ngClass]=\"{ 'has-error': messagesPerField.existsError('firstName') }\"\n >\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"firstName\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('firstName') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"firstName\"\n name=\"firstName\"\n [defaultValue]=\"account.firstName\"\n />\n </div>\n </div>\n\n <div\n class=\"form-group\"\n [ngClass]=\"{ 'has-error': messagesPerField.existsError('lastName') }\"\n >\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"lastName\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('lastName') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"lastName\"\n name=\"lastName\"\n [defaultValue]=\"account.lastName ?? ''\"\n />\n </div>\n </div>\n\n <div class=\"form-group\">\n <div\n id=\"kc-form-buttons\"\n class=\"col-md-offset-2 col-md-10 submit\"\n >\n <div>\n @if (referrer) {\n <a [href]=\"referrer?.url\">{{ i18n.msgStr('backToApplication') }}</a>\n }\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n value=\"Save\"\n >\n {{ i18n.msgStr('doSave') }}\n </button>\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n value=\"Cancel\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </div>\n </div>\n </div>\n </form>\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: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
|
|
29
|
+
}
|
|
30
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: AccountComponent, decorators: [{
|
|
31
|
+
type: Component,
|
|
32
|
+
args: [{ standalone: true, imports: [KcClassDirective, TemplateComponent, NgClass], selector: 'kc-root', providers: [
|
|
33
|
+
{
|
|
34
|
+
provide: ComponentReference,
|
|
35
|
+
useExisting: forwardRef(() => AccountComponent)
|
|
36
|
+
}
|
|
37
|
+
], template: "@let url = kcContext.url;\n@let realm = kcContext.realm;\n@let messagesPerField = kcContext.messagesPerField;\n@let stateChecker = kcContext.stateChecker;\n@let account = kcContext.account;\n@let referrer = kcContext.referrer;\n\n<kc-account-template [active]=\"'account'\">\n <ng-container content>\n <div class=\"row\">\n <div class=\"col-md-10\">\n <h2>{{ i18n.msgStr('editAccountHtmlTitle') }}</h2>\n </div>\n <div class=\"col-md-2 subtitle\">\n <span class=\"subtitle\"> <span class=\"required\">*</span> {{ i18n.msgStr('requiredFields') }} </span>\n </div>\n </div>\n <form\n [action]=\"url.accountUrl\"\n class=\"form-horizontal\"\n method=\"post\"\n >\n <input\n type=\"hidden\"\n id=\"stateChecker\"\n name=\"stateChecker\"\n [value]=\"stateChecker\"\n />\n @if (!realm.registrationEmailAsUsername) {\n <div\n class=\"form-group\"\n [ngClass]=\"{ 'has-error': messagesPerField.existsError('username') }\"\n >\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"username\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('username') }}\n </label>\n @if (realm.editUsernameAllowed) {\n <span class=\"required\">*</span>\n }\n </div>\n\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"username\"\n name=\"username\"\n [disabled]=\"!realm.editUsernameAllowed\"\n [defaultValue]=\"account.username ?? ''\"\n />\n </div>\n </div>\n }\n\n <div\n class=\"form-group\"\n [ngClass]=\"{ 'has-error': messagesPerField.existsError('email') }\"\n >\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"email\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('email') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"email\"\n name=\"email\"\n autoFocus\n [defaultValue]=\"account.email ?? ''\"\n />\n </div>\n </div>\n\n <div\n class=\"form-group\"\n [ngClass]=\"{ 'has-error': messagesPerField.existsError('firstName') }\"\n >\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"firstName\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('firstName') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"firstName\"\n name=\"firstName\"\n [defaultValue]=\"account.firstName\"\n />\n </div>\n </div>\n\n <div\n class=\"form-group\"\n [ngClass]=\"{ 'has-error': messagesPerField.existsError('lastName') }\"\n >\n <div class=\"col-sm-2 col-md-2\">\n <label\n for=\"lastName\"\n class=\"control-label\"\n >\n {{ i18n.msgStr('lastName') }}\n </label>\n <span class=\"required\">*</span>\n </div>\n\n <div class=\"col-sm-10 col-md-10\">\n <input\n type=\"text\"\n class=\"form-control\"\n id=\"lastName\"\n name=\"lastName\"\n [defaultValue]=\"account.lastName ?? ''\"\n />\n </div>\n </div>\n\n <div class=\"form-group\">\n <div\n id=\"kc-form-buttons\"\n class=\"col-md-offset-2 col-md-10 submit\"\n >\n <div>\n @if (referrer) {\n <a [href]=\"referrer?.url\">{{ i18n.msgStr('backToApplication') }}</a>\n }\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n value=\"Save\"\n >\n {{ i18n.msgStr('doSave') }}\n </button>\n <button\n type=\"submit\"\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonLargeClass']\"\n name=\"submitAction\"\n value=\"Cancel\"\n >\n {{ i18n.msgStr('doCancel') }}\n </button>\n </div>\n </div>\n </div>\n </form>\n </ng-container>\n</kc-account-template>\n" }]
|
|
38
|
+
}] });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3VudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9hY2NvdW50L3BhZ2VzL2FjY291bnQvYWNjb3VudC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9hY2NvdW50L3BhZ2VzL2FjY291bnQvYWNjb3VudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdFQUFnRSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQy9GLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNwRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDMUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVEQUF1RCxDQUFDOztBQWlCeEYsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGtCQUFrQjtJQVp4RDs7UUFhSSxTQUFJLEdBQUcsTUFBTSxDQUFPLFlBQVksQ0FBQyxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxNQUFNLENBQWdELGtCQUFrQixDQUFDLENBQUM7UUFDN0Usb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsZUFBZSxDQUFDLENBQUM7UUFDckUsc0JBQWlCLEdBQXNDO1lBQzVELFdBQVcsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsV0FBVyxPQUFPO1NBQ25ELENBQUM7S0FDTDs4R0FSWSxnQkFBZ0I7a0dBQWhCLGdCQUFnQixzREFQZDtZQUNQO2dCQUNJLE9BQU8sRUFBRSxrQkFBa0I7Z0JBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7YUFDbEQ7U0FDSixpREN2QkwsMG9NQXFLQSw0Q0R0SmMsZ0JBQWdCLCtGQUFFLGlCQUFpQixvRkFBRSxPQUFPOzsyRkFVN0MsZ0JBQWdCO2tCQVo1QixTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxZQUM3QyxTQUFTLGFBRVI7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGtCQUFrQjs0QkFDM0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsaUJBQWlCLENBQUM7eUJBQ2xEO3FCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tcG9uZW50UmVmZXJlbmNlIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC9jbGFzc2VzL2NvbXBvbmVudC1yZWZlcmVuY2UuY2xhc3MnO1xuaW1wb3J0IHsgVGVtcGxhdGVDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L2NvbnRhaW5lcnMvdGVtcGxhdGUuY29tcG9uZW50JztcbmltcG9ydCB7IEtjQ2xhc3NEaXJlY3RpdmUgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L2RpcmVjdGl2ZXMva2MtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IEFDQ09VTlRfQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2FjY291bnQvdG9rZW5zL2NsYXNzZXMudG9rZW4nO1xuaW1wb3J0IHsgQUNDT1VOVF9JMThOIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvYWNjb3VudC90b2tlbnMvaTE4bi50b2tlbic7XG5pbXBvcnQgeyBLQ19BQ0NPVU5UX0NPTlRFWFQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9hY2NvdW50L3Rva2Vucy9rYy1jb250ZXh0LnRva2VuJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzLnRva2VuJztcbmltcG9ydCB7IHR5cGUgQ2xhc3NLZXkgfSBmcm9tICdrZXljbG9ha2lmeS9hY2NvdW50JztcbmltcG9ydCB7IHR5cGUgSTE4biB9IGZyb20gJy4uLy4uL2kxOG4nO1xuaW1wb3J0IHsgdHlwZSBLY0NvbnRleHQgfSBmcm9tICcuLi8uLi9LY0NvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtLY0NsYXNzRGlyZWN0aXZlLCBUZW1wbGF0ZUNvbXBvbmVudCwgTmdDbGFzc10sXG4gICAgc2VsZWN0b3I6ICdrYy1yb290JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2FjY291bnQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBY2NvdW50Q29tcG9uZW50KVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBY2NvdW50Q29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIHtcbiAgICBpMThuID0gaW5qZWN0PEkxOG4+KEFDQ09VTlRfSTE4Tik7XG4gICAga2NDb250ZXh0ID0gaW5qZWN0PEV4dHJhY3Q8S2NDb250ZXh0LCB7IHBhZ2VJZDogJ2FjY291bnQuZnRsJyB9Pj4oS0NfQUNDT1VOVF9DT05URVhUKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oQUNDT1VOVF9DTEFTU0VTKTtcbiAgICBvdmVycmlkZSBhZGRpdGlvbmFsQ2xhc3NlczogUGFydGlhbDxSZWNvcmQ8Q2xhc3NLZXksIHN0cmluZz4+ID0ge1xuICAgICAgICBrY0JvZHlDbGFzczogYCR7dGhpcy5jbGFzc2VzPy5rY0JvZHlDbGFzc30gdXNlcmBcbiAgICB9O1xufVxuIiwiQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuQGxldCByZWFsbSA9IGtjQ29udGV4dC5yZWFsbTtcbkBsZXQgbWVzc2FnZXNQZXJGaWVsZCA9IGtjQ29udGV4dC5tZXNzYWdlc1BlckZpZWxkO1xuQGxldCBzdGF0ZUNoZWNrZXIgPSBrY0NvbnRleHQuc3RhdGVDaGVja2VyO1xuQGxldCBhY2NvdW50ID0ga2NDb250ZXh0LmFjY291bnQ7XG5AbGV0IHJlZmVycmVyID0ga2NDb250ZXh0LnJlZmVycmVyO1xuXG48a2MtYWNjb3VudC10ZW1wbGF0ZSBbYWN0aXZlXT1cIidhY2NvdW50J1wiPlxuICAgIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMFwiPlxuICAgICAgICAgICAgICAgIDxoMj57eyBpMThuLm1zZ1N0cignZWRpdEFjY291bnRIdG1sVGl0bGUnKSB9fTwvaDI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMiBzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3VidGl0bGVcIj4gPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+IHt7IGkxOG4ubXNnU3RyKCdyZXF1aXJlZEZpZWxkcycpIH19IDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGZvcm1cbiAgICAgICAgICAgIFthY3Rpb25dPVwidXJsLmFjY291bnRVcmxcIlxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWhvcml6b250YWxcIlxuICAgICAgICAgICAgbWV0aG9kPVwicG9zdFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIHR5cGU9XCJoaWRkZW5cIlxuICAgICAgICAgICAgICAgIGlkPVwic3RhdGVDaGVja2VyXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwic3RhdGVDaGVja2VyXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwic3RhdGVDaGVja2VyXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgICBAaWYgKCFyZWFsbS5yZWdpc3RyYXRpb25FbWFpbEFzVXNlcm5hbWUpIHtcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1ncm91cFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2hhcy1lcnJvcic6IG1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ3VzZXJuYW1lJykgfVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTIgY29sLW1kLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcj1cInVzZXJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbnRyb2wtbGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkxOG4ubXNnU3RyKCd1c2VybmFtZScpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChyZWFsbS5lZGl0VXNlcm5hbWVBbGxvd2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTAgY29sLW1kLTEwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwidXNlcm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ1c2VybmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIiFyZWFsbS5lZGl0VXNlcm5hbWVBbGxvd2VkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdFZhbHVlXT1cImFjY291bnQudXNlcm5hbWUgPz8gJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZ3JvdXBcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2hhcy1lcnJvcic6IG1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ2VtYWlsJykgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0yIGNvbC1tZC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250cm9sLWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2VtYWlsJykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEwIGNvbC1tZC0xMFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRWYWx1ZV09XCJhY2NvdW50LmVtYWlsID8/ICcnXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWdyb3VwXCJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdoYXMtZXJyb3InOiBtZXNzYWdlc1BlckZpZWxkLmV4aXN0c0Vycm9yKCdmaXJzdE5hbWUnKSB9XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTIgY29sLW1kLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3I9XCJmaXJzdE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250cm9sLWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2ZpcnN0TmFtZScpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWRcIj4qPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMCBjb2wtbWQtMTBcIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImZpcnN0TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZmlyc3ROYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0VmFsdWVdPVwiYWNjb3VudC5maXJzdE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImZvcm0tZ3JvdXBcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2hhcy1lcnJvcic6IG1lc3NhZ2VzUGVyRmllbGQuZXhpc3RzRXJyb3IoJ2xhc3ROYW1lJykgfVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0yIGNvbC1tZC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yPVwibGFzdE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb250cm9sLWxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2xhc3ROYW1lJykgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEwIGNvbC1tZC0xMFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jb250cm9sXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwibGFzdE5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImxhc3ROYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0VmFsdWVdPVwiYWNjb3VudC5sYXN0TmFtZSA/PyAnJ1wiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbWQtb2Zmc2V0LTIgY29sLW1kLTEwIHN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChyZWZlcnJlcikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIFtocmVmXT1cInJlZmVycmVyPy51cmxcIj57eyBpMThuLm1zZ1N0cignYmFja1RvQXBwbGljYXRpb24nKSB9fTwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzdWJtaXRBY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiU2F2ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaTE4bi5tc2dTdHIoJ2RvU2F2ZScpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25MYXJnZUNsYXNzJ11cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJzdWJtaXRBY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiQ2FuY2VsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpMThuLm1zZ1N0cignZG9DYW5jZWwnKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwva2MtYWNjb3VudC10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ComponentReference } from '../../../account/classes/component-reference.class';
|
|
2
|
+
import { type ClassKey } from 'keycloakify/account';
|
|
3
|
+
import { type I18n } from '../../i18n';
|
|
4
|
+
import { type KcContext } from '../../KcContext';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class ApplicationsComponent extends ComponentReference {
|
|
7
|
+
i18n: I18n;
|
|
8
|
+
kcContext: KcContext.Applications;
|
|
9
|
+
doUseDefaultCss: boolean;
|
|
10
|
+
classes: Partial<Record<ClassKey, string>>;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ApplicationsComponent, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ApplicationsComponent, "kc-root", never, {}, {}, never, never, true, never>;
|
|
13
|
+
}
|