UNPKG

element-plus

Version:

A Component Library for Vue 3

1 lines 6.29 kB
{"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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"}