UNPKG

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