UNPKG

@neocomplexx/ngx-neo-completer

Version:

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.0.5.

43 lines 5.1 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZW9jb21wbGV4eC9uZ3gtbmVvLWNvbXBsZXRlci8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9sb2NhbC1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHMUQsTUFBTSxPQUFPLFNBQVUsU0FBUSxpQkFBaUI7SUFPNUM7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQU5MLHFCQUFnQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBT3ZFLENBQUM7SUFFTSxJQUFJLENBQUMsSUFBK0I7UUFDdkMsSUFBSSxJQUFJLFlBQVksVUFBVSxFQUFFO1lBQzVCLE1BQU0sS0FBSyxHQUFHLElBQXlCLENBQUM7WUFDeEMsS0FBSztpQkFDQSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUMxQixTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDZixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztnQkFDakIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO29CQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztpQkFDL0I7Z0JBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2pDLENBQUMsQ0FBQyxDQUFDO1NBQ1Y7YUFBTTtZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1FBRTdCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxNQUFNLENBQUMsSUFBWTtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNiLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1NBQ3pCO2FBQU07WUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN0QixNQUFNLE9BQU8sR0FBVSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7U0FDM0M7SUFDTCxDQUFDO0lBRU0sYUFBYSxDQUFDLElBQVM7UUFDMUIsT0FBTyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ29tcGxldGVyQmFzZURhdGEgfSBmcm9tICcuL2NvbXBsZXRlci1iYXNlLWRhdGEnO1xuaW1wb3J0IHsgQ29tcGxldGVySXRlbSB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29tcGxldGVyLWl0ZW0nO1xuXG5leHBvcnQgY2xhc3MgTG9jYWxEYXRhIGV4dGVuZHMgQ29tcGxldGVyQmFzZURhdGEge1xuXG4gICAgcHVibGljIGRhdGFTb3VyY2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIHByb3RlY3RlZCBfZGF0YTogYW55W107XG4gICAgcHJvdGVjdGVkIHNhdmVkVGVybTogc3RyaW5nIHwgbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyBkYXRhKGRhdGE6IGFueVtdIHwgT2JzZXJ2YWJsZTxhbnlbXT4pIHtcbiAgICAgICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhJCA9IGRhdGEgYXMgT2JzZXJ2YWJsZTxhbnlbXT47XG4gICAgICAgICAgICBkYXRhJFxuICAgICAgICAgICAgICAgIC5waXBlKGNhdGNoRXJyb3IoKCkgPT4gW10pKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9kYXRhID0gcmVzO1xuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zYXZlZFRlcm0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoKHRoaXMuc2F2ZWRUZXJtKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLmRhdGFTb3VyY2VDaGFuZ2UuZW1pdCgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZGF0YSA9IGRhdGE7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRhdGFTb3VyY2VDaGFuZ2UuZW1pdCgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZWFyY2godGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5zYXZlZFRlcm0gPSB0ZXJtO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zYXZlZFRlcm0gPSBudWxsO1xuICAgICAgICAgICAgY29uc3QgbWF0Y2hlczogYW55W10gPSB0aGlzLmV4dHJhY3RNYXRjaGVzKHRoaXMuX2RhdGEsIHRlcm0pO1xuICAgICAgICAgICAgdGhpcy5uZXh0KHRoaXMucHJvY2Vzc1Jlc3VsdHMobWF0Y2hlcykpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnZlcnRUb0l0ZW0oZGF0YTogYW55KTogQ29tcGxldGVySXRlbSB8IG51bGwge1xuICAgICAgICByZXR1cm4gc3VwZXIuY29udmVydFRvSXRlbShkYXRhKTtcbiAgICB9XG59XG4iXX0=