Ribbon.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. "use strict";
  2. "use client";
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  4. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  5. Object.defineProperty(exports, "__esModule", {
  6. value: true
  7. });
  8. exports.default = void 0;
  9. var React = _interopRequireWildcard(require("react"));
  10. var _classnames = _interopRequireDefault(require("classnames"));
  11. var _colors = require("../_util/colors");
  12. var _configProvider = require("../config-provider");
  13. var _ribbon = _interopRequireDefault(require("./style/ribbon"));
  14. const Ribbon = props => {
  15. const {
  16. className,
  17. prefixCls: customizePrefixCls,
  18. style,
  19. color,
  20. children,
  21. text,
  22. placement = 'end',
  23. rootClassName
  24. } = props;
  25. const {
  26. getPrefixCls,
  27. direction
  28. } = React.useContext(_configProvider.ConfigContext);
  29. const prefixCls = getPrefixCls('ribbon', customizePrefixCls);
  30. const wrapperCls = `${prefixCls}-wrapper`;
  31. const [wrapCSSVar, hashId, cssVarCls] = (0, _ribbon.default)(prefixCls, wrapperCls);
  32. const colorInPreset = (0, _colors.isPresetColor)(color, false);
  33. const ribbonCls = (0, _classnames.default)(prefixCls, `${prefixCls}-placement-${placement}`, {
  34. [`${prefixCls}-rtl`]: direction === 'rtl',
  35. [`${prefixCls}-color-${color}`]: colorInPreset
  36. }, className);
  37. const colorStyle = {};
  38. const cornerColorStyle = {};
  39. if (color && !colorInPreset) {
  40. colorStyle.background = color;
  41. cornerColorStyle.color = color;
  42. }
  43. return wrapCSSVar(/*#__PURE__*/React.createElement("div", {
  44. className: (0, _classnames.default)(wrapperCls, rootClassName, hashId, cssVarCls)
  45. }, children, /*#__PURE__*/React.createElement("div", {
  46. className: (0, _classnames.default)(ribbonCls, hashId),
  47. style: Object.assign(Object.assign({}, colorStyle), style)
  48. }, /*#__PURE__*/React.createElement("span", {
  49. className: `${prefixCls}-text`
  50. }, text), /*#__PURE__*/React.createElement("div", {
  51. className: `${prefixCls}-corner`,
  52. style: cornerColorStyle
  53. }))));
  54. };
  55. if (process.env.NODE_ENV !== 'production') {
  56. Ribbon.displayName = 'Ribbon';
  57. }
  58. var _default = exports.default = Ribbon;