{"version":3,"file":"recursive-menu.vue2.mjs","sources":["../../../../../../packages/components/dropdown/src/recursive-menu.vue"],"sourcesContent":["<template>\r\n  <template v-for=\"(item, index) in props.items\" :key=\"item?.key ?? index\">\r\n    <!-- 分隔线 -->\r\n    <a-menu-divider v-if=\"item.type === 'divider'\" />\r\n\r\n    <!-- 普通菜单项 -->\r\n    <a-menu-item\r\n      v-else-if=\"!item.subMenu || item.subMenu.length === 0\"\r\n      v-bind=\"getMenuItemProps(item)\"\r\n      @click=\"handleClick(item)\"\r\n    >\r\n      <template v-if=\"item.icon\" #icon>\r\n        <ll-icon\r\n          :icon-name=\"item.icon\"\r\n          :color=\"item.disabled ? '' : item.color\"\r\n        />\r\n      </template>\r\n      <span :style=\"{ color: item.disabled ? '' : item.color }\">\r\n        {{ item.label }}\r\n      </span>\r\n    </a-menu-item>\r\n\r\n    <!-- 子菜单 -->\r\n    <a-sub-menu v-else v-bind=\"getSubMenuProps(item)\">\r\n      <template v-if=\"item.icon\" #icon>\r\n        <ll-icon\r\n          :icon-name=\"item.icon\"\r\n          :color=\"item.disabled ? '' : item.color\"\r\n        />\r\n      </template>\r\n      <template #title>\r\n        <span :style=\"{ color: item.disabled ? '' : item.color }\">\r\n          {{ item.label }}\r\n        </span>\r\n      </template>\r\n      <RecursiveMenu :items=\"item.subMenu\" @claim-selected=\"handleClick\" />\r\n    </a-sub-menu>\r\n  </template>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport type { DropdownItem } from './dropdown'\r\n\r\ndefineOptions({ name: 'RecursiveMenu' })\r\n\r\nconst props = defineProps({\r\n  items: {\r\n    type: Array as () => DropdownItem[],\r\n    default: () => [],\r\n  },\r\n})\r\n\r\nconst emit = defineEmits({\r\n  claimSelected: (item: DropdownItem) => !!item,\r\n})\r\n\r\n// 提取菜单项属性（排除不需要的属性）\r\nconst getMenuItemProps = (item: DropdownItem) => {\r\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n  const { label, subMenu, type, icon, color, ...rest } = item\r\n  return rest\r\n}\r\n\r\n// 提取子菜单属性\r\nconst getSubMenuProps = (item: DropdownItem) => {\r\n  // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n  const { label, subMenu, icon, color, ...rest } = item\r\n  return rest\r\n}\r\n\r\nconst handleClick = (item: DropdownItem) => {\r\n  emit('claimSelected', item)\r\n}\r\n</script>\r\n"],"names":["_openBlock","_createElementBlock","_Fragment","_createCommentVNode","_createBlock","_createVNode","_mergeProps","_createElementVNode","_toDisplayString","_createSlots"],"mappings":"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"}