UNPKG

2.26 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 = _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, offset, order;
34
35 if (propValue != null && typeof propValue === 'object') {
36 var _propValue$span = propValue.span;
37 span = _propValue$span === void 0 ? true : _propValue$span;
38 offset = propValue.offset;
39 order = propValue.order;
40 } else {
41 span = propValue;
42 }
43
44 var infix = brkPoint !== 'xs' ? "-" + brkPoint : '';
45 if (span != null) spans.push(span === true ? "" + prefix + infix : "" + prefix + infix + "-" + span);
46 if (order != null) classes.push("order" + infix + "-" + order);
47 if (offset != null) classes.push("offset" + infix + "-" + offset);
48 });
49
50 if (!spans.length) {
51 spans.push(prefix); // plain 'col'
52 }
53
54 return _react.default.createElement(Component, (0, _extends2.default)({}, props, {
55 ref: ref,
56 className: _classnames.default.apply(void 0, [className].concat(spans, classes))
57 }));
58});
59
60Col.displayName = 'Col';
61var _default = Col;
62exports.default = _default;
63module.exports = exports["default"];
\No newline at end of file