UNPKG

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