Spaces:
Configuration error
Configuration error
import { parse } from "css-what"; | |
import { filters } from "./filters.js"; | |
import { pseudos, verifyPseudoArgs } from "./pseudos.js"; | |
import { aliases } from "./aliases.js"; | |
import { subselects } from "./subselects.js"; | |
export { filters, pseudos, aliases }; | |
export function compilePseudoSelector(next, selector, options, context, compileToken) { | |
var _a; | |
const { name, data } = selector; | |
if (Array.isArray(data)) { | |
if (!(name in subselects)) { | |
throw new Error(`Unknown pseudo-class :${name}(${data})`); | |
} | |
return subselects[name](next, data, options, context, compileToken); | |
} | |
const userPseudo = (_a = options.pseudos) === null || _a === void 0 ? void 0 : _a[name]; | |
const stringPseudo = typeof userPseudo === "string" ? userPseudo : aliases[name]; | |
if (typeof stringPseudo === "string") { | |
if (data != null) { | |
throw new Error(`Pseudo ${name} doesn't have any arguments`); | |
} | |
// The alias has to be parsed here, to make sure options are respected. | |
const alias = parse(stringPseudo); | |
return subselects["is"](next, alias, options, context, compileToken); | |
} | |
if (typeof userPseudo === "function") { | |
verifyPseudoArgs(userPseudo, name, data, 1); | |
return (elem) => userPseudo(elem, data) && next(elem); | |
} | |
if (name in filters) { | |
return filters[name](next, data, options, context); | |
} | |
if (name in pseudos) { | |
const pseudo = pseudos[name]; | |
verifyPseudoArgs(pseudo, name, data, 2); | |
return (elem) => pseudo(elem, options, data) && next(elem); | |
} | |
throw new Error(`Unknown pseudo-class :${name}`); | |
} | |
//# sourceMappingURL=index.js.map |