{"version":3,"file":"dropdown-item-impl.mjs","sources":["../../../../../../packages/components/dropdown/src/dropdown-item-impl.vue"],"sourcesContent":["<template>\n  <li\n    v-if=\"divided\"\n    :class=\"ns.bem('menu', 'item', 'divided')\"\n    v-bind=\"$attrs\"\n  />\n  <li\n    :ref=\"itemRef\"\n    v-bind=\"{ ...dataset, ...$attrs }\"\n    :aria-disabled=\"disabled\"\n    :class=\"[ns.be('menu', 'item'), ns.is('disabled', disabled)]\"\n    :tabindex=\"tabIndex\"\n    role=\"menuitem\"\n    @click=\"(e) => $emit('clickimpl', e)\"\n    @focus=\"handleFocus\"\n    @keydown=\"handleKeydown\"\n    @mousedown=\"handleMousedown\"\n    @pointermove=\"(e) => $emit('pointermove', e)\"\n    @pointerleave=\"(e) => $emit('pointerleave', e)\"\n  >\n    <el-icon v-if=\"icon\"><component :is=\"icon\" /></el-icon>\n    <slot />\n  </li>\n</template>\n\n<script lang=\"ts\">\nimport { defineComponent, inject } from 'vue'\nimport {\n  ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY,\n  ROVING_FOCUS_ITEM_COLLECTION_INJECTION_KEY,\n} from '@element-plus/components/roving-focus-group'\nimport { COLLECTION_ITEM_SIGN } from '@element-plus/components/collection'\nimport { ElIcon } from '@element-plus/components/icon'\nimport { useNamespace } from '@element-plus/hooks'\nimport { composeEventHandlers, composeRefs } from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport {\n  DROPDOWN_COLLECTION_ITEM_INJECTION_KEY,\n  dropdownItemProps,\n} from './dropdown'\n\nexport default defineComponent({\n  name: 'DropdownItemImpl',\n  components: {\n    ElIcon,\n  },\n  props: dropdownItemProps,\n  emits: ['pointermove', 'pointerleave', 'click', 'clickimpl'],\n  setup(_, { emit }) {\n    const ns = useNamespace('dropdown')\n\n    const { collectionItemRef: dropdownCollectionItemRef } = inject(\n      DROPDOWN_COLLECTION_ITEM_INJECTION_KEY,\n      undefined\n    )!\n\n    const { collectionItemRef: rovingFocusCollectionItemRef } = inject(\n      ROVING_FOCUS_ITEM_COLLECTION_INJECTION_KEY,\n      undefined\n    )!\n\n    const {\n      rovingFocusGroupItemRef,\n      tabIndex,\n      handleFocus,\n      handleKeydown: handleItemKeydown,\n      handleMousedown,\n    } = inject(ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY, undefined)!\n\n    const itemRef = composeRefs(\n      dropdownCollectionItemRef,\n      rovingFocusCollectionItemRef,\n      rovingFocusGroupItemRef\n    )\n\n    const handleKeydown = composeEventHandlers((e: KeyboardEvent) => {\n      const { code } = e\n      if (code === EVENT_CODE.enter || code === EVENT_CODE.space) {\n        e.preventDefault()\n        e.stopImmediatePropagation()\n        emit('clickimpl', e)\n        return true\n      }\n    }, handleItemKeydown)\n\n    return {\n      ns,\n      itemRef,\n      dataset: {\n        [COLLECTION_ITEM_SIGN]: '',\n      },\n      tabIndex,\n      handleFocus,\n      handleKeydown,\n      handleMousedown,\n    }\n  },\n})\n</script>\n"],"names":["DROPDOWN_COLLECTION_ITEM_INJECTION_KEY","ROVING_FOCUS_ITEM_COLLECTION_INJECTION_KEY","_openBlock","_createElementBlock","_mergeProps","_createCommentVNode","_createElementVNode","_createBlock","_withCtx","_resolveDynamicComponent","_renderSlot"],"mappings":"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"}