@flusys/ng-auth 6.1.3 → 6.2.0
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.
|
@@ -3400,10 +3400,8 @@ class LoginPageComponent {
|
|
|
3400
3400
|
{{ 'auth.password.label' | translate }}
|
|
3401
3401
|
</label>
|
|
3402
3402
|
<div class="mb-4">
|
|
3403
|
-
<
|
|
3404
|
-
|
|
3405
|
-
id="password"
|
|
3406
|
-
type="password"
|
|
3403
|
+
<f-password
|
|
3404
|
+
[inputId]="'password'"
|
|
3407
3405
|
[placeholder]="'auth.password.placeholder' | translate"
|
|
3408
3406
|
class="w-full"
|
|
3409
3407
|
[formField]="loginForm.password"
|
|
@@ -3574,7 +3572,7 @@ class LoginPageComponent {
|
|
|
3574
3572
|
</div>
|
|
3575
3573
|
</div>
|
|
3576
3574
|
</div>
|
|
3577
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: UiModule }, { kind: "directive", type: i1$1.FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: i1$1.CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: i1$1.InputTextDirective, selector: "[fInputText]", inputs: ["invalid", "touched", "variant", "size", "fluid"] }, { kind: "component", type: i1$1.SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "component", type: i1$1.UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "component", type: AppFloatingConfigurator, selector: "app-floating-configurator" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
3575
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: UiModule }, { kind: "directive", type: i1$1.FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: i1$1.CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: i1$1.InputTextDirective, selector: "[fInputText]", inputs: ["invalid", "touched", "variant", "size", "fluid"] }, { kind: "component", type: i1$1.PasswordComponent, selector: "f-password", inputs: ["toggleMask", "feedback", "disabled", "placeholder", "inputId", "invalid", "touched", "inputStyleClass", "styleClass", "style", "ariaDescribedby", "autocomplete", "variant", "size", "fluid", "appendTo", "promptLabel", "weakLabel", "mediumLabel", "strongLabel", "mediumRegex", "strongRegex"], outputs: ["onBlur", "onFocus"] }, { kind: "component", type: i1$1.SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "component", type: i1$1.UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "component", type: AppFloatingConfigurator, selector: "app-floating-configurator" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
3578
3576
|
}
|
|
3579
3577
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: LoginPageComponent, decorators: [{
|
|
3580
3578
|
type: Component,
|
|
@@ -3674,10 +3672,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
3674
3672
|
{{ 'auth.password.label' | translate }}
|
|
3675
3673
|
</label>
|
|
3676
3674
|
<div class="mb-4">
|
|
3677
|
-
<
|
|
3678
|
-
|
|
3679
|
-
id="password"
|
|
3680
|
-
type="password"
|
|
3675
|
+
<f-password
|
|
3676
|
+
[inputId]="'password'"
|
|
3681
3677
|
[placeholder]="'auth.password.placeholder' | translate"
|
|
3682
3678
|
class="w-full"
|
|
3683
3679
|
[formField]="loginForm.password"
|
|
@@ -4022,16 +4018,33 @@ class ProfilePageComponent {
|
|
|
4022
4018
|
};
|
|
4023
4019
|
}
|
|
4024
4020
|
parentInjector = inject(Injector);
|
|
4021
|
+
fieldInjectors = new Map();
|
|
4025
4022
|
getFieldInjector(field) {
|
|
4026
|
-
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4023
|
+
const cached = this.fieldInjectors.get(field.key);
|
|
4024
|
+
if (cached) {
|
|
4025
|
+
cached.setField(field);
|
|
4026
|
+
return cached.injector;
|
|
4027
|
+
}
|
|
4028
|
+
let currentField = field;
|
|
4029
|
+
const extraFieldsModel = this.extraFieldsModel;
|
|
4030
|
+
const context = {
|
|
4031
|
+
get field() {
|
|
4032
|
+
return currentField;
|
|
4033
|
+
},
|
|
4034
|
+
get value() {
|
|
4035
|
+
return extraFieldsModel()[currentField.key];
|
|
4036
|
+
},
|
|
4037
|
+
updateValue: (value) => this.updateExtraField(currentField.key, value),
|
|
4038
|
+
};
|
|
4039
|
+
const injector = Injector.create({
|
|
4040
|
+
providers: [{ provide: PROFILE_FIELD_CONTEXT, useValue: context }],
|
|
4033
4041
|
parent: field.injector ?? this.parentInjector,
|
|
4034
4042
|
});
|
|
4043
|
+
this.fieldInjectors.set(field.key, {
|
|
4044
|
+
injector,
|
|
4045
|
+
setField: (next) => (currentField = next),
|
|
4046
|
+
});
|
|
4047
|
+
return injector;
|
|
4035
4048
|
}
|
|
4036
4049
|
passwordModel = signal({
|
|
4037
4050
|
currentPassword: '',
|
|
@@ -4039,12 +4052,6 @@ class ProfilePageComponent {
|
|
|
4039
4052
|
confirmPassword: '',
|
|
4040
4053
|
}, /* @ts-ignore */
|
|
4041
4054
|
...(ngDevMode ? [{ debugName: "passwordModel" }] : /* istanbul ignore next */ []));
|
|
4042
|
-
visiblePasswords = signal({
|
|
4043
|
-
currentPassword: false,
|
|
4044
|
-
newPassword: false,
|
|
4045
|
-
confirmPassword: false,
|
|
4046
|
-
}, /* @ts-ignore */
|
|
4047
|
-
...(ngDevMode ? [{ debugName: "visiblePasswords" }] : /* istanbul ignore next */ []));
|
|
4048
4055
|
isPasswordLoading = signal(false, /* @ts-ignore */
|
|
4049
4056
|
...(ngDevMode ? [{ debugName: "isPasswordLoading" }] : /* istanbul ignore next */ []));
|
|
4050
4057
|
isPasswordFormValid = computed(() => {
|
|
@@ -4245,9 +4252,6 @@ class ProfilePageComponent {
|
|
|
4245
4252
|
error: () => { },
|
|
4246
4253
|
});
|
|
4247
4254
|
}
|
|
4248
|
-
togglePasswordVisibility(field) {
|
|
4249
|
-
this.visiblePasswords.update((v) => ({ ...v, [field]: !v[field] }));
|
|
4250
|
-
}
|
|
4251
4255
|
updatePasswordField(field, value) {
|
|
4252
4256
|
this.passwordModel.update((model) => ({ ...model, [field]: value }));
|
|
4253
4257
|
}
|
|
@@ -4610,91 +4614,45 @@ class ProfilePageComponent {
|
|
|
4610
4614
|
<label for="currentPassword" class="font-medium text-color"
|
|
4611
4615
|
>{{ 'profile.current.password' | translate }} *</label
|
|
4612
4616
|
>
|
|
4613
|
-
<f-
|
|
4614
|
-
|
|
4615
|
-
|
|
4616
|
-
|
|
4617
|
-
|
|
4618
|
-
|
|
4619
|
-
|
|
4620
|
-
|
|
4621
|
-
|
|
4622
|
-
[placeholder]="
|
|
4623
|
-
'profile.current.password.placeholder' | translate
|
|
4624
|
-
"
|
|
4625
|
-
class="w-full"
|
|
4626
|
-
/>
|
|
4627
|
-
<f-inputicon
|
|
4628
|
-
class="cursor-pointer"
|
|
4629
|
-
(click)="togglePasswordVisibility('currentPassword')"
|
|
4630
|
-
>
|
|
4631
|
-
<ui-icon
|
|
4632
|
-
[name]="
|
|
4633
|
-
visiblePasswords().currentPassword ? 'eye-slash' : 'eye'
|
|
4634
|
-
"
|
|
4635
|
-
></ui-icon>
|
|
4636
|
-
</f-inputicon>
|
|
4637
|
-
</f-iconfield>
|
|
4617
|
+
<f-password
|
|
4618
|
+
[inputId]="'currentPassword'"
|
|
4619
|
+
name="currentPassword"
|
|
4620
|
+
[ngModel]="passwordModel().currentPassword"
|
|
4621
|
+
(ngModelChange)="updatePasswordField('currentPassword', $event)"
|
|
4622
|
+
[placeholder]="'profile.current.password.placeholder' | translate"
|
|
4623
|
+
class="w-full"
|
|
4624
|
+
autocomplete="current-password"
|
|
4625
|
+
/>
|
|
4638
4626
|
</div>
|
|
4639
4627
|
|
|
4640
4628
|
<div class="flex flex-col gap-2">
|
|
4641
4629
|
<label for="newPassword" class="font-medium text-color"
|
|
4642
4630
|
>{{ 'profile.new.password' | translate }} *</label
|
|
4643
4631
|
>
|
|
4644
|
-
<f-
|
|
4645
|
-
|
|
4646
|
-
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
[placeholder]="
|
|
4654
|
-
'shared.min.characters' | translate: { count: 6 }
|
|
4655
|
-
"
|
|
4656
|
-
class="w-full"
|
|
4657
|
-
/>
|
|
4658
|
-
<f-inputicon
|
|
4659
|
-
class="cursor-pointer"
|
|
4660
|
-
(click)="togglePasswordVisibility('newPassword')"
|
|
4661
|
-
>
|
|
4662
|
-
<ui-icon
|
|
4663
|
-
[name]="visiblePasswords().newPassword ? 'eye-slash' : 'eye'"
|
|
4664
|
-
></ui-icon>
|
|
4665
|
-
</f-inputicon>
|
|
4666
|
-
</f-iconfield>
|
|
4632
|
+
<f-password
|
|
4633
|
+
[inputId]="'newPassword'"
|
|
4634
|
+
name="newPassword"
|
|
4635
|
+
[ngModel]="passwordModel().newPassword"
|
|
4636
|
+
(ngModelChange)="updatePasswordField('newPassword', $event)"
|
|
4637
|
+
[placeholder]="'shared.min.characters' | translate: { count: 6 }"
|
|
4638
|
+
class="w-full"
|
|
4639
|
+
autocomplete="new-password"
|
|
4640
|
+
/>
|
|
4667
4641
|
</div>
|
|
4668
4642
|
|
|
4669
4643
|
<div class="flex flex-col gap-2">
|
|
4670
4644
|
<label for="confirmPassword" class="font-medium text-color"
|
|
4671
4645
|
>{{ 'profile.confirm.password' | translate }} *</label
|
|
4672
4646
|
>
|
|
4673
|
-
<f-
|
|
4674
|
-
|
|
4675
|
-
|
|
4676
|
-
|
|
4677
|
-
|
|
4678
|
-
|
|
4679
|
-
|
|
4680
|
-
|
|
4681
|
-
|
|
4682
|
-
[placeholder]="
|
|
4683
|
-
'profile.confirm.password.placeholder' | translate
|
|
4684
|
-
"
|
|
4685
|
-
class="w-full"
|
|
4686
|
-
/>
|
|
4687
|
-
<f-inputicon
|
|
4688
|
-
class="cursor-pointer"
|
|
4689
|
-
(click)="togglePasswordVisibility('confirmPassword')"
|
|
4690
|
-
>
|
|
4691
|
-
<ui-icon
|
|
4692
|
-
[name]="
|
|
4693
|
-
visiblePasswords().confirmPassword ? 'eye-slash' : 'eye'
|
|
4694
|
-
"
|
|
4695
|
-
></ui-icon>
|
|
4696
|
-
</f-inputicon>
|
|
4697
|
-
</f-iconfield>
|
|
4647
|
+
<f-password
|
|
4648
|
+
[inputId]="'confirmPassword'"
|
|
4649
|
+
name="confirmPassword"
|
|
4650
|
+
[ngModel]="passwordModel().confirmPassword"
|
|
4651
|
+
(ngModelChange)="updatePasswordField('confirmPassword', $event)"
|
|
4652
|
+
[placeholder]="'profile.confirm.password.placeholder' | translate"
|
|
4653
|
+
class="w-full"
|
|
4654
|
+
autocomplete="new-password"
|
|
4655
|
+
/>
|
|
4698
4656
|
@if (!passwordsMatch()) {
|
|
4699
4657
|
<small class="text-danger">{{
|
|
4700
4658
|
'auth.register.passwords.do.not.match' | translate
|
|
@@ -4870,7 +4828,7 @@ class ProfilePageComponent {
|
|
|
4870
4828
|
}
|
|
4871
4829
|
</div>
|
|
4872
4830
|
}
|
|
4873
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: UiModule }, { kind: "component", type: i1$1.AvatarComponent, selector: "f-avatar", inputs: ["label", "icon", "image", "shape", "size", "color", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "directive", type: i1$1.FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: i1$1.SkeletonComponent, selector: "f-skeleton", inputs: ["width", "height", "size", "borderRadius", "shape", "animation", "styleClass"] }, { kind: "component", type: i1$1.TagComponent, selector: "f-tag", inputs: ["value", "severity", "icon", "rounded", "color", "styleClass", "style"] }, { kind: "component", type: i1$1.CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "
|
|
4831
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: UiModule }, { kind: "component", type: i1$1.AvatarComponent, selector: "f-avatar", inputs: ["label", "icon", "image", "shape", "size", "color", "styleClass", "ariaLabel", "ariaLabelledBy"], outputs: ["onImageError"] }, { kind: "directive", type: i1$1.FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: i1$1.SkeletonComponent, selector: "f-skeleton", inputs: ["width", "height", "size", "borderRadius", "shape", "animation", "styleClass"] }, { kind: "component", type: i1$1.TagComponent, selector: "f-tag", inputs: ["value", "severity", "icon", "rounded", "color", "styleClass", "style"] }, { kind: "component", type: i1$1.CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: i1$1.InputTextDirective, selector: "[fInputText]", inputs: ["invalid", "touched", "variant", "size", "fluid"] }, { kind: "component", type: i1$1.PasswordComponent, selector: "f-password", inputs: ["toggleMask", "feedback", "disabled", "placeholder", "inputId", "invalid", "touched", "inputStyleClass", "styleClass", "style", "ariaDescribedby", "autocomplete", "variant", "size", "fluid", "appendTo", "promptLabel", "weakLabel", "mediumLabel", "strongLabel", "mediumRegex", "strongRegex"], outputs: ["onBlur", "onFocus"] }, { kind: "component", type: i1$1.SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "directive", type: i1$1.TextareaDirective, selector: "[fTextarea]", inputs: ["invalid", "touched", "variant", "fluid", "autoResize"], outputs: ["onResize"] }, { kind: "component", type: i1$1.UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i2$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "component", type: FileUploaderComponent, selector: "lib-file-uploader", inputs: ["uploadFile", "uploadMultipleFiles", "acceptTypes", "multiple", "maxFiles", "maxSizeMb", "uploadOptions", "disabled", "showPreview", "autoUpload"], outputs: ["fileUploaded", "filesUploaded", "onError", "fileSelected"] }, { kind: "directive", type: HasPermissionDirective, selector: "[hasPermission]", inputs: ["hasPermission"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
4874
4832
|
}
|
|
4875
4833
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ProfilePageComponent, decorators: [{
|
|
4876
4834
|
type: Component,
|
|
@@ -5213,91 +5171,45 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
5213
5171
|
<label for="currentPassword" class="font-medium text-color"
|
|
5214
5172
|
>{{ 'profile.current.password' | translate }} *</label
|
|
5215
5173
|
>
|
|
5216
|
-
<f-
|
|
5217
|
-
|
|
5218
|
-
|
|
5219
|
-
|
|
5220
|
-
|
|
5221
|
-
|
|
5222
|
-
|
|
5223
|
-
|
|
5224
|
-
|
|
5225
|
-
[placeholder]="
|
|
5226
|
-
'profile.current.password.placeholder' | translate
|
|
5227
|
-
"
|
|
5228
|
-
class="w-full"
|
|
5229
|
-
/>
|
|
5230
|
-
<f-inputicon
|
|
5231
|
-
class="cursor-pointer"
|
|
5232
|
-
(click)="togglePasswordVisibility('currentPassword')"
|
|
5233
|
-
>
|
|
5234
|
-
<ui-icon
|
|
5235
|
-
[name]="
|
|
5236
|
-
visiblePasswords().currentPassword ? 'eye-slash' : 'eye'
|
|
5237
|
-
"
|
|
5238
|
-
></ui-icon>
|
|
5239
|
-
</f-inputicon>
|
|
5240
|
-
</f-iconfield>
|
|
5174
|
+
<f-password
|
|
5175
|
+
[inputId]="'currentPassword'"
|
|
5176
|
+
name="currentPassword"
|
|
5177
|
+
[ngModel]="passwordModel().currentPassword"
|
|
5178
|
+
(ngModelChange)="updatePasswordField('currentPassword', $event)"
|
|
5179
|
+
[placeholder]="'profile.current.password.placeholder' | translate"
|
|
5180
|
+
class="w-full"
|
|
5181
|
+
autocomplete="current-password"
|
|
5182
|
+
/>
|
|
5241
5183
|
</div>
|
|
5242
5184
|
|
|
5243
5185
|
<div class="flex flex-col gap-2">
|
|
5244
5186
|
<label for="newPassword" class="font-medium text-color"
|
|
5245
5187
|
>{{ 'profile.new.password' | translate }} *</label
|
|
5246
5188
|
>
|
|
5247
|
-
<f-
|
|
5248
|
-
|
|
5249
|
-
|
|
5250
|
-
|
|
5251
|
-
|
|
5252
|
-
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
[placeholder]="
|
|
5257
|
-
'shared.min.characters' | translate: { count: 6 }
|
|
5258
|
-
"
|
|
5259
|
-
class="w-full"
|
|
5260
|
-
/>
|
|
5261
|
-
<f-inputicon
|
|
5262
|
-
class="cursor-pointer"
|
|
5263
|
-
(click)="togglePasswordVisibility('newPassword')"
|
|
5264
|
-
>
|
|
5265
|
-
<ui-icon
|
|
5266
|
-
[name]="visiblePasswords().newPassword ? 'eye-slash' : 'eye'"
|
|
5267
|
-
></ui-icon>
|
|
5268
|
-
</f-inputicon>
|
|
5269
|
-
</f-iconfield>
|
|
5189
|
+
<f-password
|
|
5190
|
+
[inputId]="'newPassword'"
|
|
5191
|
+
name="newPassword"
|
|
5192
|
+
[ngModel]="passwordModel().newPassword"
|
|
5193
|
+
(ngModelChange)="updatePasswordField('newPassword', $event)"
|
|
5194
|
+
[placeholder]="'shared.min.characters' | translate: { count: 6 }"
|
|
5195
|
+
class="w-full"
|
|
5196
|
+
autocomplete="new-password"
|
|
5197
|
+
/>
|
|
5270
5198
|
</div>
|
|
5271
5199
|
|
|
5272
5200
|
<div class="flex flex-col gap-2">
|
|
5273
5201
|
<label for="confirmPassword" class="font-medium text-color"
|
|
5274
5202
|
>{{ 'profile.confirm.password' | translate }} *</label
|
|
5275
5203
|
>
|
|
5276
|
-
<f-
|
|
5277
|
-
|
|
5278
|
-
|
|
5279
|
-
|
|
5280
|
-
|
|
5281
|
-
|
|
5282
|
-
|
|
5283
|
-
|
|
5284
|
-
|
|
5285
|
-
[placeholder]="
|
|
5286
|
-
'profile.confirm.password.placeholder' | translate
|
|
5287
|
-
"
|
|
5288
|
-
class="w-full"
|
|
5289
|
-
/>
|
|
5290
|
-
<f-inputicon
|
|
5291
|
-
class="cursor-pointer"
|
|
5292
|
-
(click)="togglePasswordVisibility('confirmPassword')"
|
|
5293
|
-
>
|
|
5294
|
-
<ui-icon
|
|
5295
|
-
[name]="
|
|
5296
|
-
visiblePasswords().confirmPassword ? 'eye-slash' : 'eye'
|
|
5297
|
-
"
|
|
5298
|
-
></ui-icon>
|
|
5299
|
-
</f-inputicon>
|
|
5300
|
-
</f-iconfield>
|
|
5204
|
+
<f-password
|
|
5205
|
+
[inputId]="'confirmPassword'"
|
|
5206
|
+
name="confirmPassword"
|
|
5207
|
+
[ngModel]="passwordModel().confirmPassword"
|
|
5208
|
+
(ngModelChange)="updatePasswordField('confirmPassword', $event)"
|
|
5209
|
+
[placeholder]="'profile.confirm.password.placeholder' | translate"
|
|
5210
|
+
class="w-full"
|
|
5211
|
+
autocomplete="new-password"
|
|
5212
|
+
/>
|
|
5301
5213
|
@if (!passwordsMatch()) {
|
|
5302
5214
|
<small class="text-danger">{{
|
|
5303
5215
|
'auth.register.passwords.do.not.match' | translate
|
|
@@ -5525,7 +5437,12 @@ class RegisterPageComponent {
|
|
|
5525
5437
|
return fields.sort((a, b) => (a.order ?? 100) - (b.order ?? 100));
|
|
5526
5438
|
}, /* @ts-ignore */
|
|
5527
5439
|
...(ngDevMode ? [{ debugName: "extraFields" }] : /* istanbul ignore next */ []));
|
|
5528
|
-
extraFieldsModel = signal(
|
|
5440
|
+
extraFieldsModel = signal(this.extraFields().reduce((acc, field) => {
|
|
5441
|
+
if (field.defaultValue !== undefined) {
|
|
5442
|
+
acc[field.key] = field.defaultValue;
|
|
5443
|
+
}
|
|
5444
|
+
return acc;
|
|
5445
|
+
}, {}), /* @ts-ignore */
|
|
5529
5446
|
...(ngDevMode ? [{ debugName: "extraFieldsModel" }] : /* istanbul ignore next */ []));
|
|
5530
5447
|
emailErrorMessage = computed(() => this.validationConfig?.email?.message ??
|
|
5531
5448
|
this.translate('shared.invalid.email'), /* @ts-ignore */
|
|
@@ -5652,16 +5569,33 @@ class RegisterPageComponent {
|
|
|
5652
5569
|
};
|
|
5653
5570
|
}
|
|
5654
5571
|
parentInjector = inject(Injector);
|
|
5572
|
+
fieldInjectors = new Map();
|
|
5655
5573
|
getFieldInjector(field) {
|
|
5656
|
-
|
|
5657
|
-
|
|
5658
|
-
|
|
5659
|
-
|
|
5660
|
-
|
|
5661
|
-
|
|
5662
|
-
|
|
5574
|
+
const cached = this.fieldInjectors.get(field.key);
|
|
5575
|
+
if (cached) {
|
|
5576
|
+
cached.setField(field);
|
|
5577
|
+
return cached.injector;
|
|
5578
|
+
}
|
|
5579
|
+
let currentField = field;
|
|
5580
|
+
const extraFieldsModel = this.extraFieldsModel;
|
|
5581
|
+
const context = {
|
|
5582
|
+
get field() {
|
|
5583
|
+
return currentField;
|
|
5584
|
+
},
|
|
5585
|
+
get value() {
|
|
5586
|
+
return extraFieldsModel()[currentField.key] ?? currentField.defaultValue;
|
|
5587
|
+
},
|
|
5588
|
+
updateValue: (value) => this.updateExtraField(currentField.key, value),
|
|
5589
|
+
};
|
|
5590
|
+
const injector = Injector.create({
|
|
5591
|
+
providers: [{ provide: REGISTRATION_FIELD_CONTEXT, useValue: context }],
|
|
5663
5592
|
parent: field.injector ?? this.parentInjector,
|
|
5664
5593
|
});
|
|
5594
|
+
this.fieldInjectors.set(field.key, {
|
|
5595
|
+
injector,
|
|
5596
|
+
setField: (next) => (currentField = next),
|
|
5597
|
+
});
|
|
5598
|
+
return injector;
|
|
5665
5599
|
}
|
|
5666
5600
|
constructor() {
|
|
5667
5601
|
effect(() => {
|
|
@@ -5865,10 +5799,8 @@ class RegisterPageComponent {
|
|
|
5865
5799
|
<label for="password" class="block font-medium mb-2"
|
|
5866
5800
|
>{{ 'auth.password.label' | translate }} *</label
|
|
5867
5801
|
>
|
|
5868
|
-
<
|
|
5869
|
-
|
|
5870
|
-
id="password"
|
|
5871
|
-
type="password"
|
|
5802
|
+
<f-password
|
|
5803
|
+
[inputId]="'password'"
|
|
5872
5804
|
[formField]="userForm.password"
|
|
5873
5805
|
[placeholder]="
|
|
5874
5806
|
'shared.min.characters'
|
|
@@ -5888,10 +5820,8 @@ class RegisterPageComponent {
|
|
|
5888
5820
|
<label for="confirmPassword" class="block font-medium mb-2"
|
|
5889
5821
|
>{{ 'auth.register.confirm.password' | translate }} *</label
|
|
5890
5822
|
>
|
|
5891
|
-
<
|
|
5892
|
-
|
|
5893
|
-
id="confirmPassword"
|
|
5894
|
-
type="password"
|
|
5823
|
+
<f-password
|
|
5824
|
+
[inputId]="'confirmPassword'"
|
|
5895
5825
|
[formField]="userForm.confirmPassword"
|
|
5896
5826
|
[placeholder]="
|
|
5897
5827
|
'auth.register.confirm.password.placeholder' | translate
|
|
@@ -6006,13 +5936,29 @@ class RegisterPageComponent {
|
|
|
6006
5936
|
class="w-full"
|
|
6007
5937
|
[options]="field.options ?? []"
|
|
6008
5938
|
optionValue="value"
|
|
6009
|
-
[ngModel]="
|
|
5939
|
+
[ngModel]="
|
|
5940
|
+
extraFieldsModel()[field.key] ??
|
|
5941
|
+
field.defaultValue ??
|
|
5942
|
+
''
|
|
5943
|
+
"
|
|
6010
5944
|
[ngModelOptions]="{ standalone: true }"
|
|
6011
|
-
(ngModelChange)="
|
|
6012
|
-
|
|
5945
|
+
(ngModelChange)="
|
|
5946
|
+
updateExtraField(field.key, $event)
|
|
5947
|
+
"
|
|
5948
|
+
[placeholder]="
|
|
5949
|
+
field.placeholderKey
|
|
5950
|
+
| translate
|
|
5951
|
+
: null
|
|
5952
|
+
: field.placeholder ??
|
|
5953
|
+
('shared.select' | translate)
|
|
5954
|
+
"
|
|
6013
5955
|
>
|
|
6014
|
-
<ng-template #item let-opt>{{
|
|
6015
|
-
|
|
5956
|
+
<ng-template #item let-opt>{{
|
|
5957
|
+
opt.labelKey | translate: null : opt.label
|
|
5958
|
+
}}</ng-template>
|
|
5959
|
+
<ng-template #selectedItem let-opt>{{
|
|
5960
|
+
opt.labelKey | translate: null : opt.label
|
|
5961
|
+
}}</ng-template>
|
|
6016
5962
|
</f-select>
|
|
6017
5963
|
}
|
|
6018
5964
|
@case ('checkbox') {
|
|
@@ -6222,7 +6168,9 @@ class RegisterPageComponent {
|
|
|
6222
6168
|
@if (isLoading()) {
|
|
6223
6169
|
<ui-icon pButtonIcon name="spinner" [spin]="true"></ui-icon>
|
|
6224
6170
|
}
|
|
6225
|
-
<span pButtonLabel>{{
|
|
6171
|
+
<span pButtonLabel>{{
|
|
6172
|
+
'auth.register.create.account' | translate
|
|
6173
|
+
}}</span>
|
|
6226
6174
|
</button>
|
|
6227
6175
|
|
|
6228
6176
|
<div class="flex items-center justify-center mt-4 gap-2">
|
|
@@ -6241,16 +6189,19 @@ class RegisterPageComponent {
|
|
|
6241
6189
|
</div>
|
|
6242
6190
|
</div>
|
|
6243
6191
|
</div>
|
|
6244
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: UiModule }, { kind: "directive", type: i1$1.FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: i1$1.CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: i1$1.InputTextDirective, selector: "[fInputText]", inputs: ["invalid", "touched", "variant", "size", "fluid"] }, { kind: "component", type: i1$1.SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "directive", type: i1$1.TextareaDirective, selector: "[fTextarea]", inputs: ["invalid", "touched", "variant", "fluid", "autoResize"], outputs: ["onResize"] }, { kind: "component", type: i1$1.UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i2$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "component", type: AppFloatingConfigurator, selector: "app-floating-configurator" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
6192
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: UiModule }, { kind: "directive", type: i1$1.FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: i1$1.CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: i1$1.InputTextDirective, selector: "[fInputText]", inputs: ["invalid", "touched", "variant", "size", "fluid"] }, { kind: "component", type: i1$1.PasswordComponent, selector: "f-password", inputs: ["toggleMask", "feedback", "disabled", "placeholder", "inputId", "invalid", "touched", "inputStyleClass", "styleClass", "style", "ariaDescribedby", "autocomplete", "variant", "size", "fluid", "appendTo", "promptLabel", "weakLabel", "mediumLabel", "strongLabel", "mediumRegex", "strongRegex"], outputs: ["onBlur", "onFocus"] }, { kind: "component", type: i1$1.SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "directive", type: i1$1.TextareaDirective, selector: "[fTextarea]", inputs: ["invalid", "touched", "variant", "fluid", "autoResize"], outputs: ["onResize"] }, { kind: "component", type: i1$1.UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i2$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "component", type: AppFloatingConfigurator, selector: "app-floating-configurator" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
6245
6193
|
}
|
|
6246
6194
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: RegisterPageComponent, decorators: [{
|
|
6247
6195
|
type: Component,
|
|
6248
6196
|
args: [{
|
|
6249
6197
|
selector: 'lib-register-page',
|
|
6250
|
-
imports: [
|
|
6198
|
+
imports: [
|
|
6199
|
+
UiModule,
|
|
6200
|
+
AngularModule,
|
|
6251
6201
|
FormField,
|
|
6252
6202
|
AppFloatingConfigurator,
|
|
6253
|
-
TranslatePipe,
|
|
6203
|
+
TranslatePipe,
|
|
6204
|
+
],
|
|
6254
6205
|
template: `
|
|
6255
6206
|
<app-floating-configurator />
|
|
6256
6207
|
<div
|
|
@@ -6329,10 +6280,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
6329
6280
|
<label for="password" class="block font-medium mb-2"
|
|
6330
6281
|
>{{ 'auth.password.label' | translate }} *</label
|
|
6331
6282
|
>
|
|
6332
|
-
<
|
|
6333
|
-
|
|
6334
|
-
id="password"
|
|
6335
|
-
type="password"
|
|
6283
|
+
<f-password
|
|
6284
|
+
[inputId]="'password'"
|
|
6336
6285
|
[formField]="userForm.password"
|
|
6337
6286
|
[placeholder]="
|
|
6338
6287
|
'shared.min.characters'
|
|
@@ -6352,10 +6301,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
6352
6301
|
<label for="confirmPassword" class="block font-medium mb-2"
|
|
6353
6302
|
>{{ 'auth.register.confirm.password' | translate }} *</label
|
|
6354
6303
|
>
|
|
6355
|
-
<
|
|
6356
|
-
|
|
6357
|
-
id="confirmPassword"
|
|
6358
|
-
type="password"
|
|
6304
|
+
<f-password
|
|
6305
|
+
[inputId]="'confirmPassword'"
|
|
6359
6306
|
[formField]="userForm.confirmPassword"
|
|
6360
6307
|
[placeholder]="
|
|
6361
6308
|
'auth.register.confirm.password.placeholder' | translate
|
|
@@ -6470,13 +6417,29 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
6470
6417
|
class="w-full"
|
|
6471
6418
|
[options]="field.options ?? []"
|
|
6472
6419
|
optionValue="value"
|
|
6473
|
-
[ngModel]="
|
|
6420
|
+
[ngModel]="
|
|
6421
|
+
extraFieldsModel()[field.key] ??
|
|
6422
|
+
field.defaultValue ??
|
|
6423
|
+
''
|
|
6424
|
+
"
|
|
6474
6425
|
[ngModelOptions]="{ standalone: true }"
|
|
6475
|
-
(ngModelChange)="
|
|
6476
|
-
|
|
6426
|
+
(ngModelChange)="
|
|
6427
|
+
updateExtraField(field.key, $event)
|
|
6428
|
+
"
|
|
6429
|
+
[placeholder]="
|
|
6430
|
+
field.placeholderKey
|
|
6431
|
+
| translate
|
|
6432
|
+
: null
|
|
6433
|
+
: field.placeholder ??
|
|
6434
|
+
('shared.select' | translate)
|
|
6435
|
+
"
|
|
6477
6436
|
>
|
|
6478
|
-
<ng-template #item let-opt>{{
|
|
6479
|
-
|
|
6437
|
+
<ng-template #item let-opt>{{
|
|
6438
|
+
opt.labelKey | translate: null : opt.label
|
|
6439
|
+
}}</ng-template>
|
|
6440
|
+
<ng-template #selectedItem let-opt>{{
|
|
6441
|
+
opt.labelKey | translate: null : opt.label
|
|
6442
|
+
}}</ng-template>
|
|
6480
6443
|
</f-select>
|
|
6481
6444
|
}
|
|
6482
6445
|
@case ('checkbox') {
|
|
@@ -6686,7 +6649,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
6686
6649
|
@if (isLoading()) {
|
|
6687
6650
|
<ui-icon pButtonIcon name="spinner" [spin]="true"></ui-icon>
|
|
6688
6651
|
}
|
|
6689
|
-
<span pButtonLabel>{{
|
|
6652
|
+
<span pButtonLabel>{{
|
|
6653
|
+
'auth.register.create.account' | translate
|
|
6654
|
+
}}</span>
|
|
6690
6655
|
</button>
|
|
6691
6656
|
|
|
6692
6657
|
<div class="flex items-center justify-center mt-4 gap-2">
|
|
@@ -6845,10 +6810,8 @@ class ResetPasswordPageComponent {
|
|
|
6845
6810
|
>
|
|
6846
6811
|
{{ 'auth.reset.password.new.password' | translate }}
|
|
6847
6812
|
</label>
|
|
6848
|
-
<
|
|
6849
|
-
|
|
6850
|
-
id="newPassword"
|
|
6851
|
-
type="password"
|
|
6813
|
+
<f-password
|
|
6814
|
+
[inputId]="'newPassword'"
|
|
6852
6815
|
[placeholder]="
|
|
6853
6816
|
'auth.reset.password.new.password.placeholder' | translate
|
|
6854
6817
|
"
|
|
@@ -6863,10 +6826,8 @@ class ResetPasswordPageComponent {
|
|
|
6863
6826
|
>
|
|
6864
6827
|
{{ 'auth.reset.password.confirm.password' | translate }}
|
|
6865
6828
|
</label>
|
|
6866
|
-
<
|
|
6867
|
-
|
|
6868
|
-
id="confirmPassword"
|
|
6869
|
-
type="password"
|
|
6829
|
+
<f-password
|
|
6830
|
+
[inputId]="'confirmPassword'"
|
|
6870
6831
|
[placeholder]="
|
|
6871
6832
|
'auth.reset.password.confirm.password.placeholder'
|
|
6872
6833
|
| translate
|
|
@@ -6963,7 +6924,7 @@ class ResetPasswordPageComponent {
|
|
|
6963
6924
|
</div>
|
|
6964
6925
|
</div>
|
|
6965
6926
|
</div>
|
|
6966
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "ngmodule", type: UiModule }, { kind: "directive", type: i1$1.FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "
|
|
6927
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "browserUrl", "routerLink"] }, { kind: "ngmodule", type: UiModule }, { kind: "directive", type: i1$1.FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: i1$1.PasswordComponent, selector: "f-password", inputs: ["toggleMask", "feedback", "disabled", "placeholder", "inputId", "invalid", "touched", "inputStyleClass", "styleClass", "style", "ariaDescribedby", "autocomplete", "variant", "size", "fluid", "appendTo", "promptLabel", "weakLabel", "mediumLabel", "strongLabel", "mediumRegex", "strongRegex"], outputs: ["onBlur", "onFocus"] }, { kind: "component", type: i1$1.UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "component", type: AppFloatingConfigurator, selector: "app-floating-configurator" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
6967
6928
|
}
|
|
6968
6929
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: ResetPasswordPageComponent, decorators: [{
|
|
6969
6930
|
type: Component,
|
|
@@ -7010,10 +6971,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
7010
6971
|
>
|
|
7011
6972
|
{{ 'auth.reset.password.new.password' | translate }}
|
|
7012
6973
|
</label>
|
|
7013
|
-
<
|
|
7014
|
-
|
|
7015
|
-
id="newPassword"
|
|
7016
|
-
type="password"
|
|
6974
|
+
<f-password
|
|
6975
|
+
[inputId]="'newPassword'"
|
|
7017
6976
|
[placeholder]="
|
|
7018
6977
|
'auth.reset.password.new.password.placeholder' | translate
|
|
7019
6978
|
"
|
|
@@ -7028,10 +6987,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
7028
6987
|
>
|
|
7029
6988
|
{{ 'auth.reset.password.confirm.password' | translate }}
|
|
7030
6989
|
</label>
|
|
7031
|
-
<
|
|
7032
|
-
|
|
7033
|
-
id="confirmPassword"
|
|
7034
|
-
type="password"
|
|
6990
|
+
<f-password
|
|
6991
|
+
[inputId]="'confirmPassword'"
|
|
7035
6992
|
[placeholder]="
|
|
7036
6993
|
'auth.reset.password.confirm.password.placeholder'
|
|
7037
6994
|
| translate
|
|
@@ -7231,16 +7188,33 @@ class UserFormComponent {
|
|
|
7231
7188
|
updateValue: (value) => this.updateExtraField(field.key, value),
|
|
7232
7189
|
};
|
|
7233
7190
|
}
|
|
7191
|
+
fieldInjectors = new Map();
|
|
7234
7192
|
getFieldInjector(field) {
|
|
7235
|
-
|
|
7236
|
-
|
|
7237
|
-
|
|
7238
|
-
|
|
7239
|
-
|
|
7240
|
-
|
|
7241
|
-
|
|
7193
|
+
const cached = this.fieldInjectors.get(field.key);
|
|
7194
|
+
if (cached) {
|
|
7195
|
+
cached.setField(field);
|
|
7196
|
+
return cached.injector;
|
|
7197
|
+
}
|
|
7198
|
+
let currentField = field;
|
|
7199
|
+
const extraFieldsModel = this.extraFieldsModel;
|
|
7200
|
+
const context = {
|
|
7201
|
+
get field() {
|
|
7202
|
+
return currentField;
|
|
7203
|
+
},
|
|
7204
|
+
get value() {
|
|
7205
|
+
return extraFieldsModel()[currentField.key];
|
|
7206
|
+
},
|
|
7207
|
+
updateValue: (value) => this.updateExtraField(currentField.key, value),
|
|
7208
|
+
};
|
|
7209
|
+
const injector = Injector.create({
|
|
7210
|
+
providers: [{ provide: USER_FORM_FIELD_CONTEXT, useValue: context }],
|
|
7242
7211
|
parent: field.injector ?? this.parentInjector,
|
|
7243
7212
|
});
|
|
7213
|
+
this.fieldInjectors.set(field.key, {
|
|
7214
|
+
injector,
|
|
7215
|
+
setField: (next) => (currentField = next),
|
|
7216
|
+
});
|
|
7217
|
+
return injector;
|
|
7244
7218
|
}
|
|
7245
7219
|
isFormValid = computed(() => {
|
|
7246
7220
|
const model = this.formModel();
|
|
@@ -7482,14 +7456,13 @@ class UserFormComponent {
|
|
|
7482
7456
|
: '*'
|
|
7483
7457
|
}}
|
|
7484
7458
|
</label>
|
|
7485
|
-
<
|
|
7486
|
-
|
|
7487
|
-
id="password"
|
|
7488
|
-
type="password"
|
|
7459
|
+
<f-password
|
|
7460
|
+
[inputId]="'password'"
|
|
7489
7461
|
[formField]="formTree.password"
|
|
7490
7462
|
[placeholder]="
|
|
7491
7463
|
'administrative.user.password.placeholder' | translate
|
|
7492
7464
|
"
|
|
7465
|
+
autocomplete="new-password"
|
|
7493
7466
|
/>
|
|
7494
7467
|
</div>
|
|
7495
7468
|
|
|
@@ -7508,7 +7481,8 @@ class UserFormComponent {
|
|
|
7508
7481
|
@if (hasExtraFields()) {
|
|
7509
7482
|
<div class="md:col-span-2 border-t border-surface pt-4 mt-2">
|
|
7510
7483
|
<div class="text-sm font-medium text-muted-color mb-4">
|
|
7511
|
-
<ui-icon name="sliders-h" class="mr-2"></ui-icon
|
|
7484
|
+
<ui-icon name="sliders-h" class="mr-2"></ui-icon
|
|
7485
|
+
>{{ 'profile.additional.info' | translate }}
|
|
7512
7486
|
</div>
|
|
7513
7487
|
@if (isLoadingExtraFields()) {
|
|
7514
7488
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
@@ -7603,18 +7577,34 @@ class UserFormComponent {
|
|
|
7603
7577
|
optionValue="value"
|
|
7604
7578
|
[ngModel]="getExtraFieldValue(field.key) ?? ''"
|
|
7605
7579
|
[ngModelOptions]="{ standalone: true }"
|
|
7606
|
-
(ngModelChange)="
|
|
7607
|
-
|
|
7580
|
+
(ngModelChange)="
|
|
7581
|
+
updateExtraField(field.key, $event)
|
|
7582
|
+
"
|
|
7583
|
+
[placeholder]="
|
|
7584
|
+
field.placeholderKey
|
|
7585
|
+
| translate
|
|
7586
|
+
: null
|
|
7587
|
+
: field.placeholder ??
|
|
7588
|
+
('shared.select' | translate)
|
|
7589
|
+
"
|
|
7608
7590
|
>
|
|
7609
|
-
<ng-template #item let-opt>{{
|
|
7610
|
-
|
|
7591
|
+
<ng-template #item let-opt>{{
|
|
7592
|
+
opt.labelKey | translate: null : opt.label
|
|
7593
|
+
}}</ng-template>
|
|
7594
|
+
<ng-template #selectedItem let-opt>{{
|
|
7595
|
+
opt.labelKey | translate: null : opt.label
|
|
7596
|
+
}}</ng-template>
|
|
7611
7597
|
</f-select>
|
|
7612
7598
|
}
|
|
7613
7599
|
@case ('checkbox') {
|
|
7614
7600
|
<f-checkbox
|
|
7615
7601
|
[inputId]="field.key"
|
|
7616
|
-
[checked]="
|
|
7617
|
-
|
|
7602
|
+
[checked]="
|
|
7603
|
+
$any(getExtraFieldValue(field.key) ?? false)
|
|
7604
|
+
"
|
|
7605
|
+
(onChange)="
|
|
7606
|
+
updateExtraField(field.key, $event.checked)
|
|
7607
|
+
"
|
|
7618
7608
|
[label]="
|
|
7619
7609
|
field.placeholderKey
|
|
7620
7610
|
| translate
|
|
@@ -7655,8 +7645,14 @@ class UserFormComponent {
|
|
|
7655
7645
|
}
|
|
7656
7646
|
|
|
7657
7647
|
<div class="flex items-center gap-6 md:col-span-2 pt-4">
|
|
7658
|
-
<f-checkbox
|
|
7659
|
-
|
|
7648
|
+
<f-checkbox
|
|
7649
|
+
[formField]="formTree.isActive"
|
|
7650
|
+
[label]="'shared.active' | translate"
|
|
7651
|
+
/>
|
|
7652
|
+
<f-checkbox
|
|
7653
|
+
[formField]="formTree.emailVerified"
|
|
7654
|
+
[label]="'administrative.user.email.verified' | translate"
|
|
7655
|
+
/>
|
|
7660
7656
|
</div>
|
|
7661
7657
|
|
|
7662
7658
|
@if (companyFeatureEnabled() && !isEditMode()) {
|
|
@@ -7693,16 +7689,16 @@ class UserFormComponent {
|
|
|
7693
7689
|
@if (isLoading()) {
|
|
7694
7690
|
<ui-icon pButtonIcon name="spinner" [spin]="true"></ui-icon>
|
|
7695
7691
|
}
|
|
7696
|
-
<span pButtonLabel>{{
|
|
7692
|
+
<span pButtonLabel>{{
|
|
7697
7693
|
isEditMode()
|
|
7698
7694
|
? ('shared.update' | translate)
|
|
7699
7695
|
: ('shared.create' | translate)
|
|
7700
|
-
|
|
7696
|
+
}}</span>
|
|
7701
7697
|
</button>
|
|
7702
7698
|
</div>
|
|
7703
7699
|
</form>
|
|
7704
7700
|
</f-card>
|
|
7705
|
-
`, isInline: true, dependencies: [{ kind: "ngmodule", type: UiModule }, { kind: "directive", type: i1$1.FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: i1$1.SkeletonComponent, selector: "f-skeleton", inputs: ["width", "height", "size", "borderRadius", "shape", "animation", "styleClass"] }, { kind: "component", type: i1$1.CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: i1$1.InputTextDirective, selector: "[fInputText]", inputs: ["invalid", "touched", "variant", "size", "fluid"] }, { kind: "component", type: i1$1.SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "directive", type: i1$1.TextareaDirective, selector: "[fTextarea]", inputs: ["invalid", "touched", "variant", "fluid", "autoResize"], outputs: ["onResize"] }, { kind: "component", type: i1$1.CardComponent, selector: "f-card", inputs: ["header", "subheader", "styleClass", "style"] }, { kind: "component", type: i1$1.UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i2$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
7701
|
+
`, isInline: true, dependencies: [{ kind: "ngmodule", type: UiModule }, { kind: "directive", type: i1$1.FButtonDirective, selector: "[fButton]", inputs: ["severity", "text", "outlined", "link", "variant", "rounded", "raised", "fluid", "disabled", "loading", "loadingIcon", "size", "label", "icon", "iconPos", "ariaLabel", "plain"] }, { kind: "component", type: i1$1.SkeletonComponent, selector: "f-skeleton", inputs: ["width", "height", "size", "borderRadius", "shape", "animation", "styleClass"] }, { kind: "component", type: i1$1.CheckboxComponent, selector: "f-checkbox", inputs: ["label", "binary", "disabled", "readonly", "inputId", "invalid", "indeterminate", "variant", "size", "touched", "styleClass", "style", "checked"], outputs: ["onChange", "onBlur", "touch", "checkedChange"] }, { kind: "directive", type: i1$1.InputTextDirective, selector: "[fInputText]", inputs: ["invalid", "touched", "variant", "size", "fluid"] }, { kind: "component", type: i1$1.PasswordComponent, selector: "f-password", inputs: ["toggleMask", "feedback", "disabled", "placeholder", "inputId", "invalid", "touched", "inputStyleClass", "styleClass", "style", "ariaDescribedby", "autocomplete", "variant", "size", "fluid", "appendTo", "promptLabel", "weakLabel", "mediumLabel", "strongLabel", "mediumRegex", "strongRegex"], outputs: ["onBlur", "onFocus"] }, { kind: "component", type: i1$1.SelectComponent, selector: "f-select", inputs: ["options", "optionLabel", "optionValue", "placeholder", "disabled", "filter", "filterBy", "filterMatchMode", "filterLocale", "filterPlaceholder", "resetFilterOnHide", "autofocusFilter", "emptyMessage", "emptyFilterMessage", "showClear", "loading", "loadingIcon", "dropdownIcon", "clearIcon", "inputId", "invalid", "touched", "styleClass", "style", "appendTo", "editable", "readonly", "autofocus", "checkmark", "group", "optionGroupLabel", "optionGroupChildren", "virtualScroll", "virtualScrollItemSize", "lazy"], outputs: ["onFilter", "onChange", "onShow", "onHide", "onBlur", "onFocus", "onClear", "onLazyLoad"] }, { kind: "directive", type: i1$1.TextareaDirective, selector: "[fTextarea]", inputs: ["invalid", "touched", "variant", "fluid", "autoResize"], outputs: ["onResize"] }, { kind: "component", type: i1$1.CardComponent, selector: "f-card", inputs: ["header", "subheader", "styleClass", "style"] }, { kind: "component", type: i1$1.UiIconComponent, selector: "ui-icon", inputs: ["name", "size", "spin", "fill", "severity"] }, { kind: "ngmodule", type: AngularModule }, { kind: "directive", type: i2$1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: i2$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgForm, selector: "form:not([ngNoForm]):not([formGroup]):not([formArray]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: FormField, selector: "[formField]", inputs: ["formField"], exportAs: ["formField"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
|
|
7706
7702
|
}
|
|
7707
7703
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImport: i0, type: UserFormComponent, decorators: [{
|
|
7708
7704
|
type: Component,
|
|
@@ -7761,14 +7757,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
7761
7757
|
: '*'
|
|
7762
7758
|
}}
|
|
7763
7759
|
</label>
|
|
7764
|
-
<
|
|
7765
|
-
|
|
7766
|
-
id="password"
|
|
7767
|
-
type="password"
|
|
7760
|
+
<f-password
|
|
7761
|
+
[inputId]="'password'"
|
|
7768
7762
|
[formField]="formTree.password"
|
|
7769
7763
|
[placeholder]="
|
|
7770
7764
|
'administrative.user.password.placeholder' | translate
|
|
7771
7765
|
"
|
|
7766
|
+
autocomplete="new-password"
|
|
7772
7767
|
/>
|
|
7773
7768
|
</div>
|
|
7774
7769
|
|
|
@@ -7787,7 +7782,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
7787
7782
|
@if (hasExtraFields()) {
|
|
7788
7783
|
<div class="md:col-span-2 border-t border-surface pt-4 mt-2">
|
|
7789
7784
|
<div class="text-sm font-medium text-muted-color mb-4">
|
|
7790
|
-
<ui-icon name="sliders-h" class="mr-2"></ui-icon
|
|
7785
|
+
<ui-icon name="sliders-h" class="mr-2"></ui-icon
|
|
7786
|
+
>{{ 'profile.additional.info' | translate }}
|
|
7791
7787
|
</div>
|
|
7792
7788
|
@if (isLoadingExtraFields()) {
|
|
7793
7789
|
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
|
|
@@ -7882,18 +7878,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
7882
7878
|
optionValue="value"
|
|
7883
7879
|
[ngModel]="getExtraFieldValue(field.key) ?? ''"
|
|
7884
7880
|
[ngModelOptions]="{ standalone: true }"
|
|
7885
|
-
(ngModelChange)="
|
|
7886
|
-
|
|
7881
|
+
(ngModelChange)="
|
|
7882
|
+
updateExtraField(field.key, $event)
|
|
7883
|
+
"
|
|
7884
|
+
[placeholder]="
|
|
7885
|
+
field.placeholderKey
|
|
7886
|
+
| translate
|
|
7887
|
+
: null
|
|
7888
|
+
: field.placeholder ??
|
|
7889
|
+
('shared.select' | translate)
|
|
7890
|
+
"
|
|
7887
7891
|
>
|
|
7888
|
-
<ng-template #item let-opt>{{
|
|
7889
|
-
|
|
7892
|
+
<ng-template #item let-opt>{{
|
|
7893
|
+
opt.labelKey | translate: null : opt.label
|
|
7894
|
+
}}</ng-template>
|
|
7895
|
+
<ng-template #selectedItem let-opt>{{
|
|
7896
|
+
opt.labelKey | translate: null : opt.label
|
|
7897
|
+
}}</ng-template>
|
|
7890
7898
|
</f-select>
|
|
7891
7899
|
}
|
|
7892
7900
|
@case ('checkbox') {
|
|
7893
7901
|
<f-checkbox
|
|
7894
7902
|
[inputId]="field.key"
|
|
7895
|
-
[checked]="
|
|
7896
|
-
|
|
7903
|
+
[checked]="
|
|
7904
|
+
$any(getExtraFieldValue(field.key) ?? false)
|
|
7905
|
+
"
|
|
7906
|
+
(onChange)="
|
|
7907
|
+
updateExtraField(field.key, $event.checked)
|
|
7908
|
+
"
|
|
7897
7909
|
[label]="
|
|
7898
7910
|
field.placeholderKey
|
|
7899
7911
|
| translate
|
|
@@ -7934,8 +7946,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
7934
7946
|
}
|
|
7935
7947
|
|
|
7936
7948
|
<div class="flex items-center gap-6 md:col-span-2 pt-4">
|
|
7937
|
-
<f-checkbox
|
|
7938
|
-
|
|
7949
|
+
<f-checkbox
|
|
7950
|
+
[formField]="formTree.isActive"
|
|
7951
|
+
[label]="'shared.active' | translate"
|
|
7952
|
+
/>
|
|
7953
|
+
<f-checkbox
|
|
7954
|
+
[formField]="formTree.emailVerified"
|
|
7955
|
+
[label]="'administrative.user.email.verified' | translate"
|
|
7956
|
+
/>
|
|
7939
7957
|
</div>
|
|
7940
7958
|
|
|
7941
7959
|
@if (companyFeatureEnabled() && !isEditMode()) {
|
|
@@ -7972,11 +7990,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.6", ngImpor
|
|
|
7972
7990
|
@if (isLoading()) {
|
|
7973
7991
|
<ui-icon pButtonIcon name="spinner" [spin]="true"></ui-icon>
|
|
7974
7992
|
}
|
|
7975
|
-
<span pButtonLabel>{{
|
|
7993
|
+
<span pButtonLabel>{{
|
|
7976
7994
|
isEditMode()
|
|
7977
7995
|
? ('shared.update' | translate)
|
|
7978
7996
|
: ('shared.create' | translate)
|
|
7979
|
-
|
|
7997
|
+
}}</span>
|
|
7980
7998
|
</button>
|
|
7981
7999
|
</div>
|
|
7982
8000
|
</form>
|