[feature] add util module to check element is interactive element

pull/6693/head
shinyaigeek 5 years ago committed by tanhauhau
parent 791533e7a5
commit ed85e0142b

@ -0,0 +1,48 @@
import Element from '../nodes/Element';
const interactiveInputTypes = new Set([
'submit',
'reset',
'image',
'button',
'radio',
'checkbox'
]);
export const is_interactive_element: (element: Element) => boolean = function (
element
) {
if (element.name === 'details') {
return true;
}
if (element.name === 'summary') {
return true;
}
if (element.name === 'a') {
return element.attributes.some((attr) => attr.name === 'href');
}
if (element.name === 'button') {
return true;
}
if (element.name === 'input') {
const typeValue = element.attributes.find((attr) => attr.name === 'type');
if (typeValue) {
return interactiveInputTypes.has((typeValue.get_static_value() || '').toString());
}
return false;
}
if (element.name === 'option') {
return element.attributes.some((attr) => attr.name === 'value');
}
if (element.name === 'dialog') {
return true;
}
return false;
};
Loading…
Cancel
Save