1 line
5.4 KiB
Plaintext
1 line
5.4 KiB
Plaintext
{"version":3,"file":"dropdown-menu.mjs","sources":["../../../../../../packages/components/dropdown/src/dropdown-menu.vue"],"sourcesContent":["<template>\n <ul\n :ref=\"dropdownListWrapperRef\"\n :class=\"dropdownKls\"\n :style=\"rovingFocusGroupRootStyle\"\n :tabindex=\"-1\"\n :role=\"role\"\n :aria-labelledby=\"triggerId\"\n @focusin=\"handleFocus\"\n @focusout=\"onBlur\"\n @keydown.self=\"handleKeydown\"\n @mousedown.self=\"onMousedown\"\n >\n <slot />\n </ul>\n</template>\n\n<script lang=\"ts\">\nimport { computed, defineComponent, inject } from 'vue'\nimport {\n composeEventHandlers,\n composeRefs,\n getEventCode,\n} from '@element-plus/utils'\nimport { EVENT_CODE } from '@element-plus/constants'\nimport {\n ROVING_FOCUS_COLLECTION_INJECTION_KEY,\n ROVING_FOCUS_GROUP_INJECTION_KEY,\n} from '@element-plus/components/roving-focus-group'\nimport { useNamespace } from '@element-plus/hooks'\nimport { DROPDOWN_INJECTION_KEY } from './tokens'\nimport { dropdownMenuProps } from './dropdown'\nimport { useDropdown } from './useDropdown'\n\nexport default defineComponent({\n name: 'ElDropdownMenu',\n props: dropdownMenuProps,\n setup(props) {\n const ns = useNamespace('dropdown')\n const { _elDropdownSize } = useDropdown()\n const size = _elDropdownSize.value\n\n const { contentRef, role, triggerId, isUsingKeyboard, handleClose } =\n inject(DROPDOWN_INJECTION_KEY, undefined)!\n\n const {\n rovingFocusGroupRef,\n rovingFocusGroupRootStyle,\n onBlur,\n onFocus,\n onKeydown,\n onMousedown,\n } = inject(ROVING_FOCUS_GROUP_INJECTION_KEY, undefined)!\n\n const { collectionRef: rovingFocusGroupCollectionRef } = inject(\n ROVING_FOCUS_COLLECTION_INJECTION_KEY,\n undefined\n )!\n\n const dropdownKls = computed(() => {\n return [ns.b('menu'), ns.bm('menu', size?.value)]\n })\n\n const dropdownListWrapperRef = composeRefs(\n contentRef,\n rovingFocusGroupRef,\n rovingFocusGroupCollectionRef\n )\n\n const handleKeydown = composeEventHandlers(\n (e: KeyboardEvent) => {\n props.onKeydown?.(e)\n },\n (e) => {\n const { currentTarget, target } = e\n const code = getEventCode(e)\n\n const isKeydownContained = (currentTarget as Node).contains(\n target as Node\n )\n\n if (isKeydownContained) {\n // TODO: implement typeahead search\n }\n\n if (EVENT_CODE.tab === code) {\n return handleClose()\n }\n\n onKeydown(e)\n }\n )\n\n function handleFocus(e: FocusEvent) {\n isUsingKeyboard.value && onFocus(e)\n }\n\n return {\n size,\n rovingFocusGroupRootStyle,\n dropdownKls,\n role,\n triggerId,\n dropdownListWrapperRef,\n handleKeydown,\n onBlur,\n handleFocus,\n onMousedown,\n }\n },\n})\n</script>\n"],"names":["ROVING_FOCUS_COLLECTION_INJECTION_KEY","_openBlock","_createElementBlock","_normalizeClass","_normalizeStyle","_renderSlot"],"mappings":"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"} |