1 | let Prefixer = require('./prefixer')
|
2 |
|
3 | class AtRule extends Prefixer {
|
4 | |
5 |
|
6 |
|
7 | add(rule, prefix) {
|
8 | let prefixed = prefix + rule.name
|
9 |
|
10 | let already = rule.parent.some(
|
11 | i => i.name === prefixed && i.params === rule.params
|
12 | )
|
13 | if (already) {
|
14 | return undefined
|
15 | }
|
16 |
|
17 | let cloned = this.clone(rule, { name: prefixed })
|
18 | return rule.parent.insertBefore(rule, cloned)
|
19 | }
|
20 |
|
21 | |
22 |
|
23 |
|
24 | process(node) {
|
25 | let parent = this.parentPrefix(node)
|
26 |
|
27 | for (let prefix of this.prefixes) {
|
28 | if (!parent || parent === prefix) {
|
29 | this.add(node, prefix)
|
30 | }
|
31 | }
|
32 | }
|
33 | }
|
34 |
|
35 | module.exports = AtRule
|