@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
JavaScript
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=