{"version":3,"file":"item.mjs","sources":["../../../../../../packages/components/dropdown-v2/src/item.ts"],"sourcesContent":["import {\n  computed,\n  defineComponent,\n  getCurrentInstance,\n  h,\n  inject,\n  unref,\n} from 'vue'\nimport { ElIcon, useNamespace } from 'element-plus'\nimport { ArrowRight } from '@element-plus/icons-vue'\nimport { definePropType, isArray, isFunction } from '@element-plus/utils'\nimport { LI_TAG, SPAN_TAG } from '@element-plus/constants'\nimport useItem from './use-item'\nimport type { DropdownOption, PanelProvider } from './types'\n\nexport default defineComponent({\n  name: 'ElDropdownV2Item',\n  inheritAttrs: false,\n  props: {\n    option: {\n      type: definePropType<DropdownOption>(Object),\n      required: true,\n    },\n    showArrowRight: {\n      type: Boolean,\n      default: false,\n    },\n    level: {\n      type: definePropType<number>(Number),\n    },\n  },\n  setup(props, { attrs, slots }) {\n    const ns = useNamespace('dropdown-v2-item')\n    const rootPanel = inject<PanelProvider>('rootPanel') as PanelProvider\n    const instance = getCurrentInstance()!\n\n    const label = computed(() => props.option.label)\n    const value = computed(() => props.option.value)\n    const divided = computed(() => !!props.option.divided)\n    const disabled = computed(() => !!props.option.disabled)\n    const hasChild = computed(\n      () => isArray(props.option.children) && props.option.children.length\n    )\n\n    const trigger = computed(() => rootPanel.props.trigger)\n\n    const isActive = computed(() =>\n      rootPanel.openedItems.includes(unref(value))\n    )\n\n    const { valuePath } = useItem(\n      instance,\n      computed(() => unref(value))\n    )\n\n    const handleClick = () => {\n      const data = {\n        value: unref(value),\n        valuePath: unref(valuePath),\n      }\n      if (!props.option?.disabled && unref(trigger) === 'hover') {\n        rootPanel.handleItemClick({ ...data })\n      }\n      if (\n        !props.option?.disabled &&\n        unref(trigger) === 'click' &&\n        !unref(hasChild)\n      ) {\n        rootPanel.closeSubItem(data.value, data.valuePath)\n        rootPanel.emitSelect({ ...data })\n      }\n    }\n\n    const renderLabel = () => {\n      const { renderLabel } = props.option\n      return isFunction(renderLabel)\n        ? renderLabel(props.option)\n        : [\n            h(SPAN_TAG, { class: ns.e('label') }, unref(label)),\n            props.showArrowRight\n              ? h(\n                  ElIcon,\n                  { size: 14 },\n                  {\n                    default: () => h(ArrowRight),\n                  }\n                )\n              : '',\n          ]\n    }\n\n    return () => {\n      return h(\n        LI_TAG,\n        {\n          ...attrs,\n          class: [\n            ns.b(),\n            isActive.value ? ns.m('active') : '',\n            divided.value ? ns.m('divided') : '',\n            disabled.value ? ns.m('disabled') : '',\n          ],\n          onClick: handleClick,\n        },\n        [slots.default ? slots.default() : renderLabel()]\n      )\n    }\n  },\n})\n"],"names":["renderLabel"],"mappings":"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"}