@neocomplexx/ngx-neo-completer-mat
Version:
62 lines • 8.07 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWRhdGEuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmVvY29tcGxleHgvbmd4LW5lby1jb21wbGV0ZXItbWF0LyIsInNvdXJjZXMiOlsibGliL3NlcnZpY2VzL3JlbW90ZS1kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdDLE9BQU8sRUFBRSxHQUFHLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDakQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHMUQ7SUFBZ0MsOEJBQWlCO0lBUzdDLG9CQUFvQixJQUFnQjtRQUFwQyxZQUNJLGlCQUFPLFNBQ1Y7UUFGbUIsVUFBSSxHQUFKLElBQUksQ0FBWTtRQVI3QixzQkFBZ0IsR0FBdUIsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUkvRCxrQkFBWSxHQUFzQyxJQUFJLENBQUM7UUFDdkQsZ0JBQVUsR0FBa0IsSUFBSSxDQUFDOztJQUt6QyxDQUFDO0lBRU0sOEJBQVMsR0FBaEIsVUFBaUIsU0FBd0I7UUFDckMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1FBRTdCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxnQ0FBVyxHQUFsQixVQUFtQixXQUFxQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQztJQUNwQyxDQUFDO0lBRU0sOEJBQVMsR0FBaEIsVUFBaUIsU0FBaUI7UUFDOUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQUVNLG1DQUFjLEdBQXJCLFVBQXNCLGNBQW1CO1FBQ3JDLElBQUksQ0FBQyxlQUFlLEdBQUcsY0FBYyxDQUFDO0lBQzFDLENBQUM7SUFFTSwyQkFBTSxHQUFiLFVBQWMsSUFBWTtRQUExQixpQkF1QkM7UUF0QkcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2QsbUJBQW1CO1FBQ25CLElBQUksR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQzthQUFNO1lBQ0gsR0FBRyxHQUFHLElBQUksQ0FBQyxVQUFVLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDcEQ7UUFFRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJO2FBQ3hCLEdBQUcsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2FBQ2pELElBQUksQ0FDRCxHQUFHLENBQUMsVUFBQyxJQUFTO1lBQ1YsSUFBTSxPQUFPLEdBQUcsS0FBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsS0FBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3pELE9BQU8sS0FBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLEVBQ0YsVUFBVSxDQUFDLGNBQU0sT0FBQSxFQUFFLEVBQUYsQ0FBRSxDQUFDLENBQ3ZCO2FBQ0EsU0FBUyxDQUFDLFVBQUMsT0FBYztZQUN0QixJQUFNLE9BQU8sR0FBRyxLQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLEtBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRU0sMkJBQU0sR0FBYjtRQUNJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUNuQixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ25DO0lBQ0wsQ0FBQztJQUVNLGtDQUFhLEdBQXBCLFVBQXFCLElBQVM7UUFDMUIsT0FBTyxpQkFBTSxhQUFhLFlBQUMsSUFBSSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUNMLGlCQUFDO0FBQUQsQ0FBQyxBQWxFRCxDQUFnQyxpQkFBaUIsR0FrRWhEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IENvbXBsZXRlckJhc2VEYXRhIH0gZnJvbSAnLi9jb21wbGV0ZXItYmFzZS1kYXRhJztcclxuaW1wb3J0IHsgQ29tcGxldGVySXRlbSB9IGZyb20gJy4uL2NvbXBvbmVudHMvY29tcGxldGVyLWl0ZW0nO1xyXG5cclxuZXhwb3J0IGNsYXNzIFJlbW90ZURhdGEgZXh0ZW5kcyBDb21wbGV0ZXJCYXNlRGF0YSB7XHJcbiAgICBwdWJsaWMgZGF0YVNvdXJjZUNoYW5nZTogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICAgIHByaXZhdGUgX3JlbW90ZVVybDogc3RyaW5nIHwgbnVsbDtcclxuICAgIHByaXZhdGUgcmVtb3RlU2VhcmNoOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIF91cmxGb3JtYXRlcjogKCh0ZXJtOiBzdHJpbmcpID0+IHN0cmluZykgfCBudWxsID0gbnVsbDtcclxuICAgIHByaXZhdGUgX2RhdGFGaWVsZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcbiAgICBwcml2YXRlIF9yZXF1ZXN0T3B0aW9uczogYW55O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCkge1xyXG4gICAgICAgIHN1cGVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlbW90ZVVybChyZW1vdGVVcmw6IHN0cmluZyB8IG51bGwpIHtcclxuICAgICAgICB0aGlzLl9yZW1vdGVVcmwgPSByZW1vdGVVcmw7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlQ2hhbmdlLmVtaXQoKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVybEZvcm1hdGVyKHVybEZvcm1hdGVyOiAodGVybTogc3RyaW5nKSA9PiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl91cmxGb3JtYXRlciA9IHVybEZvcm1hdGVyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBkYXRhRmllbGQoZGF0YUZpZWxkOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9kYXRhRmllbGQgPSBkYXRhRmllbGQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHJlcXVlc3RPcHRpb25zKHJlcXVlc3RPcHRpb25zOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9yZXF1ZXN0T3B0aW9ucyA9IHJlcXVlc3RPcHRpb25zO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZWFyY2godGVybTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jYW5jZWwoKTtcclxuICAgICAgICAvLyBsZXQgcGFyYW1zID0ge307XHJcbiAgICAgICAgbGV0IHVybCA9ICcnO1xyXG4gICAgICAgIGlmICh0aGlzLl91cmxGb3JtYXRlcikge1xyXG4gICAgICAgICAgICB1cmwgPSB0aGlzLl91cmxGb3JtYXRlcih0ZXJtKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB1cmwgPSB0aGlzLl9yZW1vdGVVcmwgKyBlbmNvZGVVUklDb21wb25lbnQodGVybSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnJlbW90ZVNlYXJjaCA9IHRoaXMuaHR0cFxyXG4gICAgICAgICAgICAuZ2V0KHVybCwgT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5fcmVxdWVzdE9wdGlvbnMpKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIG1hcCgoZGF0YTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbWF0Y2hlcyA9IHRoaXMuZXh0cmFjdFZhbHVlKGRhdGEsIHRoaXMuX2RhdGFGaWVsZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdE1hdGNoZXMobWF0Y2hlcywgdGVybSk7XHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKCkgPT4gW10pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgobWF0Y2hlczogYW55W10pID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdHMgPSB0aGlzLnByb2Nlc3NSZXN1bHRzKG1hdGNoZXMpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5uZXh0KHJlc3VsdHMpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY2FuY2VsKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnJlbW90ZVNlYXJjaCkge1xyXG4gICAgICAgICAgICB0aGlzLnJlbW90ZVNlYXJjaC51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgY29udmVydFRvSXRlbShkYXRhOiBhbnkpOiBDb21wbGV0ZXJJdGVtIHwgbnVsbCB7XHJcbiAgICAgICAgcmV0dXJuIHN1cGVyLmNvbnZlcnRUb0l0ZW0oZGF0YSk7XHJcbiAgICB9XHJcbn1cclxuIl19