{"version":3,"file":"dropdown-item-impl.mjs","sources":["../../../../../../packages/components/dropdown/src/dropdown-item-impl.vue"],"sourcesContent":["<template>\n  <li\n    v-if=\"divider\"\n    class=\"menu-divider\"\n    role=\"separator\"\n    v-bind=\"$attrs\"\n  ></li>\n  <li\n    v-else\n    :ref=\"itemRef\"\n    v-bind=\"{ ...dataset, ...$attrs }\"\n    :aria-disabled=\"disabled\"\n    :class=\"{\n      [namespace]: true,\n      'is-disabled': disabled,\n    }\"\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    <slot name=\"icon\"></slot>\n    <slot></slot>\n  </li>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject } from 'vue'\nimport {\n  ROVING_FOCUS_GROUP_ITEM_INJECTION_KEY,\n  ROVING_FOCUS_ITEM_COLLECTION_INJECTION_KEY,\n} from '@hongluan-ui/components/roving-focus-group'\nimport { COLLECTION_ITEM_SIGN } from '@hongluan-ui/components/collection'\nimport { useNamespace } from '@hongluan-ui/hooks'\nimport { composeEventHandlers, composeRefs } from '@hongluan-ui/utils'\nimport { EVENT_CODE } from '@hongluan-ui/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  props: dropdownItemProps,\n  emits: ['pointermove', 'pointerleave', 'click', 'clickimpl'],\n  setup(_, { emit }) {\n    const { namespace } = useNamespace('dropdown-item')\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      namespace,\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"],"names":["DROPDOWN_COLLECTION_ITEM_INJECTION_KEY","ROVING_FOCUS_ITEM_COLLECTION_INJECTION_KEY","_createElementBlock","_mergeProps","_withModifiers","_renderSlot"],"mappings":";;;;;;;;;;;;;;;;;AA8CA,MAAK,YAAa,gBAAa;AAAA,EAC7B,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO,CAAC,eAAe,gBAAgB,SAAS,WAAW;AAAA,EAC3D,MAAM,GAAG,EAAE,QAAQ;AACjB,UAAM,EAAE,cAAc,aAAa,eAAe;AAClD,UAAM,EAAE,MAAM,aAAa,OAAO,wBAAwB,MAAS;AAEnE,UAAM,EAAE,mBAAmB,8BAA8B,OACvDA,+BACA,MACF;AAEA,UAAM,EAAE,mBAAmB,iCAAiC,OAC1DC,iCACA,MACF;AAEA,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAe;AAAA,MACf;AAAA,QACE,OAAO,uCAAuC,MAAS;AAE3D,UAAM,UAAU,YACd,2BACA,8BACA,uBACF;AAEA,UAAM,OAAO,SAAiB,MAAM;AAClC,UAAI,SAAS,UAAU,QAAQ;AAC7B,eAAO;AAAA,iBACE,SAAS,UAAU,cAAc;AAC1C,eAAO;AAAA;AAET,aAAO;AAAA,KACR;AAED,UAAM,gBAAgB,qBAAqB,CAAC,MAAqB;AAC/D,YAAM,EAAE,SAAS;AACjB,UAAI,SAAS,WAAW,SAAS,SAAS,WAAW,OAAO;AAC1D,UAAE;AACF,UAAE;AACF,aAAK,aAAa,CAAC;AACnB,eAAO;AAAA;AACT,OACC,iBAAiB;AAEpB,WAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,SAAS;AAAA,SACN,uBAAuB;AAAA;AAC1B,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AACF;AAEJ,CAAC;;SA5GS,6BADRC,mBAKM,MALNC,WAKM;AAAA;IAHJ,OAAM;AAAA,IACN,MAAK;AAAA,KACG,WAAM,8BAEhBD,mBAoBK,MApBLC,WAoBK;AAAA;IAlBF,KAAK;AAAA,UACO,iBAAY;AAAM,IAC9B,iBAAe;AAAA,IACf,OAAK;AAAA,OAAW,iBAAS;AAAA,qBAA8B;AAAA;IAIvD,UAAU;AAAA,IACV,MAAM;AAAA,IACN,SAAK,CAAG,MAAM,WAAK,aAAc,CAAC;AAAA,IAClC,SAAO;AAAA,IACP,WAAOC,cAAO,oBAAa;AAAA,IAC3B,aAAW;AAAA,IACX,eAAW,CAAG,MAAM,WAAK,eAAgB,CAAC;AAAA,IAC1C,gBAAY,CAAG,MAAM,WAAK,gBAAiB,CAAC;AAAA;IAE7CC,WAAyB;AAAA,IACzBA,WAAa;AAAA;;;;;;"}