diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:10:59 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2026-05-18 23:41:44 +0800 |
| commit | fc87c009806dcc98867f6b58efe29b042aa01dee (patch) | |
| tree | 8f59b3f4a5b66e9dfef2d40c8d318e258a521228 /node_modules/csso/cjs/restructure/prepare/processSelector.cjs | |
| parent | 3336b2356ee6152d9c6ae59bd9b87ccbc0958407 (diff) | |
node: updatemain
Diffstat (limited to 'node_modules/csso/cjs/restructure/prepare/processSelector.cjs')
| -rw-r--r-- | node_modules/csso/cjs/restructure/prepare/processSelector.cjs | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/node_modules/csso/cjs/restructure/prepare/processSelector.cjs b/node_modules/csso/cjs/restructure/prepare/processSelector.cjs deleted file mode 100644 index 5c9e1d21..00000000 --- a/node_modules/csso/cjs/restructure/prepare/processSelector.cjs +++ /dev/null @@ -1,101 +0,0 @@ -'use strict'; - -const cssTree = require('css-tree'); -const specificity = require('./specificity.cjs'); - -const nonFreezePseudoElements = new Set([ - 'first-letter', - 'first-line', - 'after', - 'before' -]); -const nonFreezePseudoClasses = new Set([ - 'link', - 'visited', - 'hover', - 'active', - 'first-letter', - 'first-line', - 'after', - 'before' -]); - -function processSelector(node, usageData) { - const pseudos = new Set(); - - node.prelude.children.forEach(function(simpleSelector) { - let tagName = '*'; - let scope = 0; - - simpleSelector.children.forEach(function(node) { - switch (node.type) { - case 'ClassSelector': - if (usageData && usageData.scopes) { - const classScope = usageData.scopes[node.name] || 0; - - if (scope !== 0 && classScope !== scope) { - throw new Error('Selector can\'t has classes from different scopes: ' + cssTree.generate(simpleSelector)); - } - - scope = classScope; - } - - break; - - case 'PseudoClassSelector': { - const name = node.name.toLowerCase(); - - if (!nonFreezePseudoClasses.has(name)) { - pseudos.add(`:${name}`); - } - - break; - } - - case 'PseudoElementSelector': { - const name = node.name.toLowerCase(); - - if (!nonFreezePseudoElements.has(name)) { - pseudos.add(`::${name}`); - } - - break; - } - - case 'TypeSelector': - tagName = node.name.toLowerCase(); - break; - - case 'AttributeSelector': - if (node.flags) { - pseudos.add(`[${node.flags.toLowerCase()}]`); - } - - break; - - case 'Combinator': - tagName = '*'; - break; - } - }); - - simpleSelector.compareMarker = specificity(simpleSelector).toString(); - simpleSelector.id = null; // pre-init property to avoid multiple hidden class - simpleSelector.id = cssTree.generate(simpleSelector); - - if (scope) { - simpleSelector.compareMarker += ':' + scope; - } - - if (tagName !== '*') { - simpleSelector.compareMarker += ',' + tagName; - } - }); - - // add property to all rule nodes to avoid multiple hidden class - node.pseudoSignature = pseudos.size > 0 - ? [...pseudos].sort().join(',') - : false; -} - -module.exports = processSelector; |
