@talend/react-bootstrap
Version:
Bootstrap 3 components built with React
61 lines (57 loc) • 2.01 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _classnames = _interopRequireDefault(require("classnames"));
var _Button = _interopRequireDefault(require("./Button"));
var _SafeAnchor = _interopRequireDefault(require("./SafeAnchor"));
var _bootstrapUtils = require("./utils/bootstrapUtils");
var _jsxRuntime = require("react/jsx-runtime");
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
const propTypes = {
noCaret: _propTypes.default.bool,
open: _propTypes.default.bool,
title: _propTypes.default.string,
useAnchor: _propTypes.default.bool
};
const defaultProps = {
open: false,
useAnchor: false,
bsRole: 'toggle'
};
class DropdownToggle extends _react.default.Component {
render() {
const {
noCaret,
open,
useAnchor,
bsClass,
className,
children,
...props
} = this.props;
delete props.bsRole;
const Component = useAnchor ? _SafeAnchor.default : _Button.default;
const useCaret = !noCaret;
// This intentionally forwards bsSize and bsStyle (if set) to the
// underlying component, to allow it to render size and style variants.
// FIXME: Should this really fall back to `title` as children?
return /*#__PURE__*/(0, _jsxRuntime.jsxs)(Component, {
...props,
role: "button",
className: (0, _classnames.default)(className, bsClass),
"aria-haspopup": true,
"aria-expanded": open,
children: [children || props.title, useCaret && ' ', useCaret && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
className: "caret"
})]
});
}
}
DropdownToggle.propTypes = propTypes;
DropdownToggle.defaultProps = defaultProps;
var _default = exports.default = (0, _bootstrapUtils.bsClass)('dropdown-toggle', DropdownToggle);
//# sourceMappingURL=DropdownToggle.js.map