{"version":3,"file":"use-menu.mjs","sources":["../../../../../../packages/components/menu/src/use-menu.ts"],"sourcesContent":["import { computed, inject } from 'vue'\r\nimport { throwError } from '@sgui-plus/utils/error'\r\n\r\nimport type { ComponentInternalInstance, Ref, CSSProperties } from 'vue'\r\nimport type { MenuProvider } from './types'\r\n\r\nexport default function useMenu(\r\n  instance: ComponentInternalInstance,\r\n  currentIndex: Ref<string>\r\n) {\r\n  const rootMenu = inject<MenuProvider>('rootMenu')\r\n  if (!rootMenu) throwError('useMenu', 'can not inject root menu')\r\n  const mode = rootMenu.props.mode\r\n  const indexPath = computed(() => {\r\n    let parent = instance.parent!\r\n    const path = [currentIndex.value]\r\n    while (parent.type.name !== 'SgMenu') {\r\n      if (parent.props.index) {\r\n        path.unshift(parent.props.index as string)\r\n      }\r\n      parent = parent.parent!\r\n    }\r\n    return path\r\n  })\r\n\r\n  const parentMenu = computed(() => {\r\n    let parent = instance.parent\r\n    while (parent && !['SgMenu', 'SgSubMenu'].includes(parent.type.name!)) {\r\n      parent = parent.parent\r\n    }\r\n    return parent!\r\n  })\r\n  const paddingStyle = computed<CSSProperties>(() => {\r\n    let parent = instance.parent\r\n    if (rootMenu.props.mode !== 'vertical') return {}\r\n\r\n    let padding = 20\r\n\r\n    if (rootMenu.props.collapse) {\r\n      padding = 20\r\n    } else {\r\n      while (parent && parent.type.name !== 'SgMenu') {\r\n        if (parent.type.name === 'SgSubMenu') {\r\n          padding += 20\r\n        }\r\n        parent = parent.parent\r\n      }\r\n    }\r\n    return { paddingLeft: `${padding}px` }\r\n  })\r\n\r\n  return {\r\n    mode,\r\n    parentMenu,\r\n    paddingStyle,\r\n    indexPath,\r\n  }\r\n}\r\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,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AACnC,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,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1C,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,EAAE;AAC9B,QAAQ,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACzC,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,QAAQ,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,KAAK;AACL,IAAI,OAAO,MAAM,CAAC;AAClB,GAAG,CAAC,CAAC;AACL,EAAE,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM;AACtC,IAAI,IAAI,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;AACjC,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU;AAC1C,MAAM,OAAO,EAAE,CAAC;AAChB,IAAI,IAAI,OAAO,GAAG,EAAE,CAAC;AACrB,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE;AACjC,MAAM,OAAO,GAAG,EAAE,CAAC;AACnB,KAAK,MAAM;AACX,MAAM,OAAO,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACtD,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW,EAAE;AAC9C,UAAU,OAAO,IAAI,EAAE,CAAC;AACxB,SAAS;AACT,QAAQ,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC/B,OAAO;AACP,KAAK;AACL,IAAI,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;AAC3C,GAAG,CAAC,CAAC;AACL,EAAE,OAAO;AACT,IAAI,IAAI;AACR,IAAI,UAAU;AACd,IAAI,YAAY;AAChB,IAAI,SAAS;AACb,GAAG,CAAC;AACJ;;;;"}