source: node_modules/autoprefixer/lib/hacks/grid-end.js@ 505f39a

Last change on this file since 505f39a was 2058e5c, checked in by istevanoska <ilinastevanoska@…>, 6 months ago

Working / before login

  • Property mode set to 100644
File size: 1.3 KB
Line 
1let Declaration = require('../declaration')
2let { isPureNumber } = require('../utils')
3
4class GridEnd extends Declaration {
5 /**
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
50GridEnd.names = ['grid-row-end', 'grid-column-end']
51
52module.exports = GridEnd
Note: See TracBrowser for help on using the repository browser.