{"version":3,"file":"Dropdown.cjs","sources":["../../../../../../packages/components/dropdown/src/Dropdown.tsx"],"sourcesContent":["import type { CustomSlotsType } from '@antdv/types';\nimport { RightOutlined } from '@ant-design/icons-vue';\nimport {\n  classNames,\n  cloneElement,\n  devWarning,\n  getPlacements,\n  initDefaultProps,\n  isValidElement,\n  omit,\n} from '@antdv/utils';\nimport { VcDropdown } from '@antdv/vue-components';\nimport { computed, defineComponent } from 'vue';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport { useProvideOverride } from '../../menu/src/OverrideContext';\nimport useStyle from '../style';\nimport { dropdownProps } from './props';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ADropdown',\n  inheritAttrs: false,\n  props: initDefaultProps(dropdownProps(), {\n    mouseEnterDelay: 0.15,\n    mouseLeaveDelay: 0.1,\n    placement: 'bottomLeft',\n    trigger: 'hover',\n  }),\n  // emits: ['visibleChange', 'update:visible'],\n  slots: Object as CustomSlotsType<{\n    default?: any\n    overlay?: any\n  }>,\n  setup(props, { slots, attrs, emit }) {\n    const { prefixCls, rootPrefixCls, direction, getPopupContainer } = useConfigInject(\n      'dropdown',\n      props,\n    );\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n    // Warning for deprecated usage\n    if (process.env.NODE_ENV !== 'production') {\n      [\n        ['visible', 'open'],\n        ['onVisibleChange', 'onOpenChange'],\n        ['onUpdate:visible', 'onUpdate:open'],\n      ].forEach(([deprecatedName, newName]) => {\n        devWarning(\n          props[deprecatedName] === undefined,\n          'Dropdown',\n          `\\`${deprecatedName}\\` is deprecated which will be removed in next major version, please use \\`${newName}\\` instead.`,\n        );\n      });\n    }\n\n    const transitionName = computed(() => {\n      const { placement = '' } = props;\n      if (props.transitionName !== undefined)\n        return props.transitionName;\n\n      if (placement.includes('top'))\n        return `${rootPrefixCls.value}-slide-down`;\n\n      return `${rootPrefixCls.value}-slide-up`;\n    });\n    useProvideOverride({\n      prefixCls: computed(() => `${prefixCls.value}-menu`),\n      expandIcon: computed(() => {\n        return (\n          <span class={`${prefixCls.value}-menu-submenu-arrow`}>\n            <RightOutlined class={`${prefixCls.value}-menu-submenu-arrow-icon`} />\n          </span>\n        );\n      }),\n      mode: computed(() => 'vertical'),\n      selectable: computed(() => false),\n      onClick: () => {},\n      validator: ({ mode }) => {\n        // Warning if use other mode\n        devWarning(\n          !mode || mode === 'vertical',\n          'Dropdown',\n          `mode=\"${mode}\" is not supported for Dropdown's Menu.`,\n        );\n      },\n    });\n    const renderOverlay = () => {\n      // rc-dropdown already can process the function of overlay, but we have check logic here.\n      // So we need render the element to check and pass back to rc-dropdown.\n      const overlay = props.overlay || slots.overlay?.();\n      const overlayNode = Array.isArray(overlay) ? overlay[0] : overlay;\n\n      if (!overlayNode) return null;\n      const overlayProps = overlayNode.props || {};\n\n      // Warning if use other mode\n      devWarning(\n        !overlayProps.mode || overlayProps.mode === 'vertical',\n        'Dropdown',\n        `mode=\"${overlayProps.mode}\" is not supported for Dropdown's Menu.`,\n      );\n\n      // menu cannot be selectable in dropdown defaultly\n      const { selectable = false, expandIcon = (overlayNode.children as any)?.expandIcon?.() }\n        = overlayProps;\n\n      const overlayNodeExpandIcon\n        = (typeof expandIcon !== 'undefined' && isValidElement(expandIcon))\n          ? (\n              expandIcon\n            )\n          : (\n              <span class={`${prefixCls.value}-menu-submenu-arrow`}>\n                <RightOutlined class={`${prefixCls.value}-menu-submenu-arrow-icon`} />\n              </span>\n            );\n\n      const fixedModeOverlay = isValidElement(overlayNode)\n        ? cloneElement(overlayNode, {\n            mode: 'vertical',\n            selectable,\n            expandIcon: () => overlayNodeExpandIcon,\n          })\n        : overlayNode;\n\n      return fixedModeOverlay;\n    };\n\n    const placement = computed(() => {\n      if (!props.placement)\n        return direction.value === 'rtl' ? 'bottomRight' : 'bottomLeft';\n\n      if (props.placement.includes('Center')) {\n        const newPlacement = props.placement.slice(0, props.placement.indexOf('Center'));\n        devWarning(\n          !props.placement.includes('Center'),\n          'Dropdown',\n          `You are using '${props.placement}' placement in Dropdown, which is deprecated. Try to use '${newPlacement}' instead.`,\n        );\n        return newPlacement;\n      }\n      return props.placement;\n    });\n\n    const mergedVisible = computed(() => {\n      return typeof props.visible === 'boolean' ? props.visible : props.open;\n    });\n\n    const handleVisibleChange = (val: boolean) => {\n      emit('update:visible', val);\n      emit('visibleChange', val);\n      emit('update:open', val);\n      emit('openChange', val);\n    };\n\n    return () => {\n      const { arrow, trigger, disabled, overlayClassName } = props;\n      const child = slots.default?.()[0];\n      const dropdownTrigger = cloneElement(\n        child,\n        Object.assign(\n          {\n            class: classNames(\n              child?.props?.class,\n              {\n                [`${prefixCls.value}-rtl`]: direction.value === 'rtl',\n              },\n              `${prefixCls.value}-trigger`,\n            ),\n          },\n          disabled ? { disabled } : {},\n        ),\n      );\n\n      const overlayClassNameCustomized = classNames(overlayClassName, hashId.value, {\n        [`${prefixCls.value}-rtl`]: direction.value === 'rtl',\n      });\n\n      const triggerActions = disabled ? [] : trigger;\n      let alignPoint: boolean;\n      if (triggerActions && triggerActions.includes('contextmenu'))\n        alignPoint = true;\n\n      const builtinPlacements = getPlacements({\n        arrowPointAtCenter: typeof arrow === 'object' && arrow.pointAtCenter,\n        autoAdjustOverflow: true,\n      });\n      const getDropdownProps = omit(\n        {\n          ...props,\n          ...attrs,\n          visible: mergedVisible.value,\n          builtinPlacements,\n          overlayClassName: overlayClassNameCustomized,\n          arrow: !!arrow,\n          alignPoint,\n          prefixCls: prefixCls.value,\n          getPopupContainer: getPopupContainer?.value,\n          transitionName: transitionName.value,\n          trigger: triggerActions,\n          onVisibleChange: handleVisibleChange,\n          placement: placement.value,\n        },\n        ['overlay', 'onUpdate:visible'],\n      );\n      return wrapSSR(\n        <VcDropdown {...getDropdownProps} v-slots={{ overlay: renderOverlay }}>\n          {dropdownTrigger}\n        </VcDropdown>,\n      );\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","inheritAttrs","props","initDefaultProps","dropdownProps","mouseEnterDelay","mouseLeaveDelay","placement","trigger","slots","Object","setup","attrs","emit","prefixCls","rootPrefixCls","direction","getPopupContainer","useConfigInject","wrapSSR","hashId","useStyle","process","env","NODE_ENV","forEach","deprecatedName","newName","devWarning","undefined","transitionName","computed","includes","value","useProvideOverride","expandIcon","_createVNode","RightOutlined","mode","selectable","onClick","validator","renderOverlay","overlay","overlayNode","Array","isArray","overlayProps","children","overlayNodeExpandIcon","isValidElement","fixedModeOverlay","cloneElement","newPlacement","slice","indexOf","mergedVisible","visible","open","handleVisibleChange","val","arrow","disabled","overlayClassName","child","default","dropdownTrigger","assign","class","classNames","overlayClassNameCustomized","triggerActions","alignPoint","builtinPlacements","getPlacements","arrowPointAtCenter","pointAtCenter","autoAdjustOverflow","getDropdownProps","omit","onVisibleChange","VcDropdown"],"mappings":"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"}