1 | "use strict";
|
2 |
|
3 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
4 |
|
5 | var _typeof = require("@babel/runtime/helpers/typeof");
|
6 |
|
7 | Object.defineProperty(exports, "__esModule", {
|
8 | value: true
|
9 | });
|
10 | exports["default"] = void 0;
|
11 |
|
12 | var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
13 |
|
14 | var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
15 |
|
16 | var React = _interopRequireWildcard(require("react"));
|
17 |
|
18 | var _rcDropdown = _interopRequireDefault(require("rc-dropdown"));
|
19 |
|
20 | var _classnames = _interopRequireDefault(require("classnames"));
|
21 |
|
22 | var _RightOutlined = _interopRequireDefault(require("@ant-design/icons/RightOutlined"));
|
23 |
|
24 | var _dropdownButton = _interopRequireDefault(require("./dropdown-button"));
|
25 |
|
26 | var _configProvider = require("../config-provider");
|
27 |
|
28 | var _devWarning = _interopRequireDefault(require("../_util/devWarning"));
|
29 |
|
30 | var _type = require("../_util/type");
|
31 |
|
32 | var _reactNode = require("../_util/reactNode");
|
33 |
|
34 | function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
35 |
|
36 | function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
37 |
|
38 | var Placements = (0, _type.tuple)('topLeft', 'topCenter', 'topRight', 'bottomLeft', 'bottomCenter', 'bottomRight');
|
39 |
|
40 | var Dropdown = function Dropdown(props) {
|
41 | var _React$useContext = React.useContext(_configProvider.ConfigContext),
|
42 | getContextPopupContainer = _React$useContext.getPopupContainer,
|
43 | getPrefixCls = _React$useContext.getPrefixCls,
|
44 | direction = _React$useContext.direction;
|
45 |
|
46 | var getTransitionName = function getTransitionName() {
|
47 | var rootPrefixCls = getPrefixCls();
|
48 | var _props$placement = props.placement,
|
49 | placement = _props$placement === void 0 ? '' : _props$placement,
|
50 | transitionName = props.transitionName;
|
51 |
|
52 | if (transitionName !== undefined) {
|
53 | return transitionName;
|
54 | }
|
55 |
|
56 | if (placement.indexOf('top') >= 0) {
|
57 | return "".concat(rootPrefixCls, "-slide-down");
|
58 | }
|
59 |
|
60 | return "".concat(rootPrefixCls, "-slide-up");
|
61 | };
|
62 |
|
63 | var renderOverlay = function renderOverlay(prefixCls) {
|
64 |
|
65 |
|
66 | var overlay = props.overlay;
|
67 | var overlayNode;
|
68 |
|
69 | if (typeof overlay === 'function') {
|
70 | overlayNode = overlay();
|
71 | } else {
|
72 | overlayNode = overlay;
|
73 | }
|
74 |
|
75 | overlayNode = React.Children.only(typeof overlayNode === 'string' ? React.createElement("span", null, overlayNode) : overlayNode);
|
76 | var overlayProps = overlayNode.props;
|
77 |
|
78 | (0, _devWarning["default"])(!overlayProps.mode || overlayProps.mode === 'vertical', 'Dropdown', "mode=\"".concat(overlayProps.mode, "\" is not supported for Dropdown's Menu."));
|
79 |
|
80 | var _overlayProps$selecta = overlayProps.selectable,
|
81 | selectable = _overlayProps$selecta === void 0 ? false : _overlayProps$selecta,
|
82 | expandIcon = overlayProps.expandIcon;
|
83 | var overlayNodeExpandIcon = typeof expandIcon !== 'undefined' && React.isValidElement(expandIcon) ? expandIcon : React.createElement("span", {
|
84 | className: "".concat(prefixCls, "-menu-submenu-arrow")
|
85 | }, React.createElement(_RightOutlined["default"], {
|
86 | className: "".concat(prefixCls, "-menu-submenu-arrow-icon")
|
87 | }));
|
88 | var fixedModeOverlay = typeof overlayNode.type === 'string' ? overlayNode : (0, _reactNode.cloneElement)(overlayNode, {
|
89 | mode: 'vertical',
|
90 | selectable: selectable,
|
91 | expandIcon: overlayNodeExpandIcon
|
92 | });
|
93 | return fixedModeOverlay;
|
94 | };
|
95 |
|
96 | var getPlacement = function getPlacement() {
|
97 | var placement = props.placement;
|
98 |
|
99 | if (placement !== undefined) {
|
100 | return placement;
|
101 | }
|
102 |
|
103 | return direction === 'rtl' ? 'bottomRight' : 'bottomLeft';
|
104 | };
|
105 |
|
106 | var arrow = props.arrow,
|
107 | customizePrefixCls = props.prefixCls,
|
108 | children = props.children,
|
109 | trigger = props.trigger,
|
110 | disabled = props.disabled,
|
111 | getPopupContainer = props.getPopupContainer,
|
112 | overlayClassName = props.overlayClassName;
|
113 | var prefixCls = getPrefixCls('dropdown', customizePrefixCls);
|
114 | var child = React.Children.only(children);
|
115 | var dropdownTrigger = (0, _reactNode.cloneElement)(child, {
|
116 | className: (0, _classnames["default"])("".concat(prefixCls, "-trigger"), (0, _defineProperty2["default"])({}, "".concat(prefixCls, "-rtl"), direction === 'rtl'), child.props.className),
|
117 | disabled: disabled
|
118 | });
|
119 | var overlayClassNameCustomized = (0, _classnames["default"])(overlayClassName, (0, _defineProperty2["default"])({}, "".concat(prefixCls, "-rtl"), direction === 'rtl'));
|
120 | var triggerActions = disabled ? [] : trigger;
|
121 | var alignPoint;
|
122 |
|
123 | if (triggerActions && triggerActions.indexOf('contextMenu') !== -1) {
|
124 | alignPoint = true;
|
125 | }
|
126 |
|
127 | return React.createElement(_rcDropdown["default"], (0, _extends2["default"])({
|
128 | arrow: arrow,
|
129 | alignPoint: alignPoint
|
130 | }, props, {
|
131 | overlayClassName: overlayClassNameCustomized,
|
132 | prefixCls: prefixCls,
|
133 | getPopupContainer: getPopupContainer || getContextPopupContainer,
|
134 | transitionName: getTransitionName(),
|
135 | trigger: triggerActions,
|
136 | overlay: function overlay() {
|
137 | return renderOverlay(prefixCls);
|
138 | },
|
139 | placement: getPlacement()
|
140 | }), dropdownTrigger);
|
141 | };
|
142 |
|
143 | Dropdown.Button = _dropdownButton["default"];
|
144 | Dropdown.defaultProps = {
|
145 | mouseEnterDelay: 0.15,
|
146 | mouseLeaveDelay: 0.1
|
147 | };
|
148 | var _default = Dropdown;
|
149 | exports["default"] = _default; |
\ | No newline at end of file |