yanzhen-design-vue
Version:
72 lines (71 loc) • 3.1 kB
JavaScript
import { defineComponent, openBlock, createElementBlock, Fragment, createVNode, unref, withCtx, mergeProps, createSlots, renderList, renderSlot, normalizeProps, createTextVNode, toDisplayString, createCommentVNode, withDirectives, createElementVNode, vShow, createBlock } from "vue";
import { Avatar } from "ant-design-vue";
import { useAvatar } from "./use-avatar.mjs";
import { omit } from "lodash-es";
import { avatarName, avatarProps, avatarEmits, avatarOptions } from "./avatar.mjs";
const _sfc_main = /* @__PURE__ */ defineComponent({
...{
name: avatarName,
inheritAttrs: true
},
__name: "avatar",
props: avatarProps,
emits: avatarEmits,
setup(__props, { expose: __expose, emit: __emit }) {
const { ns } = avatarOptions;
const props = __props;
const emit = __emit;
const {
ctx: { _ref, _slots, _props, _text, src, errSrc, loadErrors },
templates: { DefineAvatarSlotTemplate, ReusableAvatarSlotTemplate },
handleImageError,
isLoadSuccessfully
} = useAvatar(props, emit);
__expose({
ref: _ref
});
return (_ctx, _cache) => {
return openBlock(), createElementBlock(Fragment, null, [
createVNode(unref(DefineAvatarSlotTemplate), null, {
default: withCtx(({ loadSrc }) => [
createVNode(unref(Avatar), mergeProps({
ref_key: "_ref",
ref: _ref,
class: [unref(ns).b()],
"data-src": unref(src),
src: loadSrc,
"load-error": () => unref(handleImageError)(loadSrc)
}, unref(omit)(unref(_props), "src", "load-error")), createSlots({ _: 2 }, [
renderList(Object.keys(unref(_slots)), (slot) => {
return {
name: slot,
fn: withCtx((slotItem) => [
unref(_slots)[slot] || slot === "default" ? renderSlot(_ctx.$slots, slot, normalizeProps(mergeProps({ key: 0 }, slotItem ?? {})), () => [
slot === "default" ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
createTextVNode(toDisplayString(unref(_text)), 1)
], 64)) : createCommentVNode("", true)
]) : createCommentVNode("", true)
])
};
})
]), 1040, ["class", "data-src", "src", "load-error"])
]),
_: 3
}),
withDirectives(createElementVNode("div", null, toDisplayString(unref(loadErrors)), 513), [
[vShow, false]
]),
unref(isLoadSuccessfully)(unref(src)) ? (openBlock(), createBlock(unref(ReusableAvatarSlotTemplate), {
key: 0,
"load-src": unref(src)
}, null, 8, ["load-src"])) : unref(isLoadSuccessfully)(unref(errSrc)) ? (openBlock(), createBlock(unref(ReusableAvatarSlotTemplate), {
key: 1,
"load-src": unref(errSrc)
}, null, 8, ["load-src"])) : (openBlock(), createBlock(unref(ReusableAvatarSlotTemplate), { key: 2 }))
], 64);
};
}
});
export {
_sfc_main as default
};