@neocomplexx/ngx-neo-completer
Version:
This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.0.5.
43 lines • 6.05 kB
JavaScript
/**
* Esta clase permite simplificar el uso de los autocompletadores para funcionar con objetos y no con simples string.
*/
export class NgxNeoCompleterService {
constructor(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
*/
onSelected(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
*/
local(data, selectedObject, fieldValue = '', searchFields, titleField, emptyObject) {
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;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW5lby1jb21wbGV0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BuZW9jb21wbGV4eC9uZ3gtbmVvLWNvbXBsZXRlci8iLCJzb3VyY2VzIjpbImxpYi9uZ3gtbmVvLWNvbXBsZXRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOztHQUVHO0FBSUgsTUFBTSxPQUFPLHNCQUFzQjtJQWtCL0IsWUFBWSxnQkFBa0M7UUFkOUMsdUVBQXVFO1FBQ2hFLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBUXhCLGdEQUFnRDtRQUN6QyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBS25CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLFFBQXVCO1FBQ3JDLElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtZQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO1NBQ2xFO2FBQU07WUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBR3JEO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsSUFBNkIsRUFBRSxjQUFtQixFQUFFLGFBQXFCLEVBQUUsRUFDcEYsWUFBNEIsRUFBRSxVQUEwQixFQUFFLFdBQXNCO1FBQ2hGLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlFLElBQUksVUFBVSxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3pFO2FBQU07WUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDeEQ7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztRQUV6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcGxldGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29tcGxldGVyLXNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcGxldGVySXRlbSB9IGZyb20gJy4vY29tcG9uZW50cy9jb21wbGV0ZXItaXRlbSc7XG5pbXBvcnQgeyBMb2NhbERhdGEgfSBmcm9tICcuL3NlcnZpY2VzL2xvY2FsLWRhdGEnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIEVzdGEgY2xhc2UgcGVybWl0ZSBzaW1wbGlmaWNhciBlbCB1c28gZGUgbG9zIGF1dG9jb21wbGV0YWRvcmVzIHBhcmEgZnVuY2lvbmFyIGNvbiBvYmpldG9zIHkgbm8gY29uIHNpbXBsZXMgc3RyaW5nLlxuICovXG5cblxuXG5leHBvcnQgY2xhc3MgTmd4TmVvQ29tcGxldGVyU2VydmljZTxURW50aWRhZD4gIHtcblxuICAgIHB1YmxpYyBjb21wbGV0ZXJTZXJ2aWNlOiBDb21wbGV0ZXJTZXJ2aWNlO1xuXG4gICAgLy8gdmFyaWFibGUgcXVlIHJlYWxpemEgZWwgYmluZGluZyBjb24gZWwgY29tcG9uZW50ZSBodG1sIDogWyhuZ01vZGVsKV1cbiAgICBwdWJsaWMgbW9kZWxTdHJpbmcgPSAnJztcblxuICAgIC8vIFNlcnZpY2lvIHF1ZSBzZSBlbmNhcmdhIGRlIHJlYWxpemFyIGxhIGJ1c3F1ZWRhIGN1YW5kbyB2YW1vcyBhdXRvY29tcGxldGFuZG8gOiBbZGF0YXNvdXJjZV1cbiAgICBwdWJsaWMgZGF0YVNvdXJjZTogTG9jYWxEYXRhO1xuXG4gICAgLy8gT2JqZXRvIHF1ZSB0aWVuZSBsYSBwcm9waWVkYWQgcXVlIHF1ZXJlbW9zIGhhY2VyIGJpbmRpbmdcbiAgICBwdWJsaWMgc2VsZWN0ZWRPYmplY3Q6IGFueTtcblxuICAgIC8vIFByb3BpZWRhZCBzb2JyZSBsYSBxdWUgcXVlcmVtb3MgaGFjZXIgYmluZGluZ1xuICAgIHB1YmxpYyBmaWVsZFZhbHVlID0gJyc7XG5cbiAgICBwdWJsaWMgZW1wdHk6IFRFbnRpZGFkO1xuXG4gICAgY29uc3RydWN0b3IoY29tcGxldGVyU2VydmljZTogQ29tcGxldGVyU2VydmljZSkge1xuICAgICAgICB0aGlzLmNvbXBsZXRlclNlcnZpY2UgPSBjb21wbGV0ZXJTZXJ2aWNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlIGVqZWN1dGEgY3VhbmRvIGVsIHVzdWFyaW8gc2VsZWNjaW9uYSB1biB2YWxvciBkZWwgYXV0b2NvbXBsZXRhYmxlXG4gICAgICogQGF1dGhvciBtZ2VzdWl0dGlcbiAgICAgKi9cbiAgICBwdWJsaWMgb25TZWxlY3RlZChzZWxlY3RlZDogQ29tcGxldGVySXRlbSkge1xuICAgICAgICBpZiAoc2VsZWN0ZWQgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9iamVjdFt0aGlzLmZpZWxkVmFsdWVdID0gc2VsZWN0ZWQub3JpZ2luYWxPYmplY3Q7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkT2JqZWN0W3RoaXMuZmllbGRWYWx1ZV0gPSB0aGlzLmVtcHR5O1xuXG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlIHV0aWxpemEgcGFyYSBhc2lnbmFyIGxvcyBkYXRvcyBsb2NhbGVzIChjYXJnYWRvcyBwcmV2aWFtZW50ZSBkZXNkZSBlbCBzZXJ2aWRvcilcbiAgICAgKlxuICAgICAqIEBhdXRob3IgbWdlc3VpdHRpXG4gICAgICovXG4gICAgcHVibGljIGxvY2FsKGRhdGE6IGFueVtdIHwgT2JzZXJ2YWJsZTxhbnk+LCBzZWxlY3RlZE9iamVjdDogYW55LCBmaWVsZFZhbHVlOiBzdHJpbmcgPSAnJyxcbiAgICAgICAgc2VhcmNoRmllbGRzPzogc3RyaW5nIHwgbnVsbCwgdGl0bGVGaWVsZD86IHN0cmluZyB8IG51bGwsIGVtcHR5T2JqZWN0PzogVEVudGlkYWQpOiBMb2NhbERhdGEge1xuICAgICAgICB0aGlzLnNlbGVjdGVkT2JqZWN0ID0gc2VsZWN0ZWRPYmplY3Q7XG4gICAgICAgIHRoaXMuZmllbGRWYWx1ZSA9IGZpZWxkVmFsdWU7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZSA9IHRoaXMuY29tcGxldGVyU2VydmljZS5sb2NhbChkYXRhLCBzZWFyY2hGaWVsZHMsIHRpdGxlRmllbGQpO1xuICAgICAgICBpZiAoZmllbGRWYWx1ZSAhPT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWxTdHJpbmcgPSB0aGlzLnNlbGVjdGVkT2JqZWN0W3RoaXMuZmllbGRWYWx1ZV1bc2VhcmNoRmllbGRzXTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWxTdHJpbmcgPSB0aGlzLnNlbGVjdGVkT2JqZWN0W3NlYXJjaEZpZWxkc107XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmVtcHR5ID0gZW1wdHlPYmplY3Q7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZTtcbiAgICB9XG59XG4iXX0=