{"version":3,"file":"DropdownButton.cjs","sources":["../../../../../../packages/components/dropdown/src/DropdownButton.tsx"],"sourcesContent":["import type { CustomSlotsType } from '@antdv/types';\nimport type { HTMLAttributes } from 'vue';\nimport type { DropdownButtonProps } from './props';\nimport { EllipsisOutlined } from '@ant-design/icons-vue';\nimport { classNames, initDefaultProps } from '@antdv/utils';\nimport { computed, defineComponent } from 'vue';\nimport Button from '../../button';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport useStyle from '../style';\nimport Dropdown from './Dropdown';\nimport { dropdownButtonProps } from './props';\n\nconst ButtonGroup = Button.Group;\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'ADropdownButton',\n  inheritAttrs: false,\n  __ANT_BUTTON: true,\n  props: initDefaultProps(dropdownButtonProps(), {\n    trigger: 'hover',\n    placement: 'bottomRight',\n    type: 'default',\n  }),\n  // emits: ['click', 'visibleChange', 'update:visible'],s\n  slots: Object as CustomSlotsType<{\n    icon: any\n    leftButton: { button: any }\n    rightButton: { button: any }\n    overlay: any\n    default: any\n  }>,\n  setup(props, { slots, attrs, emit }) {\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    const { prefixCls, direction, getPopupContainer } = useConfigInject('dropdown', props);\n    const buttonPrefixCls = computed(() => `${prefixCls.value}-button`);\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n    return () => {\n      const {\n        type = 'default',\n        disabled,\n        danger,\n        loading,\n        htmlType,\n        class: className = '',\n        overlay = slots.overlay?.(),\n        trigger,\n        align,\n        open,\n        visible,\n        onVisibleChange: _onVisibleChange,\n        placement = direction.value === 'rtl' ? 'bottomLeft' : 'bottomRight',\n        href,\n        title,\n        icon = slots.icon?.() || <EllipsisOutlined />,\n        mouseEnterDelay,\n        mouseLeaveDelay,\n        overlayClassName,\n        overlayStyle,\n        destroyPopupOnHide,\n        onClick,\n        'onUpdate:open': _updateVisible,\n        ...restProps\n      } = { ...props, ...attrs } as DropdownButtonProps & HTMLAttributes;\n\n      const dropdownProps = {\n        align,\n        disabled,\n        trigger: disabled ? [] : trigger,\n        placement,\n        getPopupContainer: getPopupContainer?.value,\n        onOpenChange: handleVisibleChange,\n        mouseEnterDelay,\n        mouseLeaveDelay,\n        open: open ?? visible,\n        overlayClassName,\n        overlayStyle,\n        destroyPopupOnHide,\n      };\n\n      const leftButton = (\n        <Button\n          danger={danger}\n          type={type}\n          disabled={disabled}\n          loading={loading}\n          onClick={onClick}\n          htmlType={htmlType}\n          href={href}\n          title={title}\n          v-slots={{ default: slots.default }}\n        >\n        </Button>\n      );\n\n      const rightButton = <Button danger={danger} type={type} icon={icon} />;\n\n      return wrapSSR(\n        <ButtonGroup\n          {...restProps}\n          class={classNames(buttonPrefixCls.value, className, hashId.value)}\n        >\n          {slots.leftButton ? slots.leftButton({ button: leftButton }) : leftButton}\n          <Dropdown {...dropdownProps} v-slots={{ overlay: () => overlay }}>\n            {slots.rightButton ? slots.rightButton({ button: rightButton }) : rightButton}\n          </Dropdown>\n        </ButtonGroup>,\n      );\n    };\n  },\n});\n"],"names":["ButtonGroup","Button","Group","defineComponent","compatConfig","MODE","name","inheritAttrs","__ANT_BUTTON","props","initDefaultProps","dropdownButtonProps","trigger","placement","type","slots","Object","setup","attrs","emit","handleVisibleChange","val","prefixCls","direction","getPopupContainer","useConfigInject","buttonPrefixCls","computed","value","wrapSSR","hashId","useStyle","disabled","danger","loading","htmlType","class","className","overlay","align","open","visible","onVisibleChange","_onVisibleChange","href","title","icon","_createVNode","EllipsisOutlined","mouseEnterDelay","mouseLeaveDelay","overlayClassName","overlayStyle","destroyPopupOnHide","onClick","_updateVisible","restProps","dropdownProps","onOpenChange","leftButton","default","rightButton","classNames","button","Dropdown"],"mappings":"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"}