UNPKG

@fe6/water-pro

Version:

An enterprise-class UI design language and Vue-based implementation

191 lines (160 loc) 6.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _vue = require("vue"); var _omit = _interopRequireDefault(require("omit.js")); var _tooltip = _interopRequireDefault(require("../tooltip")); var _abstractTooltipProps = _interopRequireDefault(require("../tooltip/abstractTooltipProps")); var _vueTypes = _interopRequireDefault(require("../_util/vue-types")); var _propsUtil = require("../_util/props-util"); var _BaseMixin = _interopRequireDefault(require("../_util/BaseMixin")); var _buttonTypes = _interopRequireDefault(require("../button/buttonTypes")); var _ExclamationCircleFilled = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/ExclamationCircleFilled")); var _button = _interopRequireDefault(require("../button")); var _LocaleReceiver = _interopRequireDefault(require("../locale-provider/LocaleReceiver")); var _default3 = _interopRequireDefault(require("../locale-provider/default")); var _configProvider = require("../config-provider"); var _type = require("../_util/type"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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); } var tooltipProps = (0, _abstractTooltipProps.default)(); var btnProps = (0, _buttonTypes.default)(); var Popconfirm = (0, _vue.defineComponent)({ name: 'APopconfirm', mixins: [_BaseMixin.default], props: _extends(_extends({}, tooltipProps), { prefixCls: _vueTypes.default.string, transitionName: _vueTypes.default.string.def('zoom-big'), content: _vueTypes.default.any, title: _vueTypes.default.any, trigger: tooltipProps.trigger.def('click'), okType: btnProps.type.def('primary'), disabled: _vueTypes.default.looseBool.def(false), okText: _vueTypes.default.any, cancelText: _vueTypes.default.any, icon: _vueTypes.default.any, okButtonProps: _vueTypes.default.object, cancelButtonProps: _vueTypes.default.object, onConfirm: _vueTypes.default.func, onCancel: _vueTypes.default.func, onVisibleChange: _vueTypes.default.func }), emits: ['update:visible', 'confirm', 'cancel', 'visibleChange'], setup: function setup() { return { configProvider: (0, _vue.inject)('configProvider', _configProvider.defaultConfigProvider) }; }, data: function data() { var props = (0, _propsUtil.getOptionProps)(this); var state = { sVisible: false }; if ('visible' in props) { state.sVisible = props.visible; } if ('defaultVisible' in props) { state.sVisible = props.defaultVisible; } return state; }, watch: { visible: function visible(val) { this.sVisible = val; } }, methods: { onConfirmHandle: function onConfirmHandle(e) { this.setVisible(false, e); this.$emit('confirm', e); }, onCancelHandle: function onCancelHandle(e) { this.setVisible(false, e); this.$emit('cancel', e); }, onVisibleChangeHandle: function onVisibleChangeHandle(sVisible) { var disabled = this.$props.disabled; if (disabled) { return; } this.setVisible(sVisible); }, setVisible: function setVisible(sVisible, e) { if (!(0, _propsUtil.hasProp)(this, 'visible')) { this.setState({ sVisible: sVisible }); } this.$emit('update:visible', sVisible); this.$emit('visibleChange', sVisible, e); }, getPopupDomNode: function getPopupDomNode() { return this.$refs.tooltip.getPopupDomNode(); }, renderOverlay: function renderOverlay(prefixCls, popconfirmLocale) { var _this = this; var okType = this.okType, okButtonProps = this.okButtonProps, cancelButtonProps = this.cancelButtonProps; var icon = (0, _propsUtil.getComponent)(this, 'icon') || (0, _vue.createVNode)(_ExclamationCircleFilled.default, null, null); var cancelBtnProps = (0, _propsUtil.mergeProps)(_extends({ size: 'small', onClick: this.onCancelHandle }, cancelButtonProps)); var okBtnProps = (0, _propsUtil.mergeProps)(_extends({ type: okType, size: 'small', onClick: this.onConfirmHandle }, okButtonProps)); return (0, _vue.createVNode)("div", { "class": "".concat(prefixCls, "-inner-content") }, [(0, _vue.createVNode)("div", { "class": "".concat(prefixCls, "-message") }, [icon, (0, _vue.createVNode)("div", { "class": "".concat(prefixCls, "-message-title") }, [(0, _propsUtil.getComponent)(this, 'title')])]), (0, _vue.createVNode)("div", { "class": "".concat(prefixCls, "-buttons") }, [(0, _vue.createVNode)(_button.default, cancelBtnProps, { default: function _default() { return [(0, _propsUtil.getComponent)(_this, 'cancelText') || popconfirmLocale.cancelText]; } }), (0, _vue.createVNode)(_button.default, okBtnProps, { default: function _default() { return [(0, _propsUtil.getComponent)(_this, 'okText') || popconfirmLocale.okText]; } })])]); } }, render: function render() { var _this2 = this; var _a; var props = (0, _propsUtil.getOptionProps)(this); var customizePrefixCls = props.prefixCls; var getPrefixCls = this.configProvider.getPrefixCls; var prefixCls = getPrefixCls('popover', customizePrefixCls); var otherProps = (0, _omit.default)(props, ['title', 'content', 'cancelText', 'okText', 'onUpdate:visible']); var overlay = (0, _vue.createVNode)(_LocaleReceiver.default, { "componentName": "Popconfirm", "defaultLocale": _default3.default.Popconfirm, "children": function children(popconfirmLocale) { return _this2.renderOverlay(prefixCls, popconfirmLocale); } }, null); var tooltipProps = _extends(_extends({}, otherProps), { title: overlay, prefixCls: prefixCls, visible: this.sVisible, ref: 'tooltip', onVisibleChange: this.onVisibleChangeHandle }); return (0, _vue.createVNode)(_tooltip.default, tooltipProps, { default: function _default() { return [(_a = _this2.$slots) === null || _a === void 0 ? void 0 : _a.default()]; } }); } }); var _default2 = (0, _type.withInstall)(Popconfirm); exports.default = _default2;