UNPKG

comic-plus

Version:

<p align="center"> <img width="200px" src="./logo.png"/> </p>

76 lines (75 loc) 2.9 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const vue = require("vue"); const index = require("../../tooltip/index.js"); const menu = require("../utils/menu.js"); const item_props = require("./item.props.js"); const type = require("./type.js"); require("../../../utils/config.js"); const typescript = require("../../../utils/typescript.js"); require("@vueuse/core"); const _hoisted_1 = ["tooltip-disabled"]; const _sfc_main = /* @__PURE__ */ vue.defineComponent({ ...{ name: "CuMenuItem" }, __name: "item", props: item_props.menuItemProps, setup(__props) { var _a, _b; const props = __props; const vMenuTooltip = index.useTooltip(); const instance = vue.getCurrentInstance(); const { props: injectProps, menuClick } = vue.inject(type.MENU_PROVIDE); const { parentMenu } = menu.useMenu(instance); const parentProvideKey = "submenu:provide" + ((_b = (_a = parentMenu.value) == null ? void 0 : _a.exposed) == null ? void 0 : _b.submenuKey); const submenu = vue.inject(parentProvideKey, void 0); const tooltipDisabled = vue.computed(() => { return !(injectProps.collapse && !submenu || props.showEllipsis); }); const active = vue.computed(() => { if (injectProps.modelValue) { return injectProps.modelValue === props.index; } return false; }); const menuItemKey = props.index ?? instance.uid.toString(); function itemClick() { menuClick(props.index); if (injectProps.mode === "horizontal" || injectProps.collapse) { submenu == null ? void 0 : submenu.closeMenu(true); } } vue.onMounted(() => { submenu == null ? void 0 : submenu.setMenu({ idx: menuItemKey, active }); }); vue.onBeforeUnmount(() => { submenu == null ? void 0 : submenu.removeMenu(menuItemKey); }); return (_ctx, _cache) => { return vue.withDirectives((vue.openBlock(), vue.createElementBlock("li", { class: vue.normalizeClass(["cu-menu-item", { "is-active": active.value }]), onClick: itemClick, "tooltip-disabled": tooltipDisabled.value }, [ vue.unref(typescript.isVueComponent)(_ctx.icon) ? (vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(_ctx.icon), { key: 0, class: "cu-menu__icon" })) : vue.createCommentVNode("", true), vue.withDirectives(vue.createElementVNode("span", null, [ vue.renderSlot(_ctx.$slots, "default", {}, () => [ vue.createTextVNode(vue.toDisplayString(_ctx.label), 1) ]) ], 512), [ [vue.vShow, !vue.unref(injectProps).collapse || vue.unref(submenu)] ]) ], 10, _hoisted_1)), [ [vue.unref(vMenuTooltip), props.label, "right-center"] ]); }; } }); exports.default = _sfc_main;