@extclp/vexip-ui
Version:
A Vue 3 UI library, Highly customizability, full TypeScript, performance pretty good
81 lines (80 loc) • 2.6 kB
JavaScript
import { defineComponent as y, toRef as v, computed as h, createVNode as t, renderSlot as k } from "vue";
import "../icon/index.mjs";
import "../linker/index.mjs";
import { useProps as L, useNameHelper as g } from "@vexip-ui/config";
import { layoutFooterProps as F } from "./props.mjs";
import { useLayoutState as N, useMediaQuery as S } from "./helper.mjs";
import m from "../linker/linker.vue2.mjs";
import C from "../icon/icon.mjs";
const I = /* @__PURE__ */ y({
name: "LayoutFooter",
props: F,
setup(u, {
slots: i
}) {
const n = L("layoutFooter", u, {
tag: "footer",
copyright: "",
links: () => [],
verticalLinks: "md"
}), e = g("layout"), s = N(), l = S(v(n, "verticalLinks")), d = h(() => [e.be("footer"), {
[e.bs("vars")]: !s.isLayout,
[e.bem("footer", "inherit")]: s.isLayout || n.inherit
}, s.classes.footer]);
function f() {
var r;
return (r = n.links) != null && r.length ? t("div", {
class: [e.be("links"), !l.value && e.bem("links", "vertical"), s.classes.footerLinks]
}, [t("div", {
class: e.be("links-row")
}, [n.links.map((o, b) => {
var c;
return t("div", {
key: b,
class: [e.be("link-group"), !l.value && e.bem("link-group", "vertical")]
}, [t("div", {
class: [e.be("link-name"), e.bem("link-name", "group")]
}, [o.to ? t(m, {
icon: o.icon,
to: o.to,
target: o.target
}, {
default: () => [o.name]
}) : [o.icon && t(C, {
icon: o.icon
}, null), o.name], o.subname && t("div", {
class: e.be("link-subname")
}, [`- ${o.subname}`])]), (c = o.children) != null && c.length ? o.children.map((a, p) => t("div", {
key: p,
class: e.be("link")
}, [t(m, {
icon: a.icon,
to: a.to,
target: a.target
}, {
default: () => [a.name]
}), a.subname && t("div", {
class: e.be("link-subname")
}, [`- ${a.subname}`])])) : null]);
})])]) : t("div", {
role: "none",
"aria-hidden": !0,
style: "display: none"
}, null);
}
return () => {
const r = n.tag || "footer";
return t(r, {
class: d.value
}, {
default: () => [i.links ? k(i, "links") : f(), t("div", {
class: [e.be("copyright"), s.classes.copyright]
}, [i.copyright ? i.copyright() : n.copyright])]
});
};
}
});
export {
I as default
};
//# sourceMappingURL=layout-footer.mjs.map