UNPKG

@neocomplexx/ngx-neo-completer-mat

Version:
43 lines 6.3 kB
/** * Esta clase permite simplificar el uso de los autocompletadores para funcionar con objetos y no con simples string. */ export class NgxNeoCompleterMatService { 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LW5lby1jb21wbGV0ZXItbWF0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AbmVvY29tcGxleHgvbmd4LW5lby1jb21wbGV0ZXItbWF0LyIsInNvdXJjZXMiOlsibGliL25neC1uZW8tY29tcGxldGVyLW1hdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBOztHQUVHO0FBSUgsTUFBTSxPQUFPLHlCQUF5QjtJQWtCbEMsWUFBWSxnQkFBa0M7UUFkOUMsdUVBQXVFO1FBQ2hFLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBUXhCLGdEQUFnRDtRQUN6QyxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBS25CLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksVUFBVSxDQUFDLFFBQXVCO1FBQ3JDLElBQUksUUFBUSxJQUFJLElBQUksRUFBRTtZQUNsQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxRQUFRLENBQUMsY0FBYyxDQUFDO1NBQ2xFO2FBQU07WUFDSCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBR3JEO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsSUFBNkIsRUFBRSxjQUFtQixFQUFFLGFBQXFCLEVBQUUsRUFDcEYsWUFBNEIsRUFBRSxVQUEwQixFQUFFLFdBQXNCO1FBQ2hGLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQzlFLElBQUksVUFBVSxLQUFLLEVBQUUsRUFBRTtZQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3pFO2FBQU07WUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDeEQ7UUFFRCxJQUFJLENBQUMsS0FBSyxHQUFHLFdBQVcsQ0FBQztRQUV6QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcGxldGVyU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY29tcGxldGVyLXNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb21wbGV0ZXJJdGVtIH0gZnJvbSAnLi9jb21wb25lbnRzL2NvbXBsZXRlci1pdGVtJztcclxuaW1wb3J0IHsgTG9jYWxEYXRhIH0gZnJvbSAnLi9zZXJ2aWNlcy9sb2NhbC1kYXRhJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuLyoqXHJcbiAqIEVzdGEgY2xhc2UgcGVybWl0ZSBzaW1wbGlmaWNhciBlbCB1c28gZGUgbG9zIGF1dG9jb21wbGV0YWRvcmVzIHBhcmEgZnVuY2lvbmFyIGNvbiBvYmpldG9zIHkgbm8gY29uIHNpbXBsZXMgc3RyaW5nLlxyXG4gKi9cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIE5neE5lb0NvbXBsZXRlck1hdFNlcnZpY2U8VEVudGlkYWQ+ICB7XHJcblxyXG4gICAgcHVibGljIGNvbXBsZXRlclNlcnZpY2U6IENvbXBsZXRlclNlcnZpY2U7XHJcblxyXG4gICAgLy8gdmFyaWFibGUgcXVlIHJlYWxpemEgZWwgYmluZGluZyBjb24gZWwgY29tcG9uZW50ZSBodG1sIDogWyhuZ01vZGVsKV1cclxuICAgIHB1YmxpYyBtb2RlbFN0cmluZyA9ICcnO1xyXG5cclxuICAgIC8vIFNlcnZpY2lvIHF1ZSBzZSBlbmNhcmdhIGRlIHJlYWxpemFyIGxhIGJ1c3F1ZWRhIGN1YW5kbyB2YW1vcyBhdXRvY29tcGxldGFuZG8gOiBbZGF0YXNvdXJjZV1cclxuICAgIHB1YmxpYyBkYXRhU291cmNlOiBMb2NhbERhdGE7XHJcblxyXG4gICAgLy8gT2JqZXRvIHF1ZSB0aWVuZSBsYSBwcm9waWVkYWQgcXVlIHF1ZXJlbW9zIGhhY2VyIGJpbmRpbmdcclxuICAgIHB1YmxpYyBzZWxlY3RlZE9iamVjdDogYW55O1xyXG5cclxuICAgIC8vIFByb3BpZWRhZCBzb2JyZSBsYSBxdWUgcXVlcmVtb3MgaGFjZXIgYmluZGluZ1xyXG4gICAgcHVibGljIGZpZWxkVmFsdWUgPSAnJztcclxuXHJcbiAgICBwdWJsaWMgZW1wdHk6IFRFbnRpZGFkO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKGNvbXBsZXRlclNlcnZpY2U6IENvbXBsZXRlclNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLmNvbXBsZXRlclNlcnZpY2UgPSBjb21wbGV0ZXJTZXJ2aWNlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2UgZWplY3V0YSBjdWFuZG8gZWwgdXN1YXJpbyBzZWxlY2Npb25hIHVuIHZhbG9yIGRlbCBhdXRvY29tcGxldGFibGVcclxuICAgICAqIEBhdXRob3IgbWdlc3VpdHRpXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBvblNlbGVjdGVkKHNlbGVjdGVkOiBDb21wbGV0ZXJJdGVtKSB7XHJcbiAgICAgICAgaWYgKHNlbGVjdGVkICE9IG51bGwpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9iamVjdFt0aGlzLmZpZWxkVmFsdWVdID0gc2VsZWN0ZWQub3JpZ2luYWxPYmplY3Q7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZE9iamVjdFt0aGlzLmZpZWxkVmFsdWVdID0gdGhpcy5lbXB0eTtcclxuXHJcblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNlIHV0aWxpemEgcGFyYSBhc2lnbmFyIGxvcyBkYXRvcyBsb2NhbGVzIChjYXJnYWRvcyBwcmV2aWFtZW50ZSBkZXNkZSBlbCBzZXJ2aWRvcilcclxuICAgICAqXHJcbiAgICAgKiBAYXV0aG9yIG1nZXN1aXR0aVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbG9jYWwoZGF0YTogYW55W10gfCBPYnNlcnZhYmxlPGFueT4sIHNlbGVjdGVkT2JqZWN0OiBhbnksIGZpZWxkVmFsdWU6IHN0cmluZyA9ICcnLFxyXG4gICAgICAgIHNlYXJjaEZpZWxkcz86IHN0cmluZyB8IG51bGwsIHRpdGxlRmllbGQ/OiBzdHJpbmcgfCBudWxsLCBlbXB0eU9iamVjdD86IFRFbnRpZGFkKTogTG9jYWxEYXRhIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkT2JqZWN0ID0gc2VsZWN0ZWRPYmplY3Q7XHJcbiAgICAgICAgdGhpcy5maWVsZFZhbHVlID0gZmllbGRWYWx1ZTtcclxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UgPSB0aGlzLmNvbXBsZXRlclNlcnZpY2UubG9jYWwoZGF0YSwgc2VhcmNoRmllbGRzLCB0aXRsZUZpZWxkKTtcclxuICAgICAgICBpZiAoZmllbGRWYWx1ZSAhPT0gJycpIHtcclxuICAgICAgICAgICAgdGhpcy5tb2RlbFN0cmluZyA9IHRoaXMuc2VsZWN0ZWRPYmplY3RbdGhpcy5maWVsZFZhbHVlXVtzZWFyY2hGaWVsZHNdO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIHRoaXMubW9kZWxTdHJpbmcgPSB0aGlzLnNlbGVjdGVkT2JqZWN0W3NlYXJjaEZpZWxkc107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmVtcHR5ID0gZW1wdHlPYmplY3Q7XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2U7XHJcbiAgICB9XHJcbn1cclxuIl19