@lskjs/navbar
Version:
LSK ux subrepo: navbar
121 lines (98 loc) • 9.97 kB
JavaScript
"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 _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
var _classnames = _interopRequireDefault(require("classnames"));
var _react = _interopRequireDefault(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _ThemeProvider = require("./ThemeProvider");
var _SafeAnchor = _interopRequireDefault(require("./SafeAnchor"));
var propTypes = {
/**
* @default 'btn'
*/
bsPrefix: _propTypes["default"].string,
/**
* One or more button variant combinations
*
* buttons may be one of a variety of visual variants such as:
*
* `'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark', 'light', 'link'`
*
* as well as "outline" versions (prefixed by 'outline-*')
*
* `'outline-primary', 'outline-secondary', 'outline-success', 'outline-danger', 'outline-warning', 'outline-info', 'outline-dark', 'outline-light'`
*/
variant: _propTypes["default"].string,
/**
* Specifies a large or small button.
*
* @type ('sm'|'lg')
*/
size: _propTypes["default"].string,
/** Spans the full width of the Button parent */
block: _propTypes["default"].bool,
/** Manually set the visual state of the button to `:active` */
active: _propTypes["default"].bool,
/**
* Disables the Button, preventing mouse events,
* even if the underlying component is an `<a>` element
*/
disabled: _propTypes["default"].bool,
/** Providing a `href` will render an `<a>` element, _styled_ as a button. */
href: _propTypes["default"].string,
/**
* Defines HTML button type attribute.
*
* @default 'button'
*/
type: _propTypes["default"].oneOf(['button', 'reset', 'submit', null]),
as: _propTypes["default"].elementType
};
var defaultProps = {
variant: 'primary',
active: false,
disabled: false,
type: 'button'
};
var Button = _react["default"].forwardRef(function (_ref, ref) {
var bsPrefix = _ref.bsPrefix,
variant = _ref.variant,
size = _ref.size,
active = _ref.active,
className = _ref.className,
block = _ref.block,
type = _ref.type,
as = _ref.as,
props = (0, _objectWithoutProperties2["default"])(_ref, ["bsPrefix", "variant", "size", "active", "className", "block", "type", "as"]);
var prefix = (0, _ThemeProvider.useBootstrapPrefix)(bsPrefix, 'btn');
var classes = (0, _classnames["default"])(className, prefix, active && 'active', "".concat(prefix, "-").concat(variant), block && "".concat(prefix, "-block"), size && "".concat(prefix, "-").concat(size));
if (props.href) {
return /*#__PURE__*/_react["default"].createElement(_SafeAnchor["default"], (0, _extends2["default"])({}, props, {
as: as,
ref: ref,
className: (0, _classnames["default"])(classes, props.disabled && 'disabled')
}));
}
if (ref) {
props.ref = ref;
}
if (!as) {
props.type = type;
}
var Component = as || 'button';
return /*#__PURE__*/_react["default"].createElement(Component, (0, _extends2["default"])({}, props, {
className: classes
}));
});
Button.displayName = 'Button';
Button.propTypes = propTypes;
Button.defaultProps = defaultProps;
var _default = Button;
exports["default"] = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9CdXR0b24uanMiXSwibmFtZXMiOlsicHJvcFR5cGVzIiwiYnNQcmVmaXgiLCJQcm9wVHlwZXMiLCJzdHJpbmciLCJ2YXJpYW50Iiwic2l6ZSIsImJsb2NrIiwiYm9vbCIsImFjdGl2ZSIsImRpc2FibGVkIiwiaHJlZiIsInR5cGUiLCJvbmVPZiIsImFzIiwiZWxlbWVudFR5cGUiLCJkZWZhdWx0UHJvcHMiLCJCdXR0b24iLCJSZWFjdCIsImZvcndhcmRSZWYiLCJyZWYiLCJjbGFzc05hbWUiLCJwcm9wcyIsInByZWZpeCIsImNsYXNzZXMiLCJDb21wb25lbnQiLCJkaXNwbGF5TmFtZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUVBLElBQU1BLFNBQVMsR0FBRztBQUNoQjs7O0FBR0FDLEVBQUFBLFFBQVEsRUFBRUMsc0JBQVVDLE1BSko7O0FBTWhCOzs7Ozs7Ozs7OztBQVdBQyxFQUFBQSxPQUFPLEVBQUVGLHNCQUFVQyxNQWpCSDs7QUFtQmhCOzs7OztBQUtBRSxFQUFBQSxJQUFJLEVBQUVILHNCQUFVQyxNQXhCQTs7QUEwQmhCO0FBQ0FHLEVBQUFBLEtBQUssRUFBRUosc0JBQVVLLElBM0JEOztBQTZCaEI7QUFDQUMsRUFBQUEsTUFBTSxFQUFFTixzQkFBVUssSUE5QkY7O0FBZ0NoQjs7OztBQUlBRSxFQUFBQSxRQUFRLEVBQUVQLHNCQUFVSyxJQXBDSjs7QUFzQ2hCO0FBQ0FHLEVBQUFBLElBQUksRUFBRVIsc0JBQVVDLE1BdkNBOztBQXlDaEI7Ozs7O0FBS0FRLEVBQUFBLElBQUksRUFBRVQsc0JBQVVVLEtBQVYsQ0FBZ0IsQ0FBQyxRQUFELEVBQVcsT0FBWCxFQUFvQixRQUFwQixFQUE4QixJQUE5QixDQUFoQixDQTlDVTtBQWdEaEJDLEVBQUFBLEVBQUUsRUFBRVgsc0JBQVVZO0FBaERFLENBQWxCO0FBbURBLElBQU1DLFlBQVksR0FBRztBQUNuQlgsRUFBQUEsT0FBTyxFQUFFLFNBRFU7QUFFbkJJLEVBQUFBLE1BQU0sRUFBRSxLQUZXO0FBR25CQyxFQUFBQSxRQUFRLEVBQUUsS0FIUztBQUluQkUsRUFBQUEsSUFBSSxFQUFFO0FBSmEsQ0FBckI7O0FBT0EsSUFBTUssTUFBTSxHQUFHQyxrQkFBTUMsVUFBTixDQUNiLGdCQUVFQyxHQUZGLEVBR0s7QUFBQSxNQUZEbEIsUUFFQyxRQUZEQSxRQUVDO0FBQUEsTUFGU0csT0FFVCxRQUZTQSxPQUVUO0FBQUEsTUFGa0JDLElBRWxCLFFBRmtCQSxJQUVsQjtBQUFBLE1BRndCRyxNQUV4QixRQUZ3QkEsTUFFeEI7QUFBQSxNQUZnQ1ksU0FFaEMsUUFGZ0NBLFNBRWhDO0FBQUEsTUFGMkNkLEtBRTNDLFFBRjJDQSxLQUUzQztBQUFBLE1BRmtESyxJQUVsRCxRQUZrREEsSUFFbEQ7QUFBQSxNQUZ3REUsRUFFeEQsUUFGd0RBLEVBRXhEO0FBQUEsTUFGK0RRLEtBRS9EO0FBQ0gsTUFBTUMsTUFBTSxHQUFHLHVDQUFtQnJCLFFBQW5CLEVBQTZCLEtBQTdCLENBQWY7QUFFQSxNQUFNc0IsT0FBTyxHQUFHLDRCQUNkSCxTQURjLEVBRWRFLE1BRmMsRUFHZGQsTUFBTSxJQUFJLFFBSEksWUFJWGMsTUFKVyxjQUlEbEIsT0FKQyxHQUtkRSxLQUFLLGNBQU9nQixNQUFQLFdBTFMsRUFNZGpCLElBQUksY0FBT2lCLE1BQVAsY0FBaUJqQixJQUFqQixDQU5VLENBQWhCOztBQVNBLE1BQUlnQixLQUFLLENBQUNYLElBQVYsRUFBZ0I7QUFDZCx3QkFDRSxnQ0FBQyxzQkFBRCxnQ0FDTVcsS0FETjtBQUVFLE1BQUEsRUFBRSxFQUFFUixFQUZOO0FBR0UsTUFBQSxHQUFHLEVBQUVNLEdBSFA7QUFJRSxNQUFBLFNBQVMsRUFBRSw0QkFBV0ksT0FBWCxFQUFvQkYsS0FBSyxDQUFDWixRQUFOLElBQWtCLFVBQXRDO0FBSmIsT0FERjtBQVFEOztBQUVELE1BQUlVLEdBQUosRUFBUztBQUNQRSxJQUFBQSxLQUFLLENBQUNGLEdBQU4sR0FBWUEsR0FBWjtBQUNEOztBQUVELE1BQUksQ0FBQ04sRUFBTCxFQUFTO0FBQ1BRLElBQUFBLEtBQUssQ0FBQ1YsSUFBTixHQUFhQSxJQUFiO0FBQ0Q7O0FBRUQsTUFBTWEsU0FBUyxHQUFHWCxFQUFFLElBQUksUUFBeEI7QUFDQSxzQkFBTyxnQ0FBQyxTQUFELGdDQUFlUSxLQUFmO0FBQXNCLElBQUEsU0FBUyxFQUFFRTtBQUFqQyxLQUFQO0FBQ0QsQ0FyQ1ksQ0FBZjs7QUF3Q0FQLE1BQU0sQ0FBQ1MsV0FBUCxHQUFxQixRQUFyQjtBQUNBVCxNQUFNLENBQUNoQixTQUFQLEdBQW1CQSxTQUFuQjtBQUNBZ0IsTUFBTSxDQUFDRCxZQUFQLEdBQXNCQSxZQUF0QjtlQUVlQyxNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcblxuaW1wb3J0IHsgdXNlQm9vdHN0cmFwUHJlZml4IH0gZnJvbSAnLi9UaGVtZVByb3ZpZGVyJztcbmltcG9ydCBTYWZlQW5jaG9yIGZyb20gJy4vU2FmZUFuY2hvcic7XG5cbmNvbnN0IHByb3BUeXBlcyA9IHtcbiAgLyoqXG4gICAqIEBkZWZhdWx0ICdidG4nXG4gICAqL1xuICBic1ByZWZpeDogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogT25lIG9yIG1vcmUgYnV0dG9uIHZhcmlhbnQgY29tYmluYXRpb25zXG4gICAqXG4gICAqIGJ1dHRvbnMgbWF5IGJlIG9uZSBvZiBhIHZhcmlldHkgb2YgdmlzdWFsIHZhcmlhbnRzIHN1Y2ggYXM6XG4gICAqXG4gICAqIGAncHJpbWFyeScsICdzZWNvbmRhcnknLCAnc3VjY2VzcycsICdkYW5nZXInLCAnd2FybmluZycsICdpbmZvJywgJ2RhcmsnLCAnbGlnaHQnLCAnbGluaydgXG4gICAqXG4gICAqIGFzIHdlbGwgYXMgXCJvdXRsaW5lXCIgdmVyc2lvbnMgKHByZWZpeGVkIGJ5ICdvdXRsaW5lLSonKVxuICAgKlxuICAgKiBgJ291dGxpbmUtcHJpbWFyeScsICdvdXRsaW5lLXNlY29uZGFyeScsICdvdXRsaW5lLXN1Y2Nlc3MnLCAnb3V0bGluZS1kYW5nZXInLCAnb3V0bGluZS13YXJuaW5nJywgJ291dGxpbmUtaW5mbycsICdvdXRsaW5lLWRhcmsnLCAnb3V0bGluZS1saWdodCdgXG4gICAqL1xuICB2YXJpYW50OiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgYSBsYXJnZSBvciBzbWFsbCBidXR0b24uXG4gICAqXG4gICAqIEB0eXBlICgnc20nfCdsZycpXG4gICAqL1xuICBzaXplOiBQcm9wVHlwZXMuc3RyaW5nLFxuXG4gIC8qKiBTcGFucyB0aGUgZnVsbCB3aWR0aCBvZiB0aGUgQnV0dG9uIHBhcmVudCAqL1xuICBibG9jazogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqIE1hbnVhbGx5IHNldCB0aGUgdmlzdWFsIHN0YXRlIG9mIHRoZSBidXR0b24gdG8gYDphY3RpdmVgICovXG4gIGFjdGl2ZTogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqXG4gICAqIERpc2FibGVzIHRoZSBCdXR0b24sIHByZXZlbnRpbmcgbW91c2UgZXZlbnRzLFxuICAgKiBldmVuIGlmIHRoZSB1bmRlcmx5aW5nIGNvbXBvbmVudCBpcyBhbiBgPGE+YCBlbGVtZW50XG4gICAqL1xuICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG5cbiAgLyoqIFByb3ZpZGluZyBhIGBocmVmYCB3aWxsIHJlbmRlciBhbiBgPGE+YCBlbGVtZW50LCBfc3R5bGVkXyBhcyBhIGJ1dHRvbi4gKi9cbiAgaHJlZjogUHJvcFR5cGVzLnN0cmluZyxcblxuICAvKipcbiAgICogRGVmaW5lcyBIVE1MIGJ1dHRvbiB0eXBlIGF0dHJpYnV0ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2J1dHRvbidcbiAgICovXG4gIHR5cGU6IFByb3BUeXBlcy5vbmVPZihbJ2J1dHRvbicsICdyZXNldCcsICdzdWJtaXQnLCBudWxsXSksXG5cbiAgYXM6IFByb3BUeXBlcy5lbGVtZW50VHlwZSxcbn07XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHtcbiAgdmFyaWFudDogJ3ByaW1hcnknLFxuICBhY3RpdmU6IGZhbHNlLFxuICBkaXNhYmxlZDogZmFsc2UsXG4gIHR5cGU6ICdidXR0b24nLFxufTtcblxuY29uc3QgQnV0dG9uID0gUmVhY3QuZm9yd2FyZFJlZihcbiAgKFxuICAgIHsgYnNQcmVmaXgsIHZhcmlhbnQsIHNpemUsIGFjdGl2ZSwgY2xhc3NOYW1lLCBibG9jaywgdHlwZSwgYXMsIC4uLnByb3BzIH0sXG4gICAgcmVmLFxuICApID0+IHtcbiAgICBjb25zdCBwcmVmaXggPSB1c2VCb290c3RyYXBQcmVmaXgoYnNQcmVmaXgsICdidG4nKTtcblxuICAgIGNvbnN0IGNsYXNzZXMgPSBjbGFzc05hbWVzKFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgcHJlZml4LFxuICAgICAgYWN0aXZlICYmICdhY3RpdmUnLFxuICAgICAgYCR7cHJlZml4fS0ke3ZhcmlhbnR9YCxcbiAgICAgIGJsb2NrICYmIGAke3ByZWZpeH0tYmxvY2tgLFxuICAgICAgc2l6ZSAmJiBgJHtwcmVmaXh9LSR7c2l6ZX1gLFxuICAgICk7XG5cbiAgICBpZiAocHJvcHMuaHJlZikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFNhZmVBbmNob3JcbiAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgYXM9e2FzfVxuICAgICAgICAgIHJlZj17cmVmfVxuICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc2VzLCBwcm9wcy5kaXNhYmxlZCAmJiAnZGlzYWJsZWQnKX1cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKHJlZikge1xuICAgICAgcHJvcHMucmVmID0gcmVmO1xuICAgIH1cblxuICAgIGlmICghYXMpIHtcbiAgICAgIHByb3BzLnR5cGUgPSB0eXBlO1xuICAgIH1cblxuICAgIGNvbnN0IENvbXBvbmVudCA9IGFzIHx8ICdidXR0b24nO1xuICAgIHJldHVybiA8Q29tcG9uZW50IHsuLi5wcm9wc30gY2xhc3NOYW1lPXtjbGFzc2VzfSAvPjtcbiAgfSxcbik7XG5cbkJ1dHRvbi5kaXNwbGF5TmFtZSA9ICdCdXR0b24nO1xuQnV0dG9uLnByb3BUeXBlcyA9IHByb3BUeXBlcztcbkJ1dHRvbi5kZWZhdWx0UHJvcHMgPSBkZWZhdWx0UHJvcHM7XG5cbmV4cG9ydCBkZWZhdWx0IEJ1dHRvbjtcbiJdfQ==
//# sourceMappingURL=Button.js.map