10
10
export function applyCssPrefixes ( target ) {
11
11
for ( let key in target ) {
12
12
13
- let value = target [ key ] ;
13
+ let value = target [ key ] || "" ;
14
+ let boxValue = toBoxValue ( value ) ;
15
+ let boxDirection = toBoxDirection ( value ) ;
16
+ let boxOrient = toBoxOrient ( value ) ;
14
17
15
18
switch ( key ) {
16
19
case 'display' :
17
20
if ( value === 'flex' ) {
18
21
target [ 'display' ] = [
19
22
'-webkit-box' ,
20
- '-moz-box' ,
21
23
'-ms-flexbox' ,
22
- '-webkit-flex' ,
23
24
'flex'
24
25
] ;
25
26
} else if ( value === 'inline-flex' ) {
26
27
target [ 'display' ] = [
27
28
'-webkit-inline-box' ,
28
- '-moz-inline-box' ,
29
29
'-ms-inline-flexbox' ,
30
- '-webkit-inline-flex' ,
31
30
'inline-flex'
32
31
] ;
33
32
} else {
@@ -37,77 +36,72 @@ export function applyCssPrefixes(target) {
37
36
38
37
case 'flex' :
39
38
target [ '-ms-flex' ] = value ;
40
- target [ '-webkit-flex' ] = value ;
41
39
target [ '-webkit-box-flex' ] = value . split ( " " ) [ 0 ] ;
42
- target [ '-moz-box-flex' ] = value . split ( " " ) [ 0 ] ;
43
40
break ;
44
41
45
42
case 'flex-direction' :
46
43
value = value || "row" ;
47
- target [ 'flex-direction' ] = value ;
44
+ target [ '-webkit-box-orient' ] = boxOrient ;
45
+ target [ '-webkit-box-direction' ] = boxDirection ;
48
46
target [ '-ms-flex-direction' ] = value ;
49
- target [ '-webkit-flex-direction' ] = value ;
50
- target [ '-webkit-box-orient' ] = toBoxOrient ( value ) ;
51
- target [ '-moz-box-orient' ] = toBoxOrient ( value ) ;
52
- target [ '-webkit-box-direction' ] = toBoxDirection ( value ) ;
53
- target [ '-moz-box-direction' ] = toBoxDirection ( value ) ;
47
+ target [ 'flex-direction' ] = value ;
54
48
break ;
55
49
56
50
case 'flex-wrap' :
57
51
target [ '-ms-flex-wrap' ] = value ;
58
- target [ '-webkit-flex-wrap' ] = value ;
59
52
break ;
60
53
61
54
case 'flex-grow' :
62
- target [ '-webkit-flex-grow' ] = value ;
55
+ target [ '-webkit-box-flex' ] = value ;
56
+ target [ '-ms-flex-positive' ] = value ;
63
57
break ;
64
58
65
59
case 'flex-shrink' :
66
- target [ '-webkit -flex-shrink ' ] = value ;
60
+ target [ '-ms -flex-negative ' ] = value ;
67
61
break ;
68
62
69
63
case 'flex-basis' :
70
- target [ '-webkit -flex-basis ' ] = value ;
64
+ target [ '-ms -flex-preferred-size ' ] = value ;
71
65
break ;
72
66
73
67
case 'flex-flow' :
74
- target [ '-webkit-flex-flow' ] = value ;
68
+ target [ '-ms-flex-flow' ] = value ;
69
+ target [ '-webkit-box-orient' ] = boxOrient ;
70
+ target [ '-webkit-box-direction' ] = boxDirection ;
71
+ target [ '-ms-flex-flow' ] = value ;
72
+
75
73
break ;
76
74
77
75
case 'order' :
78
76
if ( isNaN ( value ) ) {
79
77
value = "0" ;
80
78
}
81
- target [ 'order' ] = value ;
82
- target [ '-webkit-order' ] = value ;
83
79
target [ '-ms-flex-order' ] = value ;
84
- target [ '-moz-box-ordinal-group' ] = toBoxOrdinal ( value ) ;
85
80
target [ '-webkit-box-ordinal-group' ] = toBoxOrdinal ( value ) ;
81
+ target [ 'order' ] = value ;
86
82
break ;
87
83
88
84
case 'justify-content' :
89
- target [ '-ms-flex-pack' ] = toBoxValue ( value ) ;
90
- target [ '-webkit-box-pack' ] = toBoxValue ( value ) ;
91
- target [ '-moz-box-pack' ] = toBoxValue ( value ) ;
92
- target [ '-webkit-justify-content' ] = value ;
85
+ target [ '-ms-flex-pack' ] = boxValue ;
86
+ target [ '-webkit-box-pack' ] = boxValue ;
87
+ target [ key ] = value ;
93
88
break ;
94
89
95
90
case 'align-items' :
96
- target [ '-ms-flex-align' ] = toBoxValue ( value ) ;
97
- target [ '-webkit-box-align' ] = toBoxValue ( value ) ;
98
- target [ '-moz-box-align' ] = toBoxValue ( value ) ;
99
- target [ '-webkit-align-items' ] = toBoxValue ( value ) ;
91
+ target [ '-ms-flex-align' ] = boxValue ;
92
+ target [ '-webkit-box-align' ] = boxValue ;
93
+ target [ key ] = value ;
100
94
break ;
101
95
102
96
case 'align-self' :
103
- target [ '-ms-flex-item-align' ] = toBoxValue ( value ) ;
104
97
target [ '-webkit-align-self' ] = value ;
98
+ target [ '-ms-flex-item-align' ] = boxValue ;
99
+ target [ key ] = value ;
105
100
break ;
106
101
107
102
case 'align-content' :
108
- target [ '-ms-align-content' ] = toAlignContentValue ( value ) ;
109
103
target [ '-ms-flex-line-pack' ] = toAlignContentValue ( value ) ;
110
- target [ '-webkit-align-content' ] = value ;
104
+ target [ key ] = value ;
111
105
break ;
112
106
}
113
107
}
@@ -137,7 +131,6 @@ export function toBoxOrient(flexDirection = 'row') {
137
131
138
132
/** Convert flex Direction to Box direction type */
139
133
export function toBoxDirection ( flexDirection = 'row' ) {
140
-
141
134
return flexDirection . indexOf ( 'reverse' ) !== - 1 ? 'reverse' : 'normal' ;
142
135
}
143
136
0 commit comments