|
|
@@ -102,7 +102,6 @@ function rewriteSelector(
|
|
|
slotted = false,
|
|
|
) {
|
|
|
let node: selectorParser.Node | null = null
|
|
|
- let starNode: selectorParser.Node | null = null
|
|
|
let shouldInject = !deep
|
|
|
// find the last child node to insert attribute selector
|
|
|
selector.each(n => {
|
|
|
@@ -217,21 +216,17 @@ function rewriteSelector(
|
|
|
return false
|
|
|
}
|
|
|
}
|
|
|
- // store the universal selector so it can be rewritten later
|
|
|
- // .foo * -> .foo[xxxxxxx] [xxxxxxx]
|
|
|
- starNode = n
|
|
|
+ // .foo * -> .foo[xxxxxxx] *
|
|
|
+ if (node) return
|
|
|
}
|
|
|
|
|
|
if (
|
|
|
- (n.type !== 'pseudo' &&
|
|
|
- n.type !== 'combinator' &&
|
|
|
- n.type !== 'universal') ||
|
|
|
+ (n.type !== 'pseudo' && n.type !== 'combinator') ||
|
|
|
(n.type === 'pseudo' &&
|
|
|
(n.value === ':is' || n.value === ':where') &&
|
|
|
!node)
|
|
|
) {
|
|
|
node = n
|
|
|
- starNode = null
|
|
|
}
|
|
|
})
|
|
|
|
|
|
@@ -279,20 +274,6 @@ function rewriteSelector(
|
|
|
quoteMark: `"`,
|
|
|
}),
|
|
|
)
|
|
|
- // Used for trailing universal selectors (#12906)
|
|
|
- // `.foo * {}` -> `.foo[xxxxxxx] [xxxxxxx] {}`
|
|
|
- if (starNode) {
|
|
|
- selector.insertBefore(
|
|
|
- starNode,
|
|
|
- selectorParser.attribute({
|
|
|
- attribute: idToAdd,
|
|
|
- value: idToAdd,
|
|
|
- raws: {},
|
|
|
- quoteMark: `"`,
|
|
|
- }),
|
|
|
- )
|
|
|
- selector.removeChild(starNode)
|
|
|
- }
|
|
|
}
|
|
|
}
|
|
|
|