element-plus
Version:
A Component Library for Vue3.0
147 lines (135 loc) • 4.57 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var ElButton = require('../el-button');
var ElPopper = require('../el-popper');
var locale = require('../locale');
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
var ElButton__default = /*#__PURE__*/_interopDefaultLegacy(ElButton);
var ElPopper__default = /*#__PURE__*/_interopDefaultLegacy(ElPopper);
var script = vue.defineComponent({
name: 'ElPopconfirm',
components: {
ElButton: ElButton__default['default'],
ElPopper: ElPopper__default['default'],
},
props: {
title: {
type: String,
},
confirmButtonText: {
type: String,
},
cancelButtonText: {
type: String,
},
confirmButtonType: {
type: String,
default: 'primary',
},
cancelButtonType: {
type: String,
default: 'text',
},
icon: {
type: String,
default: 'el-icon-question',
},
iconColor: {
type: String,
default: '#f90',
},
hideIcon: {
type: Boolean,
default: false,
},
},
emits: ['confirm', 'cancel'],
setup(props, { emit }) {
const visible = vue.ref(false);
const confirm = () => {
visible.value = false;
emit('confirm');
};
const cancel = () => {
visible.value = false;
emit('cancel');
};
const confirmButtonText_ = vue.computed(() => {
return props.confirmButtonText || locale.t('el.popconfirm.confirmButtonText');
});
const cancelButtonText_ = vue.computed(() => {
return props.cancelButtonText || locale.t('el.popconfirm.cancelButtonText');
});
return {
visible,
confirm,
cancel,
confirmButtonText_,
cancelButtonText_,
};
},
});
const _hoisted_1 = { class: "el-popconfirm" };
const _hoisted_2 = { class: "el-popconfirm__main" };
const _hoisted_3 = { class: "el-popconfirm__action" };
function render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_el_button = vue.resolveComponent("el-button");
const _component_el_popper = vue.resolveComponent("el-popper");
return (vue.openBlock(), vue.createBlock(_component_el_popper, {
visible: _ctx.visible,
"onUpdate:visible": _cache[1] || (_cache[1] = $event => (_ctx.visible = $event)),
trigger: "click",
effect: "light",
"popper-class": "el-popover",
"append-to-body": ""
}, {
trigger: vue.withCtx(() => [
vue.renderSlot(_ctx.$slots, "reference")
]),
default: vue.withCtx(() => [
vue.createVNode("div", _hoisted_1, [
vue.createVNode("p", _hoisted_2, [
(!_ctx.hideIcon)
? (vue.openBlock(), vue.createBlock("i", {
key: 0,
class: [_ctx.icon, "el-popconfirm__icon"],
style: {color: _ctx.iconColor}
}, null, 6 /* CLASS, STYLE */))
: vue.createCommentVNode("v-if", true),
vue.createTextVNode(" " + vue.toDisplayString(_ctx.title), 1 /* TEXT */)
]),
vue.createVNode("div", _hoisted_3, [
vue.createVNode(_component_el_button, {
size: "mini",
type: _ctx.cancelButtonType,
onClick: _ctx.cancel
}, {
default: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(_ctx.cancelButtonText_), 1 /* TEXT */)
]),
_: 1 /* STABLE */
}, 8 /* PROPS */, ["type", "onClick"]),
vue.createVNode(_component_el_button, {
size: "mini",
type: _ctx.confirmButtonType,
onClick: _ctx.confirm
}, {
default: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(_ctx.confirmButtonText_), 1 /* TEXT */)
]),
_: 1 /* STABLE */
}, 8 /* PROPS */, ["type", "onClick"])
])
])
]),
_: 1 /* STABLE */
}, 8 /* PROPS */, ["visible"]))
}
script.render = render;
script.__file = "packages/popconfirm/src/index.vue";
script.install = (app) => {
app.component(script.name, script);
};
const _Popconfirm = script;
exports.default = _Popconfirm;