@neocomplexx/ngx-neo-completer
Version:
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.0.5.
62 lines • 7.81 kB
JavaScript
import { __extends } from "tslib";
import { EventEmitter } from '@angular/core';
import { map, catchError } from 'rxjs/operators';
import { CompleterBaseData } from './completer-base-data';
var RemoteData = /** @class */ (function (_super) {
__extends(RemoteData, _super);
function RemoteData(http) {
var _this = _super.call(this) || this;
_this.http = http;
_this.dataSourceChange = new EventEmitter();
_this._urlFormater = null;
_this._dataField = null;
return _this;
}
RemoteData.prototype.remoteUrl = function (remoteUrl) {
this._remoteUrl = remoteUrl;
this.dataSourceChange.emit();
return this;
};
RemoteData.prototype.urlFormater = function (urlFormater) {
this._urlFormater = urlFormater;
};
RemoteData.prototype.dataField = function (dataField) {
this._dataField = dataField;
};
RemoteData.prototype.requestOptions = function (requestOptions) {
this._requestOptions = requestOptions;
};
RemoteData.prototype.search = function (term) {
var _this = this;
this.cancel();
// let params = {};
var url = '';
if (this._urlFormater) {
url = this._urlFormater(term);
}
else {
url = this._remoteUrl + encodeURIComponent(term);
}
this.remoteSearch = this.http
.get(url, Object.assign({}, this._requestOptions))
.pipe(map(function (data) {
var matches = _this.extractValue(data, _this._dataField);
return _this.extractMatches(matches, term);
}), catchError(function () { return []; }))
.subscribe(function (matches) {
var results = _this.processResults(matches);
_this.next(results);
});
};
RemoteData.prototype.cancel = function () {
if (this.remoteSearch) {
this.remoteSearch.unsubscribe();
}
};
RemoteData.prototype.convertToItem = function (data) {
return _super.prototype.convertToItem.call(this, data);
};
return RemoteData;
}(CompleterBaseData));
export { RemoteData };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmVvY29tcGxleHgvbmd4LW5lby1jb21wbGV0ZXIvIiwic291cmNlcyI6WyJsaWIvc2VydmljZXMvcmVtb3RlLWRhdGEudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUcxRDtJQUFnQyw4QkFBaUI7SUFTN0Msb0JBQW9CLElBQWdCO1FBQXBDLFlBQ0ksaUJBQU8sU0FDVjtRQUZtQixVQUFJLEdBQUosSUFBSSxDQUFZO1FBUjdCLHNCQUFnQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO1FBSS9ELGtCQUFZLEdBQXNDLElBQUksQ0FBQztRQUN2RCxnQkFBVSxHQUFrQixJQUFJLENBQUM7O0lBS3pDLENBQUM7SUFFTSw4QkFBUyxHQUFoQixVQUFpQixTQUF3QjtRQUNyQyxJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztRQUM1QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFN0IsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGdDQUFXLEdBQWxCLFVBQW1CLFdBQXFDO1FBQ3BELElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO0lBQ3BDLENBQUM7SUFFTSw4QkFBUyxHQUFoQixVQUFpQixTQUFpQjtRQUM5QixJQUFJLENBQUMsVUFBVSxHQUFHLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRU0sbUNBQWMsR0FBckIsVUFBc0IsY0FBbUI7UUFDckMsSUFBSSxDQUFDLGVBQWUsR0FBRyxjQUFjLENBQUM7SUFDMUMsQ0FBQztJQUVNLDJCQUFNLEdBQWIsVUFBYyxJQUFZO1FBQTFCLGlCQXVCQztRQXRCRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxtQkFBbUI7UUFDbkIsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLEdBQUcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pDO2FBQU07WUFDSCxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNwRDtRQUVELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUk7YUFDeEIsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7YUFDakQsSUFBSSxDQUNELEdBQUcsQ0FBQyxVQUFDLElBQVM7WUFDVixJQUFNLE9BQU8sR0FBRyxLQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxLQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDekQsT0FBTyxLQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsY0FBTSxPQUFBLEVBQUUsRUFBRixDQUFFLENBQUMsQ0FDdkI7YUFDQSxTQUFTLENBQUMsVUFBQyxPQUFjO1lBQ3RCLElBQU0sT0FBTyxHQUFHLEtBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0MsS0FBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QixDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFTSwyQkFBTSxHQUFiO1FBQ0ksSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbkM7SUFDTCxDQUFDO0lBRU0sa0NBQWEsR0FBcEIsVUFBcUIsSUFBUztRQUMxQixPQUFPLGlCQUFNLGFBQWEsWUFBQyxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBQ0wsaUJBQUM7QUFBRCxDQUFDLEFBbEVELENBQWdDLGlCQUFpQixHQWtFaEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgY2F0Y2hFcnJvciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbXBsZXRlckJhc2VEYXRhIH0gZnJvbSAnLi9jb21wbGV0ZXItYmFzZS1kYXRhJztcbmltcG9ydCB7IENvbXBsZXRlckl0ZW0gfSBmcm9tICcuLi9jb21wb25lbnRzL2NvbXBsZXRlci1pdGVtJztcblxuZXhwb3J0IGNsYXNzIFJlbW90ZURhdGEgZXh0ZW5kcyBDb21wbGV0ZXJCYXNlRGF0YSB7XG4gICAgcHVibGljIGRhdGFTb3VyY2VDaGFuZ2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIHByaXZhdGUgX3JlbW90ZVVybDogc3RyaW5nIHwgbnVsbDtcbiAgICBwcml2YXRlIHJlbW90ZVNlYXJjaDogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgX3VybEZvcm1hdGVyOiAoKHRlcm06IHN0cmluZykgPT4gc3RyaW5nKSB8IG51bGwgPSBudWxsO1xuICAgIHByaXZhdGUgX2RhdGFGaWVsZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gICAgcHJpdmF0ZSBfcmVxdWVzdE9wdGlvbnM6IGFueTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHB1YmxpYyByZW1vdGVVcmwocmVtb3RlVXJsOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX3JlbW90ZVVybCA9IHJlbW90ZVVybDtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlQ2hhbmdlLmVtaXQoKTtcblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgdXJsRm9ybWF0ZXIodXJsRm9ybWF0ZXI6ICh0ZXJtOiBzdHJpbmcpID0+IHN0cmluZykge1xuICAgICAgICB0aGlzLl91cmxGb3JtYXRlciA9IHVybEZvcm1hdGVyO1xuICAgIH1cblxuICAgIHB1YmxpYyBkYXRhRmllbGQoZGF0YUZpZWxkOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fZGF0YUZpZWxkID0gZGF0YUZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXF1ZXN0T3B0aW9ucyhyZXF1ZXN0T3B0aW9uczogYW55KSB7XG4gICAgICAgIHRoaXMuX3JlcXVlc3RPcHRpb25zID0gcmVxdWVzdE9wdGlvbnM7XG4gICAgfVxuXG4gICAgcHVibGljIHNlYXJjaCh0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jYW5jZWwoKTtcbiAgICAgICAgLy8gbGV0IHBhcmFtcyA9IHt9O1xuICAgICAgICBsZXQgdXJsID0gJyc7XG4gICAgICAgIGlmICh0aGlzLl91cmxGb3JtYXRlcikge1xuICAgICAgICAgICAgdXJsID0gdGhpcy5fdXJsRm9ybWF0ZXIodGVybSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1cmwgPSB0aGlzLl9yZW1vdGVVcmwgKyBlbmNvZGVVUklDb21wb25lbnQodGVybSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJlbW90ZVNlYXJjaCA9IHRoaXMuaHR0cFxuICAgICAgICAgICAgLmdldCh1cmwsIE9iamVjdC5hc3NpZ24oe30sIHRoaXMuX3JlcXVlc3RPcHRpb25zKSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZXMgPSB0aGlzLmV4dHJhY3RWYWx1ZShkYXRhLCB0aGlzLl9kYXRhRmllbGQpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5leHRyYWN0TWF0Y2hlcyhtYXRjaGVzLCB0ZXJtKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IFtdKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobWF0Y2hlczogYW55W10pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByZXN1bHRzID0gdGhpcy5wcm9jZXNzUmVzdWx0cyhtYXRjaGVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLm5leHQocmVzdWx0cyk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuY2VsKCkge1xuICAgICAgICBpZiAodGhpcy5yZW1vdGVTZWFyY2gpIHtcbiAgICAgICAgICAgIHRoaXMucmVtb3RlU2VhcmNoLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY29udmVydFRvSXRlbShkYXRhOiBhbnkpOiBDb21wbGV0ZXJJdGVtIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiBzdXBlci5jb252ZXJ0VG9JdGVtKGRhdGEpO1xuICAgIH1cbn1cbiJdfQ==