@keycloakify/angular 0.0.1-rc.23 → 0.0.1-rc.25
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/account/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +2 -0
- package/bin/338.index.js +15 -1
- package/bin/758.index.js +15 -1
- package/bin/925.index.js +13 -2
- package/esm2022/account/providers/keycloakify-angular/keycloakify-angular.providers.mjs +2 -4
- package/esm2022/login/containers/template/template.component.mjs +11 -5
- package/esm2022/login/login.mjs +1 -1
- package/esm2022/login/pages/code/code.component.mjs +3 -3
- package/esm2022/login/pages/delete-credential/delete-credential.component.mjs +3 -3
- package/esm2022/login/pages/error/error.component.mjs +3 -3
- package/esm2022/login/pages/idp-review-user-profile/idp-review-user-profile.component.mjs +7 -7
- package/esm2022/login/pages/info/info.component.mjs +3 -3
- package/esm2022/login/pages/login/login.component.mjs +3 -3
- package/esm2022/login/pages/login-idp-link-email/login-idp-link-email.component.mjs +3 -3
- package/esm2022/login/pages/login-oauth-grant/login-oauth-grant.component.mjs +3 -3
- package/esm2022/login/pages/login-page-expired/login-page-expired.component.mjs +3 -3
- package/esm2022/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.mjs +3 -3
- package/esm2022/login/pages/login-password/login-password.component.mjs +3 -3
- package/esm2022/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.mjs +3 -3
- package/esm2022/login/pages/login-reset-otp/login-reset-otp.component.mjs +3 -3
- package/esm2022/login/pages/login-reset-password/login-reset-password.component.mjs +3 -3
- package/esm2022/login/pages/login-update-profile/login-update-profile.component.mjs +7 -7
- package/esm2022/login/pages/login-username/login-username.component.mjs +3 -3
- package/esm2022/login/pages/login-verify-email/login-verify-email.component.mjs +3 -3
- package/esm2022/login/pages/register/register.component.mjs +7 -7
- package/esm2022/login/pages/select-authenticator/select-authenticator.component.mjs +3 -3
- package/esm2022/login/pages/update-email/update-email.component.mjs +7 -7
- package/esm2022/login/pages/webauthn-authenticate/webauthn-authenticate.component.mjs +3 -3
- package/esm2022/login/providers/keycloakify-angular/keycloakify-angular.providers.mjs +2 -4
- package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs +1 -3
- package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-containers-template.mjs +10 -4
- package/fesm2022/keycloakify-angular-login-containers-template.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-code.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-code.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-delete-credential.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-error.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-error.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-idp-review-user-profile.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-info.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-info.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-password.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-recovery-authn-code-input.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-reset-otp.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-reset-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-login-update-profile.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-register.mjs +7 -7
- package/fesm2022/keycloakify-angular-login-pages-register.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-update-email.mjs +6 -6
- package/fesm2022/keycloakify-angular-login-pages-update-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +2 -2
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs +1 -3
- package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs.map +1 -1
- package/login/containers/template/template.component.d.ts +4 -2
- package/login/login.d.ts +1 -0
- package/login/pages/idp-review-user-profile/idp-review-user-profile.component.d.ts +4 -2
- package/login/pages/login-update-profile/login-update-profile.component.d.ts +4 -2
- package/login/pages/register/register.component.d.ts +4 -2
- package/login/pages/update-email/update-email.component.d.ts +4 -2
- package/login/providers/keycloakify-angular/keycloakify-angular.providers.d.ts +2 -0
- package/package.json +1 -1
- package/src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts +2 -3
- package/src/bin/eject-page.ts +21 -3
- package/src/bin/update-kc-gen.ts +15 -1
- package/src/login/containers/template/template.component.html +1 -0
- package/src/login/containers/template/template.component.ts +6 -0
- package/src/login/login.ts +1 -0
- package/src/login/pages/code/code.component.html +1 -0
- package/src/login/pages/delete-credential/delete-credential.component.html +26 -26
- package/src/login/pages/error/error.component.html +16 -17
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.html +1 -1
- package/src/login/pages/idp-review-user-profile/idp-review-user-profile.component.ts +4 -3
- package/src/login/pages/info/info.component.html +2 -2
- package/src/login/pages/login/login.component.html +3 -1
- package/src/login/pages/login-idp-link-email/login-idp-link-email.component.html +2 -0
- package/src/login/pages/login-oauth-grant/login-oauth-grant.component.html +1 -0
- package/src/login/pages/login-page-expired/login-page-expired.component.html +23 -24
- package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.html +166 -165
- package/src/login/pages/login-password/login-password.component.html +68 -69
- package/src/login/pages/login-recovery-authn-code-input/login-recovery-authn-code-input.component.html +55 -57
- package/src/login/pages/login-reset-otp/login-reset-otp.component.html +48 -49
- package/src/login/pages/login-reset-password/login-reset-password.component.html +1 -0
- package/src/login/pages/login-update-profile/login-update-profile.component.html +1 -1
- package/src/login/pages/login-update-profile/login-update-profile.component.ts +3 -2
- package/src/login/pages/login-username/login-username.component.html +5 -3
- package/src/login/pages/login-verify-email/login-verify-email.component.html +1 -1
- package/src/login/pages/register/register.component.html +2 -2
- package/src/login/pages/register/register.component.ts +3 -2
- package/src/login/pages/select-authenticator/select-authenticator.component.html +32 -32
- package/src/login/pages/update-email/update-email.component.html +1 -1
- package/src/login/pages/update-email/update-email.component.ts +3 -2
- package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.html +1 -0
- package/src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts +2 -3
|
@@ -4,57 +4,56 @@
|
|
|
4
4
|
<ng-template #headerNode>
|
|
5
5
|
{{ i18n.msgStr('doLogIn') }}
|
|
6
6
|
</ng-template>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
7
|
+
|
|
8
|
+
<form
|
|
9
|
+
id="kc-otp-reset-form"
|
|
10
|
+
method="post"
|
|
11
|
+
[kcClass]="'kcFormClass'"
|
|
12
|
+
[action]="url.loginAction"
|
|
13
|
+
>
|
|
14
|
+
<div [kcClass]="'kcInputWrapperClass'">
|
|
15
|
+
<div [kcClass]="'kcInfoAreaWrapperClass'">
|
|
16
|
+
<p id="kc-otp-reset-form-description">
|
|
17
|
+
{{ i18n.msgStr('otp-reset-description') }}
|
|
18
|
+
</p>
|
|
19
|
+
@for (otpCredential of configuredOtpCredentials.userOtpCredentials; track otpCredential; let i = $index) {
|
|
20
|
+
<input
|
|
21
|
+
type="radio"
|
|
22
|
+
name="selectedCredentialId"
|
|
23
|
+
[id]="'kc-otp-credential-' + i"
|
|
24
|
+
[kcClass]="'kcLoginOTPListInputClass'"
|
|
25
|
+
[value]="otpCredential.id"
|
|
26
|
+
[defaultChecked]="otpCredential.id === configuredOtpCredentials.selectedCredentialId"
|
|
27
|
+
/>
|
|
28
|
+
<label
|
|
29
|
+
for="kc-otp-credential-0"
|
|
30
|
+
[kcClass]="'kcLoginOTPListClass'"
|
|
31
|
+
[tabIndex]="i"
|
|
32
|
+
>
|
|
33
|
+
<span [kcClass]="'kcLoginOTPListItemHeaderClass'">
|
|
34
|
+
<span [kcClass]="'kcLoginOTPListItemIconBodyClass'">
|
|
35
|
+
<i
|
|
36
|
+
aria-hidden="true"
|
|
37
|
+
[kcClass]="'kcLoginOTPListItemIconClass'"
|
|
38
|
+
></i>
|
|
39
|
+
</span>
|
|
40
|
+
<span [kcClass]="'kcLoginOTPListItemTitleClass'">{{ otpCredential.userLabel }}</span>
|
|
41
|
+
</span>
|
|
42
|
+
</label>
|
|
43
|
+
}
|
|
44
|
+
<div [kcClass]="'kcFormGroupClass'">
|
|
45
|
+
<div
|
|
46
|
+
id="kc-form-buttons"
|
|
47
|
+
[kcClass]="'kcFormButtonsClass'"
|
|
48
|
+
>
|
|
20
49
|
<input
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
[
|
|
24
|
-
[
|
|
25
|
-
[value]="otpCredential.id"
|
|
26
|
-
[defaultChecked]="otpCredential.id === configuredOtpCredentials.selectedCredentialId"
|
|
50
|
+
id="kc-otp-reset-form-submit"
|
|
51
|
+
type="submit"
|
|
52
|
+
[kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
|
|
53
|
+
[value]="i18n.msgStr('doSubmit')"
|
|
27
54
|
/>
|
|
28
|
-
<label
|
|
29
|
-
for="kc-otp-credential-0"
|
|
30
|
-
[kcClass]="'kcLoginOTPListClass'"
|
|
31
|
-
[tabIndex]="i"
|
|
32
|
-
>
|
|
33
|
-
<span [kcClass]="'kcLoginOTPListItemHeaderClass'">
|
|
34
|
-
<span [kcClass]="'kcLoginOTPListItemIconBodyClass'">
|
|
35
|
-
<i
|
|
36
|
-
aria-hidden="true"
|
|
37
|
-
[kcClass]="'kcLoginOTPListItemIconClass'"
|
|
38
|
-
></i>
|
|
39
|
-
</span>
|
|
40
|
-
<span [kcClass]="'kcLoginOTPListItemTitleClass'">{{ otpCredential.userLabel }}</span>
|
|
41
|
-
</span>
|
|
42
|
-
</label>
|
|
43
|
-
}
|
|
44
|
-
<div [kcClass]="'kcFormGroupClass'">
|
|
45
|
-
<div
|
|
46
|
-
id="kc-form-buttons"
|
|
47
|
-
[kcClass]="'kcFormButtonsClass'"
|
|
48
|
-
>
|
|
49
|
-
<input
|
|
50
|
-
id="kc-otp-reset-form-submit"
|
|
51
|
-
type="submit"
|
|
52
|
-
[kcClass]="['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']"
|
|
53
|
-
[value]="i18n.msgStr('doSubmit')"
|
|
54
|
-
/>
|
|
55
|
-
</div>
|
|
56
55
|
</div>
|
|
57
56
|
</div>
|
|
58
57
|
</div>
|
|
59
|
-
</
|
|
60
|
-
</
|
|
58
|
+
</div>
|
|
59
|
+
</form>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NgComponentOutlet } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, forwardRef, inject, signal, type TemplateRef, viewChild } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal, type TemplateRef, Type, viewChild } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
5
5
|
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
@@ -15,7 +15,7 @@ import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
|
15
15
|
|
|
16
16
|
@Component({
|
|
17
17
|
standalone: true,
|
|
18
|
-
imports: [KcClassDirective, NgComponentOutlet
|
|
18
|
+
imports: [KcClassDirective, NgComponentOutlet],
|
|
19
19
|
selector: 'kc-login-update-profile',
|
|
20
20
|
templateUrl: 'login-update-profile.component.html',
|
|
21
21
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -46,6 +46,7 @@ export class LoginUpdateProfileComponent extends ComponentReference {
|
|
|
46
46
|
socialProvidersNode? = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');
|
|
47
47
|
|
|
48
48
|
isFormSubmittable = signal(false);
|
|
49
|
+
userProfileFormFields = input<Type<UserProfileFormFieldsComponent>>();
|
|
49
50
|
|
|
50
51
|
constructor() {
|
|
51
52
|
super();
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
@let realm = kcContext.realm;
|
|
2
|
-
@let social = kcContext.social;
|
|
3
2
|
@let usernameHidden = kcContext.usernameHidden;
|
|
4
3
|
@let messagesPerField = kcContext.messagesPerField;
|
|
5
4
|
@let url = kcContext.url;
|
|
@@ -8,7 +7,8 @@
|
|
|
8
7
|
<ng-template #headerNode>
|
|
9
8
|
{{ i18n.msgStr('doLogIn') }}
|
|
10
9
|
</ng-template>
|
|
11
|
-
<ng-
|
|
10
|
+
<ng-template #infoNode>
|
|
11
|
+
@let url = kcContext.url;
|
|
12
12
|
<div id="kc-registration">
|
|
13
13
|
<span>
|
|
14
14
|
{{ i18n.msgStr('noAccount') }}
|
|
@@ -20,8 +20,10 @@
|
|
|
20
20
|
</a>
|
|
21
21
|
</span>
|
|
22
22
|
</div>
|
|
23
|
-
</ng-
|
|
23
|
+
</ng-template>
|
|
24
24
|
<ng-template #socialProvidersNode>
|
|
25
|
+
@let realm = kcContext.realm;
|
|
26
|
+
@let social = kcContext.social;
|
|
25
27
|
@if (!!realm?.password && !!social?.providers?.length) {
|
|
26
28
|
<div
|
|
27
29
|
id="kc-social-providers"
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
@let url = kcContext.url;
|
|
2
1
|
@let user = kcContext.user;
|
|
3
2
|
|
|
4
3
|
<ng-template #headerNode>
|
|
5
4
|
{{ i18n.msgStr('emailVerifyTitle') }}
|
|
6
5
|
</ng-template>
|
|
7
6
|
<ng-template #infoNode>
|
|
7
|
+
@let url = kcContext.url;
|
|
8
8
|
<p class="instruction">
|
|
9
9
|
{{ i18n.msgStr('emailVerifyInstruction2') }}
|
|
10
10
|
<br />
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
@let messageHeader = kcContext.messageHeader;
|
|
2
1
|
@let url = kcContext.url;
|
|
3
2
|
@let messagesPerField = kcContext.messagesPerField;
|
|
4
3
|
@let recaptchaRequired = kcContext.recaptchaRequired;
|
|
@@ -8,6 +7,7 @@
|
|
|
8
7
|
@let termsAcceptanceRequired = kcContext.termsAcceptanceRequired;
|
|
9
8
|
|
|
10
9
|
<ng-template #headerNode>
|
|
10
|
+
@let messageHeader = kcContext.messageHeader;
|
|
11
11
|
{{ messageHeader ?? i18n.advancedMsgStr('registerTitle') }}
|
|
12
12
|
</ng-template>
|
|
13
13
|
<form
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
[kcClass]="'kcFormClass'"
|
|
17
17
|
[action]="url.registrationAction"
|
|
18
18
|
>
|
|
19
|
-
<
|
|
19
|
+
<ng-container [ngComponentOutlet]="userProfileFormFields() ?? null" />
|
|
20
20
|
@if (termsAcceptanceRequired) {
|
|
21
21
|
<div className="form-group">
|
|
22
22
|
<div [kcClass]="'kcInputWrapperClass'">
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AsyncPipe, NgClass, NgComponentOutlet } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, forwardRef, inject, signal, type TemplateRef, viewChild } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal, type TemplateRef, Type, viewChild } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';
|
|
5
5
|
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
@@ -19,7 +19,7 @@ import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
|
19
19
|
templateUrl: './register.component.html',
|
|
20
20
|
standalone: true,
|
|
21
21
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
22
|
-
imports: [KcClassDirective, AsyncPipe, KcSanitizePipe, NgClass, NgComponentOutlet
|
|
22
|
+
imports: [KcClassDirective, AsyncPipe, KcSanitizePipe, NgClass, NgComponentOutlet],
|
|
23
23
|
providers: [
|
|
24
24
|
{
|
|
25
25
|
provide: ComponentReference,
|
|
@@ -48,6 +48,7 @@ export class RegisterComponent extends ComponentReference {
|
|
|
48
48
|
|
|
49
49
|
isFormSubmittable = signal(false);
|
|
50
50
|
areTermsAccepted = signal(false);
|
|
51
|
+
userProfileFormFields = input<Type<UserProfileFormFieldsComponent>>();
|
|
51
52
|
|
|
52
53
|
constructor() {
|
|
53
54
|
super();
|
|
@@ -4,37 +4,37 @@
|
|
|
4
4
|
<ng-template #headerNode>
|
|
5
5
|
{{ i18n.msgStr('loginChooseAuthenticator') }}
|
|
6
6
|
</ng-template>
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
</div>
|
|
29
|
-
<div [kcClass]="'kcSelectAuthListItemDescriptionClass'">
|
|
30
|
-
{{ i18n.advancedMsgStr(authenticationSelection.helpText) }}
|
|
31
|
-
</div>
|
|
7
|
+
|
|
8
|
+
<form
|
|
9
|
+
id="kc-select-credential-form"
|
|
10
|
+
method="post"
|
|
11
|
+
[kcClass]="'kcFormClass'"
|
|
12
|
+
[action]="url.loginAction"
|
|
13
|
+
>
|
|
14
|
+
<div [kcClass]="'kcSelectAuthListClass'">
|
|
15
|
+
@for (authenticationSelection of auth.authenticationSelections; track authenticationSelection; let i = $index) {
|
|
16
|
+
<button
|
|
17
|
+
type="submit"
|
|
18
|
+
name="authenticationExecution"
|
|
19
|
+
[kcClass]="'kcSelectAuthListItemClass'"
|
|
20
|
+
[value]="authenticationSelection.authExecId"
|
|
21
|
+
>
|
|
22
|
+
<div [kcClass]="'kcSelectAuthListItemIconClass'">
|
|
23
|
+
<i [kcClass]="['kcSelectAuthListItemIconPropertyClass', $any(authenticationSelection.iconCssClass)]"></i>
|
|
24
|
+
</div>
|
|
25
|
+
<div [kcClass]="'kcSelectAuthListItemBodyClass'">
|
|
26
|
+
<div [kcClass]="'kcSelectAuthListItemHeadingClass'">
|
|
27
|
+
{{ i18n.advancedMsgStr(authenticationSelection.displayName) }}
|
|
32
28
|
</div>
|
|
33
|
-
<div [kcClass]="'
|
|
34
|
-
|
|
35
|
-
<i [kcClass]="'kcSelectAuthListItemArrowIconClass'"></i>
|
|
29
|
+
<div [kcClass]="'kcSelectAuthListItemDescriptionClass'">
|
|
30
|
+
{{ i18n.advancedMsgStr(authenticationSelection.helpText) }}
|
|
36
31
|
</div>
|
|
37
|
-
</
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
></
|
|
32
|
+
</div>
|
|
33
|
+
<div [kcClass]="'kcSelectAuthListItemFillClass'"></div>
|
|
34
|
+
<div [kcClass]="'kcSelectAuthListItemArrowClass'">
|
|
35
|
+
<i [kcClass]="'kcSelectAuthListItemArrowIconClass'"></i>
|
|
36
|
+
</div>
|
|
37
|
+
</button>
|
|
38
|
+
}
|
|
39
|
+
</div>
|
|
40
|
+
</form>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NgComponentOutlet } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, forwardRef, inject, signal, type TemplateRef, viewChild } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal, type TemplateRef, Type, viewChild } from '@angular/core';
|
|
3
3
|
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
5
5
|
import { LogoutOtherSessionsComponent } from '@keycloakify/angular/login/components/logout-other-sessions';
|
|
@@ -13,7 +13,7 @@ import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
|
|
|
13
13
|
|
|
14
14
|
@Component({
|
|
15
15
|
standalone: true,
|
|
16
|
-
imports: [KcClassDirective, NgComponentOutlet, LogoutOtherSessionsComponent
|
|
16
|
+
imports: [KcClassDirective, NgComponentOutlet, LogoutOtherSessionsComponent],
|
|
17
17
|
selector: 'kc-update-email',
|
|
18
18
|
templateUrl: 'update-email.component.html',
|
|
19
19
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -40,6 +40,7 @@ export class UpdateEmailComponent extends ComponentReference {
|
|
|
40
40
|
infoNode? = viewChild<TemplateRef<HTMLElement>>('infoNode');
|
|
41
41
|
socialProvidersNode? = viewChild<TemplateRef<HTMLElement>>('socialProvidersNode');
|
|
42
42
|
|
|
43
|
+
userProfileFormFields = input<Type<UserProfileFormFieldsComponent>>();
|
|
43
44
|
isFormSubmittable = signal(false);
|
|
44
45
|
|
|
45
46
|
constructor() {
|
|
@@ -14,6 +14,7 @@ export type KeycloakifyAngularLoginConfig = {
|
|
|
14
14
|
doMakeUserConfirmPassword?: boolean;
|
|
15
15
|
doUseDefaultCss?: boolean;
|
|
16
16
|
classes?: { [key in ClassKey]?: string };
|
|
17
|
+
kcContext: KcContext;
|
|
17
18
|
getI18n: (params: { kcContext: KcContextLike }) => {
|
|
18
19
|
i18n: unknown;
|
|
19
20
|
prI18n_currentLanguage: Promise<unknown> | undefined;
|
|
@@ -24,9 +25,7 @@ export const provideKeycloakifyAngular = (config: KeycloakifyAngularLoginConfig)
|
|
|
24
25
|
makeEnvironmentProviders([
|
|
25
26
|
{
|
|
26
27
|
provide: KC_LOGIN_CONTEXT,
|
|
27
|
-
|
|
28
|
-
// @ts-ignore
|
|
29
|
-
useValue: window.kcContext
|
|
28
|
+
useValue: config.kcContext
|
|
30
29
|
},
|
|
31
30
|
{
|
|
32
31
|
provide: DO_MAKE_USER_CONFIRM_PASSWORD,
|