fdsfd
This commit is contained in:
parent
628618df89
commit
e031240dff
3749 changed files with 1120848 additions and 1 deletions
67
node_modules/autoprefixer/lib/old-selector.js
generated
vendored
Normal file
67
node_modules/autoprefixer/lib/old-selector.js
generated
vendored
Normal file
|
@ -0,0 +1,67 @@
|
|||
class OldSelector {
|
||||
constructor(selector, prefix) {
|
||||
this.prefix = prefix
|
||||
this.prefixed = selector.prefixed(this.prefix)
|
||||
this.regexp = selector.regexp(this.prefix)
|
||||
|
||||
this.prefixeds = selector
|
||||
.possible()
|
||||
.map(x => [selector.prefixed(x), selector.regexp(x)])
|
||||
|
||||
this.unprefixed = selector.name
|
||||
this.nameRegexp = selector.regexp()
|
||||
}
|
||||
|
||||
/**
|
||||
* Is rule a hack without unprefixed version bottom
|
||||
*/
|
||||
isHack(rule) {
|
||||
let index = rule.parent.index(rule) + 1
|
||||
let rules = rule.parent.nodes
|
||||
|
||||
while (index < rules.length) {
|
||||
let before = rules[index].selector
|
||||
if (!before) {
|
||||
return true
|
||||
}
|
||||
|
||||
if (before.includes(this.unprefixed) && before.match(this.nameRegexp)) {
|
||||
return false
|
||||
}
|
||||
|
||||
let some = false
|
||||
for (let [string, regexp] of this.prefixeds) {
|
||||
if (before.includes(string) && before.match(regexp)) {
|
||||
some = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if (!some) {
|
||||
return true
|
||||
}
|
||||
|
||||
index += 1
|
||||
}
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
/**
|
||||
* Does rule contain an unnecessary prefixed selector
|
||||
*/
|
||||
check(rule) {
|
||||
if (!rule.selector.includes(this.prefixed)) {
|
||||
return false
|
||||
}
|
||||
if (!rule.selector.match(this.regexp)) {
|
||||
return false
|
||||
}
|
||||
if (this.isHack(rule)) {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = OldSelector
|
Loading…
Add table
Add a link
Reference in a new issue