{"version":3,"file":"transButton.cjs","sources":["../../../../../../packages/vue-components/transition/src/transButton.tsx"],"sourcesContent":["import type { CSSProperties } from 'vue';\n\n/**\n * Wrap of sub component which need use as Button capacity (like Icon component).\n * This helps accessibility reader to tread as a interactive button to operation.\n */\nimport { KeyCode } from '@antdv/utils';\n\nimport { defineComponent, onMounted, shallowRef } from 'vue';\n\nconst inlineStyle = {\n  border: 0,\n  background: 'transparent',\n  padding: 0,\n  lineHeight: 'inherit',\n  display: 'inline-block',\n};\n\nexport const TransButton = defineComponent({\n  compatConfig: { MODE: 3 },\n  name: 'TransButton',\n  inheritAttrs: false,\n  props: {\n    noStyle: { type: Boolean, default: undefined },\n    onClick: Function,\n    disabled: { type: Boolean, default: undefined },\n    autofocus: { type: Boolean, default: undefined },\n  },\n  setup(props, { slots, emit, attrs, expose }) {\n    const domRef = shallowRef();\n    const onKeyDown = (event: KeyboardEvent) => {\n      const { keyCode } = event;\n      if (keyCode === KeyCode.ENTER)\n        event.preventDefault();\n    };\n\n    const onKeyUp = (event: KeyboardEvent) => {\n      const { keyCode } = event;\n      if (keyCode === KeyCode.ENTER)\n        emit('click', event);\n    };\n    const onClick = (e: Event) => {\n      emit('click', e);\n    };\n    const focus = () => {\n      if (domRef.value)\n        domRef.value.focus();\n    };\n\n    const blur = () => {\n      if (domRef.value)\n        domRef.value.blur();\n    };\n    onMounted(() => {\n      if (props.autofocus)\n        focus();\n    });\n\n    expose({\n      focus,\n      blur,\n    });\n    return () => {\n      const { noStyle, disabled, ...restProps } = props;\n\n      let mergedStyle: CSSProperties = {};\n\n      if (!noStyle) {\n        mergedStyle = {\n          ...inlineStyle,\n        };\n      }\n\n      if (disabled)\n        mergedStyle.pointerEvents = 'none';\n\n      return (\n        <div\n          role=\"button\"\n          tabindex={0}\n          ref={domRef}\n          {...restProps}\n          {...attrs}\n          onClick={onClick}\n          onKeydown={onKeyDown}\n          onKeyup={onKeyUp}\n          style={{\n            ...mergedStyle,\n            ...((attrs.style as object) || {}),\n          }}\n        >\n          {slots.default?.()}\n        </div>\n      );\n    };\n  },\n});\n"],"names":["inlineStyle","border","background","padding","lineHeight","display","TransButton","defineComponent","compatConfig","MODE","name","inheritAttrs","props","noStyle","type","Boolean","default","undefined","onClick","Function","disabled","autofocus","setup","slots","emit","attrs","expose","domRef","shallowRef","onKeyDown","event","keyCode","KeyCode","ENTER","preventDefault","onKeyUp","e","focus","value","blur","onMounted","restProps","mergedStyle","pointerEvents","_createVNode","style"],"mappings":"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"}