vuux
Version:
Vue3 Nuxt3 Nuxt4 组件库
76 lines (75 loc) • 2.66 kB
JavaScript
import { defineComponent as _, useTemplateRef as f, createElementBlock as l, openBlock as s, createElementVNode as n, createBlock as S, unref as o, renderSlot as u, Teleport as T, createVNode as k, Transition as g, withCtx as w, createCommentVNode as N, normalizeStyle as V, normalizeClass as b, toDisplayString as x } from "vue";
import { useConfirmPopup as z } from "./hook/useConfirmPopup.mjs";
import { Icon as I } from "@vuux/icons";
const $ = { class: "popup-inner" }, D = {
key: 0,
class: "popup-content"
}, O = { class: "popup-actions" }, q = /* @__PURE__ */ _({
name: "ConfirmPopup",
__name: "index",
props: {
content: { default: "" },
shadow: { type: Boolean, default: !0 },
disabled: { type: Boolean }
},
emits: ["ok", "close"],
setup(y, { emit: C }) {
const i = y, v = C, p = f("confirmEl"), r = f("confirmPopupEl"), { isOpen: E, popupStyle: B, placementClass: P, handleTriggerClick: a, emitCancel: c, emitConfirm: m } = z(i, p, r, v);
return (d, e) => (s(), l("div", {
ref_key: "confirmEl",
ref: p,
class: "app-confirm"
}, [
n("div", {
class: "confirm-slot",
onClick: e[0] || (e[0] = //@ts-ignore
(...t) => o(a) && o(a)(...t))
}, [
u(d.$slots, "default")
]),
(s(), S(T, { to: "body" }, [
k(g, { name: "fade" }, {
default: w(() => [
o(E) ? (s(), l("div", {
key: 0,
ref_key: "confirmPopupEl",
ref: r,
class: b(["app-confirm-popup", o(P)]),
style: V(o(B))
}, [
n("div", $, [
i.content ? (s(), l("div", D, [
k(o(I), {
name: "Icon4835048",
opacity: 0.8
}),
n("span", null, x(i.content), 1)
])) : u(d.$slots, "content", { key: 1 }),
n("div", O, [
n("div", {
class: "is-close",
onClick: e[1] || (e[1] = //@ts-ignore
(...t) => o(c) && o(c)(...t))
}, "取消"),
n("div", {
class: "is-ok",
onClick: e[2] || (e[2] = //@ts-ignore
(...t) => o(m) && o(m)(...t))
}, "确认")
])
]),
e[3] || (e[3] = n("div", {
class: "popup-arrow",
"aria-hidden": "true"
}, null, -1))
], 6)) : N("", !0)
]),
_: 3
})
]))
], 512));
}
});
export {
q as default
};