UNPKG

2.32 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 _excluded = ["bsPrefix", "className", "as"];
19var DEVICE_SIZES = ['xl', 'lg', 'md', 'sm', 'xs'];
20
21var 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
22function (_ref, ref) {
23 var bsPrefix = _ref.bsPrefix,
24 className = _ref.className,
25 _ref$as = _ref.as,
26 Component = _ref$as === void 0 ? 'div' : _ref$as,
27 props = (0, _objectWithoutPropertiesLoose2.default)(_ref, _excluded);
28 var prefix = (0, _ThemeProvider.useBootstrapPrefix)(bsPrefix, 'col');
29 var spans = [];
30 var classes = [];
31 DEVICE_SIZES.forEach(function (brkPoint) {
32 var propValue = props[brkPoint];
33 delete props[brkPoint];
34 var span;
35 var offset;
36 var order;
37
38 if (typeof propValue === 'object' && propValue != null) {
39 var _propValue$span = propValue.span;
40 span = _propValue$span === void 0 ? true : _propValue$span;
41 offset = propValue.offset;
42 order = propValue.order;
43 } else {
44 span = propValue;
45 }
46
47 var infix = brkPoint !== 'xs' ? "-" + brkPoint : '';
48 if (span) spans.push(span === true ? "" + prefix + infix : "" + prefix + infix + "-" + span);
49 if (order != null) classes.push("order" + infix + "-" + order);
50 if (offset != null) classes.push("offset" + infix + "-" + offset);
51 });
52
53 if (!spans.length) {
54 spans.push(prefix); // plain 'col'
55 }
56
57 return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({}, props, {
58 ref: ref,
59 className: _classnames.default.apply(void 0, [className].concat(spans, classes))
60 }));
61});
62
63Col.displayName = 'Col';
64var _default = Col;
65exports.default = _default;
66module.exports = exports["default"];
\No newline at end of file