UNPKG

@ctsy/layui-vue

Version:

a component library for Vue 3 base on layui-vue

91 lines (90 loc) 3.26 kB
var __defProp = Object.defineProperty; var __defProps = Object.defineProperties; var __getOwnPropDescs = Object.getOwnPropertyDescriptors; var __getOwnPropSymbols = Object.getOwnPropertySymbols; var __hasOwnProp = Object.prototype.hasOwnProperty; var __propIsEnum = Object.prototype.propertyIsEnumerable; var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value; var __spreadValues = (a, b) => { for (var prop in b || (b = {})) if (__hasOwnProp.call(b, prop)) __defNormalProp(a, prop, b[prop]); if (__getOwnPropSymbols) for (var prop of __getOwnPropSymbols(b)) { if (__propIsEnum.call(b, prop)) __defNormalProp(a, prop, b[prop]); } return a; }; var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b)); import { defineComponent, computed, ref, watch, provide, openBlock, createElementBlock, normalizeClass, renderSlot } from "vue"; var index = ""; const __default__ = { name: "LayMenu" }; const _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({}, __default__), { props: { selectedKey: { default: "" }, openKeys: { default: () => [] }, tree: { type: Boolean, default: false }, theme: { default: "dark" }, inverted: { type: [Boolean, String], default: false }, level: { type: [Boolean, String], default: true }, collapse: { type: [Boolean, String], default: false }, collapseTransition: { type: [Boolean, String], default: true } }, emits: ["update:selectedKey", "update:openKeys"], setup(__props, { emit }) { const props = __props; const isTree = computed(() => props.tree); const isCollapse = computed(() => props.collapse); const isCollapseTransition = computed(() => props.collapseTransition); let oldOpenKeys = ref(props.openKeys); const openKeys = computed({ get() { return props.openKeys; }, set(val) { emit("update:openKeys", val); } }); const selectedKey = computed({ get() { return props.selectedKey; }, set(val) { emit("update:selectedKey", val); } }); watch(() => props.collapse, () => { if (props.collapse) { oldOpenKeys.value = props.openKeys; emit("update:openKeys", []); } else { emit("update:openKeys", oldOpenKeys.value); } }, { immediate: true }); provide("isTree", isTree); provide("selectedKey", selectedKey); provide("openKeys", openKeys); provide("isCollapse", isCollapse); provide("isCollapseTransition", isCollapseTransition); return (_ctx, _cache) => { return openBlock(), createElementBlock("ul", { class: normalizeClass(["layui-nav", [ __props.level ? "" : "not-level", __props.inverted ? "inverted" : "", __props.tree ? "layui-nav-tree" : "", __props.theme === "dark" ? "layui-nav-dark" : "layui-nav-light", __props.collapse ? "layui-nav-collapse" : "" ]]) }, [ renderSlot(_ctx.$slots, "default") ], 2); }; } })); _sfc_main.install = (app) => { app.component(_sfc_main.name, _sfc_main); }; export { _sfc_main as default };