"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const Match_1 = require("./Match");
class Matcher {
/**
* @param [keySelectorOnly=true] When false, this selector can match against
* any compound selector in the parsed selector.
*/
matchSelector(selectable, parsedSelector, keySelectorOnly) {
let matched = parsedSelector.eachCompoundSelector((selector) => {
if (selector !== parsedSelector.key && keySelectorOnly)
return;
let match = this.matchSelectorComponent(selectable, selector);
if (Match_1.matches(match))
return match;
return;
});
return matched || Match_1.Match.no;
}
}
exports.Matcher = Matcher;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9NYXRjaC9NYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBT0EsbUNBQXlDO0FBTXpDO0lBRUU7OztPQUdHO0lBQ0gsYUFBYSxDQUFDLFVBQWdCLEVBQUUsY0FBOEIsRUFBRSxlQUF3QjtRQUN0RixJQUFJLE9BQU8sR0FBRyxjQUFjLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUM3RCxJQUFJLFFBQVEsS0FBSyxjQUFjLENBQUMsR0FBRyxJQUFJLGVBQWU7Z0JBQUUsT0FBTztZQUMvRCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlELElBQUksZUFBTyxDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPLEtBQUssQ0FBQztZQUNqQyxPQUFPO1FBQ1QsQ0FBQyxDQUFDLENBQUM7UUFDSCxPQUFPLE9BQU8sSUFBSSxhQUFLLENBQUMsRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FNRjtBQXBCRCwwQkFvQkMifQ== |