UNPKG

dual-data-picker

Version:

## Settings editableDiv : true This use div instead input. Usefull to eliminate autocomplete feature.

62 lines (43 loc) 1.57 kB
export default class Events { constructor(app) { this.app = app; this.keyUpTm = false; this.listen(); } listen() { var self = this; let mainContainer = this.app.Ui.getMainContainer(); mainContainer.addEventListener("click", function(e) { let optionEl = e.target.closest(".dual-data-picker__option"); if (optionEl) { self.clickOnOption(optionEl); } }); this.app.Ui.searchField.addEventListener("keyup", function() { if (self.keyUpTm != false) { clearTimeout(self.keyUpTm); } self.keyUpTm = setTimeout(function() { self.app.Repository.search = self.app.Ui.searchField.value; self.app.Ui.redraw(); }, 200); }); } clickOnOption(el) { let value = el.getAttribute("data-value"); let data = this.app.Repository.data; for (let i = 0; i < data.length; i++) { if (data[i].value == value) { if(data[i].selected === true) { data[i].selected = false; this.app.Select.deselect(data[i].value); } else { data[i].selected = true; this.app.Select.select(data[i].value); } } } this.app.Ui.redraw(); } }