UNPKG

mostly-dom

Version:
18 lines 939 B
import { matchAttribute } from './matchAttribute'; import { matchBasicCssSelector } from './matchBasicCssSelector'; import { matchPsuedoSelector } from './matchPsuedoSelector'; var EMPTY = Object.freeze({}); export function matchesSelector(cssSelector, vNode) { cssSelector = cssSelector.trim(); // if working with an ElementVNode return use native implementation if (vNode.element && vNode.element.matches) return vNode.element.matches(cssSelector); if (cssSelector[0] === '[' && cssSelector[cssSelector.length - 1] === ']') return matchAttribute(cssSelector.slice(1, -1), vNode.props.attrs || EMPTY); if (cssSelector.indexOf(':') > -1) return matchPsuedoSelector(cssSelector, vNode); if (cssSelector.indexOf(' ') > -1) throw new Error('Basic CSS selectors can not contain spaces'); return matchBasicCssSelector(cssSelector, vNode); } //# sourceMappingURL=matchesSelector.js.map