@coreui/react-pro
Version:
UI Components Library for React.js
78 lines (74 loc) • 2.52 kB
JavaScript
;
var tslib_es6 = require('../../node_modules/tslib/tslib.es6.js');
var React = require('react');
var PropTypes = require('prop-types');
var index = require('../../_virtual/index.js');
const BREAKPOINTS = [
'xxl',
'xl',
'lg',
'md',
'sm',
'xs',
];
const CCol = React.forwardRef((_a, ref) => {
var { children, className } = _a, rest = tslib_es6.__rest(_a, ["children", "className"]);
const repsonsiveClassNames = [];
BREAKPOINTS.forEach((bp) => {
const breakpoint = rest[bp];
delete rest[bp];
const infix = bp === 'xs' ? '' : `-${bp}`;
if (typeof breakpoint === 'number' || typeof breakpoint === 'string') {
repsonsiveClassNames.push(`col${infix}-${breakpoint}`);
}
if (typeof breakpoint === 'boolean') {
repsonsiveClassNames.push(`col${infix}`);
}
if (breakpoint && typeof breakpoint === 'object') {
if (typeof breakpoint.span === 'number' || typeof breakpoint.span === 'string') {
repsonsiveClassNames.push(`col${infix}-${breakpoint.span}`);
}
if (typeof breakpoint.span === 'boolean') {
repsonsiveClassNames.push(`col${infix}`);
}
if (typeof breakpoint.order === 'number' || typeof breakpoint.order === 'string') {
repsonsiveClassNames.push(`order${infix}-${breakpoint.order}`);
}
if (typeof breakpoint.offset === 'number') {
repsonsiveClassNames.push(`offset${infix}-${breakpoint.offset}`);
}
}
});
return (React.createElement("div", Object.assign({ className: index.default(repsonsiveClassNames.length > 0 ? repsonsiveClassNames : 'col', className) }, rest, { ref: ref }), children));
});
const span = PropTypes.oneOfType([
PropTypes.bool,
PropTypes.number,
PropTypes.string,
PropTypes.oneOf(['auto']),
]);
const col = PropTypes.oneOfType([
span,
PropTypes.shape({
span: span,
offset: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
order: PropTypes.oneOfType([
PropTypes.oneOf(['first', 'last']),
PropTypes.number,
PropTypes.string,
]),
}),
]);
CCol.propTypes = {
children: PropTypes.node,
className: PropTypes.string,
xs: col,
sm: col,
md: col,
lg: col,
xl: col,
xxl: col,
};
CCol.displayName = 'CCol';
exports.CCol = CCol;
//# sourceMappingURL=CCol.js.map