{"version":3,"file":"menu-item2.mjs","sources":["../../../../../../packages/components/menu/src/menu-item.vue"],"sourcesContent":["<template>\n  <li\n    class=\"el-menu-item\"\n    role=\"menuitem\"\n    tabindex=\"-1\"\n    :style=\"paddingStyle\"\n    :class=\"{\n      'is-active': active,\n      'is-disabled': disabled,\n    }\"\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=\"Effect.DARK\"\n      placement=\"right\"\n      :fallback-placements=\"['left']\"\n      persistent\n    >\n      <template #content>\n        <slot name=\"title\" />\n      </template>\n      <div class=\"el-menu-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\">\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 { Effect } from '@element-plus/components/popper'\nimport { throwError } from '@element-plus/utils'\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    if (!rootMenu) throwError(COMPONENT_NAME, 'can not inject root menu')\n\n    const { parentMenu, paddingStyle, indexPath } = useMenu(\n      instance,\n      toRef(props, 'index')\n    )\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      Effect,\n      parentMenu,\n      rootMenu,\n      paddingStyle,\n      active,\n\n      handleClick,\n    }\n  },\n})\n</script>\n"],"names":["_createElementBlock","_normalizeClass","_normalizeStyle","_createBlock","_withCtx","_renderSlot","_createElementVNode","_Fragment"],"mappings":"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"}