function settle(input, delay = 1000) {
return Generators.observe(notify => {
let timer = null;
function inputted() {
if (timer) {
clearInterval(timer);
}
timer = setTimeout(delayed, delay);
}
function delayed() {
timer = null;
notify(input.value);
}
input.addEventListener("input", inputted), inputted();
return () => input.removeEventListener("input", inputted);
});
}