|
- '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 };
- }
|