import {html} from "htl"; import {createChooser} from "./chooser.js"; import {stringify} from "./format.js"; import {maybeLabel} from "./label.js"; function createCheckbox(multiple, type) { return createChooser({ multiple, render(data, index, selected, disabled, {format, label}) { const form = html`
`; return [form, inputof(form.elements.input, multiple)]; }, selectedIndexes(input) { return Array.from(input).filter(i => i.checked).map(i => +i.value); }, select(input, selected) { input.checked = selected; } }); } export const radio = createCheckbox(false, "radio"); export const checkbox = createCheckbox(true, "checkbox"); export function toggle({label, value, values, disabled} = {}) { const input = html``; const form = html`