{"version":3,"file":"SidebarItem.mjs","sources":["../../../src/components/SopTheSidebar/SidebarItem.tsx"],"sourcesContent":["import { defineComponent, nextTick, ref, computed, type PropType } from 'vue';\nimport { ElMenuItem, ElSubMenu, type MenuItemClicked } from 'element-plus';\nimport { setMenuIndex, type SidebarListItem } from './SopTheSidebar';\nimport { useCustomRouter } from '../../composables/customRouter';\nimport { isURL } from '../../utils/index';\n\n\nexport const SidebarItem = defineComponent({\n  name: 'SidebarItem',\n  components: {\n    ElMenuItem, ElSubMenu\n  },\n  props: {\n    item: {\n      type: Object as PropType<SidebarListItem>,\n      required: true\n    },\n    index: {\n      type: String,\n      required: true\n    }\n  },\n  emits: ['click-menu-item'],\n  setup(props, { emit }) {\n    const { router } = useCustomRouter();\n\n    const item = computed(() => props.item);\n    const menuIndex = ref(props.index);\n    const disabled = computed(() => item.value.disabled !== undefined ? item.value.disabled : false);\n\n    function menuClick(menuItem: MenuItemClicked) {\n      const index = menuItem.index;\n\n      emit('click-menu-item', index);\n      if (isURL(index)) {\n        nextTick(() => {\n          window.open(index, '_blank');\n        });\n      } else {\n        router.value?.push(index);\n        menuIndex.value = index;\n      }\n    }\n\n    function renderMenu() {\n      if (!item.value.subMenu) {\n        return <ElMenuItem\n          index={menuIndex.value}\n          disabled={disabled.value}\n          onClick={menuClick}\n        >\n          <div class=\"menu-icon\">{item.value.icon && item.value.icon}</div>\n          <span>{item.value.title}</span>\n        </ElMenuItem>;\n      }\n\n      if (item.value.subMenu && item.value.subMenu.length) {\n        return (\n          <ElSubMenu\n            // eslint-disable-next-line @typescript-eslint/no-explicit-any\n            index={`${menuIndex.value}` as any}\n            disabled={disabled.value}\n            popper-class=\"sub-menu__popper\"\n          >\n            {{\n              title: () => (\n                <>\n                  <div class=\"menu-icon\">{item.value.icon}</div>\n                  <span>{item.value.title}</span>\n                </>\n              ),\n              default: () => (\n                <>\n                  {\n                    item.value.subMenu &&\n                    item.value.subMenu.map((i, idx) => <SidebarItem item={i} index={setMenuIndex(i, idx) || ''} />)\n                  }\n                </>\n              )\n            }}\n          </ElSubMenu>\n        );\n      }\n    }\n    return () => (\n      <>\n        {renderMenu()}\n      </>\n    );\n  },\n});\n"],"names":["SidebarItem","defineComponent","name","components","ElMenuItem","ElSubMenu","props","item","type","Object","required","index","String","emits","setup","emit","router","useCustomRouter","computed","menuIndex","ref","disabled","value","undefined","menuClick","menuItem","isURL","nextTick","window","open","push","renderMenu","subMenu","_createVNode","default","icon","title","length","_Fragment","map","i","idx","setMenuIndex"],"mappings":";;;;;AAOaA,MAAAA,cAAcC,gCAAgB;AAAA,EACzCC,MAAM;AAAA,EACNC,YAAY;AAAA,IACVC;AAAAA,IAAYC;AAAAA,EACb;AAAA,EACDC,OAAO;AAAA,IACLC,MAAM;AAAA,MACJC,MAAMC;AAAAA,MACNC,UAAU;AAAA,IACX;AAAA,IACDC,OAAO;AAAA,MACLH,MAAMI;AAAAA,MACNF,UAAU;AAAA,IACZ;AAAA,EACD;AAAA,EACDG,OAAO,CAAC,iBAAiB;AAAA,EACzBC,MAAMR,OAAO;AAAA,IAAES;AAAAA,EAAK,GAAG;AACrB,UAAM;AAAA,MAAEC;AAAAA,IAAQ,IAAGC,gBAAe;AAElC,UAAMV,OAAOW,SAAS,MAAMZ,MAAMC,IAAI;AACtC,UAAMY,YAAYC,IAAId,MAAMK,KAAK;AACjC,UAAMU,WAAWH,SAAS,MAAMX,KAAKe,MAAMD,aAAaE,SAAYhB,KAAKe,MAAMD,WAAW,KAAK;AAE/F,aAASG,UAAUC,UAA2B;;AAC5C,YAAMd,QAAQc,SAASd;AAEvBI,WAAK,mBAAmBJ,KAAK;AAC7B,UAAIe,MAAMf,KAAK,GAAG;AAChBgB,iBAAS,MAAM;AACbC,iBAAOC,KAAKlB,OAAO,QAAQ;AAAA,QAC7B,CAAC;AAAA,MACH,OAAO;AACLK,qBAAOM,UAAPN,mBAAcc,KAAKnB;AACnBQ,kBAAUG,QAAQX;AAAAA,MACpB;AAAA,IACF;AAEA,aAASoB,aAAa;AACpB,UAAI,CAACxB,KAAKe,MAAMU,SAAS;AACvB,eAAAC,YAAA7B,YAAA;AAAA,UAAA,SACSe,UAAUG;AAAAA,UAAK,YACZD,SAASC;AAAAA,UAAK,WACfE;AAAAA,QAAS,GAAA;AAAA,UAAAU,SAAAA,MAAA,CAAAD,YAAA,OAAA;AAAA,YAAA,SAAA;AAAA,UAAA,GAAA,CAEM1B,KAAKe,MAAMa,QAAQ5B,KAAKe,MAAMa,IAAI,IAAAF,YAAA,QAAA,MAAA,CACnD1B,KAAKe,MAAMc,KAAK,CAAA,CAAA;AAAA,QAAA,CAAA;AAAA,MAE3B;AAEA,UAAI7B,KAAKe,MAAMU,WAAWzB,KAAKe,MAAMU,QAAQK,QAAQ;AACnD,eAAAJ,YAAA5B,WAAA;AAAA,UAAA,SAGY,GAAEc,UAAUG,KAAM;AAAA,UAAC,YACjBD,SAASC;AAAAA,UAAK,gBAAA;AAAA,QAAA,GAAA;AAAA,UAItBc,OAAOA,MAAAH,YAAAK,iBAAAL,YAAA,OAAA;AAAA,YAAA,SAAA;AAAA,UAAA,GAAA,CAEqB1B,KAAKe,MAAMa,IAAI,CAAA,GAAAF,YAAA,QAAA,MAAA,CAChC1B,KAAKe,MAAMc,KAAK,CAE1B,CAAA,CAAA;AAAA,UACDF,SAASA,MAAAD,YAAAK,UAGH/B,MAAAA,CAAAA,KAAKe,MAAMU,WACXzB,KAAKe,MAAMU,QAAQO,IAAI,CAACC,GAAGC,QAAGR,YAAAjC,aAAA;AAAA,YAAA,QAAwBwC;AAAAA,YAAC,SAASE,aAAaF,GAAGC,GAAG,KAAK;AAAA,UAAE,GAAA,IAAA,CAAI,CAAC,CAAA;AAAA,QAGpG,CAAA;AAAA,MAIT;AAAA,IACF;AACA,WAAO,MAAAR,YAAAK,iBAEFP,WAAY,CAAA,CAEhB;AAAA,EACH;AACF,CAAC;"}