@neocomplexx/ngx-neo-completer-mat
Version:
46 lines • 6.63 kB
JavaScript
/**
* Esta clase permite simplificar el uso de los autocompletadores para funcionar con objetos y no con simples string.
*/
var NgxNeoCompleterMatService = /** @class */ (function () {
function NgxNeoCompleterMatService(completerService) {
// variable que realiza el binding con el componente html : [(ngModel)]
this.modelString = '';
// Propiedad sobre la que queremos hacer binding
this.fieldValue = '';
this.completerService = completerService;
}
/**
* Se ejecuta cuando el usuario selecciona un valor del autocompletable
* @author mgesuitti
*/
NgxNeoCompleterMatService.prototype.onSelected = function (selected) {
if (selected != null) {
this.selectedObject[this.fieldValue] = selected.originalObject;
}
else {
this.selectedObject[this.fieldValue] = this.empty;
}
};
/**
* Se utiliza para asignar los datos locales (cargados previamente desde el servidor)
*
* @author mgesuitti
*/
NgxNeoCompleterMatService.prototype.local = function (data, selectedObject, fieldValue, searchFields, titleField, emptyObject) {
if (fieldValue === void 0) { fieldValue = ''; }
this.selectedObject = selectedObject;
this.fieldValue = fieldValue;
this.dataSource = this.completerService.local(data, searchFields, titleField);
if (fieldValue !== '') {
this.modelString = this.selectedObject[this.fieldValue][searchFields];
}
else {
this.modelString = this.selectedObject[searchFields];
}
this.empty = emptyObject;
return this.dataSource;
};
return NgxNeoCompleterMatService;
}());
export { NgxNeoCompleterMatService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW5lby1jb21wbGV0ZXItbWF0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmVvY29tcGxleHgvbmd4LW5lby1jb21wbGV0ZXItbWF0LyIsInNvdXJjZXMiOlsibGliL25neC1uZW8tY29tcGxldGVyLW1hdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOztHQUVHO0FBSUg7SUFrQkksbUNBQVksZ0JBQWtDO1FBZDlDLHVFQUF1RTtRQUNoRSxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQVF4QixnREFBZ0Q7UUFDekMsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUtuQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7SUFDN0MsQ0FBQztJQUVEOzs7T0FHRztJQUNJLDhDQUFVLEdBQWpCLFVBQWtCLFFBQXVCO1FBQ3JDLElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtZQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO1NBQ2xFO2FBQU07WUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBR3JEO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSx5Q0FBSyxHQUFaLFVBQWEsSUFBNkIsRUFBRSxjQUFtQixFQUFFLFVBQXVCLEVBQ3BGLFlBQTRCLEVBQUUsVUFBMEIsRUFBRSxXQUFzQjtRQURuQiwyQkFBQSxFQUFBLGVBQXVCO1FBRXBGLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlFLElBQUksVUFBVSxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3pFO2FBQU07WUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDeEQ7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztRQUV6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUNMLGdDQUFDO0FBQUQsQ0FBQyxBQXhERCxJQXdEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBsZXRlclNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NvbXBsZXRlci1zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29tcGxldGVySXRlbSB9IGZyb20gJy4vY29tcG9uZW50cy9jb21wbGV0ZXItaXRlbSc7XHJcbmltcG9ydCB7IExvY2FsRGF0YSB9IGZyb20gJy4vc2VydmljZXMvbG9jYWwtZGF0YSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuXHJcbi8qKlxyXG4gKiBFc3RhIGNsYXNlIHBlcm1pdGUgc2ltcGxpZmljYXIgZWwgdXNvIGRlIGxvcyBhdXRvY29tcGxldGFkb3JlcyBwYXJhIGZ1bmNpb25hciBjb24gb2JqZXRvcyB5IG5vIGNvbiBzaW1wbGVzIHN0cmluZy5cclxuICovXHJcblxyXG5cclxuXHJcbmV4cG9ydCBjbGFzcyBOZ3hOZW9Db21wbGV0ZXJNYXRTZXJ2aWNlPFRFbnRpZGFkPiAge1xyXG5cclxuICAgIHB1YmxpYyBjb21wbGV0ZXJTZXJ2aWNlOiBDb21wbGV0ZXJTZXJ2aWNlO1xyXG5cclxuICAgIC8vIHZhcmlhYmxlIHF1ZSByZWFsaXphIGVsIGJpbmRpbmcgY29uIGVsIGNvbXBvbmVudGUgaHRtbCA6IFsobmdNb2RlbCldXHJcbiAgICBwdWJsaWMgbW9kZWxTdHJpbmcgPSAnJztcclxuXHJcbiAgICAvLyBTZXJ2aWNpbyBxdWUgc2UgZW5jYXJnYSBkZSByZWFsaXphciBsYSBidXNxdWVkYSBjdWFuZG8gdmFtb3MgYXV0b2NvbXBsZXRhbmRvIDogW2RhdGFzb3VyY2VdXHJcbiAgICBwdWJsaWMgZGF0YVNvdXJjZTogTG9jYWxEYXRhO1xyXG5cclxuICAgIC8vIE9iamV0byBxdWUgdGllbmUgbGEgcHJvcGllZGFkIHF1ZSBxdWVyZW1vcyBoYWNlciBiaW5kaW5nXHJcbiAgICBwdWJsaWMgc2VsZWN0ZWRPYmplY3Q6IGFueTtcclxuXHJcbiAgICAvLyBQcm9waWVkYWQgc29icmUgbGEgcXVlIHF1ZXJlbW9zIGhhY2VyIGJpbmRpbmdcclxuICAgIHB1YmxpYyBmaWVsZFZhbHVlID0gJyc7XHJcblxyXG4gICAgcHVibGljIGVtcHR5OiBURW50aWRhZDtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihjb21wbGV0ZXJTZXJ2aWNlOiBDb21wbGV0ZXJTZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5jb21wbGV0ZXJTZXJ2aWNlID0gY29tcGxldGVyU2VydmljZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlIGVqZWN1dGEgY3VhbmRvIGVsIHVzdWFyaW8gc2VsZWNjaW9uYSB1biB2YWxvciBkZWwgYXV0b2NvbXBsZXRhYmxlXHJcbiAgICAgKiBAYXV0aG9yIG1nZXN1aXR0aVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb25TZWxlY3RlZChzZWxlY3RlZDogQ29tcGxldGVySXRlbSkge1xyXG4gICAgICAgIGlmIChzZWxlY3RlZCAhPSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPYmplY3RbdGhpcy5maWVsZFZhbHVlXSA9IHNlbGVjdGVkLm9yaWdpbmFsT2JqZWN0O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRPYmplY3RbdGhpcy5maWVsZFZhbHVlXSA9IHRoaXMuZW1wdHk7XHJcblxyXG5cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZSB1dGlsaXphIHBhcmEgYXNpZ25hciBsb3MgZGF0b3MgbG9jYWxlcyAoY2FyZ2Fkb3MgcHJldmlhbWVudGUgZGVzZGUgZWwgc2Vydmlkb3IpXHJcbiAgICAgKlxyXG4gICAgICogQGF1dGhvciBtZ2VzdWl0dGlcclxuICAgICAqL1xyXG4gICAgcHVibGljIGxvY2FsKGRhdGE6IGFueVtdIHwgT2JzZXJ2YWJsZTxhbnk+LCBzZWxlY3RlZE9iamVjdDogYW55LCBmaWVsZFZhbHVlOiBzdHJpbmcgPSAnJyxcclxuICAgICAgICBzZWFyY2hGaWVsZHM/OiBzdHJpbmcgfCBudWxsLCB0aXRsZUZpZWxkPzogc3RyaW5nIHwgbnVsbCwgZW1wdHlPYmplY3Q/OiBURW50aWRhZCk6IExvY2FsRGF0YSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZE9iamVjdCA9IHNlbGVjdGVkT2JqZWN0O1xyXG4gICAgICAgIHRoaXMuZmllbGRWYWx1ZSA9IGZpZWxkVmFsdWU7XHJcbiAgICAgICAgdGhpcy5kYXRhU291cmNlID0gdGhpcy5jb21wbGV0ZXJTZXJ2aWNlLmxvY2FsKGRhdGEsIHNlYXJjaEZpZWxkcywgdGl0bGVGaWVsZCk7XHJcbiAgICAgICAgaWYgKGZpZWxkVmFsdWUgIT09ICcnKSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWxTdHJpbmcgPSB0aGlzLnNlbGVjdGVkT2JqZWN0W3RoaXMuZmllbGRWYWx1ZV1bc2VhcmNoRmllbGRzXTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLm1vZGVsU3RyaW5nID0gdGhpcy5zZWxlY3RlZE9iamVjdFtzZWFyY2hGaWVsZHNdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5lbXB0eSA9IGVtcHR5T2JqZWN0O1xyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5kYXRhU291cmNlO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==