{"version":3,"file":"FloatButton.cjs","sources":["../../../../../../packages/components/float-button/src/FloatButton.tsx"],"sourcesContent":["import { classNames, devWarning, initDefaultProps } from '@antdv/utils';\nimport { computed, defineComponent, ref } from 'vue';\nimport Badge from '../../badge';\nimport useConfigInject from '../../config-provider/src/hooks/useConfigInject';\nimport Tooltip from '../../tooltip';\n\nimport useStyle from '../style';\nimport { floatButtonPrefixCls } from './constants';\nimport { useInjectFloatButtonGroupContext } from './context';\nimport Content from './FloatButtonContent';\nimport { floatButtonProps } from './props';\n\nexport default defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'AFloatButton',\n  inheritAttrs: false,\n  props: initDefaultProps(floatButtonProps(), { type: 'default', shape: 'circle' }),\n  setup(props, { attrs, slots }) {\n    const { prefixCls, direction } = useConfigInject(floatButtonPrefixCls, props);\n    const [wrapSSR, hashId] = useStyle(prefixCls);\n    const { shape: groupShape } = useInjectFloatButtonGroupContext();\n\n    const floatButtonRef = ref<HTMLAnchorElement | HTMLButtonElement>(null);\n\n    const mergeShape = computed(() => {\n      return groupShape?.value || props.shape;\n    });\n\n    return () => {\n      const {\n        type = 'default',\n        shape = 'circle',\n        description = slots.description?.(),\n        tooltip,\n        badge = {},\n        ...restProps\n      } = props;\n\n      const classString = classNames(\n        prefixCls.value,\n        `${prefixCls.value}-${type}`,\n        `${prefixCls.value}-${mergeShape.value}`,\n        {\n          [`${prefixCls.value}-rtl`]: direction.value === 'rtl',\n        },\n        attrs.class,\n        hashId.value,\n      );\n\n      const buttonNode = (\n        <Tooltip\n          placement=\"left\"\n          v-slots={{\n            title:\n              slots.tooltip || tooltip\n                ? () => (slots.tooltip && slots.tooltip()) || tooltip\n                : undefined,\n            default: () => (\n              <Badge {...badge}>\n                <div class={`${prefixCls.value}-body`}>\n                  <Content\n                    prefixCls={prefixCls.value}\n                    v-slots={{\n                      icon: slots.icon,\n                      description: () => description,\n                    }}\n                  >\n                  </Content>\n                </div>\n              </Badge>\n            ),\n          }}\n        >\n        </Tooltip>\n      );\n\n      if (process.env.NODE_ENV !== 'production') {\n        devWarning(\n          !(shape === 'circle' && description),\n          'FloatButton',\n          'supported only when `shape` is `square`. Due to narrow space for text, short sentence is recommended.',\n        );\n      }\n\n      return wrapSSR(\n        props.href\n          ? (\n              <a ref={floatButtonRef} {...attrs} {...(restProps as any)} class={classString}>\n                {buttonNode}\n              </a>\n            )\n          : (\n              <button ref={floatButtonRef} {...attrs} {...restProps} class={classString} type=\"button\">\n                {buttonNode}\n              </button>\n            ),\n      );\n    };\n  },\n});\n"],"names":["defineComponent","compatConfig","MODE","name","inheritAttrs","props","initDefaultProps","floatButtonProps","type","shape","setup","attrs","slots","prefixCls","direction","useConfigInject","floatButtonPrefixCls","wrapSSR","hashId","useStyle","groupShape","useInjectFloatButtonGroupContext","floatButtonRef","ref","mergeShape","computed","value","description","tooltip","badge","restProps","classString","classNames","class","buttonNode","_createVNode","Tooltip","title","undefined","default","Badge","Content","icon","process","env","NODE_ENV","devWarning","href"],"mappings":"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"}