{"version":3,"file":"dropdown2.mjs","sources":["../../../../../../packages/components/dropdown/src/dropdown.vue"],"sourcesContent":["<template>\n  <div :class=\"[ns.b(), ns.is('disabled', disabled)]\">\n    <el-tooltip\n      ref=\"popperRef\"\n      :effect=\"effect\"\n      :fallback-placements=\"['bottom', 'top']\"\n      :popper-options=\"popperOptions\"\n      :gpu-acceleration=\"false\"\n      :hide-after=\"trigger === 'hover' ? hideTimeout : 0\"\n      :manual-mode=\"true\"\n      :placement=\"placement\"\n      :popper-class=\"[ns.e('popper'), popperClass]\"\n      :reference-element=\"referenceElementRef?.$el\"\n      :trigger=\"trigger\"\n      :show-after=\"trigger === 'hover' ? showTimeout : 0\"\n      :stop-popper-mouse-event=\"false\"\n      :virtual-ref=\"triggeringElementRef\"\n      :virtual-triggering=\"splitButton\"\n      :disabled=\"disabled\"\n      append-to-body\n      pure\n      :transition=\"`${ns.namespace.value}-zoom-in-top`\"\n      persistent\n      @show=\"$emit('visible-change', true)\"\n      @hide=\"$emit('visible-change', false)\"\n    >\n      <template #content>\n        <el-scrollbar\n          ref=\"scrollbar\"\n          :wrap-style=\"wrapStyle\"\n          tag=\"div\"\n          :view-class=\"ns.e('list')\"\n        >\n          <el-focus-trap trapped @mount-on-focus=\"onMountOnFocus\">\n            <el-roving-focus-group\n              :loop=\"loop\"\n              :current-tab-id=\"currentTabId\"\n              orientation=\"horizontal\"\n              @current-tab-id-change=\"handleCurrentTabIdChange\"\n              @entry-focus=\"handleEntryFocus\"\n            >\n              <el-dropdown-collection>\n                <slot name=\"dropdown\" />\n              </el-dropdown-collection>\n            </el-roving-focus-group>\n          </el-focus-trap>\n        </el-scrollbar>\n      </template>\n      <template v-if=\"!splitButton\" #default>\n        <div :class=\"dropdownTriggerKls\">\n          <slot name=\"default\" />\n        </div>\n      </template>\n    </el-tooltip>\n    <template v-if=\"splitButton\">\n      <el-button-group>\n        <el-button\n          ref=\"referenceElementRef\"\n          v-bind=\"buttonProps\"\n          :size=\"dropdownSize\"\n          :type=\"type\"\n          :disabled=\"disabled\"\n          @click=\"handlerMainButtonClick\"\n        >\n          <slot name=\"default\" />\n        </el-button>\n        <el-button\n          ref=\"triggeringElementRef\"\n          v-bind=\"buttonProps\"\n          :size=\"dropdownSize\"\n          :type=\"type\"\n          :class=\"ns.e('caret-button')\"\n          :disabled=\"disabled\"\n        >\n          <el-icon :class=\"ns.e('icon')\"><arrow-down /></el-icon>\n        </el-button>\n      </el-button-group>\n    </template>\n  </div>\n</template>\n<script lang=\"ts\">\nimport {\n  computed,\n  defineComponent,\n  getCurrentInstance,\n  provide,\n  ref,\n  toRef,\n  unref,\n} from 'vue'\nimport ElButton from '@element-plus/components/button'\nimport ElTooltip from '@element-plus/components/tooltip'\nimport ElScrollbar from '@element-plus/components/scrollbar'\nimport ElIcon from '@element-plus/components/icon'\nimport ElFocusTrap from '@element-plus/components/focus-trap'\nimport ElRovingFocusGroup from '@element-plus/components/roving-focus-group'\nimport { addUnit } from '@element-plus/utils'\nimport { ArrowDown } from '@element-plus/icons-vue'\nimport { useNamespace, useSize } from '@element-plus/hooks'\nimport { ElCollection as ElDropdownCollection, dropdownProps } from './dropdown'\nimport { DROPDOWN_INJECTION_KEY } from './tokens'\n\nimport type { CSSProperties } from 'vue'\n\nconst { ButtonGroup: ElButtonGroup } = ElButton\n\nexport default defineComponent({\n  name: 'ElDropdown',\n  components: {\n    ElButton,\n    ElFocusTrap,\n    ElButtonGroup,\n    ElScrollbar,\n    ElDropdownCollection,\n    ElTooltip,\n    ElRovingFocusGroup,\n    ElIcon,\n    ArrowDown,\n  },\n  props: dropdownProps,\n  emits: ['visible-change', 'click', 'command'],\n  setup(props, { emit }) {\n    const _instance = getCurrentInstance()\n    const ns = useNamespace('dropdown')\n\n    const triggeringElementRef = ref()\n    const referenceElementRef = ref()\n    const popperRef = ref<InstanceType<typeof ElTooltip> | null>(null)\n    const contentRef = ref<HTMLElement | null>(null)\n    const scrollbar = ref(null)\n    const currentTabId = ref<string | null>(null)\n    const isUsingKeyboard = ref(false)\n\n    const wrapStyle = computed<CSSProperties>(() => ({\n      maxHeight: addUnit(props.maxHeight),\n    }))\n    const dropdownTriggerKls = computed(() => [ns.m(dropdownSize.value)])\n\n    function handleClick() {\n      handleClose()\n    }\n\n    function handleClose() {\n      popperRef.value?.onClose()\n    }\n\n    function handleOpen() {\n      popperRef.value?.onOpen()\n    }\n\n    const dropdownSize = useSize()\n\n    function commandHandler(...args: any[]) {\n      emit('command', ...args)\n    }\n\n    function onItemEnter() {\n      // NOOP for now\n    }\n\n    function onItemLeave() {\n      const contentEl = unref(contentRef)\n\n      contentEl?.focus()\n      currentTabId.value = null\n    }\n\n    function handleCurrentTabIdChange(id: string) {\n      currentTabId.value = id\n    }\n\n    function handleEntryFocus(e: Event) {\n      if (!isUsingKeyboard.value) {\n        e.preventDefault()\n        e.stopImmediatePropagation()\n      }\n    }\n\n    provide(DROPDOWN_INJECTION_KEY, {\n      contentRef,\n      isUsingKeyboard,\n      onItemEnter,\n      onItemLeave,\n    })\n\n    provide('elDropdown', {\n      instance: _instance,\n      dropdownSize,\n      handleClick,\n      commandHandler,\n      trigger: toRef(props, 'trigger'),\n      hideOnClick: toRef(props, 'hideOnClick'),\n    })\n\n    const onMountOnFocus = (e: Event) => {\n      e.preventDefault()\n      contentRef.value?.focus?.({\n        preventScroll: true,\n      })\n    }\n\n    const handlerMainButtonClick = (event: MouseEvent) => {\n      emit('click', event)\n    }\n\n    return {\n      ns,\n      scrollbar,\n      wrapStyle,\n      dropdownTriggerKls,\n      dropdownSize,\n      currentTabId,\n      handleCurrentTabIdChange,\n      handlerMainButtonClick,\n      handleEntryFocus,\n      handleClose,\n      handleOpen,\n      onMountOnFocus,\n      popperRef,\n      triggeringElementRef,\n      referenceElementRef,\n    }\n  },\n})\n</script>\n"],"names":["ElDropdownCollection","_resolveComponent","_openBlock","_createElementBlock","_normalizeClass","_createVNode","_createSlots","_withCtx","_createElementVNode","_createBlock","_mergeProps","_renderSlot"],"mappings":"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"}