UNPKG

702 BJavaScriptView Raw
1let Prefixer = require('./prefixer')
2
3class AtRule extends Prefixer {
4 /**
5 * Clone and add prefixes for at-rule
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 * Clone node with prefixes
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
35module.exports = AtRule