hongluan-business-ui
Version:
Hongluan Business Component Library for Vue 3
122 lines (117 loc) • 4.24 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var vue = require('vue');
var hongluanUi = require('hongluan-ui');
var util = require('../../../utils/util.js');
var dom = require('../../../utils/dom.js');
var popconfirm = require('./popconfirm.js');
var pluginVue_exportHelper = require('../../../_virtual/plugin-vue_export-helper.js');
const _sfc_main = vue.defineComponent({
name: "Popconfirm",
components: {
HlButton: hongluanUi.HlButton,
HlTooltip: hongluanUi.HlTooltip
},
inheritAttrs: false,
props: popconfirm.popconfirmProps,
setup(props) {
const { prefix } = util.usePrefix();
const { t } = hongluanUi.useLocale();
const { compatTeleported } = hongluanUi.useDeprecateAppendToBody("Popconfirm", "appendToBody");
const tooltipRef = vue.ref();
const style = vue.computed(() => {
return {
width: dom.addUnit(props.width)
};
});
const hidePopper = () => {
var _a, _b;
(_b = (_a = vue.unref(tooltipRef)) == null ? void 0 : _a.onClose) == null ? void 0 : _b.call(_a);
};
const handleCallback = () => {
hidePopper();
};
const confirm = (e) => {
var _a;
(_a = props.onConfirm) == null ? void 0 : _a.call(props, e);
handleCallback();
};
const cancel = (e) => {
var _a;
(_a = props.onCancel) == null ? void 0 : _a.call(props, e);
handleCallback();
};
const finalConfirmButtonText = vue.computed(() => props.confirmButtonText || t("hl.popconfirm.confirmButtonText"));
const finalCancelButtonText = vue.computed(() => props.cancelButtonText || t("hl.popconfirm.cancelButtonText"));
return {
prefix,
style,
HlPrefix: hongluanUi.PREFIX.toLowerCase(),
tooltipRef,
compatTeleported,
finalConfirmButtonText,
finalCancelButtonText,
confirm,
cancel
};
}
});
const _hoisted_1 = { class: "main" };
const _hoisted_2 = { class: "action" };
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
const _component_hl_button = vue.resolveComponent("hl-button");
const _component_hl_tooltip = vue.resolveComponent("hl-tooltip");
return vue.openBlock(), vue.createBlock(_component_hl_tooltip, vue.mergeProps({
ref: "tooltipRef",
trigger: "click",
effect: _ctx.effect
}, _ctx.$attrs, {
"popper-class": `${_ctx.HlPrefix}-popover ${_ctx.popperClass}`,
"popper-style": _ctx.style,
teleported: _ctx.compatTeleported,
"fallback-placements": ["bottom", "top", "right", "left"],
"hide-after": _ctx.hideAfter,
persistent: _ctx.persistent
}), {
content: vue.withCtx(() => [
vue.createElementVNode("div", {
class: vue.normalizeClass(`${_ctx.prefix}-popconfirm`)
}, [
vue.createElementVNode("div", _hoisted_1, [
vue.renderSlot(_ctx.$slots, "title", {}, () => [
vue.createTextVNode(vue.toDisplayString(_ctx.title), 1)
])
]),
vue.createElementVNode("div", _hoisted_2, [
vue.createVNode(_component_hl_button, {
size: "sm",
type: _ctx.cancelButtonType,
onClick: _ctx.cancel
}, {
default: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(_ctx.finalCancelButtonText), 1)
]),
_: 1
}, 8, ["type", "onClick"]),
vue.createVNode(_component_hl_button, {
size: "sm",
type: _ctx.confirmButtonType,
onClick: _ctx.confirm
}, {
default: vue.withCtx(() => [
vue.createTextVNode(vue.toDisplayString(_ctx.finalConfirmButtonText), 1)
]),
_: 1
}, 8, ["type", "onClick"])
])
], 2)
]),
default: vue.withCtx(() => [
_ctx.$slots.reference ? vue.renderSlot(_ctx.$slots, "reference", { key: 0 }) : vue.createCommentVNode("v-if", true)
]),
_: 3
}, 16, ["effect", "popper-class", "popper-style", "teleported", "hide-after", "persistent"]);
}
var Popconfirm = /* @__PURE__ */ pluginVue_exportHelper["default"](_sfc_main, [["render", _sfc_render]]);
exports["default"] = Popconfirm;
//# sourceMappingURL=popconfirm2.js.map