GoScrobble/web/node_modules/react-bootstrap/esm/Tabs.js

87 lines
2.8 KiB
JavaScript
Raw Permalink Normal View History

2022-04-25 02:47:15 +00:00
import _extends from "@babel/runtime/helpers/esm/extends";
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
var _excluded = ["id", "onSelect", "transition", "mountOnEnter", "unmountOnExit", "children", "activeKey"];
import React from 'react';
import requiredForA11y from 'prop-types-extra/lib/isRequiredForA11y';
import { useUncontrolled } from 'uncontrollable';
import Nav from './Nav';
import NavLink from './NavLink';
import NavItem from './NavItem';
import TabContainer from './TabContainer';
import TabContent from './TabContent';
import TabPane from './TabPane';
import { forEach, map } from './ElementChildren';
var defaultProps = {
variant: 'tabs',
mountOnEnter: false,
unmountOnExit: false
};
function getDefaultActiveKey(children) {
var defaultActiveKey;
forEach(children, function (child) {
if (defaultActiveKey == null) {
defaultActiveKey = child.props.eventKey;
}
});
return defaultActiveKey;
}
function renderTab(child) {
var _child$props = child.props,
title = _child$props.title,
eventKey = _child$props.eventKey,
disabled = _child$props.disabled,
tabClassName = _child$props.tabClassName,
id = _child$props.id;
if (title == null) {
return null;
}
return /*#__PURE__*/React.createElement(NavItem, {
as: NavLink,
eventKey: eventKey,
disabled: disabled,
id: id,
className: tabClassName
}, title);
}
var Tabs = function Tabs(props) {
var _useUncontrolled = useUncontrolled(props, {
activeKey: 'onSelect'
}),
id = _useUncontrolled.id,
onSelect = _useUncontrolled.onSelect,
transition = _useUncontrolled.transition,
mountOnEnter = _useUncontrolled.mountOnEnter,
unmountOnExit = _useUncontrolled.unmountOnExit,
children = _useUncontrolled.children,
_useUncontrolled$acti = _useUncontrolled.activeKey,
activeKey = _useUncontrolled$acti === void 0 ? getDefaultActiveKey(children) : _useUncontrolled$acti,
controlledProps = _objectWithoutPropertiesLoose(_useUncontrolled, _excluded);
return /*#__PURE__*/React.createElement(TabContainer, {
id: id,
activeKey: activeKey,
onSelect: onSelect,
transition: transition,
mountOnEnter: mountOnEnter,
unmountOnExit: unmountOnExit
}, /*#__PURE__*/React.createElement(Nav, _extends({}, controlledProps, {
role: "tablist",
as: "nav"
}), map(children, renderTab)), /*#__PURE__*/React.createElement(TabContent, null, map(children, function (child) {
var childProps = _extends({}, child.props);
delete childProps.title;
delete childProps.disabled;
delete childProps.tabClassName;
return /*#__PURE__*/React.createElement(TabPane, childProps);
})));
};
Tabs.defaultProps = defaultProps;
Tabs.displayName = 'Tabs';
export default Tabs;