ParsedText = ({value = "", parser = d => d, formatter = d => d} = {}) => {
const textarea = html`<textarea style=${style} oninput=${oninput}>`;
const node = html`<form onsubmit=${onsubmit}>
${textarea}
<button type=submit>Submit</button>
</form>`;
function oninput(e) {
e.stopPropagation();
}
function onsubmit(e) {
set(node, textarea.value);
e.preventDefault();
}
Object.defineProperty(node, "value", {
get() {
return parser(value);
},
set(v) {
if (typeof v === "object") v = formatter(v);
textarea.value = value = v;
}
});
node.value = value;
return node;
}