autoprefixer 9.8.7 → 10.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +999 -0
- package/README.md +0 -3
- package/bin/autoprefixer +11 -11
- package/data/prefixes.js +799 -545
- package/lib/at-rule.js +23 -50
- package/lib/autoprefixer.js +108 -97
- package/lib/brackets.js +31 -44
- package/lib/browsers.js +54 -71
- package/lib/declaration.js +122 -178
- package/lib/hacks/align-content.js +24 -54
- package/lib/hacks/align-items.js +23 -53
- package/lib/hacks/align-self.js +32 -60
- package/lib/hacks/animation.js +11 -29
- package/lib/hacks/appearance.js +19 -35
- package/lib/hacks/backdrop-filter.js +16 -31
- package/lib/hacks/background-clip.js +19 -36
- package/lib/hacks/background-size.js +16 -31
- package/lib/hacks/block-logical.js +28 -36
- package/lib/hacks/border-image.js +9 -27
- package/lib/hacks/border-radius.js +22 -44
- package/lib/hacks/break-props.js +38 -51
- package/lib/hacks/color-adjust.js +11 -30
- package/lib/hacks/cross-fade.js +29 -48
- package/lib/hacks/display-flex.js +32 -61
- package/lib/hacks/display-grid.js +12 -32
- package/lib/hacks/filter-value.js +8 -25
- package/lib/hacks/filter.js +13 -27
- package/lib/hacks/flex-basis.js +21 -54
- package/lib/hacks/flex-direction.js +41 -77
- package/lib/hacks/flex-flow.js +33 -61
- package/lib/hacks/flex-grow.js +16 -43
- package/lib/hacks/flex-shrink.js +21 -54
- package/lib/hacks/flex-spec.js +7 -10
- package/lib/hacks/flex-wrap.js +11 -32
- package/lib/hacks/flex.js +27 -58
- package/lib/hacks/fullscreen.js +10 -30
- package/lib/hacks/gradient.js +240 -330
- package/lib/hacks/grid-area.js +25 -43
- package/lib/hacks/grid-column-align.js +14 -34
- package/lib/hacks/grid-end.js +30 -45
- package/lib/hacks/grid-row-align.js +14 -34
- package/lib/hacks/grid-row-column.js +20 -39
- package/lib/hacks/grid-rows-columns.js +75 -99
- package/lib/hacks/grid-start.js +17 -39
- package/lib/hacks/grid-template-areas.js +59 -76
- package/lib/hacks/grid-template.js +40 -61
- package/lib/hacks/grid-utils.js +686 -716
- package/lib/hacks/image-rendering.js +24 -47
- package/lib/hacks/image-set.js +10 -30
- package/lib/hacks/inline-logical.js +26 -32
- package/lib/hacks/intrinsic.js +40 -53
- package/lib/hacks/justify-content.js +26 -57
- package/lib/hacks/mask-border.js +28 -36
- package/lib/hacks/mask-composite.js +41 -57
- package/lib/hacks/order.js +22 -52
- package/lib/hacks/overscroll-behavior.js +16 -37
- package/lib/hacks/pixelated.js +16 -40
- package/lib/hacks/place-self.js +18 -41
- package/lib/hacks/placeholder-shown.js +9 -28
- package/lib/hacks/placeholder.js +15 -38
- package/lib/hacks/text-decoration-skip-ink.js +14 -29
- package/lib/hacks/text-decoration.js +20 -31
- package/lib/hacks/text-emphasis-position.js +9 -28
- package/lib/hacks/transform-decl.js +43 -69
- package/lib/hacks/user-select.js +19 -27
- package/lib/hacks/writing-mode.js +19 -36
- package/lib/info.js +63 -93
- package/lib/old-selector.js +39 -60
- package/lib/old-value.js +17 -25
- package/lib/prefixer.js +83 -110
- package/lib/prefixes.js +233 -336
- package/lib/processor.js +420 -416
- package/lib/resolution.js +62 -98
- package/lib/selector.js +91 -139
- package/lib/supports.js +194 -246
- package/lib/transition.js +170 -265
- package/lib/utils.js +49 -72
- package/lib/value.js +77 -116
- package/lib/vendor.js +14 -0
- package/package.json +23 -12
package/lib/supports.js
CHANGED
|
@@ -1,346 +1,294 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
var Value = require('./value');
|
|
18
|
-
|
|
19
|
-
var utils = require('./utils');
|
|
20
|
-
|
|
21
|
-
var supported = [];
|
|
22
|
-
|
|
23
|
-
for (var browser in data.stats) {
|
|
24
|
-
var versions = data.stats[browser];
|
|
25
|
-
|
|
26
|
-
for (var version in versions) {
|
|
27
|
-
var support = versions[version];
|
|
28
|
-
|
|
1
|
+
let featureQueries = require('caniuse-lite/data/features/css-featurequeries.js')
|
|
2
|
+
let { feature } = require('caniuse-lite')
|
|
3
|
+
let { parse } = require('postcss')
|
|
4
|
+
|
|
5
|
+
let Browsers = require('./browsers')
|
|
6
|
+
let brackets = require('./brackets')
|
|
7
|
+
let Value = require('./value')
|
|
8
|
+
let utils = require('./utils')
|
|
9
|
+
|
|
10
|
+
let data = feature(featureQueries)
|
|
11
|
+
|
|
12
|
+
let supported = []
|
|
13
|
+
for (let browser in data.stats) {
|
|
14
|
+
let versions = data.stats[browser]
|
|
15
|
+
for (let version in versions) {
|
|
16
|
+
let support = versions[version]
|
|
29
17
|
if (/y/.test(support)) {
|
|
30
|
-
supported.push(browser + ' ' + version)
|
|
18
|
+
supported.push(browser + ' ' + version)
|
|
31
19
|
}
|
|
32
20
|
}
|
|
33
21
|
}
|
|
34
22
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
this.Prefixes = Prefixes
|
|
38
|
-
this.all = all
|
|
23
|
+
class Supports {
|
|
24
|
+
constructor (Prefixes, all) {
|
|
25
|
+
this.Prefixes = Prefixes
|
|
26
|
+
this.all = all
|
|
39
27
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Return prefixer only with @supports supported browsers
|
|
42
|
-
*/
|
|
43
|
-
|
|
44
28
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
29
|
+
/**
|
|
30
|
+
* Return prefixer only with @supports supported browsers
|
|
31
|
+
*/
|
|
32
|
+
prefixer () {
|
|
48
33
|
if (this.prefixerCache) {
|
|
49
|
-
return this.prefixerCache
|
|
34
|
+
return this.prefixerCache
|
|
50
35
|
}
|
|
51
36
|
|
|
52
|
-
|
|
53
|
-
return supported.includes(i)
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
37
|
+
let filtered = this.all.browsers.selected.filter(i => {
|
|
38
|
+
return supported.includes(i)
|
|
39
|
+
})
|
|
40
|
+
|
|
41
|
+
let browsers = new Browsers(
|
|
42
|
+
this.all.browsers.data,
|
|
43
|
+
filtered,
|
|
44
|
+
this.all.options
|
|
45
|
+
)
|
|
46
|
+
this.prefixerCache = new this.Prefixes(
|
|
47
|
+
this.all.data,
|
|
48
|
+
browsers,
|
|
49
|
+
this.all.options
|
|
50
|
+
)
|
|
51
|
+
return this.prefixerCache
|
|
58
52
|
}
|
|
53
|
+
|
|
59
54
|
/**
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
if (!value) value = '';
|
|
69
|
-
return [prop.trim(), value.trim()];
|
|
55
|
+
* Parse string into declaration property and value
|
|
56
|
+
*/
|
|
57
|
+
parse (str) {
|
|
58
|
+
let parts = str.split(':')
|
|
59
|
+
let prop = parts[0]
|
|
60
|
+
let value = parts[1]
|
|
61
|
+
if (!value) value = ''
|
|
62
|
+
return [prop.trim(), value.trim()]
|
|
70
63
|
}
|
|
64
|
+
|
|
71
65
|
/**
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
value = _this$parse[1];
|
|
80
|
-
|
|
81
|
-
var rule = postcss.parse('a{}').first;
|
|
82
|
-
rule.append({
|
|
83
|
-
prop: prop,
|
|
84
|
-
value: value,
|
|
85
|
-
raws: {
|
|
86
|
-
before: ''
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
return rule;
|
|
66
|
+
* Create virtual rule to process it by prefixer
|
|
67
|
+
*/
|
|
68
|
+
virtual (str) {
|
|
69
|
+
let [prop, value] = this.parse(str)
|
|
70
|
+
let rule = parse('a{}').first
|
|
71
|
+
rule.append({ prop, value, raws: { before: '' } })
|
|
72
|
+
return rule
|
|
90
73
|
}
|
|
91
|
-
/**
|
|
92
|
-
* Return array of Declaration with all necessary prefixes
|
|
93
|
-
*/
|
|
94
|
-
;
|
|
95
|
-
|
|
96
|
-
_proto.prefixed = function prefixed(str) {
|
|
97
|
-
var rule = this.virtual(str);
|
|
98
74
|
|
|
75
|
+
/**
|
|
76
|
+
* Return array of Declaration with all necessary prefixes
|
|
77
|
+
*/
|
|
78
|
+
prefixed (str) {
|
|
79
|
+
let rule = this.virtual(str)
|
|
99
80
|
if (this.disabled(rule.first)) {
|
|
100
|
-
return rule.nodes
|
|
81
|
+
return rule.nodes
|
|
101
82
|
}
|
|
102
83
|
|
|
103
|
-
|
|
104
|
-
warn: function warn() {
|
|
105
|
-
return null;
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
|
-
var prefixer = this.prefixer().add[rule.first.prop];
|
|
109
|
-
prefixer && prefixer.process && prefixer.process(rule.first, result);
|
|
84
|
+
let result = { warn: () => null }
|
|
110
85
|
|
|
111
|
-
|
|
112
|
-
|
|
86
|
+
let prefixer = this.prefixer().add[rule.first.prop]
|
|
87
|
+
prefixer && prefixer.process && prefixer.process(rule.first, result)
|
|
113
88
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
value.process(decl)
|
|
89
|
+
for (let decl of rule.nodes) {
|
|
90
|
+
for (let value of this.prefixer().values('add', rule.first.prop)) {
|
|
91
|
+
value.process(decl)
|
|
117
92
|
}
|
|
118
|
-
|
|
119
|
-
Value.save(this.all, decl);
|
|
93
|
+
Value.save(this.all, decl)
|
|
120
94
|
}
|
|
121
95
|
|
|
122
|
-
return rule.nodes
|
|
96
|
+
return rule.nodes
|
|
123
97
|
}
|
|
124
|
-
/**
|
|
125
|
-
* Return true if brackets node is "not" word
|
|
126
|
-
*/
|
|
127
|
-
;
|
|
128
98
|
|
|
129
|
-
_proto.isNot = function isNot(node) {
|
|
130
|
-
return typeof node === 'string' && /not\s*/i.test(node);
|
|
131
|
-
}
|
|
132
99
|
/**
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
_proto.isOr = function isOr(node) {
|
|
138
|
-
return typeof node === 'string' && /\s*or\s*/i.test(node);
|
|
100
|
+
* Return true if brackets node is "not" word
|
|
101
|
+
*/
|
|
102
|
+
isNot (node) {
|
|
103
|
+
return typeof node === 'string' && /not\s*/i.test(node)
|
|
139
104
|
}
|
|
140
|
-
/**
|
|
141
|
-
* Return true if brackets node is (prop: value)
|
|
142
|
-
*/
|
|
143
|
-
;
|
|
144
105
|
|
|
145
|
-
_proto.isProp = function isProp(node) {
|
|
146
|
-
return typeof node === 'object' && node.length === 1 && typeof node[0] === 'string';
|
|
147
|
-
}
|
|
148
106
|
/**
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
_proto.isHack = function isHack(all, unprefixed) {
|
|
154
|
-
var check = new RegExp("(\\(|\\s)" + utils.escapeRegexp(unprefixed) + ":");
|
|
155
|
-
return !check.test(all);
|
|
107
|
+
* Return true if brackets node is "or" word
|
|
108
|
+
*/
|
|
109
|
+
isOr (node) {
|
|
110
|
+
return typeof node === 'string' && /\s*or\s*/i.test(node)
|
|
156
111
|
}
|
|
157
|
-
/**
|
|
158
|
-
* Return true if we need to remove node
|
|
159
|
-
*/
|
|
160
|
-
;
|
|
161
112
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
113
|
+
/**
|
|
114
|
+
* Return true if brackets node is (prop: value)
|
|
115
|
+
*/
|
|
116
|
+
isProp (node) {
|
|
117
|
+
return (
|
|
118
|
+
typeof node === 'object' &&
|
|
119
|
+
node.length === 1 &&
|
|
120
|
+
typeof node[0] === 'string'
|
|
121
|
+
)
|
|
122
|
+
}
|
|
166
123
|
|
|
167
|
-
|
|
168
|
-
|
|
124
|
+
/**
|
|
125
|
+
* Return true if prefixed property has no unprefixed
|
|
126
|
+
*/
|
|
127
|
+
isHack (all, unprefixed) {
|
|
128
|
+
let check = new RegExp(`(\\(|\\s)${utils.escapeRegexp(unprefixed)}:`)
|
|
129
|
+
return !check.test(all)
|
|
130
|
+
}
|
|
169
131
|
|
|
170
|
-
|
|
171
|
-
|
|
132
|
+
/**
|
|
133
|
+
* Return true if we need to remove node
|
|
134
|
+
*/
|
|
135
|
+
toRemove (str, all) {
|
|
136
|
+
let [prop, value] = this.parse(str)
|
|
137
|
+
let unprefixed = this.all.unprefixed(prop)
|
|
138
|
+
|
|
139
|
+
let cleaner = this.all.cleaner()
|
|
140
|
+
|
|
141
|
+
if (
|
|
142
|
+
cleaner.remove[prop] &&
|
|
143
|
+
cleaner.remove[prop].remove &&
|
|
144
|
+
!this.isHack(all, unprefixed)
|
|
145
|
+
) {
|
|
146
|
+
return true
|
|
172
147
|
}
|
|
173
148
|
|
|
174
|
-
for (
|
|
175
|
-
var checker = _step3.value;
|
|
176
|
-
|
|
149
|
+
for (let checker of cleaner.values('remove', unprefixed)) {
|
|
177
150
|
if (checker.check(value)) {
|
|
178
|
-
return true
|
|
151
|
+
return true
|
|
179
152
|
}
|
|
180
153
|
}
|
|
181
154
|
|
|
182
|
-
return false
|
|
155
|
+
return false
|
|
183
156
|
}
|
|
184
|
-
/**
|
|
185
|
-
* Remove all unnecessary prefixes
|
|
186
|
-
*/
|
|
187
|
-
;
|
|
188
|
-
|
|
189
|
-
_proto.remove = function remove(nodes, all) {
|
|
190
|
-
var i = 0;
|
|
191
157
|
|
|
158
|
+
/**
|
|
159
|
+
* Remove all unnecessary prefixes
|
|
160
|
+
*/
|
|
161
|
+
remove (nodes, all) {
|
|
162
|
+
let i = 0
|
|
192
163
|
while (i < nodes.length) {
|
|
193
|
-
if (
|
|
164
|
+
if (
|
|
165
|
+
!this.isNot(nodes[i - 1]) &&
|
|
166
|
+
this.isProp(nodes[i]) &&
|
|
167
|
+
this.isOr(nodes[i + 1])
|
|
168
|
+
) {
|
|
194
169
|
if (this.toRemove(nodes[i][0], all)) {
|
|
195
|
-
nodes.splice(i, 2)
|
|
196
|
-
continue
|
|
170
|
+
nodes.splice(i, 2)
|
|
171
|
+
continue
|
|
197
172
|
}
|
|
198
173
|
|
|
199
|
-
i += 2
|
|
200
|
-
continue
|
|
174
|
+
i += 2
|
|
175
|
+
continue
|
|
201
176
|
}
|
|
202
177
|
|
|
203
178
|
if (typeof nodes[i] === 'object') {
|
|
204
|
-
nodes[i] = this.remove(nodes[i], all)
|
|
179
|
+
nodes[i] = this.remove(nodes[i], all)
|
|
205
180
|
}
|
|
206
181
|
|
|
207
|
-
i += 1
|
|
182
|
+
i += 1
|
|
208
183
|
}
|
|
209
|
-
|
|
210
|
-
return nodes;
|
|
184
|
+
return nodes
|
|
211
185
|
}
|
|
212
|
-
/**
|
|
213
|
-
* Clean brackets with one child
|
|
214
|
-
*/
|
|
215
|
-
;
|
|
216
|
-
|
|
217
|
-
_proto.cleanBrackets = function cleanBrackets(nodes) {
|
|
218
|
-
var _this = this;
|
|
219
186
|
|
|
220
|
-
|
|
187
|
+
/**
|
|
188
|
+
* Clean brackets with one child
|
|
189
|
+
*/
|
|
190
|
+
cleanBrackets (nodes) {
|
|
191
|
+
return nodes.map(i => {
|
|
221
192
|
if (typeof i !== 'object') {
|
|
222
|
-
return i
|
|
193
|
+
return i
|
|
223
194
|
}
|
|
224
195
|
|
|
225
196
|
if (i.length === 1 && typeof i[0] === 'object') {
|
|
226
|
-
return
|
|
197
|
+
return this.cleanBrackets(i[0])
|
|
227
198
|
}
|
|
228
199
|
|
|
229
|
-
return
|
|
230
|
-
})
|
|
200
|
+
return this.cleanBrackets(i)
|
|
201
|
+
})
|
|
231
202
|
}
|
|
232
|
-
/**
|
|
233
|
-
* Add " or " between properties and convert it to brackets format
|
|
234
|
-
*/
|
|
235
|
-
;
|
|
236
203
|
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
result.push(
|
|
204
|
+
/**
|
|
205
|
+
* Add " or " between properties and convert it to brackets format
|
|
206
|
+
*/
|
|
207
|
+
convert (progress) {
|
|
208
|
+
let result = ['']
|
|
209
|
+
for (let i of progress) {
|
|
210
|
+
result.push([`${i.prop}: ${i.value}`])
|
|
211
|
+
result.push(' or ')
|
|
244
212
|
}
|
|
245
|
-
|
|
246
|
-
result
|
|
247
|
-
return result;
|
|
213
|
+
result[result.length - 1] = ''
|
|
214
|
+
return result
|
|
248
215
|
}
|
|
249
|
-
/**
|
|
250
|
-
* Compress value functions into a string nodes
|
|
251
|
-
*/
|
|
252
|
-
;
|
|
253
|
-
|
|
254
|
-
_proto.normalize = function normalize(nodes) {
|
|
255
|
-
var _this2 = this;
|
|
256
216
|
|
|
217
|
+
/**
|
|
218
|
+
* Compress value functions into a string nodes
|
|
219
|
+
*/
|
|
220
|
+
normalize (nodes) {
|
|
257
221
|
if (typeof nodes !== 'object') {
|
|
258
|
-
return nodes
|
|
222
|
+
return nodes
|
|
259
223
|
}
|
|
260
224
|
|
|
261
|
-
nodes = nodes.filter(
|
|
262
|
-
return i !== '';
|
|
263
|
-
});
|
|
264
|
-
|
|
225
|
+
nodes = nodes.filter(i => i !== '')
|
|
265
226
|
if (typeof nodes[0] === 'string' && nodes[0].includes(':')) {
|
|
266
|
-
return [brackets.stringify(nodes)]
|
|
227
|
+
return [brackets.stringify(nodes)]
|
|
267
228
|
}
|
|
268
229
|
|
|
269
|
-
return nodes.map(
|
|
270
|
-
return _this2.normalize(i);
|
|
271
|
-
});
|
|
230
|
+
return nodes.map(i => this.normalize(i))
|
|
272
231
|
}
|
|
273
|
-
/**
|
|
274
|
-
* Add prefixes
|
|
275
|
-
*/
|
|
276
|
-
;
|
|
277
|
-
|
|
278
|
-
_proto.add = function add(nodes, all) {
|
|
279
|
-
var _this3 = this;
|
|
280
|
-
|
|
281
|
-
return nodes.map(function (i) {
|
|
282
|
-
if (_this3.isProp(i)) {
|
|
283
|
-
var prefixed = _this3.prefixed(i[0]);
|
|
284
232
|
|
|
233
|
+
/**
|
|
234
|
+
* Add prefixes
|
|
235
|
+
*/
|
|
236
|
+
add (nodes, all) {
|
|
237
|
+
return nodes.map(i => {
|
|
238
|
+
if (this.isProp(i)) {
|
|
239
|
+
let prefixed = this.prefixed(i[0])
|
|
285
240
|
if (prefixed.length > 1) {
|
|
286
|
-
return
|
|
241
|
+
return this.convert(prefixed)
|
|
287
242
|
}
|
|
288
243
|
|
|
289
|
-
return i
|
|
244
|
+
return i
|
|
290
245
|
}
|
|
291
246
|
|
|
292
247
|
if (typeof i === 'object') {
|
|
293
|
-
return
|
|
248
|
+
return this.add(i, all)
|
|
294
249
|
}
|
|
295
250
|
|
|
296
|
-
return i
|
|
297
|
-
})
|
|
251
|
+
return i
|
|
252
|
+
})
|
|
298
253
|
}
|
|
254
|
+
|
|
299
255
|
/**
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
ast = this.
|
|
307
|
-
ast = this.
|
|
308
|
-
|
|
309
|
-
ast = this.cleanBrackets(ast);
|
|
310
|
-
rule.params = brackets.stringify(ast);
|
|
256
|
+
* Add prefixed declaration
|
|
257
|
+
*/
|
|
258
|
+
process (rule) {
|
|
259
|
+
let ast = brackets.parse(rule.params)
|
|
260
|
+
ast = this.normalize(ast)
|
|
261
|
+
ast = this.remove(ast, rule.params)
|
|
262
|
+
ast = this.add(ast, rule.params)
|
|
263
|
+
ast = this.cleanBrackets(ast)
|
|
264
|
+
rule.params = brackets.stringify(ast)
|
|
311
265
|
}
|
|
312
|
-
/**
|
|
313
|
-
* Check global options
|
|
314
|
-
*/
|
|
315
|
-
;
|
|
316
266
|
|
|
317
|
-
|
|
267
|
+
/**
|
|
268
|
+
* Check global options
|
|
269
|
+
*/
|
|
270
|
+
disabled (node) {
|
|
318
271
|
if (!this.all.options.grid) {
|
|
319
272
|
if (node.prop === 'display' && node.value.includes('grid')) {
|
|
320
|
-
return true
|
|
273
|
+
return true
|
|
321
274
|
}
|
|
322
|
-
|
|
323
275
|
if (node.prop.includes('grid') || node.prop === 'justify-items') {
|
|
324
|
-
return true
|
|
276
|
+
return true
|
|
325
277
|
}
|
|
326
278
|
}
|
|
327
279
|
|
|
328
280
|
if (this.all.options.flexbox === false) {
|
|
329
281
|
if (node.prop === 'display' && node.value.includes('flex')) {
|
|
330
|
-
return true
|
|
282
|
+
return true
|
|
331
283
|
}
|
|
332
|
-
|
|
333
|
-
var other = ['order', 'justify-content', 'align-items', 'align-content'];
|
|
334
|
-
|
|
284
|
+
let other = ['order', 'justify-content', 'align-items', 'align-content']
|
|
335
285
|
if (node.prop.includes('flex') || other.includes(node.prop)) {
|
|
336
|
-
return true
|
|
286
|
+
return true
|
|
337
287
|
}
|
|
338
288
|
}
|
|
339
289
|
|
|
340
|
-
return false
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
return Supports;
|
|
344
|
-
}();
|
|
290
|
+
return false
|
|
291
|
+
}
|
|
292
|
+
}
|
|
345
293
|
|
|
346
|
-
module.exports = Supports
|
|
294
|
+
module.exports = Supports
|