hongluan-ui
Version:
Hongluan Component Library for Vue 3
1 lines • 2.22 kB
Source Map (JSON)
{"version":3,"file":"use-menu.mjs","sources":["../../../../../../packages/components/menu/src/use-menu.ts"],"sourcesContent":["import { computed, inject } from 'vue'\nimport { throwError } from '@hongluan-ui/utils'\n\nimport type { ComponentInternalInstance, Ref } from 'vue'\nimport type { MenuProvider } from './types'\n\nexport default function useMenu(\n instance: ComponentInternalInstance,\n currentIndex: Ref<string>,\n) {\n const rootMenu = inject<MenuProvider>('rootMenu')\n if (!rootMenu) throwError('useMenu', 'can not inject root menu')\n\n const indexPath = computed(() => {\n let parent = instance.parent\n const path = [currentIndex.value]\n while (parent?.type.name !== 'Menu') {\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 && !['Menu', 'SubMenu'].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":";;;;AAEe,SAAS,OAAO,CAAC,QAAQ,EAAE,YAAY,EAAE;AACxD,EAAE,MAAM,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AACtC,EAAE,IAAI,CAAC,QAAQ;AACf,IAAI,UAAU,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;AACtD,EAAE,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM;AACnC,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACjC,IAAI,MAAM,IAAI,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,IAAI,OAAO,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,MAAM,EAAE;AACpE,MAAM,IAAI,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;AACxD,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACnE,OAAO;AACP,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,IAAI,CAAC;AAChB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM;AACpC,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACjC,IAAI,OAAO,MAAM,IAAI,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACtE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,UAAU;AACd,IAAI,SAAS;AACb,GAAG,CAAC;AACJ;;;;"}