UNPKG

@open-data-v/ui

Version:

OpenDataV UI基础包

65 lines (64 loc) 1.85 kB
import { defineComponent as f, provide as l, ref as r, onMounted as v, onBeforeUnmount as h, openBlock as g, createElementBlock as k, normalizeClass as y, createVNode as K } from "vue"; import M from "./MenuLi.vue.esm.js"; /* empty css */ const L = /* @__PURE__ */ f({ __name: "Menu", props: { mode: { default: "vertical" }, options: {}, trigger: { default: "hover" }, theme: { default: "light" }, liHeight: { default: 40 }, openKeys: { default: () => [] }, selectedKey: { default: "" }, router: { type: Boolean }, collapsed: { type: Boolean } }, emits: ["click", "select"], setup(a, { emit: u }) { const t = a, i = u; l("OMenuProps", t); const o = r(t.openKeys); l("OMenuVisibleList", o), l("OMenuVisibleListChange", (e, c) => { if (c) o.value.push(e); else { const p = o.value.indexOf(e); o.value.splice(p, 1); } }); const n = r(t.selectedKey); l("OMenuSelectKey", n), l("OMenuSelectKeyChange", (e) => { n.value = e; }); const s = () => { o.value = [], n.value = ""; }, d = (e) => { i("click", e); }, m = (e) => { i("select", e); }; return v(() => { t.trigger === "click" && t.mode === "horizontal" && document.addEventListener("click", s, !1); }), h(() => { t.trigger === "click" && t.mode === "horizontal" && document.removeEventListener("click", s, !1); }), (e, c) => (g(), k("div", { class: y({ "o-menu": !0, [e.mode]: !0, [e.theme]: !0, "o-collapsed": e.collapsed && e.mode === "vertical" }) }, [ K(M, { items: e.options, onClick: d, onSelect: m }, null, 8, ["items"]) ], 2)); } }); export { L as default }; //# sourceMappingURL=Menu.vue.esm.js.map