UNPKG

@layui/layui-vue

Version:

a component library for Vue 3 base on layui-vue

25 lines (24 loc) 2.11 kB
import { defineComponent as h, computed as t, ref as S, watch as B, useSlots as k, h as T, provide as n, openBlock as C, createElementBlock as L, normalizeClass as x, createVNode as b, unref as M } from "vue"; import { provideLevel as O } from "./useLevel.js"; /* empty css */ const E = h({ name: "LayMenu", __name: "index", props: { selectedKey: { default: "" }, openKeys: { default: () => [] }, tree: { type: Boolean, default: !1 }, theme: { default: "dark" }, inverted: { type: [Boolean, String], default: !1 }, level: { type: [Boolean, String], default: !0 }, collapse: { type: [Boolean, String], default: !1 }, collapseTransition: { type: [Boolean, String], default: !0 }, indent: { type: [Boolean, String], default: !1 } }, emits: ["update:selectedKey", "update:openKeys", "changeSelectedKey", "changeOpenKeys"], setup(i, { emit: u }) { const s = u, a = i, c = t(() => a.tree), y = t(() => a.collapse), m = t(() => a.collapseTransition), p = S(a.openKeys), v = t(() => a.theme), o = t({ get: () => a.collapse ? [] : a.openKeys, set(e) { s("update:openKeys", e), s("changeOpenKeys", e); } }), f = t({ get: () => a.selectedKey, set(e) { s("update:selectedKey", e), s("changeSelectedKey", e); } }), K = t(() => a.indent); B(() => a.collapse, () => { a.collapse ? (p.value = a.openKeys, o.value = []) : o.value = p.value; }); const d = k(), g = t(() => { const e = d.default ? d.default() : []; return T("div", null, e.map((l) => { var r; return ((r = l == null ? void 0 : l.type) == null ? void 0 : r.name) === "LaySubMenu" && (l.props = { ...l.props, teleportProps: { disabled: !1 } }), l; })); }); return O(1), n("isTree", c), n("selectedKey", f), n("openKeys", o), n("isCollapse", y), n("isCollapseTransition", m), n("menuTheme", v), n("indent", K), (e, l) => (C(), L("ul", { class: x(["layui-nav", [e.level ? "" : "not-level", e.inverted ? "inverted" : "", e.tree ? "layui-nav-tree" : "", e.theme === "dark" ? "layui-nav-dark" : "layui-nav-light", e.collapse ? "layui-nav-collapse" : ""]]) }, [b(M(g))], 2)); } }); export { E as default };