inputsForm = inputs => {
const container = html`<div>`;
container.value = Object.fromEntries(inputs.map(({name, element}) => [name, element.value]));
const update = () => {
for (let {name, element, hidden} of inputs) {
const hiddenResolved = typeof hidden === "function" ? hidden(container.value) : hidden;
element.style.display = hiddenResolved ? 'none' : 'block';
}
}
for (let {name, element, hidden} of inputs) {
container.appendChild(element);
element.style.marginBottom = '0.5em';
element.addEventListener('input', () => {
container.value[name] = element.value;
update();
});
}
update();
return container;
}