Dashboard sipadu mbip
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import _extends from "@babel/runtime/helpers/esm/extends";
  2. import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose";
  3. import classNames from 'classnames';
  4. import React, { useContext } from 'react';
  5. import { useBootstrapPrefix } from './ThemeProvider';
  6. import TabContext from './TabContext';
  7. import SelectableContext, { makeEventKey } from './SelectableContext';
  8. import Fade from './Fade';
  9. function useTabContext(props) {
  10. var context = useContext(TabContext);
  11. if (!context) return props;
  12. var activeKey = context.activeKey,
  13. getControlledId = context.getControlledId,
  14. getControllerId = context.getControllerId,
  15. rest = _objectWithoutPropertiesLoose(context, ["activeKey", "getControlledId", "getControllerId"]);
  16. var shouldTransition = props.transition !== false && rest.transition !== false;
  17. var key = makeEventKey(props.eventKey);
  18. return _extends({}, props, {
  19. active: props.active == null && key != null ? makeEventKey(activeKey) === key : props.active,
  20. id: getControlledId(props.eventKey),
  21. 'aria-labelledby': getControllerId(props.eventKey),
  22. transition: shouldTransition && (props.transition || rest.transition || Fade),
  23. mountOnEnter: props.mountOnEnter != null ? props.mountOnEnter : rest.mountOnEnter,
  24. unmountOnExit: props.unmountOnExit != null ? props.unmountOnExit : rest.unmountOnExit
  25. });
  26. }
  27. var TabPane = React.forwardRef(function (props, ref) {
  28. var _useTabContext = useTabContext(props),
  29. bsPrefix = _useTabContext.bsPrefix,
  30. className = _useTabContext.className,
  31. active = _useTabContext.active,
  32. onEnter = _useTabContext.onEnter,
  33. onEntering = _useTabContext.onEntering,
  34. onEntered = _useTabContext.onEntered,
  35. onExit = _useTabContext.onExit,
  36. onExiting = _useTabContext.onExiting,
  37. onExited = _useTabContext.onExited,
  38. mountOnEnter = _useTabContext.mountOnEnter,
  39. unmountOnExit = _useTabContext.unmountOnExit,
  40. Transition = _useTabContext.transition,
  41. _useTabContext$as = _useTabContext.as,
  42. Component = _useTabContext$as === void 0 ? 'div' : _useTabContext$as,
  43. _ = _useTabContext.eventKey,
  44. rest = _objectWithoutPropertiesLoose(_useTabContext, ["bsPrefix", "className", "active", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "mountOnEnter", "unmountOnExit", "transition", "as", "eventKey"]);
  45. var prefix = useBootstrapPrefix(bsPrefix, 'tab-pane');
  46. if (!active && unmountOnExit) return null;
  47. var pane = React.createElement(Component, _extends({}, rest, {
  48. ref: ref,
  49. role: "tabpanel",
  50. "aria-hidden": !active,
  51. className: classNames(className, prefix, {
  52. active: active
  53. })
  54. }));
  55. if (Transition) pane = React.createElement(Transition, {
  56. in: active,
  57. onEnter: onEnter,
  58. onEntering: onEntering,
  59. onEntered: onEntered,
  60. onExit: onExit,
  61. onExiting: onExiting,
  62. onExited: onExited,
  63. mountOnEnter: mountOnEnter,
  64. unmountOnExit: unmountOnExit
  65. }, pane); // We provide an empty the TabContext so `<Nav>`s in `<TabPane>`s don't
  66. // conflict with the top level one.
  67. return React.createElement(TabContext.Provider, {
  68. value: null
  69. }, React.createElement(SelectableContext.Provider, {
  70. value: null
  71. }, pane));
  72. });
  73. TabPane.displayName = 'TabPane';
  74. export default TabPane;