UNPKG

@neocomplexx/ngx-neo-completer-mat

Version:
43 lines 5.29 kB
import { EventEmitter } from '@angular/core'; import { Observable } from 'rxjs'; import { catchError } from 'rxjs/operators'; import { CompleterBaseData } from './completer-base-data'; export class LocalData extends CompleterBaseData { constructor() { super(); this.dataSourceChange = new EventEmitter(); } data(data) { if (data instanceof Observable) { const data$ = data; data$ .pipe(catchError(() => [])) .subscribe((res) => { this._data = res; if (this.savedTerm) { this.search(this.savedTerm); } this.dataSourceChange.emit(); }); } else { this._data = data; } this.dataSourceChange.emit(); return this; } search(term) { if (!this._data) { this.savedTerm = term; } else { this.savedTerm = null; const matches = this.extractMatches(this._data, term); this.next(this.processResults(matches)); } } convertToItem(data) { return super.convertToItem(data); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZW9jb21wbGV4eC9uZ3gtbmVvLWNvbXBsZXRlci1tYXQvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvbG9jYWwtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRzFELE1BQU0sT0FBTyxTQUFVLFNBQVEsaUJBQWlCO0lBTzVDO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUFOTCxxQkFBZ0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQU92RSxDQUFDO0lBRU0sSUFBSSxDQUFDLElBQStCO1FBQ3ZDLElBQUksSUFBSSxZQUFZLFVBQVUsRUFBRTtZQUM1QixNQUFNLEtBQUssR0FBRyxJQUF5QixDQUFDO1lBQ3hDLEtBQUs7aUJBQ0EsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDMUIsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7Z0JBQ2pCLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtvQkFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7aUJBQy9CO2dCQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxDQUFDLENBQUMsQ0FBQztTQUNWO2FBQU07WUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztTQUNyQjtRQUVELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUU3QixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sTUFBTSxDQUFDLElBQVk7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDYixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztTQUN6QjthQUFNO1lBQ0gsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsTUFBTSxPQUFPLEdBQVUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1NBQzNDO0lBQ0wsQ0FBQztJQUVNLGFBQWEsQ0FBQyxJQUFTO1FBQzFCLE9BQU8sS0FBSyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgQ29tcGxldGVyQmFzZURhdGEgfSBmcm9tICcuL2NvbXBsZXRlci1iYXNlLWRhdGEnO1xyXG5pbXBvcnQgeyBDb21wbGV0ZXJJdGVtIH0gZnJvbSAnLi4vY29tcG9uZW50cy9jb21wbGV0ZXItaXRlbSc7XHJcblxyXG5leHBvcnQgY2xhc3MgTG9jYWxEYXRhIGV4dGVuZHMgQ29tcGxldGVyQmFzZURhdGEge1xyXG5cclxuICAgIHB1YmxpYyBkYXRhU291cmNlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gICAgcHJvdGVjdGVkIF9kYXRhOiBhbnlbXTtcclxuICAgIHByb3RlY3RlZCBzYXZlZFRlcm06IHN0cmluZyB8IG51bGw7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgc3VwZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZGF0YShkYXRhOiBhbnlbXSB8IE9ic2VydmFibGU8YW55W10+KSB7XHJcbiAgICAgICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEkID0gZGF0YSBhcyBPYnNlcnZhYmxlPGFueVtdPjtcclxuICAgICAgICAgICAgZGF0YSRcclxuICAgICAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gW10pKVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZGF0YSA9IHJlcztcclxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zYXZlZFRlcm0pIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWFyY2godGhpcy5zYXZlZFRlcm0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2VDaGFuZ2UuZW1pdCgpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5fZGF0YSA9IGRhdGE7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VDaGFuZ2UuZW1pdCgpO1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2VhcmNoKHRlcm06IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy5fZGF0YSkge1xyXG4gICAgICAgICAgICB0aGlzLnNhdmVkVGVybSA9IHRlcm07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zYXZlZFRlcm0gPSBudWxsO1xyXG4gICAgICAgICAgICBjb25zdCBtYXRjaGVzOiBhbnlbXSA9IHRoaXMuZXh0cmFjdE1hdGNoZXModGhpcy5fZGF0YSwgdGVybSk7XHJcbiAgICAgICAgICAgIHRoaXMubmV4dCh0aGlzLnByb2Nlc3NSZXN1bHRzKG1hdGNoZXMpKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbnZlcnRUb0l0ZW0oZGF0YTogYW55KTogQ29tcGxldGVySXRlbSB8IG51bGwge1xyXG4gICAgICAgIHJldHVybiBzdXBlci5jb252ZXJ0VG9JdGVtKGRhdGEpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==