v4 initial commit

This commit is contained in:
Łukasz Holeczek
2021-08-02 23:57:02 +02:00
parent 9d65013c0f
commit 79559ae334
225 changed files with 13242 additions and 32434 deletions
+89
View File
@@ -0,0 +1,89 @@
import { defineComponent, h, resolveComponent } from "vue";
import { RouterLink } from "vue-router";
import { CSidebarNav, CNavItem, CNavGroup, CNavTitle } from "@coreui/vue";
import nav from "@/_nav.js";
const AppSidebarNav = defineComponent({
name: "AppSidebarNav",
components: {
CNavItem,
CNavGroup,
CNavTitle,
},
setup() {
const singleItem = (item) =>
item.to
? h(
RouterLink,
{
to: item.to,
custom: true,
},
{
default: (props) =>
h(
resolveComponent(item._name),
{
active: props.isActive,
href: props.href,
icon: "cil-speedometer",
onClick: () => props.navigate(),
},
[
item.icon &&
h(resolveComponent("CIcon"), {
customClasses: "nav-icon",
name: item.icon,
}),
item.name,
item.badge &&
h(resolveComponent("CBadge"), {
class: 'ms-auto',
color: item.badge.color,
}, item.badge.text),
]
),
}
)
: h(resolveComponent(item._name), {}, item.name);
const group = (item) =>
h(
RouterLink,
{
to: item.route,
custom: true,
},
{
default: (props) =>
h(
resolveComponent("CNavGroup"),
{
visible: props.isActive
},
{
togglerContent: () => [
h(resolveComponent("CIcon"), {
customClasses: "nav-icon",
name: item.icon,
}),
item.name,
],
default: () => item.children.map((child) => singleItem(child)),
}
),
}
);
return () =>
h(
CSidebarNav,
{},
nav.map((item) =>
typeof item.children === "undefined" ? singleItem(item) : group(item)
)
);
},
});
export { AppSidebarNav };