mirror of
https://github.com/sern-handler/website
synced 2026-06-26 17:52:22 +00:00
27 lines
625 B
JavaScript
27 lines
625 B
JavaScript
/**
|
|
* @typedef {import('css-selector-parser').AstClassName} AstClassName
|
|
* @typedef {import('hast').Element} Element
|
|
*/
|
|
|
|
/** @type {Array<never>} */
|
|
const emptyClassNames = []
|
|
|
|
/**
|
|
* Check whether an element has all class names.
|
|
*
|
|
* @param {AstClassName} query
|
|
* AST rule (with `classNames`).
|
|
* @param {Element} element
|
|
* Element.
|
|
* @returns {boolean}
|
|
* Whether `element` matches `query`.
|
|
*/
|
|
export function className(query, element) {
|
|
// Assume array.
|
|
const value = /** @type {Readonly<Array<string>>} */ (
|
|
element.properties.className || emptyClassNames
|
|
)
|
|
|
|
return value.includes(query.name)
|
|
}
|