UNPKG

mostly-dom

Version:
21 lines 1.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var matchAttribute_1 = require("./matchAttribute"); var matchBasicCssSelector_1 = require("./matchBasicCssSelector"); var matchPsuedoSelector_1 = require("./matchPsuedoSelector"); var EMPTY = Object.freeze({}); 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_1.matchAttribute(cssSelector.slice(1, -1), vNode.props.attrs || EMPTY); if (cssSelector.indexOf(':') > -1) return matchPsuedoSelector_1.matchPsuedoSelector(cssSelector, vNode); if (cssSelector.indexOf(' ') > -1) throw new Error('Basic CSS selectors can not contain spaces'); return matchBasicCssSelector_1.matchBasicCssSelector(cssSelector, vNode); } exports.matchesSelector = matchesSelector; //# sourceMappingURL=matchesSelector.js.map