element-plus
Version:
A Component Library for Vue 3
1 lines • 1.72 kB
Source Map (JSON)
{"version":3,"file":"use-menu.mjs","sources":["../../../../../../packages/components/menu/src/use-menu.ts"],"sourcesContent":["import { computed } from 'vue'\n\nimport type { ComponentInternalInstance, Ref } from 'vue'\n\nexport default function useMenu(\n instance: ComponentInternalInstance,\n currentIndex: Ref<string>\n) {\n const indexPath = computed(() => {\n let parent = instance.parent!\n const path = [currentIndex.value]\n while (parent.type.name !== 'ElMenu') {\n if (parent.props.index) {\n path.unshift(parent.props.index as string)\n }\n parent = parent.parent!\n }\n return path\n })\n\n const parentMenu = computed(() => {\n let parent = instance.parent\n while (parent && !['ElMenu', 'ElSubMenu'].includes(parent.type.name!)) {\n parent = parent.parent\n }\n return parent!\n })\n\n return {\n parentMenu,\n indexPath,\n }\n}\n"],"names":[],"mappings":";;AAIwB,SAAA,OAAA,CACtB,UACA,YACA,EAAA;AACA,EAAM,MAAA,SAAA,GAAY,SAAS,MAAM;AAC/B,IAAA,IAAI,SAAS,QAAS,CAAA,MAAA,CAAA;AACtB,IAAM,MAAA,IAAA,GAAO,CAAC,YAAA,CAAa,KAAK,CAAA,CAAA;AAChC,IAAO,OAAA,MAAA,CAAO,IAAK,CAAA,IAAA,KAAS,QAAU,EAAA;AACpC,MAAI,IAAA,MAAA,CAAO,MAAM,KAAO,EAAA;AACtB,QAAK,IAAA,CAAA,OAAA,CAAQ,MAAO,CAAA,KAAA,CAAM,KAAe,CAAA,CAAA;AAAA,OAC3C;AACA,MAAA,MAAA,GAAS,MAAO,CAAA,MAAA,CAAA;AAAA,KAClB;AACA,IAAO,OAAA,IAAA,CAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAM,MAAA,UAAA,GAAa,SAAS,MAAM;AAChC,IAAA,IAAI,SAAS,QAAS,CAAA,MAAA,CAAA;AACtB,IAAO,OAAA,MAAA,IAAU,CAAC,CAAC,QAAU,EAAA,WAAW,EAAE,QAAS,CAAA,MAAA,CAAO,IAAK,CAAA,IAAK,CAAG,EAAA;AACrE,MAAA,MAAA,GAAS,MAAO,CAAA,MAAA,CAAA;AAAA,KAClB;AACA,IAAO,OAAA,MAAA,CAAA;AAAA,GACR,CAAA,CAAA;AAED,EAAO,OAAA;AAAA,IACL,UAAA;AAAA,IACA,SAAA;AAAA,GACF,CAAA;AACF;;;;"}