@keycloakify/angular 0.0.1-rc.6 → 0.0.1-rc.7

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.
@@ -1,9 +1,13 @@
1
+ import { AfterContentInit, Type } from '@angular/core';
1
2
  import { ComponentReference } from '../../../login/classes/component-reference.class';
2
- import { type I18n } from '../../i18n';
3
+ import { UserProfileFormFieldsComponent } from '../../../login/components/user-profile-form-fields/user-profile-form-fields.component';
3
4
  import { type ClassKey } from 'keycloakify/login/lib/kcClsx';
5
+ import { Observable } from 'rxjs';
6
+ import { type I18n } from '../../i18n';
4
7
  import { type KcContext } from '../../KcContext';
5
8
  import * as i0 from "@angular/core";
6
- export declare class IdpReviewUserProfileComponent extends ComponentReference {
9
+ export declare class IdpReviewUserProfileComponent extends ComponentReference implements AfterContentInit {
10
+ userProfileFormFields: UserProfileFormFieldsComponent | undefined;
7
11
  kcContext: KcContext.IdpReviewUserProfile;
8
12
  displayRequiredFields: import("@angular/core").InputSignal<boolean>;
9
13
  documentTitle: import("@angular/core").InputSignal<string | undefined>;
@@ -14,7 +18,11 @@ export declare class IdpReviewUserProfileComponent extends ComponentReference {
14
18
  isFormSubmittable: import("@angular/core").WritableSignal<boolean>;
15
19
  displayInfo: boolean;
16
20
  displayMessage: boolean;
21
+ userProfileFormFieldsComponent: Observable<Type<UserProfileFormFieldsComponent> | null>;
22
+ userProfileFormFieldsEjectedPath: string | undefined;
23
+ constructor();
24
+ ngAfterContentInit(): void;
17
25
  onCallback(): void;
18
26
  static ɵfac: i0.ɵɵFactoryDeclaration<IdpReviewUserProfileComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<IdpReviewUserProfileComponent, "kc-root", never, { "displayRequiredFields": { "alias": "displayRequiredFields"; "required": false; "isSignal": true; }; "documentTitle": { "alias": "documentTitle"; "required": false; "isSignal": true; }; "bodyClassName": { "alias": "bodyClassName"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
27
+ static ɵcmp: i0.ɵɵComponentDeclaration<IdpReviewUserProfileComponent, "kc-root", never, { "displayRequiredFields": { "alias": "displayRequiredFields"; "required": false; "isSignal": true; }; "documentTitle": { "alias": "documentTitle"; "required": false; "isSignal": true; }; "bodyClassName": { "alias": "bodyClassName"; "required": false; "isSignal": true; }; }, {}, ["userProfileFormFields"], never, true, never>;
20
28
  }
@@ -1,16 +1,19 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal } from '@angular/core';
1
+ import { AsyncPipe, NgComponentOutlet } from '@angular/common';
2
+ import { ChangeDetectionStrategy, Component, ContentChild, forwardRef, inject, input, signal } from '@angular/core';
2
3
  import { USE_DEFAULT_CSS } from '../../../lib/tokens/use-default-css.token';
3
4
  import { ComponentReference } from '../../../login/classes/component-reference.class';
4
5
  import { UserProfileFormFieldsComponent } from '../../../login/components/user-profile-form-fields/user-profile-form-fields.component';
5
6
  import { TemplateComponent } from '../../../login/containers/template.component';
6
7
  import { KcClassDirective } from '../../../login/directives/kc-class.directive';
7
- import { LOGIN_I18N } from '../../../login/tokens/i18n.token';
8
8
  import { LOGIN_CLASSES } from '../../../login/tokens/classes.token';
9
+ import { LOGIN_I18N } from '../../../login/tokens/i18n.token';
9
10
  import { KC_LOGIN_CONTEXT } from '../../../login/tokens/kc-context.token';
11
+ import { USER_PROFILE_FORM_FIELDS_EJECTED_PATH } from '../../../login/tokens/user-profile-form-fields-ejected-path.token';
12
+ import { from } from 'rxjs';
10
13
  import * as i0 from "@angular/core";
11
14
  export class IdpReviewUserProfileComponent extends ComponentReference {
12
15
  constructor() {
13
- super(...arguments);
16
+ super();
14
17
  this.kcContext = inject(KC_LOGIN_CONTEXT);
15
18
  this.displayRequiredFields = input(true);
16
19
  this.documentTitle = input();
@@ -21,25 +24,34 @@ export class IdpReviewUserProfileComponent extends ComponentReference {
21
24
  this.isFormSubmittable = signal(false);
22
25
  this.displayInfo = false;
23
26
  this.displayMessage = !this.kcContext?.messagesPerField?.existsError('global');
27
+ this.userProfileFormFieldsEjectedPath = inject(USER_PROFILE_FORM_FIELDS_EJECTED_PATH);
28
+ this.userProfileFormFieldsComponent = from(import(/* @vite-ignore */ this.userProfileFormFieldsEjectedPath ??
29
+ '../../components/user-profile-form-fields/user-profile-form-fields.component').then(c => c.UserProfileFormFieldsComponent));
30
+ }
31
+ ngAfterContentInit() {
32
+ this.userProfileFormFields?.onIsFormSubmittable?.subscribe(submittable => this.isFormSubmittable.set(submittable));
24
33
  }
25
34
  onCallback() {
26
35
  document.getElementById('kc-register-form').submit();
27
36
  }
28
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: IdpReviewUserProfileComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: IdpReviewUserProfileComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
29
38
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.6", type: IdpReviewUserProfileComponent, isStandalone: true, selector: "kc-root", inputs: { displayRequiredFields: { classPropertyName: "displayRequiredFields", publicName: "displayRequiredFields", isSignal: true, isRequired: false, transformFunction: null }, documentTitle: { classPropertyName: "documentTitle", publicName: "documentTitle", isSignal: true, isRequired: false, transformFunction: null }, bodyClassName: { classPropertyName: "bodyClassName", publicName: "bodyClassName", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
30
39
  {
31
40
  provide: ComponentReference,
32
41
  useExisting: forwardRef(() => IdpReviewUserProfileComponent)
33
42
  }
34
- ], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('loginIdpReviewProfileTitle') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-idp-review-profile-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <kc-user-profile-form-fields (onIsFormSubmittable)=\"isFormSubmittable.set($event)\" />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n type=\"submit\"\n [value]=\"i18n.msgStr('doSubmit')\"\n [disabled]=\"!isFormSubmittable\"\n />\n </div>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "component", type: UserProfileFormFieldsComponent, selector: "kc-user-profile-form-fields", outputs: ["onIsFormSubmittable"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
43
+ ], queries: [{ propertyName: "userProfileFormFields", first: true, predicate: UserProfileFormFieldsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "@let url = kcContext.url;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('loginIdpReviewProfileTitle') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-idp-review-profile-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <ng-container *ngComponentOutlet=\"userProfileFormFieldsComponent | async\"></ng-container>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n type=\"submit\"\n [value]=\"i18n.msgStr('doSubmit')\"\n [disabled]=\"!isFormSubmittable\"\n />\n </div>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n", dependencies: [{ kind: "component", type: TemplateComponent, selector: "kc-login-template", inputs: ["displayInfo", "displayMessage", "displayRequiredFields", "documentTitle", "bodyClassName"] }, { kind: "directive", type: KcClassDirective, selector: "[kcClass]", inputs: ["class", "ngClass", "kcClass"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
35
44
  }
36
45
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: IdpReviewUserProfileComponent, decorators: [{
37
46
  type: Component,
38
- args: [{ standalone: true, imports: [TemplateComponent, UserProfileFormFieldsComponent, KcClassDirective], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
47
+ args: [{ standalone: true, imports: [TemplateComponent, KcClassDirective, NgComponentOutlet, AsyncPipe], selector: 'kc-root', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
39
48
  {
40
49
  provide: ComponentReference,
41
50
  useExisting: forwardRef(() => IdpReviewUserProfileComponent)
42
51
  }
43
- ], template: "@let url = kcContext.url;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('loginIdpReviewProfileTitle') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-idp-review-profile-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <kc-user-profile-form-fields (onIsFormSubmittable)=\"isFormSubmittable.set($event)\" />\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n type=\"submit\"\n [value]=\"i18n.msgStr('doSubmit')\"\n [disabled]=\"!isFormSubmittable\"\n />\n </div>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n" }]
44
- }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLXJldmlldy11c2VyLXByb2ZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvaWRwLXJldmlldy11c2VyLXByb2ZpbGUvaWRwLXJldmlldy11c2VyLXByb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvaWRwLXJldmlldy11c2VyLXByb2ZpbGUvaWRwLXJldmlldy11c2VyLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1HQUFtRyxDQUFDO0FBQ25KLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUUxRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDaEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7O0FBaUJ0RixNQUFNLE9BQU8sNkJBQThCLFNBQVEsa0JBQWtCO0lBYnJFOztRQWNJLGNBQVMsR0FBRyxNQUFNLENBQWdFLGdCQUFnQixDQUFDLENBQUM7UUFDcEcsMEJBQXFCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLGtCQUFhLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxTQUFJLEdBQUcsTUFBTSxDQUFPLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZCLG9CQUFlLEdBQUcsTUFBTSxDQUFVLGVBQWUsQ0FBQyxDQUFDO1FBQ25ELFlBQU8sR0FBRyxNQUFNLENBQW9DLGFBQWEsQ0FBQyxDQUFDO1FBQzVFLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxnQkFBVyxHQUFZLEtBQUssQ0FBQztRQUM3QixtQkFBYyxHQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7S0FLdEY7SUFIRyxVQUFVO1FBQ0wsUUFBUSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBcUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5RSxDQUFDOzhHQWRRLDZCQUE2QjtrR0FBN0IsNkJBQTZCLDBnQkFQM0I7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDZCQUE2QixDQUFDO2FBQy9EO1NBQ0osaURDeEJMLDZoREF5Q0EsNENEMUJjLGlCQUFpQixvS0FBRSw4QkFBOEIsMEdBQUUsZ0JBQWdCOzsyRkFXcEUsNkJBQTZCO2tCQWJ6QyxTQUFTO2lDQUNNLElBQUksV0FDUCxDQUFDLGlCQUFpQixFQUFFLDhCQUE4QixFQUFFLGdCQUFnQixDQUFDLFlBQ3BFLFNBQVMsbUJBRUYsdUJBQXVCLENBQUMsTUFBTSxhQUNwQzt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsa0JBQWtCOzRCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSw4QkFBOEIsQ0FBQzt5QkFDL0Q7cUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzLnRva2VuJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBVc2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy91c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMuY29tcG9uZW50JztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bi50b2tlbic7XG5pbXBvcnQgeyB0eXBlIEkxOG4gfSBmcm9tICcuLi8uLi9pMThuJztcbmltcG9ydCB7IExPR0lOX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvY2xhc3Nlcy50b2tlbic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQudG9rZW4nO1xuaW1wb3J0IHsgdHlwZSBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgdHlwZSBLY0NvbnRleHQgfSBmcm9tICcuLi8uLi9LY0NvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZW1wbGF0ZUNvbXBvbmVudCwgVXNlclByb2ZpbGVGb3JtRmllbGRzQ29tcG9uZW50LCBLY0NsYXNzRGlyZWN0aXZlXSxcbiAgICBzZWxlY3RvcjogJ2tjLXJvb3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnaWRwLXJldmlldy11c2VyLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBDb21wb25lbnRSZWZlcmVuY2UsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJZHBSZXZpZXdVc2VyUHJvZmlsZUNvbXBvbmVudClcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSWRwUmV2aWV3VXNlclByb2ZpbGVDb21wb25lbnQgZXh0ZW5kcyBDb21wb25lbnRSZWZlcmVuY2Uge1xuICAgIGtjQ29udGV4dCA9IGluamVjdDxFeHRyYWN0PEtjQ29udGV4dCwgeyBwYWdlSWQ6ICdpZHAtcmV2aWV3LXVzZXItcHJvZmlsZS5mdGwnIH0+PihLQ19MT0dJTl9DT05URVhUKTtcbiAgICBkaXNwbGF5UmVxdWlyZWRGaWVsZHMgPSBpbnB1dCh0cnVlKTtcbiAgICBkb2N1bWVudFRpdGxlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGJvZHlDbGFzc05hbWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgaTE4biA9IGluamVjdDxJMThuPihMT0dJTl9JMThOKTtcbiAgICBvdmVycmlkZSBkb1VzZURlZmF1bHRDc3MgPSBpbmplY3Q8Ym9vbGVhbj4oVVNFX0RFRkFVTFRfQ1NTKTtcbiAgICBvdmVycmlkZSBjbGFzc2VzID0gaW5qZWN0PFBhcnRpYWw8UmVjb3JkPENsYXNzS2V5LCBzdHJpbmc+Pj4oTE9HSU5fQ0xBU1NFUyk7XG4gICAgaXNGb3JtU3VibWl0dGFibGUgPSBzaWduYWwoZmFsc2UpO1xuICAgIGRpc3BsYXlJbmZvOiBib29sZWFuID0gZmFsc2U7XG4gICAgZGlzcGxheU1lc3NhZ2U6IGJvb2xlYW4gPSAhdGhpcy5rY0NvbnRleHQ/Lm1lc3NhZ2VzUGVyRmllbGQ/LmV4aXN0c0Vycm9yKCdnbG9iYWwnKTtcblxuICAgIG9uQ2FsbGJhY2soKSB7XG4gICAgICAgIChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgna2MtcmVnaXN0ZXItZm9ybScpIGFzIEhUTUxGb3JtRWxlbWVudCkuc3VibWl0KCk7XG4gICAgfVxufVxuIiwiQGxldCB1cmwgPSBrY0NvbnRleHQudXJsO1xuPGtjLWxvZ2luLXRlbXBsYXRlXG4gICAgW2Rpc3BsYXlJbmZvXT1cImRpc3BsYXlJbmZvXCJcbiAgICBbYm9keUNsYXNzTmFtZV09XCJib2R5Q2xhc3NOYW1lKClcIlxuICAgIFtkaXNwbGF5TWVzc2FnZV09XCJkaXNwbGF5TWVzc2FnZVwiXG4gICAgW2Rpc3BsYXlSZXF1aXJlZEZpZWxkc109XCJkaXNwbGF5UmVxdWlyZWRGaWVsZHMoKVwiXG4gICAgW2RvY3VtZW50VGl0bGVdPVwiZG9jdW1lbnRUaXRsZSgpXCJcbj5cbiAgICA8bmctY29udGFpbmVyIGhlYWRlck5vZGU+XG4gICAgICAgIHt7IGkxOG4ubXNnU3RyKCdsb2dpbklkcFJldmlld1Byb2ZpbGVUaXRsZScpIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciBjb250ZW50PlxuICAgICAgICA8Zm9ybVxuICAgICAgICAgICAgaWQ9XCJrYy1pZHAtcmV2aWV3LXByb2ZpbGUtZm9ybVwiXG4gICAgICAgICAgICBba2NDbGFzc109XCIna2NGb3JtQ2xhc3MnXCJcbiAgICAgICAgICAgIFthY3Rpb25dPVwidXJsLmxvZ2luQWN0aW9uXCJcbiAgICAgICAgICAgIG1ldGhvZD1cInBvc3RcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8a2MtdXNlci1wcm9maWxlLWZvcm0tZmllbGRzIChvbklzRm9ybVN1Ym1pdHRhYmxlKT1cImlzRm9ybVN1Ym1pdHRhYmxlLnNldCgkZXZlbnQpXCIgLz5cbiAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybUdyb3VwQ2xhc3MnXCI+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWZvcm0tb3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1PcHRpb25zQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2tjQ2xhc3NdPVwiJ2tjRm9ybU9wdGlvbnNXcmFwcGVyQ2xhc3MnXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBpZD1cImtjLWZvcm0tYnV0dG9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFtrY0NsYXNzXT1cIidrY0Zvcm1CdXR0b25zQ2xhc3MnXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiWydrY0J1dHRvbkNsYXNzJywgJ2tjQnV0dG9uUHJpbWFyeUNsYXNzJywgJ2tjQnV0dG9uQmxvY2tDbGFzcycsICdrY0J1dHRvbkxhcmdlQ2xhc3MnXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJpMThuLm1zZ1N0cignZG9TdWJtaXQnKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzRm9ybVN1Ym1pdHRhYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgPC9uZy1jb250YWluZXI+XG48L2tjLWxvZ2luLXRlbXBsYXRlPlxuIl19
52
+ ], template: "@let url = kcContext.url;\n<kc-login-template\n [displayInfo]=\"displayInfo\"\n [bodyClassName]=\"bodyClassName()\"\n [displayMessage]=\"displayMessage\"\n [displayRequiredFields]=\"displayRequiredFields()\"\n [documentTitle]=\"documentTitle()\"\n>\n <ng-container headerNode>\n {{ i18n.msgStr('loginIdpReviewProfileTitle') }}\n </ng-container>\n <ng-container content>\n <form\n id=\"kc-idp-review-profile-form\"\n [kcClass]=\"'kcFormClass'\"\n [action]=\"url.loginAction\"\n method=\"post\"\n >\n <ng-container *ngComponentOutlet=\"userProfileFormFieldsComponent | async\"></ng-container>\n <div [kcClass]=\"'kcFormGroupClass'\">\n <div\n id=\"kc-form-options\"\n [kcClass]=\"'kcFormOptionsClass'\"\n >\n <div [kcClass]=\"'kcFormOptionsWrapperClass'\"></div>\n </div>\n <div\n id=\"kc-form-buttons\"\n [kcClass]=\"'kcFormButtonsClass'\"\n >\n <input\n [kcClass]=\"['kcButtonClass', 'kcButtonPrimaryClass', 'kcButtonBlockClass', 'kcButtonLargeClass']\"\n type=\"submit\"\n [value]=\"i18n.msgStr('doSubmit')\"\n [disabled]=\"!isFormSubmittable\"\n />\n </div>\n </div>\n </form>\n </ng-container>\n</kc-login-template>\n" }]
53
+ }], ctorParameters: () => [], propDecorators: { userProfileFormFields: [{
54
+ type: ContentChild,
55
+ args: [UserProfileFormFieldsComponent, { descendants: true }]
56
+ }] } });
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWRwLXJldmlldy11c2VyLXByb2ZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvaWRwLXJldmlldy11c2VyLXByb2ZpbGUvaWRwLXJldmlldy11c2VyLXByb2ZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2V5Y2xvYWtpZnktYW5ndWxhci9zcmMvbG9naW4vcGFnZXMvaWRwLXJldmlldy11c2VyLXByb2ZpbGUvaWRwLXJldmlldy11c2VyLXByb2ZpbGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9ELE9BQU8sRUFBb0IsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQVEsTUFBTSxlQUFlLENBQUM7QUFDNUksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVEQUF1RCxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhEQUE4RCxDQUFDO0FBQ2xHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1HQUFtRyxDQUFDO0FBQ25KLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNoRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDdEYsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sK0VBQStFLENBQUM7QUFFdEksT0FBTyxFQUFFLElBQUksRUFBbUIsTUFBTSxNQUFNLENBQUM7O0FBaUI3QyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsa0JBQWtCO0lBZ0JqRTtRQUNJLEtBQUssRUFBRSxDQUFDO1FBZFosY0FBUyxHQUFHLE1BQU0sQ0FBZ0UsZ0JBQWdCLENBQUMsQ0FBQztRQUNwRywwQkFBcUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNoQyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLFNBQUksR0FBRyxNQUFNLENBQU8sVUFBVSxDQUFDLENBQUM7UUFDdkIsb0JBQWUsR0FBRyxNQUFNLENBQVUsZUFBZSxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFHLE1BQU0sQ0FBb0MsYUFBYSxDQUFDLENBQUM7UUFDNUUsc0JBQWlCLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2xDLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUduRixxQ0FBZ0MsR0FBRyxNQUFNLENBQXFCLHFDQUFxQyxDQUFDLENBQUM7UUFHakcsSUFBSSxDQUFDLDhCQUE4QixHQUFHLElBQUksQ0FDdEMsTUFBTSxDQUFDLGtCQUFrQixDQUNyQixJQUFJLENBQUMsZ0NBQWdDO1lBQ2pDLDhFQUE4RSxDQUNyRixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUNoRCxDQUFDO0lBQ04sQ0FBQztJQUVELGtCQUFrQjtRQUNkLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxtQkFBbUIsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFDdkgsQ0FBQztJQUVELFVBQVU7UUFDTCxRQUFRLENBQUMsY0FBYyxDQUFDLGtCQUFrQixDQUFxQixDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzlFLENBQUM7OEdBaENRLDZCQUE2QjtrR0FBN0IsNkJBQTZCLDBnQkFQM0I7WUFDUDtnQkFDSSxPQUFPLEVBQUUsa0JBQWtCO2dCQUMzQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDZCQUE2QixDQUFDO2FBQy9EO1NBQ0osNkVBR2EsOEJBQThCLHVFQzlCaEQsaWlEQXlDQSw0Q0R2QmMsaUJBQWlCLG9LQUFFLGdCQUFnQiwrRkFBRSxpQkFBaUIsK09BQUUsU0FBUzs7MkZBV2xFLDZCQUE2QjtrQkFiekMsU0FBUztpQ0FDTSxJQUFJLFdBQ1AsQ0FBQyxpQkFBaUIsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLENBQUMsWUFDbEUsU0FBUyxtQkFFRix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxrQkFBa0I7NEJBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDhCQUE4QixDQUFDO3lCQUMvRDtxQkFDSjt3REFHb0UscUJBQXFCO3NCQUF6RixZQUFZO3VCQUFDLDhCQUE4QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdDb21wb25lbnRPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBmb3J3YXJkUmVmLCBpbmplY3QsIGlucHV0LCBzaWduYWwsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVTRV9ERUZBVUxUX0NTUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xpYi90b2tlbnMvdXNlLWRlZmF1bHQtY3NzLnRva2VuJztcbmltcG9ydCB7IENvbXBvbmVudFJlZmVyZW5jZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2NsYXNzZXMvY29tcG9uZW50LXJlZmVyZW5jZS5jbGFzcyc7XG5pbXBvcnQgeyBVc2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9jb21wb25lbnRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy91c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMuY29tcG9uZW50JztcbmltcG9ydCB7IFRlbXBsYXRlQ29tcG9uZW50IH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vY29udGFpbmVycy90ZW1wbGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgS2NDbGFzc0RpcmVjdGl2ZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL2RpcmVjdGl2ZXMva2MtY2xhc3MuZGlyZWN0aXZlJztcbmltcG9ydCB7IExPR0lOX0NMQVNTRVMgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvY2xhc3Nlcy50b2tlbic7XG5pbXBvcnQgeyBMT0dJTl9JMThOIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2kxOG4udG9rZW4nO1xuaW1wb3J0IHsgS0NfTE9HSU5fQ09OVEVYVCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9rYy1jb250ZXh0LnRva2VuJztcbmltcG9ydCB7IFVTRVJfUFJPRklMRV9GT1JNX0ZJRUxEU19FSkVDVEVEX1BBVEggfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvdXNlci1wcm9maWxlLWZvcm0tZmllbGRzLWVqZWN0ZWQtcGF0aC50b2tlbic7XG5pbXBvcnQgeyB0eXBlIENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyBmcm9tLCBPYnNlcnZhYmxlLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHR5cGUgSTE4biB9IGZyb20gJy4uLy4uL2kxOG4nO1xuaW1wb3J0IHsgdHlwZSBLY0NvbnRleHQgfSBmcm9tICcuLi8uLi9LY0NvbnRleHQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtUZW1wbGF0ZUNvbXBvbmVudCwgS2NDbGFzc0RpcmVjdGl2ZSwgTmdDb21wb25lbnRPdXRsZXQsIEFzeW5jUGlwZV0sXG4gICAgc2VsZWN0b3I6ICdrYy1yb290JyxcbiAgICB0ZW1wbGF0ZVVybDogJ2lkcC1yZXZpZXctdXNlci1wcm9maWxlLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ29tcG9uZW50UmVmZXJlbmNlLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSWRwUmV2aWV3VXNlclByb2ZpbGVDb21wb25lbnQpXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIElkcFJldmlld1VzZXJQcm9maWxlQ29tcG9uZW50IGV4dGVuZHMgQ29tcG9uZW50UmVmZXJlbmNlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgQENvbnRlbnRDaGlsZChVc2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgdXNlclByb2ZpbGVGb3JtRmllbGRzOiBVc2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgICBrY0NvbnRleHQgPSBpbmplY3Q8RXh0cmFjdDxLY0NvbnRleHQsIHsgcGFnZUlkOiAnaWRwLXJldmlldy11c2VyLXByb2ZpbGUuZnRsJyB9Pj4oS0NfTE9HSU5fQ09OVEVYVCk7XG4gICAgZGlzcGxheVJlcXVpcmVkRmllbGRzID0gaW5wdXQodHJ1ZSk7XG4gICAgZG9jdW1lbnRUaXRsZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBib2R5Q2xhc3NOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIGkxOG4gPSBpbmplY3Q8STE4bj4oTE9HSU5fSTE4Tik7XG4gICAgb3ZlcnJpZGUgZG9Vc2VEZWZhdWx0Q3NzID0gaW5qZWN0PGJvb2xlYW4+KFVTRV9ERUZBVUxUX0NTUyk7XG4gICAgb3ZlcnJpZGUgY2xhc3NlcyA9IGluamVjdDxQYXJ0aWFsPFJlY29yZDxDbGFzc0tleSwgc3RyaW5nPj4+KExPR0lOX0NMQVNTRVMpO1xuICAgIGlzRm9ybVN1Ym1pdHRhYmxlID0gc2lnbmFsKGZhbHNlKTtcbiAgICBkaXNwbGF5SW5mbzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGRpc3BsYXlNZXNzYWdlOiBib29sZWFuID0gIXRoaXMua2NDb250ZXh0Py5tZXNzYWdlc1BlckZpZWxkPy5leGlzdHNFcnJvcignZ2xvYmFsJyk7XG5cbiAgICB1c2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQ6IE9ic2VydmFibGU8VHlwZTxVc2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQ+IHwgbnVsbD47XG4gICAgdXNlclByb2ZpbGVGb3JtRmllbGRzRWplY3RlZFBhdGggPSBpbmplY3Q8c3RyaW5nIHwgdW5kZWZpbmVkPihVU0VSX1BST0ZJTEVfRk9STV9GSUVMRFNfRUpFQ1RFRF9QQVRIKTtcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy51c2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQgPSBmcm9tKFxuICAgICAgICAgICAgaW1wb3J0KC8qIEB2aXRlLWlnbm9yZSAqL1xuICAgICAgICAgICAgICAgIHRoaXMudXNlclByb2ZpbGVGb3JtRmllbGRzRWplY3RlZFBhdGggPz9cbiAgICAgICAgICAgICAgICAgICAgJy4uLy4uL2NvbXBvbmVudHMvdXNlci1wcm9maWxlLWZvcm0tZmllbGRzL3VzZXItcHJvZmlsZS1mb3JtLWZpZWxkcy5jb21wb25lbnQnXG4gICAgICAgICAgICApLnRoZW4oYyA9PiBjLlVzZXJQcm9maWxlRm9ybUZpZWxkc0NvbXBvbmVudClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXNlclByb2ZpbGVGb3JtRmllbGRzPy5vbklzRm9ybVN1Ym1pdHRhYmxlPy5zdWJzY3JpYmUoc3VibWl0dGFibGUgPT4gdGhpcy5pc0Zvcm1TdWJtaXR0YWJsZS5zZXQoc3VibWl0dGFibGUpKTtcbiAgICB9XG5cbiAgICBvbkNhbGxiYWNrKCkge1xuICAgICAgICAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2tjLXJlZ2lzdGVyLWZvcm0nKSBhcyBIVE1MRm9ybUVsZW1lbnQpLnN1Ym1pdCgpO1xuICAgIH1cbn1cbiIsIkBsZXQgdXJsID0ga2NDb250ZXh0LnVybDtcbjxrYy1sb2dpbi10ZW1wbGF0ZVxuICAgIFtkaXNwbGF5SW5mb109XCJkaXNwbGF5SW5mb1wiXG4gICAgW2JvZHlDbGFzc05hbWVdPVwiYm9keUNsYXNzTmFtZSgpXCJcbiAgICBbZGlzcGxheU1lc3NhZ2VdPVwiZGlzcGxheU1lc3NhZ2VcIlxuICAgIFtkaXNwbGF5UmVxdWlyZWRGaWVsZHNdPVwiZGlzcGxheVJlcXVpcmVkRmllbGRzKClcIlxuICAgIFtkb2N1bWVudFRpdGxlXT1cImRvY3VtZW50VGl0bGUoKVwiXG4+XG4gICAgPG5nLWNvbnRhaW5lciBoZWFkZXJOb2RlPlxuICAgICAgICB7eyBpMThuLm1zZ1N0cignbG9naW5JZHBSZXZpZXdQcm9maWxlVGl0bGUnKSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgY29udGVudD5cbiAgICAgICAgPGZvcm1cbiAgICAgICAgICAgIGlkPVwia2MtaWRwLXJldmlldy1wcm9maWxlLWZvcm1cIlxuICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUNsYXNzJ1wiXG4gICAgICAgICAgICBbYWN0aW9uXT1cInVybC5sb2dpbkFjdGlvblwiXG4gICAgICAgICAgICBtZXRob2Q9XCJwb3N0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdDb21wb25lbnRPdXRsZXQ9XCJ1c2VyUHJvZmlsZUZvcm1GaWVsZHNDb21wb25lbnQgfCBhc3luY1wiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtR3JvdXBDbGFzcydcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1vcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybU9wdGlvbnNDbGFzcydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBba2NDbGFzc109XCIna2NGb3JtT3B0aW9uc1dyYXBwZXJDbGFzcydcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGlkPVwia2MtZm9ybS1idXR0b25zXCJcbiAgICAgICAgICAgICAgICAgICAgW2tjQ2xhc3NdPVwiJ2tjRm9ybUJ1dHRvbnNDbGFzcydcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBba2NDbGFzc109XCJbJ2tjQnV0dG9uQ2xhc3MnLCAna2NCdXR0b25QcmltYXJ5Q2xhc3MnLCAna2NCdXR0b25CbG9ja0NsYXNzJywgJ2tjQnV0dG9uTGFyZ2VDbGFzcyddXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImkxOG4ubXNnU3RyKCdkb1N1Ym1pdCcpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhaXNGb3JtU3VibWl0dGFibGVcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwva2MtbG9naW4tdGVtcGxhdGU+XG4iXX0=
@@ -6,6 +6,7 @@ export type KeycloakifyAngularLoginConfig = {
6
6
  classes?: {
7
7
  [key in ClassKey]?: string;
8
8
  };
9
+ userProfileFormFieldsEjectedPath?: string;
9
10
  getI18n: (params: {
10
11
  kcContext: KcContextLike;
11
12
  }) => {
@@ -5,6 +5,7 @@ import { LOGIN_CLASSES } from '../../login/tokens/classes.token';
5
5
  import { LOGIN_I18N } from '../../login/tokens/i18n.token';
6
6
  import { KC_LOGIN_CONTEXT } from '../../login/tokens/kc-context.token';
7
7
  import { DO_MAKE_USER_CONFIRM_PASSWORD } from '../../login/tokens/make-user-confirm-password.token';
8
+ import { USER_PROFILE_FORM_FIELDS_EJECTED_PATH } from '../../login/tokens/user-profile-form-fields-ejected-path.token';
8
9
  import { I18nService } from '../../login/services/i18n.service';
9
10
  export const provideKeycloakifyAngularLogin = (config) => makeEnvironmentProviders([
10
11
  {
@@ -48,6 +49,10 @@ export const provideKeycloakifyAngularLogin = (config) => makeEnvironmentProvide
48
49
  deps: [I18nService]
49
50
  },
50
51
  { provide: USE_DEFAULT_CSS, useValue: config?.doUseDefaultCss ?? true },
51
- { provide: LOGIN_CLASSES, useValue: config?.classes ?? {} }
52
+ { provide: LOGIN_CLASSES, useValue: config?.classes ?? {} },
53
+ {
54
+ provide: USER_PROFILE_FORM_FIELDS_EJECTED_PATH,
55
+ useValue: config.userProfileFormFieldsEjectedPath
56
+ }
52
57
  ]);
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9wcm92aWRlcnMva2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBSW5ILE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQVkvRSxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLE1BQXFDLEVBQUUsRUFBRSxDQUNwRix3QkFBd0IsQ0FBQztJQUNyQjtRQUNJLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsYUFBYTtRQUNiLFFBQVEsRUFBRSxNQUFNLENBQUMsU0FBUztLQUM3QjtJQUNEO1FBQ0ksT0FBTyxFQUFFLDZCQUE2QjtRQUN0QyxRQUFRLEVBQUUsTUFBTSxFQUFFLHlCQUF5QixJQUFJLElBQUk7S0FDdEQ7SUFDRDtRQUNJLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFVBQVUsRUFBRSxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUMvQixPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDO0tBQ25CO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxDQUFDLFdBQXdCLEVBQUUsU0FBb0IsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUUvQixNQUFNLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsT0FBTyxDQUFDO2dCQUM3QyxTQUFTO2FBQ1osQ0FBQyxDQUFDO1lBQ0gsSUFBSSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQWMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNyRSxJQUFJLHNCQUFzQixFQUFFLENBQUM7Z0JBQ3pCLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMzQixXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDO0tBQ3hDO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsVUFBVTtRQUNuQixVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSTtRQUMxRCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7S0FDdEI7SUFDRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxlQUFlLElBQUksSUFBSSxFQUFFO0lBQ3ZFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUU7Q0FDOUQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBMT0NBTEVfSUQsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MudG9rZW4nO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzLnRva2VuJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bi50b2tlbic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQudG9rZW4nO1xuaW1wb3J0IHsgRE9fTUFLRV9VU0VSX0NPTkZJUk1fUEFTU1dPUkQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvbWFrZS11c2VyLWNvbmZpcm0tcGFzc3dvcmQudG9rZW4nO1xuaW1wb3J0IHsgdHlwZSBLY0NvbnRleHRMaWtlIH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vaTE4bi9ub0pzeCc7XG5pbXBvcnQgeyB0eXBlIENsYXNzS2V5IH0gZnJvbSAna2V5Y2xvYWtpZnkvbG9naW4vbGliL2tjQ2xzeCc7XG5pbXBvcnQgeyB0eXBlIEtjQ29udGV4dCB9IGZyb20gJy4uL0tjQ29udGV4dCc7XG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3NlcnZpY2VzL2kxOG4uc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIEtleWNsb2FraWZ5QW5ndWxhckxvZ2luQ29uZmlnID0ge1xuICAgIGRvTWFrZVVzZXJDb25maXJtUGFzc3dvcmQ/OiBib29sZWFuO1xuICAgIGRvVXNlRGVmYXVsdENzcz86IGJvb2xlYW47XG4gICAgY2xhc3Nlcz86IHsgW2tleSBpbiBDbGFzc0tleV0/OiBzdHJpbmcgfTtcbiAgICBnZXRJMThuOiAocGFyYW1zOiB7IGtjQ29udGV4dDogS2NDb250ZXh0TGlrZSB9KSA9PiB7XG4gICAgICAgIGkxOG46IHVua25vd247XG4gICAgICAgIHBySTE4bl9jdXJyZW50TGFuZ3VhZ2U6IFByb21pc2U8dW5rbm93bj4gfCB1bmRlZmluZWQ7XG4gICAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBwcm92aWRlS2V5Y2xvYWtpZnlBbmd1bGFyTG9naW4gPSAoY29uZmlnOiBLZXljbG9ha2lmeUFuZ3VsYXJMb2dpbkNvbmZpZykgPT5cbiAgICBtYWtlRW52aXJvbm1lbnRQcm92aWRlcnMoW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBLQ19MT0dJTl9DT05URVhULFxuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgdXNlVmFsdWU6IHdpbmRvdy5rY0NvbnRleHRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRE9fTUFLRV9VU0VSX0NPTkZJUk1fUEFTU1dPUkQsXG4gICAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnPy5kb01ha2VVc2VyQ29uZmlybVBhc3N3b3JkID8/IHRydWVcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogTE9DQUxFX0lELFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKGRvY3VtZW50OiBEb2N1bWVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQubGFuZyA/PyAnZW4nO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGRlcHM6IFtET0NVTUVOVF1cbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxuICAgICAgICAgICAgbXVsdGk6IHRydWUsXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlLCBrY0NvbnRleHQ6IEtjQ29udGV4dCkgPT4gYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGdldEkxOG4gPSBjb25maWcuZ2V0STE4bjtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHsgaTE4biwgcHJJMThuX2N1cnJlbnRMYW5ndWFnZSB9ID0gZ2V0STE4bih7XG4gICAgICAgICAgICAgICAgICAgIGtjQ29udGV4dFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGxldCBpMThuUHJvbWlzZSA9IG5ldyBQcm9taXNlPHR5cGVvZiBpMThuPihyZXNvbHZlID0+IHJlc29sdmUoaTE4bikpO1xuICAgICAgICAgICAgICAgIGlmIChwckkxOG5fY3VycmVudExhbmd1YWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIGkxOG5Qcm9taXNlID0gcHJJMThuX2N1cnJlbnRMYW5ndWFnZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGkxOG5Qcm9taXNlLnRoZW4oaTE4biA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGkxOG5TZXJ2aWNlLmkxOG4gPSBpMThuO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZXBzOiBbSTE4blNlcnZpY2UsIEtDX0xPR0lOX0NPTlRFWFRdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IExPR0lOX0kxOE4sXG4gICAgICAgICAgICB1c2VGYWN0b3J5OiAoaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlKSA9PiBpMThuU2VydmljZS5pMThuLFxuICAgICAgICAgICAgZGVwczogW0kxOG5TZXJ2aWNlXVxuICAgICAgICB9LFxuICAgICAgICB7IHByb3ZpZGU6IFVTRV9ERUZBVUxUX0NTUywgdXNlVmFsdWU6IGNvbmZpZz8uZG9Vc2VEZWZhdWx0Q3NzID8/IHRydWUgfSxcbiAgICAgICAgeyBwcm92aWRlOiBMT0dJTl9DTEFTU0VTLCB1c2VWYWx1ZTogY29uZmlnPy5jbGFzc2VzID8/IHt9IH1cbiAgICBdKTtcbiJdfQ==
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rZXljbG9ha2lmeS1hbmd1bGFyL3NyYy9sb2dpbi9wcm92aWRlcnMva2V5Y2xvYWtpZnktYW5ndWxhci5wcm92aWRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUN4RixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saURBQWlELENBQUM7QUFDaEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ3RGLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG9FQUFvRSxDQUFDO0FBQ25ILE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLCtFQUErRSxDQUFDO0FBSXRJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQWEvRSxNQUFNLENBQUMsTUFBTSw4QkFBOEIsR0FBRyxDQUFDLE1BQXFDLEVBQUUsRUFBRSxDQUNwRix3QkFBd0IsQ0FBQztJQUNyQjtRQUNJLE9BQU8sRUFBRSxnQkFBZ0I7UUFDekIsYUFBYTtRQUNiLFFBQVEsRUFBRSxNQUFNLENBQUMsU0FBUztLQUM3QjtJQUNEO1FBQ0ksT0FBTyxFQUFFLDZCQUE2QjtRQUN0QyxRQUFRLEVBQUUsTUFBTSxFQUFFLHlCQUF5QixJQUFJLElBQUk7S0FDdEQ7SUFDRDtRQUNJLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLFVBQVUsRUFBRSxDQUFDLFFBQWtCLEVBQUUsRUFBRTtZQUMvQixPQUFPLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsUUFBUSxDQUFDO0tBQ25CO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsZUFBZTtRQUN4QixLQUFLLEVBQUUsSUFBSTtRQUNYLFVBQVUsRUFBRSxDQUFDLFdBQXdCLEVBQUUsU0FBb0IsRUFBRSxFQUFFLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDdkUsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUUvQixNQUFNLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsT0FBTyxDQUFDO2dCQUM3QyxTQUFTO2FBQ1osQ0FBQyxDQUFDO1lBQ0gsSUFBSSxXQUFXLEdBQUcsSUFBSSxPQUFPLENBQWMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNyRSxJQUFJLHNCQUFzQixFQUFFLENBQUM7Z0JBQ3pCLFdBQVcsR0FBRyxzQkFBc0IsQ0FBQztZQUN6QyxDQUFDO1lBQ0QsT0FBTyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUMzQixXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO1FBQ0QsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDO0tBQ3hDO0lBQ0Q7UUFDSSxPQUFPLEVBQUUsVUFBVTtRQUNuQixVQUFVLEVBQUUsQ0FBQyxXQUF3QixFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsSUFBSTtRQUMxRCxJQUFJLEVBQUUsQ0FBQyxXQUFXLENBQUM7S0FDdEI7SUFDRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxlQUFlLElBQUksSUFBSSxFQUFFO0lBQ3ZFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sSUFBSSxFQUFFLEVBQUU7SUFDM0Q7UUFDSSxPQUFPLEVBQUUscUNBQXFDO1FBQzlDLFFBQVEsRUFBRSxNQUFNLENBQUMsZ0NBQWdDO0tBQ3BEO0NBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBMT0NBTEVfSUQsIG1ha2VFbnZpcm9ubWVudFByb3ZpZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVVNFX0RFRkFVTFRfQ1NTIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbGliL3Rva2Vucy91c2UtZGVmYXVsdC1jc3MudG9rZW4nO1xuaW1wb3J0IHsgTE9HSU5fQ0xBU1NFUyB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy9jbGFzc2VzLnRva2VuJztcbmltcG9ydCB7IExPR0lOX0kxOE4gfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvaTE4bi50b2tlbic7XG5pbXBvcnQgeyBLQ19MT0dJTl9DT05URVhUIH0gZnJvbSAnQGtleWNsb2FraWZ5L2FuZ3VsYXIvbG9naW4vdG9rZW5zL2tjLWNvbnRleHQudG9rZW4nO1xuaW1wb3J0IHsgRE9fTUFLRV9VU0VSX0NPTkZJUk1fUEFTU1dPUkQgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi90b2tlbnMvbWFrZS11c2VyLWNvbmZpcm0tcGFzc3dvcmQudG9rZW4nO1xuaW1wb3J0IHsgVVNFUl9QUk9GSUxFX0ZPUk1fRklFTERTX0VKRUNURURfUEFUSCB9IGZyb20gJ0BrZXljbG9ha2lmeS9hbmd1bGFyL2xvZ2luL3Rva2Vucy91c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMtZWplY3RlZC1wYXRoLnRva2VuJztcbmltcG9ydCB7IHR5cGUgS2NDb250ZXh0TGlrZSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2kxOG4vbm9Kc3gnO1xuaW1wb3J0IHsgdHlwZSBDbGFzc0tleSB9IGZyb20gJ2tleWNsb2FraWZ5L2xvZ2luL2xpYi9rY0Nsc3gnO1xuaW1wb3J0IHsgdHlwZSBLY0NvbnRleHQgfSBmcm9tICcuLi9LY0NvbnRleHQnO1xuaW1wb3J0IHsgSTE4blNlcnZpY2UgfSBmcm9tICdAa2V5Y2xvYWtpZnkvYW5ndWxhci9sb2dpbi9zZXJ2aWNlcy9pMThuLnNlcnZpY2UnO1xuXG5leHBvcnQgdHlwZSBLZXljbG9ha2lmeUFuZ3VsYXJMb2dpbkNvbmZpZyA9IHtcbiAgICBkb01ha2VVc2VyQ29uZmlybVBhc3N3b3JkPzogYm9vbGVhbjtcbiAgICBkb1VzZURlZmF1bHRDc3M/OiBib29sZWFuO1xuICAgIGNsYXNzZXM/OiB7IFtrZXkgaW4gQ2xhc3NLZXldPzogc3RyaW5nIH07XG4gICAgdXNlclByb2ZpbGVGb3JtRmllbGRzRWplY3RlZFBhdGg/OiBzdHJpbmc7XG4gICAgZ2V0STE4bjogKHBhcmFtczogeyBrY0NvbnRleHQ6IEtjQ29udGV4dExpa2UgfSkgPT4ge1xuICAgICAgICBpMThuOiB1bmtub3duO1xuICAgICAgICBwckkxOG5fY3VycmVudExhbmd1YWdlOiBQcm9taXNlPHVua25vd24+IHwgdW5kZWZpbmVkO1xuICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgcHJvdmlkZUtleWNsb2FraWZ5QW5ndWxhckxvZ2luID0gKGNvbmZpZzogS2V5Y2xvYWtpZnlBbmd1bGFyTG9naW5Db25maWcpID0+XG4gICAgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogS0NfTE9HSU5fQ09OVEVYVCxcbiAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgIHVzZVZhbHVlOiB3aW5kb3cua2NDb250ZXh0XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IERPX01BS0VfVVNFUl9DT05GSVJNX1BBU1NXT1JELFxuICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZz8uZG9NYWtlVXNlckNvbmZpcm1QYXNzd29yZCA/PyB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IExPQ0FMRV9JRCxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IChkb2N1bWVudDogRG9jdW1lbnQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmxhbmcgPz8gJ2VuJztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBkZXBzOiBbRE9DVU1FTlRdXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICAgICAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSwga2NDb250ZXh0OiBLY0NvbnRleHQpID0+IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBnZXRJMThuID0gY29uZmlnLmdldEkxOG47XG5cbiAgICAgICAgICAgICAgICBjb25zdCB7IGkxOG4sIHBySTE4bl9jdXJyZW50TGFuZ3VhZ2UgfSA9IGdldEkxOG4oe1xuICAgICAgICAgICAgICAgICAgICBrY0NvbnRleHRcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBsZXQgaTE4blByb21pc2UgPSBuZXcgUHJvbWlzZTx0eXBlb2YgaTE4bj4ocmVzb2x2ZSA9PiByZXNvbHZlKGkxOG4pKTtcbiAgICAgICAgICAgICAgICBpZiAocHJJMThuX2N1cnJlbnRMYW5ndWFnZSkge1xuICAgICAgICAgICAgICAgICAgICBpMThuUHJvbWlzZSA9IHBySTE4bl9jdXJyZW50TGFuZ3VhZ2U7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBpMThuUHJvbWlzZS50aGVuKGkxOG4gPT4ge1xuICAgICAgICAgICAgICAgICAgICBpMThuU2VydmljZS5pMThuID0gaTE4bjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZGVwczogW0kxOG5TZXJ2aWNlLCBLQ19MT0dJTl9DT05URVhUXVxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBMT0dJTl9JMThOLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogKGkxOG5TZXJ2aWNlOiBJMThuU2VydmljZSkgPT4gaTE4blNlcnZpY2UuaTE4bixcbiAgICAgICAgICAgIGRlcHM6IFtJMThuU2VydmljZV1cbiAgICAgICAgfSxcbiAgICAgICAgeyBwcm92aWRlOiBVU0VfREVGQVVMVF9DU1MsIHVzZVZhbHVlOiBjb25maWc/LmRvVXNlRGVmYXVsdENzcyA/PyB0cnVlIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTE9HSU5fQ0xBU1NFUywgdXNlVmFsdWU6IGNvbmZpZz8uY2xhc3NlcyA/PyB7fSB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBVU0VSX1BST0ZJTEVfRk9STV9GSUVMRFNfRUpFQ1RFRF9QQVRILFxuICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZy51c2VyUHJvZmlsZUZvcm1GaWVsZHNFamVjdGVkUGF0aFxuICAgICAgICB9XG4gICAgXSk7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ export declare const USER_PROFILE_FORM_FIELDS_EJECTED_PATH: InjectionToken<string>;
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from "@angular/core";
2
+ export const USER_PROFILE_FORM_FIELDS_EJECTED_PATH = new InjectionToken('profile form fields ejected path');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1wcm9maWxlLWZvcm0tZmllbGRzLWVqZWN0ZWQtcGF0aC50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2tleWNsb2FraWZ5LWFuZ3VsYXIvc3JjL2xvZ2luL3Rva2Vucy91c2VyLXByb2ZpbGUtZm9ybS1maWVsZHMtZWplY3RlZC1wYXRoLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQUcsSUFBSSxjQUFjLENBQVMsa0NBQWtDLENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuZXhwb3J0IGNvbnN0IFVTRVJfUFJPRklMRV9GT1JNX0ZJRUxEU19FSkVDVEVEX1BBVEggPSBuZXcgSW5qZWN0aW9uVG9rZW48c3RyaW5nPigncHJvZmlsZSBmb3JtIGZpZWxkcyBlamVjdGVkIHBhdGgnKSJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keycloakify/angular",
3
- "version": "0.0.1-rc.6",
3
+ "version": "0.0.1-rc.7",
4
4
  "description": "Angular components for Keycloakify",
5
5
  "repository": {
6
6
  "type": "git",
@@ -157,6 +157,8 @@
157
157
  "login/tokens/kc-context.token.js",
158
158
  "login/tokens/make-user-confirm-password.token.d.ts",
159
159
  "login/tokens/make-user-confirm-password.token.js",
160
+ "login/tokens/user-profile-form-fields-ejected-path.token.d.ts",
161
+ "login/tokens/user-profile-form-fields-ejected-path.token.js",
160
162
  "src/lib/models/script.model.ts",
161
163
  "src/lib/services/resource-injector.service.ts",
162
164
  "src/lib/tokens/use-default-css.token.ts",
@@ -274,6 +276,7 @@
274
276
  "src/login/tokens/i18n.token.ts",
275
277
  "src/login/tokens/kc-context.token.ts",
276
278
  "src/login/tokens/make-user-confirm-password.token.ts",
279
+ "src/login/tokens/user-profile-form-fields-ejected-path.token.ts",
277
280
  "src/tsconfig.json",
278
281
  "stories/login/pages/login/login.stories.ts"
279
282
  ],
@@ -16,7 +16,7 @@
16
16
  [action]="url.loginAction"
17
17
  method="post"
18
18
  >
19
- <kc-user-profile-form-fields (onIsFormSubmittable)="isFormSubmittable.set($event)" />
19
+ <ng-container *ngComponentOutlet="userProfileFormFieldsComponent | async"></ng-container>
20
20
  <div [kcClass]="'kcFormGroupClass'">
21
21
  <div
22
22
  id="kc-form-options"
@@ -1,19 +1,22 @@
1
- import { ChangeDetectionStrategy, Component, forwardRef, inject, input, signal } from '@angular/core';
1
+ import { AsyncPipe, NgComponentOutlet } from '@angular/common';
2
+ import { AfterContentInit, ChangeDetectionStrategy, Component, ContentChild, forwardRef, inject, input, signal, Type } from '@angular/core';
2
3
  import { USE_DEFAULT_CSS } from '@keycloakify/angular/lib/tokens/use-default-css.token';
3
4
  import { ComponentReference } from '@keycloakify/angular/login/classes/component-reference.class';
4
5
  import { UserProfileFormFieldsComponent } from '@keycloakify/angular/login/components/user-profile-form-fields/user-profile-form-fields.component';
5
6
  import { TemplateComponent } from '@keycloakify/angular/login/containers/template.component';
6
7
  import { KcClassDirective } from '@keycloakify/angular/login/directives/kc-class.directive';
7
- import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n.token';
8
- import { type I18n } from '../../i18n';
9
8
  import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes.token';
9
+ import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n.token';
10
10
  import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context.token';
11
+ import { USER_PROFILE_FORM_FIELDS_EJECTED_PATH } from '@keycloakify/angular/login/tokens/user-profile-form-fields-ejected-path.token';
11
12
  import { type ClassKey } from 'keycloakify/login/lib/kcClsx';
13
+ import { from, Observable, tap } from 'rxjs';
14
+ import { type I18n } from '../../i18n';
12
15
  import { type KcContext } from '../../KcContext';
13
16
 
14
17
  @Component({
15
18
  standalone: true,
16
- imports: [TemplateComponent, UserProfileFormFieldsComponent, KcClassDirective],
19
+ imports: [TemplateComponent, KcClassDirective, NgComponentOutlet, AsyncPipe],
17
20
  selector: 'kc-root',
18
21
  templateUrl: 'idp-review-user-profile.component.html',
19
22
  changeDetection: ChangeDetectionStrategy.OnPush,
@@ -24,7 +27,9 @@ import { type KcContext } from '../../KcContext';
24
27
  }
25
28
  ]
26
29
  })
27
- export class IdpReviewUserProfileComponent extends ComponentReference {
30
+ export class IdpReviewUserProfileComponent extends ComponentReference implements AfterContentInit {
31
+ @ContentChild(UserProfileFormFieldsComponent, { descendants: true }) userProfileFormFields: UserProfileFormFieldsComponent | undefined;
32
+
28
33
  kcContext = inject<Extract<KcContext, { pageId: 'idp-review-user-profile.ftl' }>>(KC_LOGIN_CONTEXT);
29
34
  displayRequiredFields = input(true);
30
35
  documentTitle = input<string>();
@@ -36,6 +41,22 @@ export class IdpReviewUserProfileComponent extends ComponentReference {
36
41
  displayInfo: boolean = false;
37
42
  displayMessage: boolean = !this.kcContext?.messagesPerField?.existsError('global');
38
43
 
44
+ userProfileFormFieldsComponent: Observable<Type<UserProfileFormFieldsComponent> | null>;
45
+ userProfileFormFieldsEjectedPath = inject<string | undefined>(USER_PROFILE_FORM_FIELDS_EJECTED_PATH);
46
+ constructor() {
47
+ super();
48
+ this.userProfileFormFieldsComponent = from(
49
+ import(/* @vite-ignore */
50
+ this.userProfileFormFieldsEjectedPath ??
51
+ '../../components/user-profile-form-fields/user-profile-form-fields.component'
52
+ ).then(c => c.UserProfileFormFieldsComponent)
53
+ );
54
+ }
55
+
56
+ ngAfterContentInit(): void {
57
+ this.userProfileFormFields?.onIsFormSubmittable?.subscribe(submittable => this.isFormSubmittable.set(submittable));
58
+ }
59
+
39
60
  onCallback() {
40
61
  (document.getElementById('kc-register-form') as HTMLFormElement).submit();
41
62
  }
@@ -5,6 +5,7 @@ import { LOGIN_CLASSES } from '@keycloakify/angular/login/tokens/classes.token';
5
5
  import { LOGIN_I18N } from '@keycloakify/angular/login/tokens/i18n.token';
6
6
  import { KC_LOGIN_CONTEXT } from '@keycloakify/angular/login/tokens/kc-context.token';
7
7
  import { DO_MAKE_USER_CONFIRM_PASSWORD } from '@keycloakify/angular/login/tokens/make-user-confirm-password.token';
8
+ import { USER_PROFILE_FORM_FIELDS_EJECTED_PATH } from '@keycloakify/angular/login/tokens/user-profile-form-fields-ejected-path.token';
8
9
  import { type KcContextLike } from 'keycloakify/login/i18n/noJsx';
9
10
  import { type ClassKey } from 'keycloakify/login/lib/kcClsx';
10
11
  import { type KcContext } from '../KcContext';
@@ -14,6 +15,7 @@ export type KeycloakifyAngularLoginConfig = {
14
15
  doMakeUserConfirmPassword?: boolean;
15
16
  doUseDefaultCss?: boolean;
16
17
  classes?: { [key in ClassKey]?: string };
18
+ userProfileFormFieldsEjectedPath?: string;
17
19
  getI18n: (params: { kcContext: KcContextLike }) => {
18
20
  i18n: unknown;
19
21
  prI18n_currentLanguage: Promise<unknown> | undefined;
@@ -64,5 +66,9 @@ export const provideKeycloakifyAngularLogin = (config: KeycloakifyAngularLoginCo
64
66
  deps: [I18nService]
65
67
  },
66
68
  { provide: USE_DEFAULT_CSS, useValue: config?.doUseDefaultCss ?? true },
67
- { provide: LOGIN_CLASSES, useValue: config?.classes ?? {} }
69
+ { provide: LOGIN_CLASSES, useValue: config?.classes ?? {} },
70
+ {
71
+ provide: USER_PROFILE_FORM_FIELDS_EJECTED_PATH,
72
+ useValue: config.userProfileFormFieldsEjectedPath
73
+ }
68
74
  ]);
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from "@angular/core";
2
+
3
+ export const USER_PROFILE_FORM_FIELDS_EJECTED_PATH = new InjectionToken<string>('profile form fields ejected path')