ant-design-x-vue
Version:
Craft AI-driven interfaces effortlessly
82 lines (81 loc) • 2.39 kB
JavaScript
import { defineComponent as u, mergeDefaults as d, toRef as m, useSlots as r, computed as f, useAttrs as v, createVNode as l, withDirectives as y, mergeProps as h, vShow as C } from "vue";
import { Button as N } from "ant-design-vue";
import { b as n, l as x } from "../chunks/module-chunk.mjs";
import { useSenderHeaderContextInject as S } from "./context.mjs";
import "../transition-collapse/index.mjs";
import $ from "../transition-collapse/TransitionCollapse.mjs";
const R = /* @__PURE__ */ u({
name: "AXSenderHeader",
inheritAttrs: !1,
__name: "SenderHeader",
props: d({
forceRender: {
type: Boolean
},
open: {
type: Boolean
},
onOpenChange: {
type: Function
},
title: null,
children: null,
className: null,
style: null,
classNames: null,
styles: null,
closable: {
type: Boolean
}
}, {
classNames: () => ({}),
styles: () => ({})
}),
setup(e) {
m(e, "classNames");
const a = r(), s = S(), t = f(() => `${s.value.prefixCls}-header`), i = v();
return () => l($, {
prefixCls: s.value.prefixCls
}, {
default: () => {
var c;
return [e.open || e.forceRender ? y(l("div", h(i, {
class: n(t.value, e.className),
style: {
...e.style
}
}), [(e.closable !== !1 || e.title) && l("div", {
class: (
// We follow antd naming standard here.
// So the header part is use `-header` suffix.
// Though its little bit weird for double `-header`.
n(`${t.value}-header`, e.classNames.header)
),
style: {
...e.styles.header
}
}, [l("div", {
class: `${t.value}-title`
}, [e.title]), e.closable !== !1 && l("div", {
class: `${t.value}-close`
}, [l(N, {
type: "text",
icon: l(x, null, null),
size: "small",
onClick: () => {
var o;
(o = e.onOpenChange) == null || o.call(e, !e.open);
}
}, null)])]), a.default && l("div", {
class: n(`${t.value}-content`, e.classNames.content),
style: {
...e.styles.content
}
}, [(c = a.default) == null ? void 0 : c.call(a)])]), [[C, e.open]]) : null];
}
});
}
});
export {
R as default
};