@lskjs/navbar
Version:
LSK ux subrepo: navbar
89 lines (66 loc) • 3.29 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _classnames = _interopRequireDefault(require("classnames"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _isRequiredForA11y = _interopRequireDefault(require("prop-types-extra/lib/isRequiredForA11y"));
var _react = _interopRequireDefault(require("react"));
var _DropdownToggle = require("react-overlays/DropdownToggle");
var _useMergedRefs = _interopRequireDefault(require("@restart/hooks/useMergedRefs"));
var _Button = _interopRequireDefault(require("./Button"));
var _ThemeProvider = require("./ThemeProvider");
var _useWrappedRefWithWarning = _interopRequireDefault(require("./useWrappedRefWithWarning"));
var propTypes = {
/**
* @default 'dropdown-toggle'
*/
bsPrefix: _propTypes["default"].string,
/**
* An html id attribute, necessary for assistive technologies, such as screen readers.
* @type {string|number}
* @required
*/
id: (0, _isRequiredForA11y["default"])(_propTypes["default"].any),
split: _propTypes["default"].bool,
as: _propTypes["default"].elementType,
/**
* to passthrough to the underlying button or whatever from DropdownButton
* @private
*/
childBsPrefix: _propTypes["default"].string
};
var DropdownToggle = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
var bsPrefix = _ref.bsPrefix,
split = _ref.split,
className = _ref.className,
children = _ref.children,
childBsPrefix = _ref.childBsPrefix,
_ref$as = _ref.as,
Component = _ref$as === void 0 ? _Button["default"] : _ref$as,
props = (0, _objectWithoutProperties2["default"])(_ref, ["bsPrefix", "split", "className", "children", "childBsPrefix", "as"]);
var prefix = (0, _ThemeProvider.useBootstrapPrefix)(bsPrefix, 'dropdown-toggle');
if (childBsPrefix !== undefined) {
props.bsPrefix = childBsPrefix;
}
var _useDropdownToggle = (0, _DropdownToggle.useDropdownToggle)(),
_useDropdownToggle2 = (0, _slicedToArray2["default"])(_useDropdownToggle, 2),
toggleProps = _useDropdownToggle2[0],
toggle = _useDropdownToggle2[1].toggle;
toggleProps.ref = (0, _useMergedRefs["default"])(toggleProps.ref, (0, _useWrappedRefWithWarning["default"])(ref, 'DropdownToggle')); // This intentionally forwards size and variant (if set) to the
// underlying component, to allow it to render size and style variants.
return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({
onClick: toggle,
className: (0, _classnames["default"])(className, prefix, split && "".concat(prefix, "-split"))
}, toggleProps, props), children);
});
DropdownToggle.displayName = 'DropdownToggle';
DropdownToggle.propTypes = propTypes;
var _default = DropdownToggle;
exports["default"] = _default;
//# sourceMappingURL=DropdownToggle.js.map