{"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    role=\"separator\"\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=\"role\"\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    <b-icon v-if=\"icon\"><component :is=\"icon\" /></b-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 '@bigin/components/roving-focus-group'\nimport { COLLECTION_ITEM_SIGN } from '@bigin/components/collection'\nimport { BIcon } from '@bigin/components/icon'\nimport { useNamespace } from '@bigin/hooks'\nimport { composeEventHandlers, composeRefs } from '@bigin/utils'\nimport { EVENT_CODE } from '@bigin/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    BIcon,\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"],"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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"}