UNPKG

1.4 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, "__esModule", {
4 value: true
5});
6exports['default'] = jssVendorPrefixer;
7
8var _cssVendor = require('css-vendor');
9
10var vendor = _interopRequireWildcard(_cssVendor);
11
12function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
13
14/**
15 * Add vendor prefix to a property name when needed.
16 *
17 * @param {Rule} rule
18 * @api public
19 */
20function jssVendorPrefixer() {
21 return function (rule) {
22 if (rule.type === 'keyframe') {
23 rule.selector = '@' + vendor.prefix.css + rule.selector.substr(1);
24 return;
25 }
26
27 if (rule.type !== 'regular') return;
28
29 for (var prop in rule.style) {
30 var value = rule.style[prop];
31
32 var changeProp = false;
33 var supportedProp = vendor.supportedProperty(prop);
34 if (supportedProp && supportedProp !== prop) changeProp = true;
35
36 var changeValue = false;
37 var supportedValue = vendor.supportedValue(supportedProp, value);
38 if (supportedValue && supportedValue !== value) changeValue = true;
39
40 if (changeProp || changeValue) {
41 if (changeProp) delete rule.style[prop];
42 rule.style[supportedProp || prop] = supportedValue || value;
43 }
44 }
45 };
46}
\No newline at end of file