UNPKG

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
"use strict"; 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;