KeywordTrigger.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. "use strict";
  2. var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
  3. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  4. Object.defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.default = void 0;
  8. var _trigger = _interopRequireDefault(require("@rc-component/trigger"));
  9. var _react = _interopRequireWildcard(require("react"));
  10. var React = _react;
  11. var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
  12. var BUILT_IN_PLACEMENTS = {
  13. bottomRight: {
  14. points: ['tl', 'br'],
  15. offset: [0, 4],
  16. overflow: {
  17. adjustX: 1,
  18. adjustY: 1
  19. }
  20. },
  21. bottomLeft: {
  22. points: ['tr', 'bl'],
  23. offset: [0, 4],
  24. overflow: {
  25. adjustX: 1,
  26. adjustY: 1
  27. }
  28. },
  29. topRight: {
  30. points: ['bl', 'tr'],
  31. offset: [0, -4],
  32. overflow: {
  33. adjustX: 1,
  34. adjustY: 1
  35. }
  36. },
  37. topLeft: {
  38. points: ['br', 'tl'],
  39. offset: [0, -4],
  40. overflow: {
  41. adjustX: 1,
  42. adjustY: 1
  43. }
  44. }
  45. };
  46. var KeywordTrigger = function KeywordTrigger(props) {
  47. var prefixCls = props.prefixCls,
  48. options = props.options,
  49. children = props.children,
  50. visible = props.visible,
  51. transitionName = props.transitionName,
  52. getPopupContainer = props.getPopupContainer,
  53. dropdownClassName = props.dropdownClassName,
  54. direction = props.direction,
  55. placement = props.placement;
  56. var dropdownPrefix = "".concat(prefixCls, "-dropdown");
  57. var dropdownElement = /*#__PURE__*/React.createElement(_DropdownMenu.default, {
  58. prefixCls: dropdownPrefix,
  59. options: options
  60. });
  61. var dropdownPlacement = (0, _react.useMemo)(function () {
  62. var popupPlacement;
  63. if (direction === 'rtl') {
  64. popupPlacement = placement === 'top' ? 'topLeft' : 'bottomLeft';
  65. } else {
  66. popupPlacement = placement === 'top' ? 'topRight' : 'bottomRight';
  67. }
  68. return popupPlacement;
  69. }, [direction, placement]);
  70. return /*#__PURE__*/React.createElement(_trigger.default, {
  71. prefixCls: dropdownPrefix,
  72. popupVisible: visible,
  73. popup: dropdownElement,
  74. popupPlacement: dropdownPlacement,
  75. popupTransitionName: transitionName,
  76. builtinPlacements: BUILT_IN_PLACEMENTS,
  77. getPopupContainer: getPopupContainer,
  78. popupClassName: dropdownClassName
  79. }, children);
  80. };
  81. var _default = exports.default = KeywordTrigger;