hongluan-business-ui
Version:
Hongluan Business Component Library for Vue 3
118 lines (115 loc) • 4.2 kB
JavaScript
import { defineComponent, ref, computed, unref, resolveComponent, openBlock, createBlock, mergeProps, withCtx, createElementVNode, normalizeClass, renderSlot, createTextVNode, toDisplayString, createVNode, createCommentVNode } from 'vue';
import { HlButton, HlTooltip, useLocale, useDeprecateAppendToBody, PREFIX } from 'hongluan-ui';
import { usePrefix } from '../../../utils/util.mjs';
import { addUnit } from '../../../utils/dom.mjs';
import { popconfirmProps } from './popconfirm.mjs';
import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
const _sfc_main = defineComponent({
name: "Popconfirm",
components: {
HlButton,
HlTooltip
},
inheritAttrs: false,
props: popconfirmProps,
setup(props) {
const { prefix } = usePrefix();
const { t } = useLocale();
const { compatTeleported } = useDeprecateAppendToBody("Popconfirm", "appendToBody");
const tooltipRef = ref();
const style = computed(() => {
return {
width: addUnit(props.width)
};
});
const hidePopper = () => {
var _a, _b;
(_b = (_a = 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 = computed(() => props.confirmButtonText || t("hl.popconfirm.confirmButtonText"));
const finalCancelButtonText = computed(() => props.cancelButtonText || t("hl.popconfirm.cancelButtonText"));
return {
prefix,
style,
HlPrefix: 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 = resolveComponent("hl-button");
const _component_hl_tooltip = resolveComponent("hl-tooltip");
return openBlock(), createBlock(_component_hl_tooltip, 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: withCtx(() => [
createElementVNode("div", {
class: normalizeClass(`${_ctx.prefix}-popconfirm`)
}, [
createElementVNode("div", _hoisted_1, [
renderSlot(_ctx.$slots, "title", {}, () => [
createTextVNode(toDisplayString(_ctx.title), 1)
])
]),
createElementVNode("div", _hoisted_2, [
createVNode(_component_hl_button, {
size: "sm",
type: _ctx.cancelButtonType,
onClick: _ctx.cancel
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.finalCancelButtonText), 1)
]),
_: 1
}, 8, ["type", "onClick"]),
createVNode(_component_hl_button, {
size: "sm",
type: _ctx.confirmButtonType,
onClick: _ctx.confirm
}, {
default: withCtx(() => [
createTextVNode(toDisplayString(_ctx.finalConfirmButtonText), 1)
]),
_: 1
}, 8, ["type", "onClick"])
])
], 2)
]),
default: withCtx(() => [
_ctx.$slots.reference ? renderSlot(_ctx.$slots, "reference", { key: 0 }) : createCommentVNode("v-if", true)
]),
_: 3
}, 16, ["effect", "popper-class", "popper-style", "teleported", "hide-after", "persistent"]);
}
var Popconfirm = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render]]);
export { Popconfirm as default };
//# sourceMappingURL=popconfirm2.mjs.map