single autocomplete fix
This commit is contained in:
parent
9c2f8ecf4e
commit
de03e4776b
|
@ -307,7 +307,6 @@ export class MultipleAutoCompleteComponent extends _CustomComponentMixinBase imp
|
|||
startWith(null),
|
||||
debounceTime(this.requestDelay),
|
||||
distinctUntilChanged(),
|
||||
distinctUntilChanged(),
|
||||
mergeMap(query => this.filter(query)),
|
||||
catchError(error => {
|
||||
this._items = null;
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
</mat-option>
|
||||
</ng-container>
|
||||
<ng-template #noItems>
|
||||
<mat-option *ngIf="(queryValue || loadDataOnStart) && queryValue == inputValue" disabled="true">No results found!</mat-option>
|
||||
<mat-option disabled="true">No results found!</mat-option>
|
||||
</ng-template>
|
||||
</div>
|
||||
<ng-template #loading>
|
||||
|
@ -45,4 +45,4 @@
|
|||
</ng-template>
|
||||
</span>
|
||||
</mat-autocomplete>
|
||||
</div>
|
||||
</div>
|
|
@ -8,8 +8,8 @@ import { MatFormFieldControl } from '@angular/material/form-field';
|
|||
import { AutoCompleteGroup } from '@app/library/auto-complete/auto-complete-group';
|
||||
import { SingleAutoCompleteConfiguration } from '@app/library/auto-complete/single/single-auto-complete-configuration';
|
||||
import { BaseComponent } from '@common/base/base.component';
|
||||
import { Observable, Subject, of as observableOf } from 'rxjs';
|
||||
import { debounceTime, distinctUntilChanged, map, startWith, switchMap, takeUntil, tap } from 'rxjs/operators';
|
||||
import { Observable, Subject, of as observableOf, of } from 'rxjs';
|
||||
import { catchError, debounceTime, distinctUntilChanged, map, mergeMap, startWith, switchMap, takeUntil, tap } from 'rxjs/operators';
|
||||
|
||||
|
||||
export class CustomComponentBase extends BaseComponent {
|
||||
|
@ -64,8 +64,6 @@ export class SingleAutoCompleteComponent extends _CustomComponentMixinBase imple
|
|||
_groupedItems: Observable<AutoCompleteGroup[]>;
|
||||
_selectedItems: Map<string, any> = new Map<any, any>();
|
||||
|
||||
queryValue: string = "";
|
||||
|
||||
get empty() { return (this.value == null) && (!this.inputValue || this.inputValue.length === 0); }
|
||||
|
||||
get shouldLabelFloat() { return this.focused || !this.empty; }
|
||||
|
@ -220,7 +218,7 @@ export class SingleAutoCompleteComponent extends _CustomComponentMixinBase imple
|
|||
// prevent filtering results if arrow were pressed
|
||||
if (event.keyCode !== ENTER && (event.keyCode < 37 || event.keyCode > 40)) {
|
||||
if (this.inputValue.length === 0 && this.value != null) {
|
||||
this.optionSelectedInternal(null);
|
||||
this._onInputFocus();
|
||||
}
|
||||
this._inputSubject.next(this.inputValue);
|
||||
}
|
||||
|
@ -237,9 +235,13 @@ export class SingleAutoCompleteComponent extends _CustomComponentMixinBase imple
|
|||
startWith(null),
|
||||
debounceTime(this.requestDelay),
|
||||
distinctUntilChanged(),
|
||||
tap(query => this.queryValue = query),
|
||||
switchMap(query => this.filter(query)));
|
||||
|
||||
mergeMap(query => this.filter(query)),
|
||||
catchError(error => {
|
||||
this._items = null;
|
||||
console.error(error);
|
||||
return of(null)
|
||||
})
|
||||
);
|
||||
if (this.configuration.groupingFn) { this._groupedItems = this._items.pipe(map(items => this.configuration.groupingFn(items))); }
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue