* Clone decl for each prefixed values
(prefixes, decl)
| 8 | * Clone decl for each prefixed values |
| 9 | */ |
| 10 | static save(prefixes, decl) { |
| 11 | let prop = decl.prop |
| 12 | let result = [] |
| 13 | |
| 14 | for (let prefix in decl._autoprefixerValues) { |
| 15 | let value = decl._autoprefixerValues[prefix] |
| 16 | |
| 17 | if (value === decl.value) { |
| 18 | continue |
| 19 | } |
| 20 | |
| 21 | let item |
| 22 | let propPrefix = vendor.prefix(prop) |
| 23 | |
| 24 | if (propPrefix === '-pie-') { |
| 25 | continue |
| 26 | } |
| 27 | |
| 28 | if (propPrefix === prefix) { |
| 29 | item = decl.value = value |
| 30 | result.push(item) |
| 31 | continue |
| 32 | } |
| 33 | |
| 34 | let prefixed = prefixes.prefixed(prop, prefix) |
| 35 | let rule = decl.parent |
| 36 | |
| 37 | if (!rule.every(i => i.prop !== prefixed)) { |
| 38 | result.push(item) |
| 39 | continue |
| 40 | } |
| 41 | |
| 42 | let trimmed = value.replace(/\s+/, ' ') |
| 43 | let already = rule.some( |
| 44 | i => i.prop === decl.prop && i.value.replace(/\s+/, ' ') === trimmed |
| 45 | ) |
| 46 | |
| 47 | if (already) { |
| 48 | result.push(item) |
| 49 | continue |
| 50 | } |
| 51 | |
| 52 | let cloned = this.clone(decl, { value }) |
| 53 | item = decl.parent.insertBefore(decl, cloned) |
| 54 | |
| 55 | result.push(item) |
| 56 | } |
| 57 | |
| 58 | return result |
| 59 | } |
| 60 | |
| 61 | /** |
| 62 | * Save values with next prefixed token |