{"version":3,"file":"dropdown-item-impl.vue.mjs","sources":["../../../../../packages/components/dropdown/src/dropdown-item-impl.vue"],"sourcesContent":["<template>\n  <div\n    v-if=\"divided\"\n    :class=\"ns.bem('menu', 'item', 'divided')\"\n    v-bind=\"$attrs\"\n  ></div>\n  <div\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  </div>\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-ultra/components/roving-focus-group'\nimport { COLLECTION_ITEM_SIGN } from '@element-ultra/components/collection'\nimport { ElIcon } from '@element-ultra/components/icon'\nimport { useNamespace } from '@element-ultra/hooks'\nimport { composeEventHandlers, composeRefs } from '@element-ultra/utils'\nimport { EVENT_CODE } from '@element-ultra/shared'\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":["_openBlock","_createElementBlock","_Fragment","_mergeProps","_createCommentVNode","_createElementVNode","_createBlock","_withCtx"],"mappings":";;;;;;;AACE,EAAA,OAAAA,WAAA,EAAAC,kBAAA;AAAA,IAIOC,QAAA;AAAA,IAJP,IAAA;AAAA,IAAA;AAAA,MAEU,IAAA,CAAA,OAAA,IAAAF,SAAA,EAAA,EAAAC,kBAAA;AAAA,QAAM,KAAA;AAAA,QAAAE,UAAA,CAAA;AAAA,UACN,GAAA,EAAA,CAAA;AAAA,UAAA,OAAA,IAAA,CAAA,EAAA,CAAA,GAAA,CAAA,MAAA,EAAA,QAAA,SAAA,CAAA;AAAA,SAEV,EAAA,KAAA,MAAA,CAAA;AAAA,QAgBM,IAAA;AAAA,QAhBN,EAAA;AAAA;AAAA,OACQ,IAELC,kBAAe,CAAA,MAAA,EAAQ,IAAA,CAAA;AAAA,MAAAC,kBACV,CAAA,KAAA,EAAkBF,UAAA,CAAA,EAAA,KAAG,IAAE,CAAA,OAAA,EAAa,EAAA,EAAQ,GAAA,IAAA,CAAA,OAAA,EAAA,GAAA,IAAA,CAAA,QAAA,EAAA;AAAA,QACzD,iBAAU,IAAA,CAAA,QAAA;AAAA,QACX,KAAK,EAAA,CAAU,IAAA,CAAA,EAAA,CAAA,GAAA,MAAA,EAAA,MAAA,CAAA,EAAA,IAAA,CAAA,EAAA,CAAA,EAAA,CAAA,UAAA,EAAA,IAAA,CAAA,QAAA,CAAA,CAAA;AAAA,QACd,UAAK,IAAA,CAAA,QAAA;AAAA,QACL,IAAA,EAAA,UAAA;AAAA,QACA,OAAO,EAAA,MAAA,CAAE,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,KAAA,IAAA,CAAA,KAAA,CAAA,WAAA,EAAA,CAAA,CAAA,CAAA;AAAA,QACT,gBAAS,CAAE,CAAA,KAAA,OAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,WAAA,IAAA,IAAA,CAAA,WAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,QACX,SAAA,EAAA,MAAA,CAAW,CAAS,CAAA,KAAA,OAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAA,IAAA,CAAA,aAAA,IAAK,IAAiB,CAAA,aAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,QAC1C,WAAA,EAAA,MAAA,CAAY,CAAG,CAAA,KAAA,OAAA,CAAA,CAAA,GAAA,CAAA,GAAA,IAAA,KAAM,IAAuB,CAAA,eAAA,IAAA,IAAA,CAAA,eAAA,CAAA,GAAA,IAAA,CAAA,CAAA;AAAA,QAAA,aAAA,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,KAAA,IAAA,CAAA,KAAA,CAAA,aAAA,EAAA,CAAA,CAAA,CAAA;AAAA,QAE1B,cAAA,EAAA,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAA,CAAA,CAAA,KAAA,IAAA,CAAA,KAAA,CAAA,cAAA,EAAA,CAAA,CAAA,CAAA;AAAA,OAAA,CAAA,EAAA;AAAA,QAAE,IAAA,CAAA,QAAAH,SAAA,EAAA,EAAAM,YAAA,kBAAwB,EAAA,EAAR,GAAA,EAAA,CAAA,EAAA,EAAA;AAAA,UAAA,OAAA,EAAAC,QAAA,MAAA;AAAA;;;;SACrC,CAAA,IAAAH,kBAAA,CAAA,MAAA,EAAA,IAAA,CAAA;AAAA;;;;;;;;;;;"}