@haiku/player
Version:
Haiku Player is a JavaScript library for building user interfaces
33 lines • 1.34 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var attrSelectorParser_1 = require("./attrSelectorParser");
var cssMatchByAttribute_1 = require("./cssMatchByAttribute");
var cssMatchByClass_1 = require("./cssMatchByClass");
var cssMatchByHaiku_1 = require("./cssMatchByHaiku");
var cssMatchById_1 = require("./cssMatchById");
var cssMatchByTagName_1 = require("./cssMatchByTagName");
var ID_PREFIX = '#';
var CLASS_PREFIX = '.';
var ATTR_PREFIX = '[';
var HAIKU_PREFIX = 'haiku:';
function matchOne(node, piece, options) {
if (piece.slice(0, 6) === HAIKU_PREFIX) {
return cssMatchByHaiku_1.default(node, piece.slice(6), options);
}
if (piece[0] === ID_PREFIX) {
return cssMatchById_1.default(node, piece.slice(1, piece.length), options);
}
if (piece[0] === CLASS_PREFIX) {
return cssMatchByClass_1.default(node, piece.slice(1, piece.length), options);
}
if (piece[0] === ATTR_PREFIX) {
var parsedAttr = attrSelectorParser_1.default(piece);
if (!parsedAttr) {
return false;
}
return cssMatchByAttribute_1.default(node, parsedAttr.key, parsedAttr.operator, parsedAttr.value, options);
}
return cssMatchByTagName_1.default(node, piece, options);
}
exports.default = matchOne;
//# sourceMappingURL=cssMatchOne.js.map