if (!current || (alwaysSelected && presetCount() < 2)) return;
delete presets[current];
if (alwaysSelected) {
const keys = [...Object.keys(presets)];
current = keys[0];
} else {
current = null;
}
updateCurrent();
populate();
};
populate();
form.addEventListener("input", updateCurrent);
container.getPresets = () => presets;
container.getCurrent = () => current;
return container;
}
Purpose-built for displays of data
Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.