You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

29 lines
911 B

2 years ago
var memoize = require('./memoize');
var camelCase = require('./camelCase');
var upperFirst = require('./upperFirst');
var has = require('./has');
var kebabCase = require('./kebabCase');
exports = memoize(function(name) {
name = name.replace(regPrefixes, '');
name = camelCase(name);
if (has(style, name)) return name;
var i = prefixes.length;
while (i--) {
var prefixName = prefixes[i] + upperFirst(name);
if (has(style, prefixName)) return prefixName;
}
return name;
});
exports.dash = memoize(function(name) {
var camelCaseResult = exports(name);
return (
(regPrefixes.test(camelCaseResult) ? '-' : '') +
kebabCase(camelCaseResult)
);
});
var prefixes = ['O', 'ms', 'Moz', 'Webkit'];
var regPrefixes = /^(O)|(ms)|(Moz)|(Webkit)|(-o-)|(-ms-)|(-moz-)|(-webkit-)/g;
var style = document.createElement('p').style;
module.exports = exports;