@coreui/react
Version:
UI Components Library for React.js
76 lines (73 loc) • 2.59 kB
JavaScript
import { __rest, __assign } from '../../node_modules/tslib/tslib.es6.js';
import React, { forwardRef } from 'react';
import PropTypes from 'prop-types';
import classNames from '../../_virtual/index.js';
var BREAKPOINTS = [
'xxl',
'xl',
'lg',
'md',
'sm',
'xs',
];
var CCol = forwardRef(function (_a, ref) {
var children = _a.children, className = _a.className, rest = __rest(_a, ["children", "className"]);
var repsonsiveClassNames = [];
BREAKPOINTS.forEach(function (bp) {
var breakpoint = rest[bp];
delete rest[bp];
var infix = bp === 'xs' ? '' : "-".concat(bp);
if (typeof breakpoint === 'number' || typeof breakpoint === 'string') {
repsonsiveClassNames.push("col".concat(infix, "-").concat(breakpoint));
}
if (typeof breakpoint === 'boolean') {
repsonsiveClassNames.push("col".concat(infix));
}
if (breakpoint && typeof breakpoint === 'object') {
if (typeof breakpoint.span === 'number' || typeof breakpoint.span === 'string') {
repsonsiveClassNames.push("col".concat(infix, "-").concat(breakpoint.span));
}
if (typeof breakpoint.span === 'boolean') {
repsonsiveClassNames.push("col".concat(infix));
}
if (typeof breakpoint.order === 'number' || typeof breakpoint.order === 'string') {
repsonsiveClassNames.push("order".concat(infix, "-").concat(breakpoint.order));
}
if (typeof breakpoint.offset === 'number') {
repsonsiveClassNames.push("offset".concat(infix, "-").concat(breakpoint.offset));
}
}
});
return (React.createElement("div", __assign({ className: classNames(repsonsiveClassNames.length > 0 ? repsonsiveClassNames : 'col', className) }, rest, { ref: ref }), children));
});
var span = PropTypes.oneOfType([
PropTypes.bool,
PropTypes.number,
PropTypes.string,
PropTypes.oneOf(['auto']),
]);
var 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';
export { CCol };
//# sourceMappingURL=CCol.js.map