'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports['default'] = jssVendorPrefixer; var _cssVendor = require('css-vendor'); var vendor = _interopRequireWildcard(_cssVendor); function _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; } } /** * Add vendor prefix to a property name when needed. * * @param {Rule} rule * @api public */ function jssVendorPrefixer() { function onProcessRule(rule) { if (rule.type === 'keyframes') { rule.key = '@' + vendor.prefix.css + rule.key.substr(1); } } function onProcessStyle(style, rule) { if (rule.type !== 'style') return style; for (var prop in style) { var value = style[prop]; var changeProp = false; var supportedProp = vendor.supportedProperty(prop); if (supportedProp && supportedProp !== prop) changeProp = true; var changeValue = false; var supportedValue = vendor.supportedValue(supportedProp, value); if (supportedValue && supportedValue !== value) changeValue = true; if (changeProp || changeValue) { if (changeProp) delete style[prop]; style[supportedProp || prop] = supportedValue || value; } } return style; } function onChangeValue(value, prop) { return vendor.supportedValue(prop, value); } return { onProcessRule: onProcessRule, onProcessStyle: onProcessStyle, onChangeValue: onChangeValue }; }