ant-design-vue
Version:
An enterprise-class UI design language and Vue-based implementation
99 lines (81 loc) • 2.51 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _vueTypes = require('../../_util/vue-types');
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _vcTrigger = require('../../vc-trigger');
var _vcTrigger2 = _interopRequireDefault(_vcTrigger);
var _DropdownMenu = require('./DropdownMenu');
var _DropdownMenu2 = _interopRequireDefault(_DropdownMenu);
var _Option = require('./Option');
var _placement = require('./placement');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var BUILT_IN_PLACEMENTS = {
bottomRight: {
points: ['tl', 'br'],
offset: [0, 4],
overflow: {
adjustX: 0,
adjustY: 1
}
},
topRight: {
points: ['bl', 'tr'],
offset: [0, -4],
overflow: {
adjustX: 0,
adjustY: 1
}
}
};
exports['default'] = {
name: 'KeywordTrigger',
props: {
loading: _vueTypes2['default'].bool,
options: _vueTypes2['default'].arrayOf(_Option.OptionProps),
prefixCls: _vueTypes2['default'].string,
placement: _vueTypes2['default'].oneOf(_placement.PlaceMent),
visible: _vueTypes2['default'].bool,
transitionName: _vueTypes2['default'].string,
getPopupContainer: _vueTypes2['default'].func
},
methods: {
getDropdownPrefix: function getDropdownPrefix() {
return this.$props.prefixCls + '-dropdown';
},
getDropdownElement: function getDropdownElement() {
var h = this.$createElement;
var options = this.$props.options;
return h(_DropdownMenu2['default'], {
attrs: { prefixCls: this.getDropdownPrefix(), options: options }
});
}
},
render: function render() {
var h = arguments[0];
var _$props = this.$props,
visible = _$props.visible,
placement = _$props.placement,
transitionName = _$props.transitionName,
getPopupContainer = _$props.getPopupContainer;
var $slots = this.$slots;
var children = $slots['default'];
var popupElement = this.getDropdownElement();
return h(
_vcTrigger2['default'],
{
attrs: {
prefixCls: this.getDropdownPrefix(),
popupVisible: visible,
popup: popupElement,
popupPlacement: placement === 'top' ? 'topRight' : 'bottomRight',
popupTransitionName: transitionName,
builtinPlacements: BUILT_IN_PLACEMENTS,
getPopupContainer: getPopupContainer
}
},
[children]
);
}
};