in resources/todomvc/vanilla-examples/javascript-es6-webpack/src/view.js [138:185]
bindCallback(event, handler) {
switch (event) {
case "newTodo":
$on(this.$newTodo, "change", () => handler(this.$newTodo.value));
break;
case "removeCompleted":
$on(this.$clearCompleted, "click", handler);
break;
case "toggleAll":
$on(this.$toggleAll, "click", () => {
this.$toggleAllInput.click();
handler({ completed: this.$toggleAllInput.checked });
});
break;
case "itemEdit":
$delegate(this.$todoList, "li label", "dblclick", (e) => handler({ id: _itemId(e.target) }));
break;
case "itemRemove":
$delegate(this.$todoList, ".destroy", "click", (e) => handler({ id: _itemId(e.target) }));
break;
case "itemToggle":
$delegate(this.$todoList, ".toggle", "click", (e) => handler({ id: _itemId(e.target), completed: e.target.checked }));
break;
case "itemEditDone":
$delegate(this.$todoList, "li .edit", "blur", function (e) {
if (!e.target.dataset.iscanceled) {
handler({
id: _itemId(e.target),
title: e.target.value,
});
}
});
$delegate(this.$todoList, "li .edit", "keypress", function (e) {
if (e.keyCode === ENTER_KEY)
e.target.blur();
});
break;
case "itemEditCancel":
$delegate(this.$todoList, "li .edit", "keyup", (e) => {
if (e.keyCode === ESCAPE_KEY) {
e.target.dataset.iscanceled = true;
e.target.blur();
handler({ id: _itemId(e.target) });
}
});
break;
}
}