@ctsy/layui-vue
Version:
a component library for Vue 3 base on layui-vue
91 lines (90 loc) • 3.26 kB
JavaScript
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 };