gatsby-background-image
Version:
Lazy-loading React background-image component with optional support for the blur-up effect.
103 lines (82 loc) • 2.56 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.isString = exports.stringToArray = exports.toKebabCase = exports.toCamelCase = exports.convertProps = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
/**
* Handle legacy names for image queries
*
* @param props
* @return {Object}
*/
var convertProps = function convertProps(props) {
var convertedProps = (0, _extends2.default)({}, props);
if (convertedProps.resolutions) {
convertedProps.fixed = convertedProps.resolutions;
delete convertedProps.resolutions;
}
if (convertedProps.sizes) {
convertedProps.fluid = convertedProps.sizes;
delete convertedProps.sizes;
}
return convertedProps;
};
/**
* Converts CSS kebab-case strings to camel-cased js style rules.
*
* @param str string Rule to transform
* @return {boolean|string}
*/
exports.convertProps = convertProps;
var toCamelCase = function toCamelCase(str) {
return isString(str) && str.toLowerCase().replace(/(?:^\w|-|[A-Z]|\b\w)/g, function (letter, index) {
return index === 0 ? letter.toLowerCase() : letter.toUpperCase();
}).replace(/\s|\W+/g, '');
};
/**
* Converts camel-cased js style rules to CSS kebab-case strings.
*
* @param str string Rule to transform
* @return {boolean|string}
*/
exports.toCamelCase = toCamelCase;
var toKebabCase = function toKebabCase(str) {
return isString(str) && str.replace(/\s|\W+/g, '').replace(/[A-Z]/g, function (match) {
return '-' + match.toLowerCase();
});
};
/**
* Splits a given string (e.g. from classname) to an array.
*
* @param str string|array String to split or return as array
* @param delimiter string Delimiter on which to split str
* @return {array|boolean} Returns (split) string as array, false on failure
*/
exports.toKebabCase = toKebabCase;
var stringToArray = function stringToArray(str, delimiter) {
if (delimiter === void 0) {
delimiter = " ";
}
if (str instanceof Array) {
return str;
} else if (isString(str)) {
if (str.includes(delimiter)) {
return str.split(delimiter);
} else {
return [str];
}
} else {
return false;
}
};
/**
* Tests a given value on being a string.
*
* @param value * Value to test
* @return {boolean}
*/
exports.stringToArray = stringToArray;
var isString = function isString(value) {
return Object.prototype.toString.call(value) === '[object String]';
};
exports.isString = isString;