element-plus
Version:
A Component Library for Vue3.0
294 lines (280 loc) • 8.6 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var ElButton = require('../el-button');
var ElPopper = require('../el-popper');
require('dayjs');
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 defaultLang = {
name: 'en',
el: {
colorpicker: {
confirm: 'OK',
clear: 'Clear',
},
datepicker: {
now: 'Now',
today: 'Today',
cancel: 'Cancel',
clear: 'Clear',
confirm: 'OK',
selectDate: 'Select date',
selectTime: 'Select time',
startDate: 'Start Date',
startTime: 'Start Time',
endDate: 'End Date',
endTime: 'End Time',
prevYear: 'Previous Year',
nextYear: 'Next Year',
prevMonth: 'Previous Month',
nextMonth: 'Next Month',
year: '',
month1: 'January',
month2: 'February',
month3: 'March',
month4: 'April',
month5: 'May',
month6: 'June',
month7: 'July',
month8: 'August',
month9: 'September',
month10: 'October',
month11: 'November',
month12: 'December',
week: 'week',
weeks: {
sun: 'Sun',
mon: 'Mon',
tue: 'Tue',
wed: 'Wed',
thu: 'Thu',
fri: 'Fri',
sat: 'Sat',
},
months: {
jan: 'Jan',
feb: 'Feb',
mar: 'Mar',
apr: 'Apr',
may: 'May',
jun: 'Jun',
jul: 'Jul',
aug: 'Aug',
sep: 'Sep',
oct: 'Oct',
nov: 'Nov',
dec: 'Dec',
},
},
select: {
loading: 'Loading',
noMatch: 'No matching data',
noData: 'No data',
placeholder: 'Select',
},
cascader: {
noMatch: 'No matching data',
loading: 'Loading',
placeholder: 'Select',
noData: 'No data',
},
pagination: {
goto: 'Go to',
pagesize: '/page',
total: 'Total {total}',
pageClassifier: '',
},
messagebox: {
title: 'Message',
confirm: 'OK',
cancel: 'Cancel',
error: 'Illegal input',
},
upload: {
deleteTip: 'press delete to remove',
delete: 'Delete',
preview: 'Preview',
continue: 'Continue',
},
table: {
emptyText: 'No Data',
confirmFilter: 'Confirm',
resetFilter: 'Reset',
clearFilter: 'All',
sumText: 'Sum',
},
tree: {
emptyText: 'No Data',
},
transfer: {
noMatch: 'No matching data',
noData: 'No data',
titles: ['List 1', 'List 2'],
filterPlaceholder: 'Enter keyword',
noCheckedFormat: '{total} items',
hasCheckedFormat: '{checked}/{total} checked',
},
image: {
error: 'FAILED',
},
pageHeader: {
title: 'Back',
},
popconfirm: {
confirmButtonText: 'Yes',
cancelButtonText: 'No',
},
},
};
let lang = defaultLang;
function template(str, option) {
if (!str || !option)
return str;
return str.replace(/\{(\w+)\}/g, (match, key) => {
return option[key];
});
}
const t = (...args) => {
const [path, option] = args;
let value;
const array = path.split('.');
let current = lang;
for (let i = 0, j = array.length; i < j; i++) {
const property = array[i];
value = current[property];
if (i === j - 1)
return template(value, option);
if (!value)
return '';
current = value;
}
return '';
};
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 || t('el.popconfirm.confirmButtonText');
});
const cancelButtonText_ = vue.computed(() => {
return props.cancelButtonText || 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;
;