{"version":3,"file":"Dropdown.cjs","sources":["../../../../../../packages/vue-components/vc-dropdown/src/Dropdown.tsx"],"sourcesContent":["import type { CSSProperties, PropType } from 'vue';\nimport { classNames, cloneElement, PropTypes, skipFlattenKey } from '@antdv/utils';\nimport { computed, defineComponent, Fragment, ref, watch } from 'vue';\nimport Trigger from '../../vc-trigger/src/Trigger';\nimport placements from './placements';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  props: {\n    minOverlayWidthMatchTrigger: { type: Boolean, default: undefined },\n    arrow: { type: Boolean, default: false },\n    prefixCls: PropTypes.string.def('rc-dropdown'),\n    transitionName: String,\n    overlayClassName: PropTypes.string.def(''),\n    openClassName: String,\n    animation: PropTypes.any,\n    align: PropTypes.object,\n    overlayStyle: { type: Object as PropType<CSSProperties>, default: undefined as CSSProperties },\n    placement: PropTypes.string.def('bottomLeft'),\n    overlay: PropTypes.any,\n    trigger: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]).def(\n      'hover',\n    ),\n    alignPoint: { type: Boolean, default: undefined },\n    showAction: PropTypes.array,\n    hideAction: PropTypes.array,\n    getPopupContainer: Function,\n    visible: { type: Boolean, default: undefined },\n    defaultVisible: { type: Boolean, default: false },\n    mouseEnterDelay: PropTypes.number.def(0.15),\n    mouseLeaveDelay: PropTypes.number.def(0.1),\n  },\n  emits: ['visibleChange', 'overlayClick'],\n  setup(props, { slots, emit, expose }) {\n    const triggerVisible = ref(!!props.visible);\n    watch(\n      () => props.visible,\n      (val) => {\n        if (val !== undefined)\n          triggerVisible.value = val;\n      },\n    );\n    const triggerRef = ref();\n\n    expose({\n      triggerRef,\n    });\n\n    const onClick = (e: MouseEvent) => {\n      if (props.visible === undefined)\n        triggerVisible.value = false;\n\n      emit('overlayClick', e);\n    };\n\n    const onVisibleChange = (visible: boolean) => {\n      if (props.visible === undefined)\n        triggerVisible.value = visible;\n\n      emit('visibleChange', visible);\n    };\n\n    const getMenuElement = () => {\n      const overlayElement = slots.overlay?.();\n      const extraOverlayProps = {\n        prefixCls: `${props.prefixCls}-menu`,\n        onClick,\n      };\n      return (\n        <Fragment key={skipFlattenKey}>\n          {props.arrow && <div class={`${props.prefixCls}-arrow`} />}\n          {cloneElement(overlayElement, extraOverlayProps, false)}\n        </Fragment>\n      );\n    };\n\n    const minOverlayWidthMatchTrigger = computed(() => {\n      const { minOverlayWidthMatchTrigger: matchTrigger = !props.alignPoint } = props;\n      return matchTrigger;\n    });\n\n    const renderChildren = () => {\n      const children = slots.default?.();\n      return triggerVisible.value && children\n        ? cloneElement(\n            children[0],\n            { class: props.openClassName || `${props.prefixCls}-open` },\n            false,\n          )\n        : children;\n    };\n\n    const triggerHideAction = computed(() => {\n      if (!props.hideAction && props.trigger.includes('contextmenu'))\n        return ['click'];\n\n      return props.hideAction;\n    });\n    return () => {\n      const {\n        prefixCls,\n        arrow,\n        showAction,\n        overlayStyle,\n        trigger,\n        placement,\n        align,\n        getPopupContainer,\n        transitionName,\n        animation,\n        overlayClassName,\n        ...otherProps\n      } = props;\n      return (\n        <Trigger\n          {...otherProps}\n          prefixCls={prefixCls}\n          ref={triggerRef}\n          popupClassName={classNames(overlayClassName, {\n            [`${prefixCls}-show-arrow`]: arrow,\n          })}\n          popupStyle={overlayStyle}\n          builtinPlacements={placements}\n          action={trigger}\n          showAction={showAction}\n          hideAction={triggerHideAction.value || []}\n          popupPlacement={placement}\n          popupAlign={align}\n          popupTransitionName={transitionName}\n          popupAnimation={animation}\n          popupVisible={triggerVisible.value}\n          stretch={minOverlayWidthMatchTrigger.value ? 'minWidth' : ''}\n          onPopupVisibleChange={onVisibleChange}\n          getPopupContainer={getPopupContainer}\n          v-slots={{ popup: getMenuElement, default: renderChildren }}\n        >\n        </Trigger>\n      );\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","props","minOverlayWidthMatchTrigger","type","Boolean","default","undefined","arrow","prefixCls","PropTypes","string","def","transitionName","String","overlayClassName","openClassName","animation","any","align","object","overlayStyle","Object","placement","overlay","trigger","oneOfType","arrayOf","alignPoint","showAction","array","hideAction","getPopupContainer","Function","visible","defaultVisible","mouseEnterDelay","number","mouseLeaveDelay","emits","setup","slots","emit","expose","triggerVisible","ref","watch","val","value","triggerRef","onClick","e","onVisibleChange","getMenuElement","overlayElement","extraOverlayProps","_createVNode","_Fragment","skipFlattenKey","cloneElement","computed","matchTrigger","renderChildren","children","class","triggerHideAction","includes","otherProps","Trigger","classNames","placements","popup"],"mappings":"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"}