1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.DropdownProps = exports.default = void 0;
|
7 |
|
8 | var _vue = require("vue");
|
9 |
|
10 | var _index = _interopRequireDefault(require("../vc-dropdown/src/index"));
|
11 |
|
12 | var _dropdownButton = _interopRequireDefault(require("./dropdown-button"));
|
13 |
|
14 | var _vueTypes = _interopRequireDefault(require("../_util/vue-types"));
|
15 |
|
16 | var _vnode = require("../_util/vnode");
|
17 |
|
18 | var _classNames = _interopRequireDefault(require("../_util/classNames"));
|
19 |
|
20 | var _propsUtil = require("../_util/props-util");
|
21 |
|
22 | var _getDropdownProps = _interopRequireDefault(require("./getDropdownProps"));
|
23 |
|
24 | var _configProvider = require("../config-provider");
|
25 |
|
26 | var _RightOutlined = _interopRequireDefault(require("@ant-design/icons-vue/RightOutlined"));
|
27 |
|
28 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
29 |
|
30 | function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
31 |
|
32 | function _isSlot(s) {
|
33 | return typeof s === 'function' || Object.prototype.toString.call(s) === '[object Object]' && !(0, _vue.isVNode)(s);
|
34 | }
|
35 |
|
36 | var DropdownProps = (0, _getDropdownProps.default)();
|
37 | exports.DropdownProps = DropdownProps;
|
38 | var Dropdown = (0, _vue.defineComponent)({
|
39 | name: 'ADropdown',
|
40 | inheritAttrs: false,
|
41 | props: _extends(_extends({}, DropdownProps), {
|
42 | prefixCls: _vueTypes.default.string,
|
43 | mouseEnterDelay: _vueTypes.default.number.def(0.15),
|
44 | mouseLeaveDelay: _vueTypes.default.number.def(0.1),
|
45 | placement: DropdownProps.placement.def('bottomLeft'),
|
46 | onVisibleChange: _vueTypes.default.func,
|
47 | 'onUpdate:visible': _vueTypes.default.func
|
48 | }),
|
49 | emits: ['visibleChange', 'update:visible'],
|
50 | setup: function setup() {
|
51 | return {
|
52 | configProvider: (0, _vue.inject)('configProvider', _configProvider.defaultConfigProvider),
|
53 | popupRef: null
|
54 | };
|
55 | },
|
56 | created: function created() {
|
57 | (0, _vue.provide)('savePopupRef', this.savePopupRef);
|
58 | },
|
59 | methods: {
|
60 | savePopupRef: function savePopupRef(ref) {
|
61 | this.popupRef = ref;
|
62 | },
|
63 | getTransitionName: function getTransitionName() {
|
64 | var _this$$props = this.$props,
|
65 | _this$$props$placemen = _this$$props.placement,
|
66 | placement = _this$$props$placemen === void 0 ? '' : _this$$props$placemen,
|
67 | transitionName = _this$$props.transitionName;
|
68 |
|
69 | if (transitionName !== undefined) {
|
70 | return transitionName;
|
71 | }
|
72 |
|
73 | if (placement.indexOf('top') >= 0) {
|
74 | return 'slide-down';
|
75 | }
|
76 |
|
77 | return 'slide-up';
|
78 | },
|
79 | renderOverlay: function renderOverlay(prefixCls) {
|
80 | var overlay = (0, _propsUtil.getComponent)(this, 'overlay');
|
81 | var overlayNode = Array.isArray(overlay) ? overlay[0] : overlay;
|
82 |
|
83 |
|
84 | var overlayProps = overlayNode && (0, _propsUtil.getPropsData)(overlayNode);
|
85 |
|
86 | var _ref = overlayProps || {},
|
87 | _ref$selectable = _ref.selectable,
|
88 | selectable = _ref$selectable === void 0 ? false : _ref$selectable,
|
89 | _ref$focusable = _ref.focusable,
|
90 | focusable = _ref$focusable === void 0 ? true : _ref$focusable;
|
91 |
|
92 | var expandIcon = (0, _vue.createVNode)("span", {
|
93 | "class": "".concat(prefixCls, "-menu-submenu-arrow")
|
94 | }, [(0, _vue.createVNode)(_RightOutlined.default, {
|
95 | "class": "".concat(prefixCls, "-menu-submenu-arrow-icon")
|
96 | }, null)]);
|
97 | var fixedModeOverlay = (0, _propsUtil.isValidElement)(overlayNode) ? (0, _vue.cloneVNode)(overlayNode, {
|
98 | mode: 'vertical',
|
99 | selectable: selectable,
|
100 | focusable: focusable,
|
101 | expandIcon: expandIcon
|
102 | }) : overlay;
|
103 | return fixedModeOverlay;
|
104 | },
|
105 | handleVisibleChange: function handleVisibleChange(val) {
|
106 | this.$emit('update:visible', val);
|
107 | this.$emit('visibleChange', val);
|
108 | }
|
109 | },
|
110 | render: function render() {
|
111 | var _a;
|
112 |
|
113 | var props = (0, _propsUtil.getOptionProps)(this);
|
114 | var customizePrefixCls = props.prefixCls,
|
115 | trigger = props.trigger,
|
116 | disabled = props.disabled,
|
117 | getPopupContainer = props.getPopupContainer;
|
118 | var getContextPopupContainer = this.configProvider.getPopupContainer;
|
119 | var getPrefixCls = this.configProvider.getPrefixCls;
|
120 | var prefixCls = getPrefixCls('dropdown', customizePrefixCls);
|
121 | var child = (0, _propsUtil.getSlot)(this)[0];
|
122 | var dropdownTrigger = (0, _vnode.cloneElement)(child, {
|
123 | class: (0, _classNames.default)((_a = child === null || child === void 0 ? void 0 : child.props) === null || _a === void 0 ? void 0 : _a.class, "".concat(prefixCls, "-trigger")),
|
124 | disabled: disabled
|
125 | });
|
126 | var triggerActions = disabled ? [] : trigger;
|
127 | var alignPoint;
|
128 |
|
129 | if (triggerActions && triggerActions.indexOf('contextmenu') !== -1) {
|
130 | alignPoint = true;
|
131 | }
|
132 |
|
133 | var dropdownProps = _extends(_extends(_extends({
|
134 | alignPoint: alignPoint
|
135 | }, props), this.$attrs), {
|
136 | prefixCls: prefixCls,
|
137 | getPopupContainer: getPopupContainer || getContextPopupContainer,
|
138 | transitionName: this.getTransitionName(),
|
139 | trigger: triggerActions,
|
140 | overlay: this.renderOverlay(prefixCls),
|
141 | onVisibleChange: this.handleVisibleChange
|
142 | });
|
143 |
|
144 | return (0, _vue.createVNode)(_index.default, dropdownProps, _isSlot(dropdownTrigger) ? dropdownTrigger : {
|
145 | default: function _default() {
|
146 | return [dropdownTrigger];
|
147 | }
|
148 | });
|
149 | }
|
150 | });
|
151 | Dropdown.Button = _dropdownButton.default;
|
152 | var _default2 = Dropdown;
|
153 | exports.default = _default2; |
\ | No newline at end of file |