autoprefixer 6.7.6 → 7.1.0
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/AUTHORS +1 -0
- package/CHANGELOG.md +23 -0
- package/README.md +10 -16
- package/data/prefixes.js +551 -517
- package/lib/at-rule.js +55 -38
- package/lib/autoprefixer.js +89 -63
- package/lib/brackets.js +59 -39
- package/lib/browsers.js +102 -65
- package/lib/declaration.js +212 -121
- package/lib/hacks/align-content.js +65 -38
- package/lib/hacks/align-items.js +62 -38
- package/lib/hacks/align-self.js +63 -36
- package/lib/hacks/appearance.js +42 -0
- package/lib/hacks/background-size.js +29 -20
- package/lib/hacks/block-logical.js +36 -21
- package/lib/hacks/border-image.js +26 -16
- package/lib/hacks/border-radius.js +60 -39
- package/lib/hacks/break-props.js +69 -44
- package/lib/hacks/cross-fade.js +40 -37
- package/lib/hacks/display-flex.js +81 -31
- package/lib/hacks/display-grid.js +29 -19
- package/lib/hacks/filter-value.js +66 -45
- package/lib/hacks/filter.js +26 -17
- package/lib/hacks/flex-basis.js +60 -30
- package/lib/hacks/flex-direction.js +85 -53
- package/lib/hacks/flex-flow.js +67 -49
- package/lib/hacks/flex-grow.js +45 -26
- package/lib/hacks/flex-shrink.js +60 -30
- package/lib/hacks/flex-spec.js +18 -8
- package/lib/hacks/flex-values.js +39 -20
- package/lib/hacks/flex-wrap.js +29 -20
- package/lib/hacks/flex.js +68 -43
- package/lib/hacks/fullscreen.js +31 -21
- package/lib/hacks/gradient.js +462 -302
- package/lib/hacks/grid-column-align.js +55 -0
- package/lib/hacks/grid-end.js +53 -28
- package/lib/hacks/grid-row-align.js +39 -19
- package/lib/hacks/grid-start.js +80 -48
- package/lib/hacks/grid-template.js +91 -55
- package/lib/hacks/image-rendering.js +63 -33
- package/lib/hacks/image-set.js +28 -20
- package/lib/hacks/inline-logical.js +32 -17
- package/lib/hacks/intrinsic.js +66 -0
- package/lib/hacks/justify-content.js +69 -42
- package/lib/hacks/mask-border.js +36 -21
- package/lib/hacks/order.js +58 -35
- package/lib/hacks/pixelated.js +44 -30
- package/lib/hacks/placeholder.js +40 -25
- package/lib/hacks/text-emphasis-position.js +27 -20
- package/lib/hacks/transform-decl.js +94 -52
- package/lib/hacks/writing-mode.js +37 -27
- package/lib/info.js +117 -78
- package/lib/old-selector.js +84 -58
- package/lib/old-value.js +22 -20
- package/lib/prefixer.js +164 -95
- package/lib/prefixes.js +446 -351
- package/lib/processor.js +394 -278
- package/lib/resolution.js +135 -75
- package/lib/selector.js +145 -84
- package/lib/supports.js +330 -210
- package/lib/transition.js +396 -243
- package/lib/utils.js +84 -48
- package/lib/value.js +118 -80
- package/package.json +54 -14
- package/lib/hacks/justify-items.js +0 -31
- package/lib/hacks/stretch.js +0 -45
package/lib/supports.js
CHANGED
|
@@ -1,255 +1,375 @@
|
|
|
1
|
-
|
|
2
|
-
var Browsers, Supports, Value, brackets, browser, data, postcss, ref, support, supported, utils, version, versions;
|
|
1
|
+
'use strict';
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
var Browsers = require('./browsers');
|
|
8
|
+
var brackets = require('./brackets');
|
|
9
|
+
var Value = require('./value');
|
|
10
|
+
var utils = require('./utils');
|
|
9
11
|
|
|
10
|
-
|
|
12
|
+
var postcss = require('postcss');
|
|
11
13
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
14
|
+
var supported = [];
|
|
15
|
+
var data = require('caniuse-lite').feature(require('caniuse-lite/data/features/css-featurequeries.js'));
|
|
16
|
+
for (var browser in data.stats) {
|
|
17
|
+
var versions = data.stats[browser];
|
|
18
|
+
for (var version in versions) {
|
|
19
|
+
var support = versions[version];
|
|
20
|
+
if (/y/.test(support)) {
|
|
21
|
+
supported.push(browser + ' ' + version);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
15
25
|
|
|
16
|
-
|
|
26
|
+
var Supports = function () {
|
|
27
|
+
function Supports(Prefixes, all) {
|
|
28
|
+
_classCallCheck(this, Supports);
|
|
17
29
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
versions = ref[browser];
|
|
21
|
-
for (version in versions) {
|
|
22
|
-
support = versions[version];
|
|
23
|
-
if (/y/.test(support)) {
|
|
24
|
-
supported.push(browser + ' ' + version);
|
|
25
|
-
}
|
|
30
|
+
this.Prefixes = Prefixes;
|
|
31
|
+
this.all = all;
|
|
26
32
|
}
|
|
27
|
-
}
|
|
28
33
|
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
this.all = all1;
|
|
33
|
-
}
|
|
34
|
+
/**
|
|
35
|
+
* Return prefixer only with @supports supported browsers
|
|
36
|
+
*/
|
|
34
37
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
filtered = this.all.browsers.selected.filter((function(_this) {
|
|
41
|
-
return function(i) {
|
|
42
|
-
return supported.indexOf(i) !== -1;
|
|
43
|
-
};
|
|
44
|
-
})(this));
|
|
45
|
-
browsers = new Browsers(this.all.browsers.data, filtered, this.all.options);
|
|
46
|
-
return this.prefixerCache = new this.Prefixes(this.all.data, browsers, this.all.options);
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
Supports.prototype.parse = function(str) {
|
|
50
|
-
var prop, ref1, value;
|
|
51
|
-
ref1 = str.split(':'), prop = ref1[0], value = ref1[1];
|
|
52
|
-
value || (value = '');
|
|
53
|
-
return [prop.trim(), value.trim()];
|
|
54
|
-
};
|
|
55
|
-
|
|
56
|
-
Supports.prototype.virtual = function(str) {
|
|
57
|
-
var prop, ref1, rule, value;
|
|
58
|
-
ref1 = this.parse(str), prop = ref1[0], value = ref1[1];
|
|
59
|
-
rule = postcss.parse('a{}').first;
|
|
60
|
-
rule.append({
|
|
61
|
-
prop: prop,
|
|
62
|
-
value: value,
|
|
63
|
-
raws: {
|
|
64
|
-
before: ''
|
|
38
|
+
|
|
39
|
+
Supports.prototype.prefixer = function prefixer() {
|
|
40
|
+
if (this.prefixerCache) {
|
|
41
|
+
return this.prefixerCache;
|
|
65
42
|
}
|
|
66
|
-
|
|
67
|
-
|
|
43
|
+
|
|
44
|
+
var filtered = this.all.browsers.selected.filter(function (i) {
|
|
45
|
+
return supported.indexOf(i) !== -1;
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
var browsers = new Browsers(this.all.browsers.data, filtered, this.all.options);
|
|
49
|
+
this.prefixerCache = new this.Prefixes(this.all.data, browsers, this.all.options);
|
|
50
|
+
return this.prefixerCache;
|
|
68
51
|
};
|
|
69
52
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
53
|
+
/**
|
|
54
|
+
* Parse string into declaration property and value
|
|
55
|
+
*/
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
Supports.prototype.parse = function parse(str) {
|
|
59
|
+
var _str$split = str.split(':'),
|
|
60
|
+
prop = _str$split[0],
|
|
61
|
+
value = _str$split[1];
|
|
62
|
+
|
|
63
|
+
if (!value) value = '';
|
|
64
|
+
return [prop.trim(), value.trim()];
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Create virtual rule to process it by prefixer
|
|
69
|
+
*/
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
Supports.prototype.virtual = function virtual(str) {
|
|
73
|
+
var _parse = this.parse(str),
|
|
74
|
+
prop = _parse[0],
|
|
75
|
+
value = _parse[1];
|
|
76
|
+
|
|
77
|
+
var rule = postcss.parse('a{}').first;
|
|
78
|
+
rule.append({ prop: prop, value: value, raws: { before: '' } });
|
|
79
|
+
return rule;
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Return array of Declaration with all necessary prefixes
|
|
84
|
+
*/
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
Supports.prototype.prefixed = function prefixed(str) {
|
|
88
|
+
var rule = this.virtual(str);
|
|
89
|
+
if (this.disabled(rule.first)) {
|
|
90
|
+
return rule.nodes;
|
|
80
91
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
92
|
+
|
|
93
|
+
var prefixer = this.prefixer().add[rule.first.prop];
|
|
94
|
+
prefixer && prefixer.process && prefixer.process(rule.first);
|
|
95
|
+
|
|
96
|
+
for (var _iterator = rule.nodes, _isArray = Array.isArray(_iterator), _i = 0, _iterator = _isArray ? _iterator : _iterator[Symbol.iterator]();;) {
|
|
97
|
+
var _ref;
|
|
98
|
+
|
|
99
|
+
if (_isArray) {
|
|
100
|
+
if (_i >= _iterator.length) break;
|
|
101
|
+
_ref = _iterator[_i++];
|
|
102
|
+
} else {
|
|
103
|
+
_i = _iterator.next();
|
|
104
|
+
if (_i.done) break;
|
|
105
|
+
_ref = _i.value;
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
var decl = _ref;
|
|
109
|
+
|
|
110
|
+
for (var _iterator2 = this.prefixer().values('add', rule.first.prop), _isArray2 = Array.isArray(_iterator2), _i2 = 0, _iterator2 = _isArray2 ? _iterator2 : _iterator2[Symbol.iterator]();;) {
|
|
111
|
+
var _ref2;
|
|
112
|
+
|
|
113
|
+
if (_isArray2) {
|
|
114
|
+
if (_i2 >= _iterator2.length) break;
|
|
115
|
+
_ref2 = _iterator2[_i2++];
|
|
116
|
+
} else {
|
|
117
|
+
_i2 = _iterator2.next();
|
|
118
|
+
if (_i2.done) break;
|
|
119
|
+
_ref2 = _i2.value;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
var value = _ref2;
|
|
123
|
+
|
|
124
|
+
value.process(decl);
|
|
125
|
+
}
|
|
126
|
+
Value.save(this.all, decl);
|
|
89
127
|
}
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
return rule.nodes;
|
|
128
|
+
|
|
129
|
+
return rule.nodes;
|
|
93
130
|
};
|
|
94
131
|
|
|
95
|
-
|
|
96
|
-
|
|
132
|
+
/**
|
|
133
|
+
* Return true if brackets node is "not" word
|
|
134
|
+
*/
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
Supports.prototype.isNot = function isNot(node) {
|
|
138
|
+
return typeof node === 'string' && /not\s*/i.test(node);
|
|
97
139
|
};
|
|
98
140
|
|
|
99
|
-
|
|
100
|
-
|
|
141
|
+
/**
|
|
142
|
+
* Return true if brackets node is "or" word
|
|
143
|
+
*/
|
|
144
|
+
|
|
145
|
+
|
|
146
|
+
Supports.prototype.isOr = function isOr(node) {
|
|
147
|
+
return typeof node === 'string' && /\s*or\s*/i.test(node);
|
|
101
148
|
};
|
|
102
149
|
|
|
103
|
-
|
|
104
|
-
|
|
150
|
+
/**
|
|
151
|
+
* Return true if brackets node is (prop: value)
|
|
152
|
+
*/
|
|
153
|
+
|
|
154
|
+
|
|
155
|
+
Supports.prototype.isProp = function isProp(node) {
|
|
156
|
+
return (typeof node === 'undefined' ? 'undefined' : _typeof(node)) === 'object' && node.length === 1 && typeof node[0] === 'string';
|
|
105
157
|
};
|
|
106
158
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
159
|
+
/**
|
|
160
|
+
* Return true if prefixed property has no unprefixed
|
|
161
|
+
*/
|
|
162
|
+
|
|
163
|
+
|
|
164
|
+
Supports.prototype.isHack = function isHack(all, unprefixed) {
|
|
165
|
+
var check = new RegExp('(\\(|\\s)' + utils.escapeRegexp(unprefixed) + ':');
|
|
166
|
+
return !check.test(all);
|
|
111
167
|
};
|
|
112
168
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
169
|
+
/**
|
|
170
|
+
* Return true if we need to remove node
|
|
171
|
+
*/
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
Supports.prototype.toRemove = function toRemove(str, all) {
|
|
175
|
+
var _parse2 = this.parse(str),
|
|
176
|
+
prop = _parse2[0],
|
|
177
|
+
value = _parse2[1];
|
|
178
|
+
|
|
179
|
+
var unprefixed = this.all.unprefixed(prop);
|
|
180
|
+
|
|
181
|
+
var cleaner = this.all.cleaner();
|
|
182
|
+
|
|
183
|
+
if (cleaner.remove[prop] && cleaner.remove[prop].remove && !this.isHack(all, unprefixed)) {
|
|
184
|
+
return true;
|
|
125
185
|
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
i += 1;
|
|
186
|
+
|
|
187
|
+
for (var _iterator3 = cleaner.values('remove', unprefixed), _isArray3 = Array.isArray(_iterator3), _i3 = 0, _iterator3 = _isArray3 ? _iterator3 : _iterator3[Symbol.iterator]();;) {
|
|
188
|
+
var _ref3;
|
|
189
|
+
|
|
190
|
+
if (_isArray3) {
|
|
191
|
+
if (_i3 >= _iterator3.length) break;
|
|
192
|
+
_ref3 = _iterator3[_i3++];
|
|
193
|
+
} else {
|
|
194
|
+
_i3 = _iterator3.next();
|
|
195
|
+
if (_i3.done) break;
|
|
196
|
+
_ref3 = _i3.value;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
var checker = _ref3;
|
|
200
|
+
|
|
201
|
+
if (checker.check(value)) {
|
|
202
|
+
return true;
|
|
203
|
+
}
|
|
145
204
|
}
|
|
146
|
-
|
|
147
|
-
|
|
205
|
+
|
|
206
|
+
return false;
|
|
148
207
|
};
|
|
149
208
|
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
209
|
+
/**
|
|
210
|
+
* Remove all unnecessary prefixes
|
|
211
|
+
*/
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
Supports.prototype.remove = function remove(nodes, all) {
|
|
215
|
+
var i = 0;
|
|
216
|
+
while (i < nodes.length) {
|
|
217
|
+
if (!this.isNot(nodes[i - 1]) && this.isProp(nodes[i]) && this.isOr(nodes[i + 1])) {
|
|
218
|
+
if (this.toRemove(nodes[i][0], all)) {
|
|
219
|
+
nodes.splice(i, 2);
|
|
220
|
+
} else {
|
|
221
|
+
i += 2;
|
|
222
|
+
}
|
|
156
223
|
} else {
|
|
157
|
-
|
|
224
|
+
if (_typeof(nodes[i]) === 'object') {
|
|
225
|
+
nodes[i] = this.remove(nodes[i], all);
|
|
226
|
+
}
|
|
227
|
+
i += 1;
|
|
158
228
|
}
|
|
159
|
-
} else {
|
|
160
|
-
return i;
|
|
161
|
-
}
|
|
162
|
-
};
|
|
163
|
-
})(this));
|
|
164
|
-
};
|
|
165
|
-
|
|
166
|
-
Supports.prototype.convert = function(progress) {
|
|
167
|
-
var i, j, len, result;
|
|
168
|
-
result = [''];
|
|
169
|
-
for (j = 0, len = progress.length; j < len; j++) {
|
|
170
|
-
i = progress[j];
|
|
171
|
-
result.push([i.prop + ": " + i.value]);
|
|
172
|
-
result.push(' or ');
|
|
173
|
-
}
|
|
174
|
-
result[result.length - 1] = '';
|
|
175
|
-
return result;
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
Supports.prototype.normalize = function(nodes) {
|
|
179
|
-
if (typeof nodes === 'object') {
|
|
180
|
-
nodes = nodes.filter(function(i) {
|
|
181
|
-
return i !== '';
|
|
182
|
-
});
|
|
183
|
-
if (typeof nodes[0] === 'string' && nodes[0].indexOf(':') !== -1) {
|
|
184
|
-
return [brackets.stringify(nodes)];
|
|
185
|
-
} else {
|
|
186
|
-
return nodes.map((function(_this) {
|
|
187
|
-
return function(i) {
|
|
188
|
-
return _this.normalize(i);
|
|
189
|
-
};
|
|
190
|
-
})(this));
|
|
191
229
|
}
|
|
192
|
-
} else {
|
|
193
230
|
return nodes;
|
|
194
|
-
}
|
|
195
231
|
};
|
|
196
232
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
233
|
+
/**
|
|
234
|
+
* Clean brackets with one child
|
|
235
|
+
*/
|
|
236
|
+
|
|
237
|
+
|
|
238
|
+
Supports.prototype.cleanBrackets = function cleanBrackets(nodes) {
|
|
239
|
+
var _this = this;
|
|
240
|
+
|
|
241
|
+
return nodes.map(function (i) {
|
|
242
|
+
if ((typeof i === 'undefined' ? 'undefined' : _typeof(i)) === 'object') {
|
|
243
|
+
if (i.length === 1 && _typeof(i[0]) === 'object') {
|
|
244
|
+
return _this.cleanBrackets(i[0]);
|
|
245
|
+
} else {
|
|
246
|
+
return _this.cleanBrackets(i);
|
|
247
|
+
}
|
|
205
248
|
} else {
|
|
206
|
-
|
|
249
|
+
return i;
|
|
207
250
|
}
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
251
|
+
});
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
/**
|
|
255
|
+
* Add " or " between properties and convert it to brackets format
|
|
256
|
+
*/
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
Supports.prototype.convert = function convert(progress) {
|
|
260
|
+
var result = [''];
|
|
261
|
+
for (var _iterator4 = progress, _isArray4 = Array.isArray(_iterator4), _i4 = 0, _iterator4 = _isArray4 ? _iterator4 : _iterator4[Symbol.iterator]();;) {
|
|
262
|
+
var _ref4;
|
|
263
|
+
|
|
264
|
+
if (_isArray4) {
|
|
265
|
+
if (_i4 >= _iterator4.length) break;
|
|
266
|
+
_ref4 = _iterator4[_i4++];
|
|
267
|
+
} else {
|
|
268
|
+
_i4 = _iterator4.next();
|
|
269
|
+
if (_i4.done) break;
|
|
270
|
+
_ref4 = _i4.value;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
var i = _ref4;
|
|
274
|
+
|
|
275
|
+
result.push([i.prop + ': ' + i.value]);
|
|
276
|
+
result.push(' or ');
|
|
232
277
|
}
|
|
233
|
-
|
|
234
|
-
|
|
278
|
+
result[result.length - 1] = '';
|
|
279
|
+
return result;
|
|
280
|
+
};
|
|
281
|
+
|
|
282
|
+
/**
|
|
283
|
+
* Compress value functions into a string nodes
|
|
284
|
+
*/
|
|
285
|
+
|
|
286
|
+
|
|
287
|
+
Supports.prototype.normalize = function normalize(nodes) {
|
|
288
|
+
var _this2 = this;
|
|
289
|
+
|
|
290
|
+
if ((typeof nodes === 'undefined' ? 'undefined' : _typeof(nodes)) === 'object') {
|
|
291
|
+
nodes = nodes.filter(function (i) {
|
|
292
|
+
return i !== '';
|
|
293
|
+
});
|
|
294
|
+
if (typeof nodes[0] === 'string' && nodes[0].indexOf(':') !== -1) {
|
|
295
|
+
return [brackets.stringify(nodes)];
|
|
296
|
+
} else {
|
|
297
|
+
return nodes.map(function (i) {
|
|
298
|
+
return _this2.normalize(i);
|
|
299
|
+
});
|
|
300
|
+
}
|
|
301
|
+
} else {
|
|
302
|
+
return nodes;
|
|
235
303
|
}
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
304
|
+
};
|
|
305
|
+
|
|
306
|
+
/**
|
|
307
|
+
* Add prefixes
|
|
308
|
+
*/
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
Supports.prototype.add = function add(nodes, all) {
|
|
312
|
+
var _this3 = this;
|
|
313
|
+
|
|
314
|
+
return nodes.map(function (i) {
|
|
315
|
+
if (_this3.isProp(i)) {
|
|
316
|
+
var prefixed = _this3.prefixed(i[0]);
|
|
317
|
+
if (prefixed.length > 1) {
|
|
318
|
+
return _this3.convert(prefixed);
|
|
319
|
+
} else {
|
|
320
|
+
return i;
|
|
321
|
+
}
|
|
322
|
+
} else if ((typeof i === 'undefined' ? 'undefined' : _typeof(i)) === 'object') {
|
|
323
|
+
return _this3.add(i, all);
|
|
324
|
+
} else {
|
|
325
|
+
return i;
|
|
326
|
+
}
|
|
327
|
+
});
|
|
328
|
+
};
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Add prefixed declaration
|
|
332
|
+
*/
|
|
333
|
+
|
|
334
|
+
|
|
335
|
+
Supports.prototype.process = function process(rule) {
|
|
336
|
+
var ast = brackets.parse(rule.params);
|
|
337
|
+
ast = this.normalize(ast);
|
|
338
|
+
ast = this.remove(ast, rule.params);
|
|
339
|
+
ast = this.add(ast, rule.params);
|
|
340
|
+
ast = this.cleanBrackets(ast);
|
|
341
|
+
rule.params = brackets.stringify(ast);
|
|
342
|
+
};
|
|
343
|
+
|
|
344
|
+
/**
|
|
345
|
+
* Check global options
|
|
346
|
+
*/
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
Supports.prototype.disabled = function disabled(node) {
|
|
350
|
+
if (this.all.options.grid === false) {
|
|
351
|
+
if (node.prop === 'display' && node.value.indexOf('grid') !== -1) {
|
|
352
|
+
return true;
|
|
353
|
+
}
|
|
354
|
+
if (node.prop.indexOf('grid') !== -1 || node.prop === 'justify-items') {
|
|
355
|
+
return true;
|
|
356
|
+
}
|
|
240
357
|
}
|
|
241
|
-
|
|
242
|
-
if (
|
|
243
|
-
|
|
358
|
+
|
|
359
|
+
if (this.all.options.flexbox === false) {
|
|
360
|
+
if (node.prop === 'display' && node.value.indexOf('flex') !== -1) {
|
|
361
|
+
return true;
|
|
362
|
+
}
|
|
363
|
+
var other = ['order', 'justify-content', 'align-items', 'align-content'];
|
|
364
|
+
if (node.prop.indexOf('flex') !== -1 || other.indexOf(node.prop) !== -1) {
|
|
365
|
+
return true;
|
|
366
|
+
}
|
|
244
367
|
}
|
|
245
|
-
|
|
246
|
-
|
|
368
|
+
|
|
369
|
+
return false;
|
|
247
370
|
};
|
|
248
371
|
|
|
249
372
|
return Supports;
|
|
373
|
+
}();
|
|
250
374
|
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
module.exports = Supports;
|
|
254
|
-
|
|
255
|
-
}).call(this);
|
|
375
|
+
module.exports = Supports;
|