mostly-dom
Version:
A virtual-dom for TypeScript
21 lines • 949 B
JavaScript
import { parseSelector } from '../parseSelector';
export function matchBasicCssSelector(cssSelector, vNode) {
var hasTagName = cssSelector[0] !== '#' && cssSelector[0] !== '.';
var _a = hasTagName ?
parseSelector(cssSelector) :
parseSelector(vNode.tagName + cssSelector), tagName = _a.tagName, className = _a.className, id = _a.id;
if (tagName !== vNode.tagName)
return false;
var parsedClassNames = className && className.split(' ') || [];
var _b = vNode.props, _c = _b.className, propsClassName = _c === void 0 ? '' : _c, propsId = _b.id;
var vNodeClassNames = propsClassName.split(' ');
for (var i = 0; i < parsedClassNames.length; ++i) {
var parsedClassName = parsedClassNames[i];
if (vNodeClassNames.indexOf(parsedClassName) === -1)
return false;
}
if (id)
return propsId === id;
return true;
}
//# sourceMappingURL=matchBasicCssSelector.js.map