@coreui/react-pro
Version:
UI Components Library for React.js
76 lines (73 loc) • 2.49 kB
JavaScript
import { __rest } from '../../node_modules/tslib/tslib.es6.js';
import React, { forwardRef } from 'react';
import PropTypes from 'prop-types';
import classNames from '../../_virtual/index.js';
const BREAKPOINTS = [
'xxl',
'xl',
'lg',
'md',
'sm',
'xs',
];
const CCol = forwardRef((_a, ref) => {
var { children, className } = _a, rest = __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: classNames(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';
export { CCol };
//# sourceMappingURL=CCol.js.map