UNPKG

@lskjs/navbar

Version:
89 lines (66 loc) 3.29 kB
"use strict"; 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