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.
43 lines
1.2 KiB
43 lines
1.2 KiB
"use strict";
|
|
|
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
|
|
exports.__esModule = true;
|
|
exports.default = createUtilityClassName;
|
|
exports.responsivePropType = responsivePropType;
|
|
|
|
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
|
|
var _ThemeProvider = require("./ThemeProvider");
|
|
|
|
function responsivePropType(propType) {
|
|
return _propTypes.default.oneOfType([propType, _propTypes.default.shape({
|
|
xs: propType,
|
|
sm: propType,
|
|
md: propType,
|
|
lg: propType,
|
|
xl: propType,
|
|
xxl: propType
|
|
})]);
|
|
}
|
|
|
|
function createUtilityClassName(utilityValues, breakpoints = _ThemeProvider.DEFAULT_BREAKPOINTS, minBreakpoint = _ThemeProvider.DEFAULT_MIN_BREAKPOINT) {
|
|
const classes = [];
|
|
Object.entries(utilityValues).forEach(([utilName, utilValue]) => {
|
|
if (utilValue != null) {
|
|
if (typeof utilValue === 'object') {
|
|
breakpoints.forEach(brkPoint => {
|
|
const bpValue = utilValue[brkPoint];
|
|
|
|
if (bpValue != null) {
|
|
const infix = brkPoint !== minBreakpoint ? `-${brkPoint}` : '';
|
|
classes.push(`${utilName}${infix}-${bpValue}`);
|
|
}
|
|
});
|
|
} else {
|
|
classes.push(`${utilName}-${utilValue}`);
|
|
}
|
|
}
|
|
});
|
|
return classes;
|
|
} |