; | |
Object.defineProperty(exports, "__esModule", { | |
value: true | |
}); | |
Object.defineProperty(exports, /** | |
* @template {string | import('postcss-selector-parser').Root} T | |
* | |
* Prefix all classes in the selector with the given prefix | |
* | |
* It can take either a string or a selector AST and will return the same type | |
* | |
* @param {string} prefix | |
* @param {T} selector | |
* @param {boolean} prependNegative | |
* @returns {T} | |
*/ "default", { | |
enumerable: true, | |
get: function() { | |
return _default; | |
} | |
}); | |
const _postcssselectorparser = /*#__PURE__*/ _interop_require_default(require("postcss-selector-parser")); | |
function _interop_require_default(obj) { | |
return obj && obj.__esModule ? obj : { | |
default: obj | |
}; | |
} | |
function _default(prefix, selector, prependNegative = false) { | |
if (prefix === "") { | |
return selector; | |
} | |
/** @type {import('postcss-selector-parser').Root} */ let ast = typeof selector === "string" ? (0, _postcssselectorparser.default)().astSync(selector) : selector; | |
ast.walkClasses((classSelector)=>{ | |
let baseClass = classSelector.value; | |
let shouldPlaceNegativeBeforePrefix = prependNegative && baseClass.startsWith("-"); | |
classSelector.value = shouldPlaceNegativeBeforePrefix ? `-${prefix}${baseClass.slice(1)}` : `${prefix}${baseClass}`; | |
}); | |
return typeof selector === "string" ? ast.toString() : ast; | |
} | |