Browse Source

Merge pull request #19269 from abpframework/sinan/ng0100

Fix NG0100 error in abp-modal which has abp-extensible-form in body
pull/19270/head
Masum ULU 3 years ago
committed by GitHub
parent
commit
10ecb9cc1d
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 17
      npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.ts
  2. 11
      npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form.component.html

17
npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form-prop.component.ts

@ -15,11 +15,10 @@ import {
inject, inject,
Injector, Injector,
Input, Input,
OnChanges, OnChanges, Optional,
Optional,
SimpleChanges, SimpleChanges,
SkipSelf, SkipSelf,
ViewChild, ViewChild
} from '@angular/core'; } from '@angular/core';
import { import {
ControlContainer, ControlContainer,
@ -94,6 +93,7 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {
@Input() data!: PropData; @Input() data!: PropData;
@Input() prop!: FormProp; @Input() prop!: FormProp;
@Input() first?: boolean; @Input() first?: boolean;
@Input() isFirstGroup?: boolean;
@ViewChild('field') private fieldRef!: ElementRef<HTMLElement>; @ViewChild('field') private fieldRef!: ElementRef<HTMLElement>;
injectorForCustomComponent?: Injector; injectorForCustomComponent?: Injector;
@ -124,10 +124,10 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {
search = (text$: Observable<string>) => search = (text$: Observable<string>) =>
text$ text$
? text$.pipe( ? text$.pipe(
debounceTime(300), debounceTime(300),
distinctUntilChanged(), distinctUntilChanged(),
switchMap(text => this.prop?.options?.(this.data, text) || of([])), switchMap(text => this.prop?.options?.(this.data, text) || of([])),
) )
: of([]); : of([]);
typeaheadFormatter = (option: ABP.Option<any>) => option.key; typeaheadFormatter = (option: ABP.Option<any>) => option.key;
@ -154,9 +154,8 @@ export class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {
} }
ngAfterViewInit() { ngAfterViewInit() {
if (this.first && this.fieldRef) { if (this.isFirstGroup && this.first && this.fieldRef) {
this.fieldRef.nativeElement.focus(); this.fieldRef.nativeElement.focus();
this.cdRef.detectChanges();
} }
} }

11
npm/ng-packs/packages/components/extensible/src/lib/components/extensible-form/extensible-form.component.html

@ -1,5 +1,5 @@
@if (form) { @if (form) {
@for (groupedProp of groupedPropList.items; track i; let i = $index) { @for (groupedProp of groupedPropList.items; track i; let i = $index; let first = $first) {
<ng-container *abpPropData="let data; fromList: groupedProp.formPropList; withRecord: record"> <ng-container *abpPropData="let data; fromList: groupedProp.formPropList; withRecord: record">
@if (isAnyGroupMemberVisible(i, data) && groupedProp.group?.className) { @if (isAnyGroupMemberVisible(i, data) && groupedProp.group?.className) {
<div <div
@ -8,14 +8,14 @@
> >
<ng-container <ng-container
[ngTemplateOutlet]="propListTemplate" [ngTemplateOutlet]="propListTemplate"
[ngTemplateOutletContext]="{ groupedProp: groupedProp, data: data }" [ngTemplateOutletContext]="{ groupedProp: groupedProp, data: data, isFirstGroup: first}"
> >
</ng-container> </ng-container>
</div> </div>
} @else { } @else {
<ng-container <ng-container
[ngTemplateOutlet]="propListTemplate" [ngTemplateOutlet]="propListTemplate"
[ngTemplateOutletContext]="{ groupedProp: groupedProp, data: data }" [ngTemplateOutletContext]="{ groupedProp: groupedProp, data: data, isFirstGroup: first }"
> >
</ng-container> </ng-container>
} }
@ -23,8 +23,8 @@
} }
} }
<ng-template let-groupedProp="groupedProp" let-data="data" #propListTemplate> <ng-template let-groupedProp="groupedProp" let-data="data" let-isFirstGroup="isFirstGroup" #propListTemplate>
@for (prop of groupedProp.formPropList; let first = $first; track prop.name) { @for (prop of groupedProp.formPropList; let index = $index; let first = $first; track prop.name) {
@if (prop.visible(data)) { @if (prop.visible(data)) {
@if (extraProperties.controls[prop.name]) { @if (extraProperties.controls[prop.name]) {
<ng-container [formGroupName]="extraPropertiesKey"> <ng-container [formGroupName]="extraPropertiesKey">
@ -37,6 +37,7 @@
[prop]="prop" [prop]="prop"
[data]="data" [data]="data"
[first]="first" [first]="first"
[isFirstGroup]="isFirstGroup"
/> />
} }
} }

Loading…
Cancel
Save