* Change repeating syntax for IE
(decl, prefix, prefixes, result)
| 6 | * Change repeating syntax for IE |
| 7 | */ |
| 8 | insert(decl, prefix, prefixes, result) { |
| 9 | if (prefix !== '-ms-') return super.insert(decl, prefix, prefixes) |
| 10 | |
| 11 | let clonedDecl = this.clone(decl) |
| 12 | |
| 13 | let startProp = decl.prop.replace(/end$/, 'start') |
| 14 | let spanProp = prefix + decl.prop.replace(/end$/, 'span') |
| 15 | |
| 16 | if (decl.parent.some(i => i.prop === spanProp)) { |
| 17 | return undefined |
| 18 | } |
| 19 | |
| 20 | clonedDecl.prop = spanProp |
| 21 | |
| 22 | if (decl.value.includes('span')) { |
| 23 | clonedDecl.value = decl.value.replace(/span\s/i, '') |
| 24 | } else { |
| 25 | let startDecl |
| 26 | decl.parent.walkDecls(startProp, d => { |
| 27 | startDecl = d |
| 28 | }) |
| 29 | if (startDecl) { |
| 30 | if (isPureNumber(startDecl.value)) { |
| 31 | let value = Number(decl.value) - Number(startDecl.value) + '' |
| 32 | clonedDecl.value = value |
| 33 | } else { |
| 34 | return undefined |
| 35 | } |
| 36 | } else { |
| 37 | decl.warn( |
| 38 | result, |
| 39 | `Can not prefix ${decl.prop} (${startProp} is not found)` |
| 40 | ) |
| 41 | } |
| 42 | } |
| 43 | |
| 44 | decl.cloneBefore(clonedDecl) |
| 45 | |
| 46 | return undefined |
| 47 | } |
| 48 | } |
| 49 | |
| 50 | GridEnd.names = ['grid-row-end', 'grid-column-end'] |
nothing calls this directly
no test coverage detected