Files
NapCatQQ/.pnpm-store/v3/files/db/ce53b1d66ef5bdccd60bf4b53fa550d7dee37324d79f6661d03736d633d015a517285c8cff0da2197535a3fad481f5472db6f7e9e5dd37535ae64d86364af9
T
TanTan e311ca3275
Build NapCat Artifacts / Type Check & Test (push) Waiting to run
docs: 仓库链接指向本镜像仓库
2026-11-13 09:25:58 +08:00

74 lines
2.7 KiB
Plaintext

import { sortModifiers, IMPORTANT_MODIFIER } from './modifier-utils.mjs';
var SPLIT_CLASSES_REGEX = /\s+/;
function mergeClassList(classList, configUtils) {
var splitModifiers = configUtils.splitModifiers,
getClassGroupId = configUtils.getClassGroupId,
getConflictingClassGroupIds = configUtils.getConflictingClassGroupIds;
/**
* Set of classGroupIds in following format:
* `{importantModifier}{variantModifiers}{classGroupId}`
* @example 'float'
* @example 'hover:focus:bg-color'
* @example 'md:!pr'
*/
var classGroupsInConflict = new Set();
return classList.trim().split(SPLIT_CLASSES_REGEX).map(function (originalClassName) {
var _splitModifiers = splitModifiers(originalClassName),
modifiers = _splitModifiers.modifiers,
hasImportantModifier = _splitModifiers.hasImportantModifier,
baseClassName = _splitModifiers.baseClassName,
maybePostfixModifierPosition = _splitModifiers.maybePostfixModifierPosition;
var classGroupId = getClassGroupId(maybePostfixModifierPosition ? baseClassName.substring(0, maybePostfixModifierPosition) : baseClassName);
var hasPostfixModifier = Boolean(maybePostfixModifierPosition);
if (!classGroupId) {
if (!maybePostfixModifierPosition) {
return {
isTailwindClass: false,
originalClassName: originalClassName
};
}
classGroupId = getClassGroupId(baseClassName);
if (!classGroupId) {
return {
isTailwindClass: false,
originalClassName: originalClassName
};
}
hasPostfixModifier = false;
}
var variantModifier = sortModifiers(modifiers).join(':');
var modifierId = hasImportantModifier ? variantModifier + IMPORTANT_MODIFIER : variantModifier;
return {
isTailwindClass: true,
modifierId: modifierId,
classGroupId: classGroupId,
originalClassName: originalClassName,
hasPostfixModifier: hasPostfixModifier
};
}).reverse()
// Last class in conflict wins, so we need to filter conflicting classes in reverse order.
.filter(function (parsed) {
if (!parsed.isTailwindClass) {
return true;
}
var modifierId = parsed.modifierId,
classGroupId = parsed.classGroupId,
hasPostfixModifier = parsed.hasPostfixModifier;
var classId = modifierId + classGroupId;
if (classGroupsInConflict.has(classId)) {
return false;
}
classGroupsInConflict.add(classId);
getConflictingClassGroupIds(classGroupId, hasPostfixModifier).forEach(function (group) {
return classGroupsInConflict.add(modifierId + group);
});
return true;
}).reverse().map(function (parsed) {
return parsed.originalClassName;
}).join(' ');
}
export { mergeClassList };
//# sourceMappingURL=merge-classlist.mjs.map