Public
Edited
Jan 19
Insert cell
Insert cell
presets = {
let values = new Map;
try {
values = new Map(Object.entries(
JSON.parse(atob(
new URL(document.baseURI).searchParams.get('p')
))
));
}
catch(e) {}
return values;
}
Insert cell
preset = {
return (name, defaultValue) =>
presets.has(name) ? presets.get(name) : defaultValue;
}
Insert cell
function withPreset(name, def, factory) {
const input = factory(name, preset(name, def));
input.addEventListener("input", (e) => {
var searchParams = new URLSearchParams(window.location.search);
searchParams.set(name, e.target.value);
const query = "?" + searchParams.toString();
console.info("change", e.target.value, query);
//window.location.search = searchParams.toString();
window.history.pushState(undefined, undefined, "." + query);
console.info("changed");
});
return input;
}
Insert cell

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.
Learn more