You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
11 KiB

{"ast":null,"code":"import { defineComponent, inject, computed, resolveComponent, openBlock, createElementBlock, Fragment, normalizeClass, createCommentVNode, createElementVNode, mergeProps, withModifiers, createBlock, withCtx, resolveDynamicComponent, renderSlot } from 'vue';\nimport '../../roving-focus-group/index.mjs';\nimport '../../collection/index.mjs';\nimport { ElIcon } from '../../icon/index.mjs';\nimport '../../../hooks/index.mjs';\nimport '../../../utils/index.mjs';\nimport '../../../constants/index.mjs';\nimport { dropdownItemProps, DROPDOWN_COLLECTION_ITEM_INJECTION_KEY as COLLECTION_ITEM_INJECTION_KEY } from './dropdown.mjs';\nimport { DROPDOWN_INJECTION_KEY } from './tokens.mjs';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nimport { ROVING_FOCUS_ITEM_COLLECTION_INJECTION_KEY as COLLECTION_ITEM_INJECTION_KEY$1 } from '../../roving-focus-group/src/roving-focus-group.mjs';\nimport { ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY } from '../../roving-focus-group/src/tokens.mjs';\nimport { composeRefs } from '../../../utils/vue/refs.mjs';\nimport { composeEventHandlers } from '../../../utils/dom/event.mjs';\nimport { EVENT_CODE } from '../../../constants/aria.mjs';\nimport { COLLECTION_ITEM_SIGN } from '../../collection/src/collection.mjs';\nconst _sfc_main = defineComponent({\n name: \"DropdownItemImpl\",\n components: {\n ElIcon\n },\n props: dropdownItemProps,\n emits: [\"pointermove\", \"pointerleave\", \"click\", \"clickimpl\"],\n setup(_, {\n emit\n }) {\n const ns = useNamespace(\"dropdown\");\n const {\n role: menuRole\n } = inject(DROPDOWN_INJECTION_KEY, void 0);\n const {\n collectionItemRef: dropdownCollectionItemRef\n } = inject(COLLECTION_ITEM_INJECTION_KEY, void 0);\n const {\n collectionItemRef: rovingFocusCollectionItemRef\n } = inject(COLLECTION_ITEM_INJECTION_KEY$1, void 0);\n const {\n rovingFocusGroupItemRef,\n tabIndex,\n handleFocus,\n handleKeydown: handleItemKeydown,\n handleMousedown\n } = inject(ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY, void 0);\n const itemRef = composeRefs(dropdownCollectionItemRef, rovingFocusCollectionItemRef, rovingFocusGroupItemRef);\n const role = computed(() => {\n if (menuRole.value === \"menu\") {\n return \"menuitem\";\n } else if (menuRole.value === \"navigation\") {\n return \"link\";\n }\n return \"button\";\n });\n const handleKeydown = composeEventHandlers(e => {\n const {\n code\n } = 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 return {\n ns,\n itemRef,\n dataset: {\n [COLLECTION_ITEM_SIGN]: \"\"\n },\n role,\n tabIndex,\n handleFocus,\n handleKeydown,\n handleMousedown\n };\n }\n});\nfunction _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {\n const _component_el_icon = resolveComponent(\"el-icon\");\n return openBlock(), createElementBlock(Fragment, null, [_ctx.divided ? (openBlock(), createElementBlock(\"li\", {\n key: 0,\n role: \"separator\",\n class: normalizeClass(_ctx.ns.bem(\"menu\", \"item\", \"divided\"))\n }, null, 2)) : createCommentVNode(\"v-if\", true), createElementVNode(\"li\", mergeProps({\n ref: _ctx.itemRef\n }, {\n ..._ctx.dataset,\n ..._ctx.$attrs\n }, {\n \"aria-disabled\": _ctx.disabled,\n class: [_ctx.ns.be(\"menu\", \"item\"), _ctx.ns.is(\"disabled\", _ctx.disabled)],\n tabindex: _ctx.tabIndex,\n role: _ctx.role,\n onClick: e => _ctx.$emit(\"clickimpl\", e),\n onFocus: _ctx.handleFocus,\n onKeydown: withModifiers(_ctx.handleKeydown, [\"self\"]),\n onMousedown: _ctx.handleMousedown,\n onPointermove: e => _ctx.$emit(\"pointermove\", e),\n onPointerleave: e => _ctx.$emit(\"pointerleave\", e)\n }), [_ctx.icon ? (openBlock(), createBlock(_component_el_icon, {\n key: 0\n }, {\n default: withCtx(() => [(openBlock(), createBlock(resolveDynamicComponent(_ctx.icon)))]),\n _: 1\n })) : createCommentVNode(\"v-if\", true), renderSlot(_ctx.$slots, \"default\")], 16, [\"aria-disabled\", \"tabindex\", \"role\", \"onClick\", \"onFocus\", \"onKeydown\", \"onMousedown\", \"onPointermove\", \"onPointerleave\"])], 64);\n}\nvar ElDropdownItemImpl = /* @__PURE__ */_export_sfc(_sfc_main, [[\"render\", _sfc_render], [\"__file\", \"dropdown-item-impl.vue\"]]);\nexport { ElDropdownItemImpl as default };","map":{"version":3,"names":["_sfc_main","defineComponent","name","components","ElIcon","props","dropdownItemProps","emits","setup","_","emit","ns","useNamespace","role","menuRole","inject","DROPDOWN_INJECTION_KEY","collectionItemRef","dropdownCollectionItemRef","COLLECTION_ITEM_INJECTION_KEY","rovingFocusCollectionItemRef","COLLECTION_ITEM_INJECTION_KEY$1","rovingFocusGroupItemRef","tabIndex","handleFocus","handleKeydown","handleItemKeydown","handleMousedown","ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY","itemRef","composeRefs","computed","value","composeEventHandlers","e","code","EVENT_CODE","enter","space","preventDefault","stopImmediatePropagation","dataset","COLLECTION_ITEM_SIGN","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_component_el_icon","resolveComponent","openBlock","createElementBlock","Fragment","divided","key","class","normalizeClass","bem","createCommentVNode","createElementVNode","mergeProps","ref","$attrs","onMousedown","onPointermove","$emit","onPointerleave","icon","createBlock","default","withCtx","resolveDynamicComponent","ElDropdownItemImpl","_export_sfc"],"sources":["../../../../../../packages/components/dropdown/src/dropdown-item-impl.vue"],"sourcesContent":["<template>\n <li\n v-if=\"divided\"\n role=\"separator\"\n :class=\"ns.bem('menu', 'item', 'divided')\"\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=\"role\"\n @click=\"(e) => $emit('clickimpl', e)\"\n @focus=\"handleFocus\"\n @keydown.self=\"handleKeydown\"\n @mousedown=\"handleMousedown\"\n @pointermove=\"(e) => $emit('pointermove', e)\"\n @pointerleave=\"(e) => $emit('pointerleave', e)\"\n >\n <el-icon v-if=\"icon\">\n <component :is=\"icon\" />\n </el-icon>\n <slot />\n </li>\n</template>\n\n<script lang=\"ts\">\n// @ts-nocheck\nimport { computed, 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'\nimport { DROPDOWN_INJECTION_KEY } from './tokens'\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 { role: menuRole } = inject(DROPDOWN_INJECTION_KEY, undefined)!\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 role = computed<string>(() => {\n if (menuRole.value === 'menu') {\n return 'menuitem'\n } else if (menuRole.value === 'navigation') {\n return 'link'\n }\n return 'button'\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 role,\n tabIndex,\n handleFocus,\n handleKeydown,\n handleMousedown,\n }\n },\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;;;AA6CA,MAAKA,SAAA,GAAaC,eAAa;EAC7BC,IAAM;EACNC,UAAY;IACVC;EAAA,CACF;EACAC,KAAO,EAAAC,iBAAA;EACPC,KAAO,GAAC,aAAe,kBAAgB,SAAS,WAAW;EAC3DC,KAAMA,CAAAC,CAAA,EAAG;IAAEC;EAAA,CAAQ;IACX,MAAAC,EAAA,GAAKC,YAAA,CAAa,UAAU;IAElC,MAAM;MAAEC,IAAM,EAAAC;IAAA,CAAa,GAAAC,MAAA,CAAOC,sBAAA,EAAwB,KAAS;IAE7D;MAAEC,iBAAmB,EAAAC;IAAA,CAA8B,GAAAH,MAAA,CAAAI,6BAAA;IACvD;MAAAF,iBAAA,EAAAG;IAAA,IAAAL,MAAA,CAAAM,+BAAA;IACA;MACFC,uBAAA;MAEMC,QAAqB;MACzBC,WAAA;MACAC,aAAA,EAAAC,iBAAA;MACFC;IAEA,CAAM,GAAAZ,MAAA,CAAAa,qCAAA;IACJ,MAAAC,OAAA,GAAAC,WAAA,CAAAZ,yBAAA,EAAAE,4BAAA,EAAAE,uBAAA;IACA,MAAAT,IAAA,GAAAkB,QAAA;MACA,IAAAjB,QAAA,CAAAkB,KAAA;QACe;MAAA,CACf,UAAAlB,QAAA,CAAAkB,KAAA;QACE,OAAO;MAEX;MACE;IAAA,CACA;IACA,MAAAP,aAAA,GAAAQ,oBAAA,CAAAC,CAAA;MACF;QAAAC;MAAA,IAAAD,CAAA;MAEM,IAAAC,IAAA,KAAAC,UAA8B,CAAAC,KAAA,IAAAF,IAAA,KAAAC,UAAA,CAAAE,KAAA;QAC9BJ,CAAA,CAAAK,cAAA;QACKL,CAAA,CAAAM,wBAAA;QACT9B,IAAA,YAAoB,EAAAwB,CAAA;QACX;MAAA;IAET,CAAO,EAAAR,iBAAA;IACT,OAAC;MAEKf,EAAA;MACEkB,OAAA;MACNY,OAAa;QACX,CAAAC,oBAAiB;MACjB;MACA7B,IAAA;MACOU,QAAA;MACTC,WAAA;MAAAC,aACkB;MAEbE;IAAA,CACL;EAAA;AACA;AAE0B,SAC1BgB,YAAAC,IAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,QAAA;EACA,MAAAC,kBAAA,GAAAC,gBAAA;EACA,OAAAC,SAAA,IAAAC,kBAAA,CAAAC,QAAA,SACAV,IAAA,CAAAW,OAAA,IAAAH,SAAA,IAAAC,kBAAA;IACAG,GAAA;IACA3C,IAAA;IACF4C,KAAA,EAAAC,cAAA,CAAAd,IAAA,CAAAjC,EAAA,CAAAgD,GAAA;EAAA,CACF,cAAAC,kBAAA,gBACDC,kBAAA,OAAAC,UAAA;IAAAC,GAAA,EAAAnB,IAAA,CAAAf;EAAA;IAAA,GAAAe,IAAA,CAAAH,OAAA;IAAA,GAAAG,IAAA,CAAAoB;EAAA;;;;;;;;IA/GSC,WADR,EAAArB,IAAA,CAAAjB,eAAA;IAIEuC,aAAA,EAAAhC,CAAA,IAAAU,IAAA,CAAAuB,KAAA,gBAAAjC,CAAA;IAAAkC,cAAA,EAAAlC,CAAA,IAAAU,IAAA,CAAAuB,KAAA,iBAAAjC,CAAA;EAAA,K,IAFA,CAAKmC,IAAA,IAAAjB,SAAA,IAAAkB,WAAA,CAAApB,kBAAA;IAAAM,GAAA;EAAA;IACJe,OAAA,EAAKC,OAAE,SAAMpB,SAAA,IAAAkB,WAAA,CAAAG,uBAAA,CAAA7B,IAAA,CAAAyB,IAAA,I;;+EAoBX,wCAjBF,sBACY,4BAAkB,2CAC9B;AAAe;AAEL,IAAAK,kBAAA,GACJ,eAAAC,WAAA,CAAA3E,SAAA,cAAA2C,WAAA","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}