react-flexigrid
Version:
A React table component designed to allow presenting millions of rows of data.
32 lines (27 loc) • 866 B
JavaScript
import { canUseDOM } from './executionEnvironment';
var hyphenPattern = /-(.)/g;
function camelize(str) {
return str.replace(hyphenPattern, function (_, char) {
return char.toUpperCase();
});
}
var memoized = {};
var prefixes = ['Webkit', 'ms', 'Moz', 'O'];
var testStyle = canUseDOM ? document.createElement('div').style : {};
function getWithPrefix(name) {
for (var i = 0; i < prefixes.length; i += 1) {
var prefixedName = prefixes[i] + name;
if (prefixedName in testStyle) {
return prefixedName;
}
}
return null;
}
export default function getVendorPrefixedName(property) {
var name = camelize(property);
if (memoized[name] === undefined) {
var capitalizedName = name.charAt(0).toUpperCase() + name.slice(1);
memoized[name] = name in testStyle ? name : getWithPrefix(capitalizedName);
}
return memoized[name];
}