1- 'use strict'
2-
3- var has = require ( 'hast-util-has-property' )
4-
5- module . exports = interactive
1+ import { hasProperty } from 'hast-util-has-property'
62
73// Always interactive nodes.
8- var alwaysInteractive = [
4+ var alwaysInteractive = new Set ( [
95 'button' ,
106 'details' ,
117 'embed' ,
@@ -14,9 +10,9 @@ var alwaysInteractive = [
1410 'label' ,
1511 'select' ,
1612 'textarea'
17- ]
13+ ] )
1814
19- function interactive ( node ) {
15+ export function interactive ( node ) {
2016 var name
2117
2218 if ( ! node || typeof node !== 'object' || node . type !== 'element' ) {
@@ -26,13 +22,13 @@ function interactive(node) {
2622 name = node . tagName
2723
2824 return (
29- ( name === 'a' && has ( node , 'href' ) ) ||
30- ( name === 'audio' && has ( node , 'controls' ) ) ||
31- ( name === 'video' && has ( node , 'controls' ) ) ||
32- ( name === 'object' && has ( node , 'useMap' ) ) ||
33- ( name === 'img' && has ( node , 'useMap' ) ) ||
25+ ( name === 'a' && hasProperty ( node , 'href' ) ) ||
26+ ( name === 'audio' && hasProperty ( node , 'controls' ) ) ||
27+ ( name === 'video' && hasProperty ( node , 'controls' ) ) ||
28+ ( name === 'object' && hasProperty ( node , 'useMap' ) ) ||
29+ ( name === 'img' && hasProperty ( node , 'useMap' ) ) ||
3430 ( name === 'input' && ( node . properties || { } ) . type !== 'hidden' ) ||
35- has ( node , 'tabIndex' ) ||
36- alwaysInteractive . indexOf ( name ) !== - 1
31+ hasProperty ( node , 'tabIndex' ) ||
32+ alwaysInteractive . has ( name )
3733 )
3834}
0 commit comments