ant-design-x-vue
Version:
Craft AI-driven interfaces effortlessly
95 lines (94 loc) • 2.6 kB
JavaScript
import { defineComponent as x, mergeDefaults as D, computed as s, useTemplateRef as C, isVNode as c, createVNode as t, mergeProps as $ } from "vue";
import { b } from "../chunks/module-chunk.mjs";
import { useAttachmentContextInject as T } from "./context.mjs";
import U from "../_util/hooks/use-state.mjs";
import { Flex as A, Typography as n, Upload as q } from "ant-design-vue";
import { _ as N } from "../chunks/helper-chunk.mjs";
const P = /* @__PURE__ */ x({
name: "AXAttachmentsPlaceholderUploader",
__name: "PlaceholderUploader",
props: D({
prefixCls: {
type: String,
required: !0
},
placeholder: {
required: !1
},
upload: {
required: !1
},
className: {
type: String,
required: !1
},
style: {
required: !1
}
}, {
placeholder: () => ({})
}),
setup(e, {
expose: i
}) {
const r = `${e.prefixCls}-placeholder`, l = s(() => e.placeholder || {}), u = C("upload-dragger"), d = T(), [p, o] = U(!1), f = () => {
o(!0);
}, g = (a) => {
a.currentTarget.contains(a.relatedTarget) || o(!1);
}, m = () => {
o(!1);
}, h = s(() => {
var a;
return (a = u.value) == null ? void 0 : a.$el;
});
i({
nativeElement: h
});
const v = (a) => Array.isArray(a) && a.every(c), y = s(() => c(e.placeholder) || v(e.placeholder) ? e.placeholder : t(A, {
align: "center",
justify: "center",
vertical: !0,
class: `${r}-inner`
}, {
default: () => [t(n.Text, {
class: `${r}-icon`
}, {
default: () => [l.value.icon]
}), t(n.Title, {
class: `${r}-title`,
level: 5
}, {
default: () => [l.value.title]
}), t(n.Text, {
class: `${r}-description`,
type: "secondary"
}, {
default: () => [l.value.description]
})]
}));
return () => t("div", {
class: b(r, {
[`${r}-drag-in`]: p.value,
[`${r}-disabled`]: d.value.disabled
}, e.className),
onDragenter: f,
onDragleave: g,
onDrop: m,
"aria-hidden": d.value.disabled,
style: e.style
}, [t(q.Dragger, $(e.upload, {
showUploadList: !1,
ref: "upload-dragger",
style: {
padding: 0,
border: 0,
background: "transparent"
}
}), {
default: () => [y.value]
})]);
}
}), L = /* @__PURE__ */ N(P, [["__file", "/Users/wangzhichao/办公/code/github/ant-design-x-vue-pure/ant-design-x-vue/src/attachments/PlaceholderUploader.vue"]]);
export {
L as default
};