|
|
|
|
@ -1,5 +1,5 @@
|
|
|
|
|
import { is_void } from '../../../utils/names';
|
|
|
|
|
import { get_attribute_value, get_class_attribute_value } from './shared/get_attribute_value';
|
|
|
|
|
import { get_attribute_expression, get_attribute_value, get_class_attribute_value } from './shared/get_attribute_value';
|
|
|
|
|
import { boolean_attributes } from './shared/boolean_attributes';
|
|
|
|
|
import Renderer, { RenderOptions } from '../Renderer';
|
|
|
|
|
import Element from '../../nodes/Element';
|
|
|
|
|
@ -112,13 +112,11 @@ export default function(node: Element, renderer: Renderer, options: RenderOption
|
|
|
|
|
if (name === 'group') {
|
|
|
|
|
const value_attribute = node.attributes.find(({ name }) => name === 'value');
|
|
|
|
|
if (value_attribute) {
|
|
|
|
|
const value = get_attribute_value(value_attribute);
|
|
|
|
|
const value = get_attribute_expression(value_attribute);
|
|
|
|
|
const type = node.get_static_attribute_value('type');
|
|
|
|
|
const bound = expression.node;
|
|
|
|
|
renderer.add_expression(x`
|
|
|
|
|
${value} === ${bound} || Array.isArray(${bound}) && ${bound}.includes(${value})
|
|
|
|
|
? @add_attribute("checked", true, 1)
|
|
|
|
|
: ""
|
|
|
|
|
`);
|
|
|
|
|
const condition = type === 'checkbox' ? x`~${bound}.indexOf(${value})`: x`${value} === ${bound}`;
|
|
|
|
|
renderer.add_expression(x`${condition} ? @add_attribute("checked", true, 1) : ""`);
|
|
|
|
|
}
|
|
|
|
|
} else if (contenteditable && (name === 'textContent' || name === 'innerHTML')) {
|
|
|
|
|
node_contents = expression.node;
|
|
|
|
|
|