{"version":3,"file":"menu-item2.mjs","sources":["../../../../../../packages/components/menu/src/menu-item.vue"],"sourcesContent":["<template>\n  <li\n    :class=\"[\n      nsMenuItem.b(),\n      nsMenuItem.is('active', active),\n      nsMenuItem.is('disabled', disabled),\n    ]\"\n    role=\"menuitem\"\n    tabindex=\"-1\"\n    @click=\"handleClick\"\n  >\n    <el-tooltip\n      v-if=\"\n        parentMenu.type.name === 'ElMenu' &&\n        rootMenu.props.collapse &&\n        $slots.title\n      \"\n      :effect=\"rootMenu.props.popperEffect\"\n      placement=\"right\"\n      :fallback-placements=\"['left']\"\n      persistent\n    >\n      <template #content>\n        <slot name=\"title\" />\n      </template>\n      <div :class=\"nsMenu.be('tooltip', 'trigger')\">\n        <slot />\n      </div>\n    </el-tooltip>\n    <template v-else>\n      <slot />\n      <slot name=\"title\" />\n    </template>\n  </li>\n</template>\n\n<script lang=\"ts\">\n// @ts-nocheck\nimport {\n  computed,\n  defineComponent,\n  getCurrentInstance,\n  inject,\n  onBeforeUnmount,\n  onMounted,\n  reactive,\n  toRef,\n} from 'vue'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport { throwError } from '@element-plus/utils'\nimport { useNamespace } from '@element-plus/hooks'\nimport useMenu from './use-menu'\nimport { menuItemEmits, menuItemProps } from './menu-item'\n\nimport type { MenuItemRegistered, MenuProvider, SubMenuProvider } from './types'\n\nconst COMPONENT_NAME = 'ElMenuItem'\nexport default defineComponent({\n  name: COMPONENT_NAME,\n  components: {\n    ElTooltip,\n  },\n\n  props: menuItemProps,\n  emits: menuItemEmits,\n\n  setup(props, { emit }) {\n    const instance = getCurrentInstance()!\n    const rootMenu = inject<MenuProvider>('rootMenu')\n    const nsMenu = useNamespace('menu')\n    const nsMenuItem = useNamespace('menu-item')\n    if (!rootMenu) throwError(COMPONENT_NAME, 'can not inject root menu')\n\n    const { parentMenu, indexPath } = useMenu(instance, toRef(props, 'index'))\n\n    const subMenu = inject<SubMenuProvider>(`subMenu:${parentMenu.value.uid}`)\n    if (!subMenu) throwError(COMPONENT_NAME, 'can not inject sub menu')\n\n    const active = computed(() => props.index === rootMenu.activeIndex)\n    const item: MenuItemRegistered = reactive({\n      index: props.index,\n      indexPath,\n      active,\n    })\n\n    const handleClick = () => {\n      if (!props.disabled) {\n        rootMenu.handleMenuItemClick({\n          index: props.index,\n          indexPath: indexPath.value,\n          route: props.route,\n        })\n        emit('click', item)\n      }\n    }\n\n    onMounted(() => {\n      subMenu.addSubMenu(item)\n      rootMenu.addMenuItem(item)\n    })\n\n    onBeforeUnmount(() => {\n      subMenu.removeSubMenu(item)\n      rootMenu.removeMenuItem(item)\n    })\n\n    return {\n      parentMenu,\n      rootMenu,\n      active,\n      nsMenu,\n      nsMenuItem,\n      handleClick,\n    }\n  },\n})\n</script>\n"],"names":["_resolveComponent","_createElementBlock","_normalizeClass","_openBlock","_createBlock","_withCtx","_createElementVNode"],"mappings":"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"}