Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 
 
 

96 righe
3.3 KiB

  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports.default = void 0;
  5. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  6. var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutPropertiesLoose"));
  7. var _react = _interopRequireDefault(require("react"));
  8. var _propTypes = _interopRequireDefault(require("prop-types"));
  9. var _classnames = _interopRequireDefault(require("classnames"));
  10. var _utils = require("./utils");
  11. var propTypes = {
  12. light: _propTypes.default.bool,
  13. dark: _propTypes.default.bool,
  14. inverse: (0, _utils.deprecated)(_propTypes.default.bool, 'Please use the prop "dark"'),
  15. full: _propTypes.default.bool,
  16. fixed: _propTypes.default.string,
  17. sticky: _propTypes.default.string,
  18. color: _propTypes.default.string,
  19. role: _propTypes.default.string,
  20. tag: _utils.tagPropType,
  21. className: _propTypes.default.string,
  22. cssModule: _propTypes.default.object,
  23. toggleable: (0, _utils.deprecated)(_propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.string]), 'Please use the prop "expand"'),
  24. expand: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.string])
  25. };
  26. var defaultProps = {
  27. tag: 'nav',
  28. expand: false
  29. };
  30. var getExpandClass = function getExpandClass(expand) {
  31. if (expand === false) {
  32. return false;
  33. } else if (expand === true || expand === 'xs') {
  34. return 'navbar-expand';
  35. }
  36. return "navbar-expand-" + expand;
  37. }; // To better maintain backwards compatibility while toggleable is deprecated.
  38. // We must map breakpoints to the next breakpoint so that toggleable and expand do the same things at the same breakpoint.
  39. var toggleableToExpand = {
  40. xs: 'sm',
  41. sm: 'md',
  42. md: 'lg',
  43. lg: 'xl'
  44. };
  45. var getToggleableClass = function getToggleableClass(toggleable) {
  46. if (toggleable === undefined || toggleable === 'xl') {
  47. return false;
  48. } else if (toggleable === false) {
  49. return 'navbar-expand';
  50. }
  51. return "navbar-expand-" + (toggleable === true ? 'sm' : toggleableToExpand[toggleable] || toggleable);
  52. };
  53. var Navbar = function Navbar(props) {
  54. var _classNames;
  55. var toggleable = props.toggleable,
  56. expand = props.expand,
  57. className = props.className,
  58. cssModule = props.cssModule,
  59. light = props.light,
  60. dark = props.dark,
  61. inverse = props.inverse,
  62. fixed = props.fixed,
  63. sticky = props.sticky,
  64. color = props.color,
  65. Tag = props.tag,
  66. attributes = (0, _objectWithoutPropertiesLoose2.default)(props, ["toggleable", "expand", "className", "cssModule", "light", "dark", "inverse", "fixed", "sticky", "color", "tag"]);
  67. var classes = (0, _utils.mapToCssModules)((0, _classnames.default)(className, 'navbar', getExpandClass(expand) || getToggleableClass(toggleable), (_classNames = {
  68. 'navbar-light': light,
  69. 'navbar-dark': inverse || dark
  70. }, _classNames["bg-" + color] = color, _classNames["fixed-" + fixed] = fixed, _classNames["sticky-" + sticky] = sticky, _classNames)), cssModule);
  71. return _react.default.createElement(Tag, (0, _extends2.default)({}, attributes, {
  72. className: classes
  73. }));
  74. };
  75. Navbar.propTypes = propTypes;
  76. Navbar.defaultProps = defaultProps;
  77. var _default = Navbar;
  78. exports.default = _default;