UNPKG

2.3 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5exports.__esModule = true;
6exports.default = void 0;
7
8var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
10var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
11
12var _classnames = _interopRequireDefault(require("classnames"));
13
14var _react = _interopRequireDefault(require("react"));
15
16var _ThemeProvider = require("./ThemeProvider");
17
18var DEVICE_SIZES = ['xl', 'lg', 'md', 'sm', 'xs'];
19
20var Col = /*#__PURE__*/_react.default.forwardRef( // Need to define the default "as" during prop destructuring to be compatible with styled-components github.com/react-bootstrap/react-bootstrap/issues/3595
21function (_ref, ref) {
22 var bsPrefix = _ref.bsPrefix,
23 className = _ref.className,
24 _ref$as = _ref.as,
25 Component = _ref$as === void 0 ? 'div' : _ref$as,
26 props = (0, _objectWithoutPropertiesLoose2.default)(_ref, ["bsPrefix", "className", "as"]);
27 var prefix = (0, _ThemeProvider.useBootstrapPrefix)(bsPrefix, 'col');
28 var spans = [];
29 var classes = [];
30 DEVICE_SIZES.forEach(function (brkPoint) {
31 var propValue = props[brkPoint];
32 delete props[brkPoint];
33 var span;
34 var offset;
35 var order;
36
37 if (typeof propValue === 'object' && propValue != null) {
38 var _propValue$span = propValue.span;
39 span = _propValue$span === void 0 ? true : _propValue$span;
40 offset = propValue.offset;
41 order = propValue.order;
42 } else {
43 span = propValue;
44 }
45
46 var infix = brkPoint !== 'xs' ? "-" + brkPoint : '';
47 if (span) spans.push(span === true ? "" + prefix + infix : "" + prefix + infix + "-" + span);
48 if (order != null) classes.push("order" + infix + "-" + order);
49 if (offset != null) classes.push("offset" + infix + "-" + offset);
50 });
51
52 if (!spans.length) {
53 spans.push(prefix); // plain 'col'
54 }
55
56 return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, props, {
57 ref: ref,
58 className: _classnames.default.apply(void 0, [className].concat(spans, classes))
59 }));
60});
61
62Col.displayName = 'Col';
63var _default = Col;
64exports.default = _default;
65module.exports = exports["default"];
\No newline at end of file