UNPKG

2.13 kBJavaScriptView Raw
1import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
2import _extends from "@babel/runtime/helpers/esm/extends";
3import classNames from 'classnames';
4import React from 'react';
5import createWithBsPrefix from './createWithBsPrefix';
6import { useBootstrapPrefix } from './ThemeProvider';
7var InputGroupAppend = createWithBsPrefix('input-group-append');
8var InputGroupPrepend = createWithBsPrefix('input-group-prepend');
9var InputGroupText = createWithBsPrefix('input-group-text', {
10 Component: 'span'
11});
12
13var InputGroupCheckbox = function InputGroupCheckbox(props) {
14 return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement("input", _extends({
15 type: "checkbox"
16 }, props)));
17};
18
19var InputGroupRadio = function InputGroupRadio(props) {
20 return /*#__PURE__*/React.createElement(InputGroupText, null, /*#__PURE__*/React.createElement("input", _extends({
21 type: "radio"
22 }, props)));
23};
24
25/**
26 *
27 * @property {InputGroupAppend} Append
28 * @property {InputGroupPrepend} Prepend
29 * @property {InputGroupText} Text
30 * @property {InputGroupRadio} Radio
31 * @property {InputGroupCheckbox} Checkbox
32 */
33var InputGroup = /*#__PURE__*/React.forwardRef(function (_ref, ref) {
34 var bsPrefix = _ref.bsPrefix,
35 size = _ref.size,
36 hasValidation = _ref.hasValidation,
37 className = _ref.className,
38 _ref$as = _ref.as,
39 Component = _ref$as === void 0 ? 'div' : _ref$as,
40 props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "size", "hasValidation", "className", "as"]);
41
42 bsPrefix = useBootstrapPrefix(bsPrefix, 'input-group');
43 return /*#__PURE__*/React.createElement(Component, _extends({
44 ref: ref
45 }, props, {
46 className: classNames(className, bsPrefix, size && bsPrefix + "-" + size, hasValidation && 'has-validation')
47 }));
48});
49InputGroup.displayName = 'InputGroup';
50
51var InputGroupWithExtras = _extends({}, InputGroup, {
52 Text: InputGroupText,
53 Radio: InputGroupRadio,
54 Checkbox: InputGroupCheckbox,
55 Append: InputGroupAppend,
56 Prepend: InputGroupPrepend
57});
58
59export default InputGroupWithExtras;
\No newline at end of file