UNPKG

element-plus

Version:

A Component Library for Vue3.0

294 lines (280 loc) 8.6 kB
'use strict'; 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;