@keycloakify/angular 20.1.9 → 20.1.10
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/fesm2022/keycloakify-angular-account-pages-account.mjs +4 -5
- package/fesm2022/keycloakify-angular-account-pages-account.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-applications.mjs +4 -4
- package/fesm2022/keycloakify-angular-account-pages-applications.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs +3 -5
- package/fesm2022/keycloakify-angular-account-pages-federatedIdentity.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-log.mjs +4 -4
- package/fesm2022/keycloakify-angular-account-pages-log.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-password.mjs +3 -4
- package/fesm2022/keycloakify-angular-account-pages-password.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-sessions.mjs +3 -4
- package/fesm2022/keycloakify-angular-account-pages-sessions.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-pages-totp.mjs +3 -4
- package/fesm2022/keycloakify-angular-account-pages-totp.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-providers-keycloakify-angular.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-account-template.mjs +3 -4
- package/fesm2022/keycloakify-angular-account-template.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs +1 -1
- package/fesm2022/keycloakify-angular-login-components-add-remove-buttons-multi-valued-attribute.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-field-errors.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-group-label.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-input-tag-selects.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-input-tag.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs +1 -2
- package/fesm2022/keycloakify-angular-login-components-password-wrapper.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-select-tag.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-components-textarea-tag.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs +1 -2
- package/fesm2022/keycloakify-angular-login-pages-login-idp-link-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-passkeys-conditional-authenticate.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs +2 -3
- package/fesm2022/keycloakify-angular-login-pages-login-username.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs +1 -2
- package/fesm2022/keycloakify-angular-login-pages-login-verify-email.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-login.mjs +4 -3
- package/fesm2022/keycloakify-angular-login-pages-login.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs +1 -1
- package/fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs +1 -2
- package/fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs +1 -2
- package/fesm2022/keycloakify-angular-login-pages-webauthn-authenticate.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs +1 -2
- package/fesm2022/keycloakify-angular-login-pages-webauthn-error.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs.map +1 -1
- package/fesm2022/keycloakify-angular-login-services-login-resource-injector.mjs.map +1 -1
- package/package.json +17 -17
- package/src/account/i18n.ts +1 -1
- package/src/account/pages/account/account.component.html +4 -4
- package/src/account/pages/account/account.component.ts +3 -3
- package/src/account/pages/applications/applications.component.ts +4 -3
- package/src/account/pages/federatedIdentity/federatedIdentity.component.ts +2 -4
- package/src/account/pages/log/log.component.ts +4 -3
- package/src/account/pages/password/password.component.ts +3 -3
- package/src/account/pages/sessions/sessions.component.ts +3 -3
- package/src/account/pages/totp/totp.component.ts +3 -3
- package/src/account/providers/keycloakify-angular/keycloakify-angular.providers.ts +2 -2
- package/src/account/template/template.component.html +8 -8
- package/src/account/template/template.component.ts +1 -2
- package/src/bin/initialize-account-theme/boilerplate/KcPageStory.ts +2 -1
- package/src/login/components/add-remove-buttons-multi-valued-attribute/add-remove-buttons-multi-valued-attribute.component.ts +1 -2
- package/src/login/components/field-errors/field-errors.component.ts +2 -2
- package/src/login/components/group-label/group-label.component.ts +1 -1
- package/src/login/components/input-field-by-type/input-field-by-type.component.ts +1 -1
- package/src/login/components/input-tag/input-tag.component.ts +1 -1
- package/src/login/components/input-tag-selects/input-tag-selects.component.ts +2 -2
- package/src/login/components/password-wrapper/password-wrapper.component.ts +1 -2
- package/src/login/components/select-tag/select-tag.component.ts +2 -2
- package/src/login/components/textarea-tag/textarea-tag.component.ts +2 -2
- package/src/login/i18n.ts +1 -1
- package/src/login/pages/login/login.component.ts +2 -2
- package/src/login/pages/login-idp-link-email/login-idp-link-email.component.ts +0 -2
- package/src/login/pages/login-page-expired/login-page-expired.component.ts +0 -1
- package/src/login/pages/login-passkeys-conditional-authenticate/login-passkeys-conditional-authenticate.component.ts +1 -1
- package/src/login/pages/login-username/login-username.component.ts +1 -2
- package/src/login/pages/login-verify-email/login-verify-email.component.ts +0 -2
- package/src/login/pages/saml-post-form/saml-post-form.component.ts +0 -1
- package/src/login/pages/select-authenticator/select-authenticator.component.ts +1 -2
- package/src/login/pages/webauthn-authenticate/webauthn-authenticate.component.ts +2 -3
- package/src/login/pages/webauthn-error/webauthn-error.component.ts +1 -2
- package/src/login/pages/webauthn-register/webauthn-register.component.ts +1 -1
- package/src/login/providers/keycloakify-angular/keycloakify-angular.providers.ts +1 -1
- package/src/login/services/login-resource-injector/login-resource-injector.service.ts +1 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keycloakify/angular",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "20.1.
|
|
4
|
+
"version": "20.1.10",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"keycloakify": "^11.9.3",
|
|
7
7
|
"@angular/core": "^20.0.0",
|
|
@@ -174,14 +174,14 @@
|
|
|
174
174
|
"types": "./login/components/field-errors/index.d.ts",
|
|
175
175
|
"default": "./fesm2022/keycloakify-angular-login-components-field-errors.mjs"
|
|
176
176
|
},
|
|
177
|
-
"./login/components/group-label": {
|
|
178
|
-
"types": "./login/components/group-label/index.d.ts",
|
|
179
|
-
"default": "./fesm2022/keycloakify-angular-login-components-group-label.mjs"
|
|
180
|
-
},
|
|
181
177
|
"./login/components/input-field-by-type": {
|
|
182
178
|
"types": "./login/components/input-field-by-type/index.d.ts",
|
|
183
179
|
"default": "./fesm2022/keycloakify-angular-login-components-input-field-by-type.mjs"
|
|
184
180
|
},
|
|
181
|
+
"./login/components/group-label": {
|
|
182
|
+
"types": "./login/components/group-label/index.d.ts",
|
|
183
|
+
"default": "./fesm2022/keycloakify-angular-login-components-group-label.mjs"
|
|
184
|
+
},
|
|
185
185
|
"./login/components/input-tag": {
|
|
186
186
|
"types": "./login/components/input-tag/index.d.ts",
|
|
187
187
|
"default": "./fesm2022/keycloakify-angular-login-components-input-tag.mjs"
|
|
@@ -214,6 +214,10 @@
|
|
|
214
214
|
"types": "./login/directives/kc-class/index.d.ts",
|
|
215
215
|
"default": "./fesm2022/keycloakify-angular-login-directives-kc-class.mjs"
|
|
216
216
|
},
|
|
217
|
+
"./login/providers/keycloakify-angular": {
|
|
218
|
+
"types": "./login/providers/keycloakify-angular/index.d.ts",
|
|
219
|
+
"default": "./fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs"
|
|
220
|
+
},
|
|
217
221
|
"./login/pages/code": {
|
|
218
222
|
"types": "./login/pages/code/index.d.ts",
|
|
219
223
|
"default": "./fesm2022/keycloakify-angular-login-pages-code.mjs"
|
|
@@ -266,14 +270,14 @@
|
|
|
266
270
|
"types": "./login/pages/login-oauth-grant/index.d.ts",
|
|
267
271
|
"default": "./fesm2022/keycloakify-angular-login-pages-login-oauth-grant.mjs"
|
|
268
272
|
},
|
|
269
|
-
"./login/pages/login-oauth2-device-verify-user-code": {
|
|
270
|
-
"types": "./login/pages/login-oauth2-device-verify-user-code/index.d.ts",
|
|
271
|
-
"default": "./fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs"
|
|
272
|
-
},
|
|
273
273
|
"./login/pages/login-otp": {
|
|
274
274
|
"types": "./login/pages/login-otp/index.d.ts",
|
|
275
275
|
"default": "./fesm2022/keycloakify-angular-login-pages-login-otp.mjs"
|
|
276
276
|
},
|
|
277
|
+
"./login/pages/login-oauth2-device-verify-user-code": {
|
|
278
|
+
"types": "./login/pages/login-oauth2-device-verify-user-code/index.d.ts",
|
|
279
|
+
"default": "./fesm2022/keycloakify-angular-login-pages-login-oauth2-device-verify-user-code.mjs"
|
|
280
|
+
},
|
|
277
281
|
"./login/pages/login-page-expired": {
|
|
278
282
|
"types": "./login/pages/login-page-expired/index.d.ts",
|
|
279
283
|
"default": "./fesm2022/keycloakify-angular-login-pages-login-page-expired.mjs"
|
|
@@ -326,14 +330,14 @@
|
|
|
326
330
|
"types": "./login/pages/logout-confirm/index.d.ts",
|
|
327
331
|
"default": "./fesm2022/keycloakify-angular-login-pages-logout-confirm.mjs"
|
|
328
332
|
},
|
|
329
|
-
"./login/pages/register": {
|
|
330
|
-
"types": "./login/pages/register/index.d.ts",
|
|
331
|
-
"default": "./fesm2022/keycloakify-angular-login-pages-register.mjs"
|
|
332
|
-
},
|
|
333
333
|
"./login/pages/saml-post-form": {
|
|
334
334
|
"types": "./login/pages/saml-post-form/index.d.ts",
|
|
335
335
|
"default": "./fesm2022/keycloakify-angular-login-pages-saml-post-form.mjs"
|
|
336
336
|
},
|
|
337
|
+
"./login/pages/register": {
|
|
338
|
+
"types": "./login/pages/register/index.d.ts",
|
|
339
|
+
"default": "./fesm2022/keycloakify-angular-login-pages-register.mjs"
|
|
340
|
+
},
|
|
337
341
|
"./login/pages/select-authenticator": {
|
|
338
342
|
"types": "./login/pages/select-authenticator/index.d.ts",
|
|
339
343
|
"default": "./fesm2022/keycloakify-angular-login-pages-select-authenticator.mjs"
|
|
@@ -358,10 +362,6 @@
|
|
|
358
362
|
"types": "./login/pages/webauthn-register/index.d.ts",
|
|
359
363
|
"default": "./fesm2022/keycloakify-angular-login-pages-webauthn-register.mjs"
|
|
360
364
|
},
|
|
361
|
-
"./login/providers/keycloakify-angular": {
|
|
362
|
-
"types": "./login/providers/keycloakify-angular/index.d.ts",
|
|
363
|
-
"default": "./fesm2022/keycloakify-angular-login-providers-keycloakify-angular.mjs"
|
|
364
|
-
},
|
|
365
365
|
"./login/services/i18n": {
|
|
366
366
|
"types": "./login/services/i18n/index.d.ts",
|
|
367
367
|
"default": "./fesm2022/keycloakify-angular-login-services-i18n.mjs"
|
package/src/account/i18n.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { GenericI18n_noJsx } from 'keycloakify/account/i18n/noJsx/GenericI18n_noJsx';
|
|
2
|
-
import {
|
|
2
|
+
import type { MessageKey as MessageKey_defaultSet } from 'keycloakify/account/i18n/messages_defaultSet/types';
|
|
3
3
|
/** INTERNAL: DO NOT IMPORT THIS */
|
|
4
4
|
export type I18n = GenericI18n_noJsx<MessageKey_defaultSet, string>;
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
@if (!realm.registrationEmailAsUsername) {
|
|
28
28
|
<div
|
|
29
29
|
class="form-group"
|
|
30
|
-
[
|
|
30
|
+
[class.has-error]="messagesPerField.existsError('username')"
|
|
31
31
|
>
|
|
32
32
|
<div class="col-sm-2 col-md-2">
|
|
33
33
|
<label
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
|
|
57
57
|
<div
|
|
58
58
|
class="form-group"
|
|
59
|
-
[
|
|
59
|
+
[class.has-error]="messagesPerField.existsError('email')"
|
|
60
60
|
>
|
|
61
61
|
<div class="col-sm-2 col-md-2">
|
|
62
62
|
<label
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
|
|
83
83
|
<div
|
|
84
84
|
class="form-group"
|
|
85
|
-
[
|
|
85
|
+
[class.has-error]="messagesPerField.existsError('firstName')"
|
|
86
86
|
>
|
|
87
87
|
<div class="col-sm-2 col-md-2">
|
|
88
88
|
<label
|
|
@@ -107,7 +107,7 @@
|
|
|
107
107
|
|
|
108
108
|
<div
|
|
109
109
|
class="form-group"
|
|
110
|
-
[
|
|
110
|
+
[class.has-error]="messagesPerField.existsError('lastName')"
|
|
111
111
|
>
|
|
112
112
|
<div class="col-sm-2 col-md-2">
|
|
113
113
|
<label
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Component, forwardRef, inject } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';
|
|
3
2
|
import { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';
|
|
4
3
|
import { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';
|
|
5
4
|
import type { I18n } from '@keycloakify/angular/account/i18n';
|
|
@@ -12,9 +11,10 @@ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css
|
|
|
12
11
|
import type { ClassKey } from 'keycloakify/account';
|
|
13
12
|
|
|
14
13
|
@Component({
|
|
15
|
-
imports: [
|
|
14
|
+
imports: [KcClassDirective, KcSanitizePipe],
|
|
16
15
|
selector: 'kc-account',
|
|
17
16
|
templateUrl: 'account.component.html',
|
|
17
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18
18
|
providers: [
|
|
19
19
|
{
|
|
20
20
|
provide: ComponentReference,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { KeyValuePipe
|
|
2
|
-
import { Component, forwardRef, inject } from '@angular/core';
|
|
1
|
+
import { KeyValuePipe } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';
|
|
3
3
|
import { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';
|
|
4
4
|
import { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';
|
|
5
5
|
import type { I18n } from '@keycloakify/angular/account/i18n';
|
|
@@ -12,9 +12,10 @@ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css
|
|
|
12
12
|
import type { ClassKey } from 'keycloakify/account';
|
|
13
13
|
|
|
14
14
|
@Component({
|
|
15
|
-
imports: [KcClassDirective,
|
|
15
|
+
imports: [KcClassDirective, KeyValuePipe, IsArrayWithEmptyObjectPipe],
|
|
16
16
|
selector: 'kc-applications',
|
|
17
17
|
templateUrl: 'applications.component.html',
|
|
18
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18
19
|
providers: [
|
|
19
20
|
{
|
|
20
21
|
provide: ComponentReference,
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Component, forwardRef, inject } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';
|
|
3
2
|
import { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';
|
|
4
|
-
import { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';
|
|
5
3
|
import type { I18n } from '@keycloakify/angular/account/i18n';
|
|
6
4
|
import type { KcContext } from '@keycloakify/angular/account/KcContext';
|
|
7
5
|
import { ACCOUNT_CLASSES } from '@keycloakify/angular/account/tokens/classes';
|
|
@@ -11,9 +9,9 @@ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css
|
|
|
11
9
|
import type { ClassKey } from 'keycloakify/account';
|
|
12
10
|
|
|
13
11
|
@Component({
|
|
14
|
-
imports: [KcClassDirective, NgClass],
|
|
15
12
|
selector: 'kc-federated-identity',
|
|
16
13
|
templateUrl: 'federatedIdentity.component.html',
|
|
14
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
17
15
|
providers: [
|
|
18
16
|
{
|
|
19
17
|
provide: ComponentReference,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DatePipe
|
|
2
|
-
import { Component, forwardRef, inject } from '@angular/core';
|
|
1
|
+
import { DatePipe } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';
|
|
3
3
|
import { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';
|
|
4
4
|
import { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';
|
|
5
5
|
import type { I18n } from '@keycloakify/angular/account/i18n';
|
|
@@ -11,9 +11,10 @@ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css
|
|
|
11
11
|
import type { ClassKey } from 'keycloakify/account';
|
|
12
12
|
|
|
13
13
|
@Component({
|
|
14
|
-
imports: [KcClassDirective,
|
|
14
|
+
imports: [KcClassDirective, DatePipe],
|
|
15
15
|
selector: 'kc-log',
|
|
16
16
|
templateUrl: 'log.component.html',
|
|
17
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
17
18
|
providers: [
|
|
18
19
|
{
|
|
19
20
|
provide: ComponentReference,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Component, forwardRef, inject, signal } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject, signal } from '@angular/core';
|
|
3
2
|
import { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';
|
|
4
3
|
import { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';
|
|
5
4
|
import type { I18n } from '@keycloakify/angular/account/i18n';
|
|
@@ -11,9 +10,10 @@ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css
|
|
|
11
10
|
import type { ClassKey } from 'keycloakify/account';
|
|
12
11
|
|
|
13
12
|
@Component({
|
|
14
|
-
imports: [KcClassDirective
|
|
13
|
+
imports: [KcClassDirective],
|
|
15
14
|
selector: 'kc-password',
|
|
16
15
|
templateUrl: 'password.component.html',
|
|
16
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
17
17
|
providers: [
|
|
18
18
|
{
|
|
19
19
|
provide: ComponentReference,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Component, forwardRef, inject } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';
|
|
3
2
|
import { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';
|
|
4
3
|
import { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';
|
|
5
4
|
import type { I18n } from '@keycloakify/angular/account/i18n';
|
|
@@ -11,9 +10,10 @@ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css
|
|
|
11
10
|
import type { ClassKey } from 'keycloakify/account';
|
|
12
11
|
|
|
13
12
|
@Component({
|
|
14
|
-
imports: [KcClassDirective
|
|
13
|
+
imports: [KcClassDirective],
|
|
15
14
|
selector: 'kc-sessions',
|
|
16
15
|
templateUrl: 'sessions.component.html',
|
|
16
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
17
17
|
providers: [
|
|
18
18
|
{
|
|
19
19
|
provide: ComponentReference,
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Component, forwardRef, inject } from '@angular/core';
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, inject } from '@angular/core';
|
|
3
2
|
import { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';
|
|
4
3
|
import { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';
|
|
5
4
|
import type { I18n } from '@keycloakify/angular/account/i18n';
|
|
@@ -12,9 +11,10 @@ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css
|
|
|
12
11
|
import type { ClassKey } from 'keycloakify/account';
|
|
13
12
|
|
|
14
13
|
@Component({
|
|
15
|
-
imports: [KcClassDirective, KcSanitizePipe
|
|
14
|
+
imports: [KcClassDirective, KcSanitizePipe],
|
|
16
15
|
selector: 'kc-totp',
|
|
17
16
|
templateUrl: 'totp.component.html',
|
|
17
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18
18
|
providers: [
|
|
19
19
|
{
|
|
20
20
|
provide: ComponentReference,
|
|
@@ -11,7 +11,7 @@ import { ACCOUNT_CLASSES } from '@keycloakify/angular/account/tokens/classes';
|
|
|
11
11
|
import { ACCOUNT_I18N } from '@keycloakify/angular/account/tokens/i18n';
|
|
12
12
|
import { KC_ACCOUNT_CONTEXT } from '@keycloakify/angular/account/tokens/kc-context';
|
|
13
13
|
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
14
|
-
import {
|
|
14
|
+
import type { KcContextLike } from 'keycloakify/account/i18n/noJsx';
|
|
15
15
|
import type { ClassKey } from 'keycloakify/account/lib/kcClsx';
|
|
16
16
|
|
|
17
17
|
export type KeycloakifyAngularAccountConfig = {
|
|
@@ -39,7 +39,7 @@ export const provideKeycloakifyAngular = (config: KeycloakifyAngularAccountConfi
|
|
|
39
39
|
},
|
|
40
40
|
provideAppInitializer(() => {
|
|
41
41
|
const i18nService: I18nService = inject(I18nService);
|
|
42
|
-
const kcContext
|
|
42
|
+
const kcContext = inject<KcContext>(KC_ACCOUNT_CONTEXT);
|
|
43
43
|
const getI18n = config.getI18n;
|
|
44
44
|
|
|
45
45
|
const { i18n, prI18n_currentLanguage } = getI18n({
|
|
@@ -66,35 +66,35 @@
|
|
|
66
66
|
<div class="container">
|
|
67
67
|
<div class="bs-sidebar col-sm-3">
|
|
68
68
|
<ul>
|
|
69
|
-
<li [
|
|
69
|
+
<li [class.active]="active === 'account'">
|
|
70
70
|
<a [href]="url.accountUrl">{{ i18n.msgStr('account') }}</a>
|
|
71
71
|
</li>
|
|
72
72
|
@if (features.passwordUpdateSupported) {
|
|
73
|
-
<li [
|
|
73
|
+
<li [class.active]="active === 'password'">
|
|
74
74
|
<a [href]="url.passwordUrl">{{ i18n.msgStr('password') }}</a>
|
|
75
75
|
</li>
|
|
76
76
|
}
|
|
77
|
-
<li [
|
|
77
|
+
<li [class.active]="active === 'totp'">
|
|
78
78
|
<a [href]="url.totpUrl">{{ i18n.msgStr('authenticator') }}</a>
|
|
79
79
|
</li>
|
|
80
80
|
@if (features.identityFederation) {
|
|
81
|
-
<li [
|
|
81
|
+
<li [class.active]="active === 'social'">
|
|
82
82
|
<a [href]="url.socialUrl">{{ i18n.msgStr('federatedIdentity') }}</a>
|
|
83
83
|
</li>
|
|
84
84
|
}
|
|
85
|
-
<li [
|
|
85
|
+
<li [class.active]="active === 'sessions'">
|
|
86
86
|
<a [href]="url.sessionsUrl">{{ i18n.msgStr('sessions') }}</a>
|
|
87
87
|
</li>
|
|
88
|
-
<li [
|
|
88
|
+
<li [class.active]="active === 'applications'">
|
|
89
89
|
<a [href]="url.applicationsUrl">{{ i18n.msgStr('applications') }}</a>
|
|
90
90
|
</li>
|
|
91
91
|
@if (features.log) {
|
|
92
|
-
<li [
|
|
92
|
+
<li [class.active]="active === 'log'">
|
|
93
93
|
<a [href]="url.logUrl">{{ i18n.msgStr('log') }}</a>
|
|
94
94
|
</li>
|
|
95
95
|
}
|
|
96
96
|
@if (realm.userManagedAccessAllowed && features.authorization) {
|
|
97
|
-
<li [
|
|
97
|
+
<li [class.active]="active === 'authorization'">
|
|
98
98
|
<a [href]="url.resourceUrl">{{ i18n.msgStr('myResources') }}</a>
|
|
99
99
|
</li>
|
|
100
100
|
}
|
|
@@ -15,7 +15,6 @@ import {
|
|
|
15
15
|
} from '@angular/core';
|
|
16
16
|
import { Meta, Title } from '@angular/platform-browser';
|
|
17
17
|
import { ComponentReference } from '@keycloakify/angular/account/classes/component-reference';
|
|
18
|
-
import { KcClassDirective } from '@keycloakify/angular/account/directives/kc-class';
|
|
19
18
|
import type { I18n } from '@keycloakify/angular/account/i18n';
|
|
20
19
|
import type { KcContext } from '@keycloakify/angular/account/KcContext';
|
|
21
20
|
import { AccountResourceInjectorService } from '@keycloakify/angular/account/services/account-resource-injector';
|
|
@@ -32,7 +31,7 @@ type ActiveType = 'account' | 'password' | 'totp' | 'social' | 'sessions' | 'app
|
|
|
32
31
|
@Component({
|
|
33
32
|
selector: 'kc-root',
|
|
34
33
|
templateUrl: 'template.component.html',
|
|
35
|
-
imports: [AsyncPipe, KcSanitizePipe,
|
|
34
|
+
imports: [AsyncPipe, KcSanitizePipe, NgClass],
|
|
36
35
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
37
36
|
providers: [
|
|
38
37
|
{
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* eslint-disable @angular-eslint/component-class-suffix */
|
|
2
2
|
import { Component, inject, OnInit, Type } from '@angular/core';
|
|
3
|
+
import type { KcContext } from '@keycloakify/angular/account/KcContext';
|
|
3
4
|
import { provideKeycloakifyAngular } from '@keycloakify/angular/account/providers/keycloakify-angular';
|
|
4
5
|
import { TemplateComponent } from '@keycloakify/angular/account/template';
|
|
5
6
|
import { getKcPage } from './KcPage';
|
|
@@ -54,7 +55,7 @@ export const decorators = (_: unknown, context: StoryContextLike) => ({
|
|
|
54
55
|
})
|
|
55
56
|
export class KcPageStory implements OnInit {
|
|
56
57
|
pageComponent: Type<unknown> | undefined;
|
|
57
|
-
kcContext = inject(KC_ACCOUNT_CONTEXT);
|
|
58
|
+
kcContext = inject<KcContext>(KC_ACCOUNT_CONTEXT);
|
|
58
59
|
ngOnInit() {
|
|
59
60
|
getKcPage(this.kcContext.pageId).then(kcPage => {
|
|
60
61
|
this.pageComponent = kcPage.PageComponent;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, computed, inject, input, output } from '@angular/core';
|
|
2
2
|
import { getButtonToDisplayForMultivaluedAttributeField, type FormAction } from '@keycloakify/angular/login/services/user-profile-form';
|
|
3
3
|
import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
|
|
4
|
-
import {
|
|
4
|
+
import type { Attribute } from 'keycloakify/login/KcContext';
|
|
5
5
|
import type { I18n } from '@keycloakify/angular/login/i18n';
|
|
6
6
|
|
|
7
7
|
@Component({
|
|
@@ -12,7 +12,6 @@ import type { I18n } from '@keycloakify/angular/login/i18n';
|
|
|
12
12
|
}
|
|
13
13
|
`
|
|
14
14
|
],
|
|
15
|
-
imports: [],
|
|
16
15
|
selector: 'kc-add-remove-buttons-multi-valued-attribute',
|
|
17
16
|
templateUrl: 'add-remove-buttons-multi-valued-attribute.component.html',
|
|
18
17
|
changeDetection: ChangeDetectionStrategy.OnPush
|
|
@@ -2,9 +2,9 @@ import { ChangeDetectionStrategy, Component, forwardRef, inject, input } from '@
|
|
|
2
2
|
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
3
3
|
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
4
4
|
import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
|
|
5
|
-
import {
|
|
5
|
+
import type { FormFieldError } from '@keycloakify/angular/login/services/user-profile-form';
|
|
6
6
|
import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
7
|
-
import {
|
|
7
|
+
import type { Attribute } from 'keycloakify/login/KcContext';
|
|
8
8
|
import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
9
9
|
|
|
10
10
|
@Component({
|
|
@@ -5,7 +5,7 @@ import { AttributesDirective } from '@keycloakify/angular/lib/directives/attribu
|
|
|
5
5
|
import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
|
|
6
6
|
import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
7
7
|
import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
|
|
8
|
-
import {
|
|
8
|
+
import type { Attribute } from 'keycloakify/login/KcContext';
|
|
9
9
|
import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
10
10
|
import type { I18n } from '@keycloakify/angular/login/i18n';
|
|
11
11
|
|
|
@@ -9,7 +9,7 @@ import { SelectTagComponent } from '@keycloakify/angular/login/components/select
|
|
|
9
9
|
import { TextareaTagComponent } from '@keycloakify/angular/login/components/textarea-tag';
|
|
10
10
|
import { FormAction, FormFieldError } from '@keycloakify/angular/login/services/user-profile-form';
|
|
11
11
|
import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
12
|
-
import {
|
|
12
|
+
import type { Attribute } from 'keycloakify/login/KcContext';
|
|
13
13
|
import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
14
14
|
|
|
15
15
|
@Component({
|
|
@@ -12,7 +12,7 @@ import type { I18n } from '@keycloakify/angular/login/i18n';
|
|
|
12
12
|
import { FormAction, FormFieldError } from '@keycloakify/angular/login/services/user-profile-form';
|
|
13
13
|
import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
14
14
|
import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
|
|
15
|
-
import {
|
|
15
|
+
import type { Attribute } from 'keycloakify/login/KcContext';
|
|
16
16
|
import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
17
17
|
|
|
18
18
|
@Component({
|
|
@@ -2,10 +2,10 @@ import { ChangeDetectionStrategy, Component, computed, forwardRef, inject, input
|
|
|
2
2
|
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
3
3
|
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
4
4
|
import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
|
|
5
|
-
import {
|
|
5
|
+
import type { FormAction, FormFieldError } from '@keycloakify/angular/login/services/user-profile-form';
|
|
6
6
|
import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
7
7
|
import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
|
|
8
|
-
import {
|
|
8
|
+
import type { Attribute } from 'keycloakify/login/KcContext';
|
|
9
9
|
import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
10
10
|
import type { I18n } from '@keycloakify/angular/login/i18n';
|
|
11
11
|
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { AsyncPipe } from '@angular/common';
|
|
2
1
|
import { ChangeDetectionStrategy, Component, forwardRef, inject, input, Renderer2, signal, WritableSignal } from '@angular/core';
|
|
3
2
|
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
4
3
|
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
@@ -18,7 +17,7 @@ import type { I18n } from '@keycloakify/angular/login/i18n';
|
|
|
18
17
|
`
|
|
19
18
|
],
|
|
20
19
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
21
|
-
imports: [KcClassDirective
|
|
20
|
+
imports: [KcClassDirective],
|
|
22
21
|
templateUrl: 'password-wrapper.component.html',
|
|
23
22
|
providers: [
|
|
24
23
|
{
|
|
@@ -3,10 +3,10 @@ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css
|
|
|
3
3
|
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
4
4
|
import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
|
|
5
5
|
import { ToNumberPipe } from '@keycloakify/angular/lib/pipes/to-number';
|
|
6
|
-
import {
|
|
6
|
+
import type { FormAction, FormFieldError } from '@keycloakify/angular/login/services/user-profile-form';
|
|
7
7
|
import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
8
8
|
import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
|
|
9
|
-
import {
|
|
9
|
+
import type { Attribute } from 'keycloakify/login/KcContext';
|
|
10
10
|
import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
11
11
|
import type { I18n } from '@keycloakify/angular/login/i18n';
|
|
12
12
|
|
|
@@ -3,9 +3,9 @@ import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css
|
|
|
3
3
|
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
4
4
|
import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
|
|
5
5
|
import { ToNumberPipe } from '@keycloakify/angular/lib/pipes/to-number';
|
|
6
|
-
import {
|
|
6
|
+
import type { FormAction, FormFieldError } from '@keycloakify/angular/login/services/user-profile-form';
|
|
7
7
|
import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
8
|
-
import {
|
|
8
|
+
import type { Attribute } from 'keycloakify/login/KcContext';
|
|
9
9
|
import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
10
10
|
|
|
11
11
|
@Component({
|
package/src/login/i18n.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { GenericI18n_noJsx } from 'keycloakify/login/i18n/noJsx/GenericI18n_noJsx';
|
|
2
|
-
import {
|
|
2
|
+
import type { MessageKey as MessageKey_defaultSet } from 'keycloakify/login/i18n/messages_defaultSet/types';
|
|
3
3
|
/** INTERNAL: DO NOT IMPORT THIS */
|
|
4
4
|
export type I18n = GenericI18n_noJsx<MessageKey_defaultSet, string>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { ChangeDetectionStrategy, Component, forwardRef, inject, signal, type TemplateRef, viewChild } from '@angular/core';
|
|
3
3
|
import { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';
|
|
4
4
|
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
@@ -16,7 +16,7 @@ import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
|
16
16
|
selector: 'kc-login',
|
|
17
17
|
templateUrl: 'login.component.html',
|
|
18
18
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
19
|
-
imports: [KcClassDirective,
|
|
19
|
+
imports: [KcClassDirective, KcSanitizePipe, PasswordWrapperComponent, CommonModule],
|
|
20
20
|
providers: [
|
|
21
21
|
{
|
|
22
22
|
provide: ComponentReference,
|
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';
|
|
2
2
|
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
3
|
-
import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
|
|
4
3
|
import type { I18n } from '@keycloakify/angular/login/i18n';
|
|
5
4
|
import type { KcContext } from '@keycloakify/angular/login/KcContext';
|
|
6
5
|
import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n';
|
|
7
6
|
import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
|
|
8
7
|
|
|
9
8
|
@Component({
|
|
10
|
-
imports: [KcClassDirective],
|
|
11
9
|
selector: 'kc-login-idp-link-email',
|
|
12
10
|
templateUrl: 'login-idp-link-email.component.html',
|
|
13
11
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -9,7 +9,6 @@ import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
|
|
|
9
9
|
import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
10
10
|
|
|
11
11
|
@Component({
|
|
12
|
-
imports: [],
|
|
13
12
|
selector: 'kc-login-page-expired',
|
|
14
13
|
templateUrl: 'login-page-expired.component.html',
|
|
15
14
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import type { Script } from '@keycloakify/angular/lib/models/script';
|
|
3
3
|
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
4
4
|
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
5
5
|
import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { AsyncPipe, NgClass } from '@angular/common';
|
|
2
1
|
import { ChangeDetectionStrategy, Component, forwardRef, inject, signal, type TemplateRef, viewChild } from '@angular/core';
|
|
3
2
|
import { KcSanitizePipe } from '@keycloakify/angular/lib/pipes/kc-sanitize';
|
|
4
3
|
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
@@ -15,7 +14,7 @@ import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
|
15
14
|
selector: 'kc-login-username',
|
|
16
15
|
templateUrl: 'login-username.component.html',
|
|
17
16
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18
|
-
imports: [KcClassDirective,
|
|
17
|
+
imports: [KcClassDirective, KcSanitizePipe],
|
|
19
18
|
providers: [
|
|
20
19
|
{
|
|
21
20
|
provide: ComponentReference,
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';
|
|
2
2
|
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
3
3
|
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
4
|
-
import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class';
|
|
5
4
|
import type { I18n } from '@keycloakify/angular/login/i18n';
|
|
6
5
|
import type { KcContext } from '@keycloakify/angular/login/KcContext';
|
|
7
6
|
import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes';
|
|
@@ -10,7 +9,6 @@ import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
|
|
|
10
9
|
import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
11
10
|
|
|
12
11
|
@Component({
|
|
13
|
-
imports: [KcClassDirective],
|
|
14
12
|
selector: 'kc-login-verify-email',
|
|
15
13
|
templateUrl: 'login-verify-email.component.html',
|
|
16
14
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -9,7 +9,6 @@ import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
|
|
|
9
9
|
import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
10
10
|
|
|
11
11
|
@Component({
|
|
12
|
-
imports: [],
|
|
13
12
|
selector: 'kc-saml-post-form',
|
|
14
13
|
templateUrl: 'saml-post-form.component.html',
|
|
15
14
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { NgClass } from '@angular/common';
|
|
2
1
|
import { ChangeDetectionStrategy, Component, forwardRef, inject, type TemplateRef, viewChild } from '@angular/core';
|
|
3
2
|
import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css';
|
|
4
3
|
import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference';
|
|
@@ -11,7 +10,7 @@ import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context';
|
|
|
11
10
|
import type { ClassKey } from 'keycloakify/login/lib/kcClsx';
|
|
12
11
|
|
|
13
12
|
@Component({
|
|
14
|
-
imports: [KcClassDirective
|
|
13
|
+
imports: [KcClassDirective],
|
|
15
14
|
selector: 'kc-select-authenticator',
|
|
16
15
|
templateUrl: 'select-authenticator.component.html',
|
|
17
16
|
changeDetection: ChangeDetectionStrategy.OnPush,
|