{"version":3,"file":"link.mjs","sources":["../../src/link/link.tsx"],"sourcesContent":["import { computed, defineComponent } from 'vue';\nimport { useConfig, usePrefixClass, useCommonClassName } from '../hooks/useConfig';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { useDisabled } from '../hooks/useDisabled';\nimport props from './props';\n\nexport default defineComponent({\n  name: 'XLink',\n  props: { ...props },\n  emits: ['click'],\n  setup(props, { emit }) {\n    const renderContent = useContent();\n    const renderTNodeJSX = useTNodeJSX();\n    const COMPONENT_NAME = usePrefixClass('link');\n    const { STATUS, SIZE } = useCommonClassName();\n    const { classPrefix } = useConfig('classPrefix');\n    const isDisabled = useDisabled();\n\n    const linkClass = computed(() => [\n      `${COMPONENT_NAME.value}`,\n      `${COMPONENT_NAME.value}--theme-${props.theme}`,\n      {\n        [SIZE.value[props.size]]: props.size !== 'medium',\n        [STATUS.value.disabled]: isDisabled.value,\n        [`${classPrefix.value}-is-underline`]: props.underline,\n        [`${COMPONENT_NAME.value}--hover-${props.hover}`]: !isDisabled.value,\n      },\n    ]);\n    // 禁用时 无点击事件\n    const handleClick = (event: MouseEvent) => {\n      if (!isDisabled.value) emit('click', event);\n    };\n    return () => {\n      const linkContent = renderContent('default', 'content');\n      const prefix = renderTNodeJSX('prefixIcon');\n      const suffix = renderTNodeJSX('suffixIcon');\n\n      return (\n        <a\n          class={[...linkClass.value]}\n          href={isDisabled.value || !props.href ? undefined : props.href}\n          target={!props.target ? undefined : props.target}\n          download={!props.download ? undefined : props.download}\n          onClick={handleClick}\n        >\n          {prefix ? <span class={`${COMPONENT_NAME.value}__prefix-icon`}>{prefix}</span> : null}\n          {linkContent}\n          {suffix ? <span class={`${COMPONENT_NAME.value}__suffix-icon`}>{suffix}</span> : null}\n        </a>\n      );\n    };\n  },\n});\n"],"names":["name","props","setup","_createVNode"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,YAAA,eAAA,CAAA;AACEA,EAAAA,IAAAA,EAAAA,OAAAA;AACAC,EAAAA,KAAAA,EAAAA,aAAAA,CAAAA,EAAAA,EAAAA,KAAAA,CAAAA;;AAEAC,EAAAA,KAAAA,EAAAA,SAAAA,KAAAA,CAAAA,MAAAA,EAAAA,IAAAA,EAAAA;AAAuB,IAAA,IAAA,IAAA,GAAA,IAAA,CAAA,IAAA,CAAA;AACrB,IAAA,IAAA,aAAA,GAAA,UAAA,EAAA,CAAA;AACA,IAAA,IAAA,cAAA,GAAA,WAAA,EAAA,CAAA;AACM,IAAA,IAAA,cAAA,GAAA,cAAA,CAAA,MAAA,CAAA,CAAA;AACN,IAAA,IAAA,mBAAA,GAAA,kBAAA,EAAA;;;AACA,IAAA,IAAA,UAAA,GAAA,SAAA,CAAA,aAAA,CAAA;;AACA,IAAA,IAAA,UAAA,GAAA,WAAA,EAAA,CAAA;;AAE2B,MAAA,IAAA,KAAA,CAAA;AAAA,MAAA,OAAA,CAAA,EAAA,CAAA,MAAA,CAAA,cAAA,CAAA,KAAA,CAAA,EAAA,EAAA,CAAA,MAAA,CAAA,cAAA,CAAA,KAAA,EAAA,UAAA,CAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,CAAA,GAAA,KAAA,GAAA,EAAA,EAAA,eAAA,CAAA,KAAA,EAAA,IAAA,CAAA,KAAA,CAAA,MAAA,CAAA,IAAA,CAAA,EAAA,MAAA,CAAA,IAAA,KAAA,QAAA,CAAA,EAAA,eAAA,CAAA,KAAA,EAAA,MAAA,CAAA,KAAA,CAAA,QAAA,EAAA,UAAA,CAAA,KAAA,CAAA,EAAA,eAAA,CAAA,KAAA,EAAA,EAAA,CAAA,MAAA,CAAA,WAAA,CAAA,KAAA,EAAA,eAAA,CAAA,EAAA,MAAA,CAAA,SAAA,CAAA,EAAA,eAAA,CAAA,KAAA,EAAA,EAAA,CAAA,MAAA,CAAA,cAAA,CAAA,KAAA,EAAA,UAAA,CAAA,CAAA,MAAA,CAAA,MAAA,CAAA,KAAA,CAAA,EAAA,CAAA,UAAA,CAAA,KAAA,CAAA,EAAA,KAAA,EAAA,CAAA;;AAWrB,IAAA,IAAA,WAAA,GAAA,SAAA,WAAA,CAAA,KAAA,EAAA;;;AAGN,IAAA,OAAA,YAAA;AACQ,MAAA,IAAA,WAAA,GAAA,aAAA,CAAA,SAAA,EAAA,SAAA,CAAA,CAAA;AACA,MAAA,IAAA,MAAA,GAAA,cAAA,CAAA,YAAA,CAAA,CAAA;AACA,MAAA,IAAA,MAAA,GAAA,cAAA,CAAA,YAAA,CAAA,CAAA;AAEN,MAAA,OAAAC,WAAA,CAAA,GAAA,EAAA;AAAA,QAAA,OAAA,EAAA,kBAAA,CAAA,SAAA,CAAA,KAAA,CAAA;AAE8B,QAAA,MAAA,EAAA,UAAA,CAAA,KAAA,IAAA,CAAA,MAAA,CAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,IAAA;;;;;AAMzB,QAAA,OAAA,EAAA,EAAA,CAAA,MAAA,CAAA,cAAA,CAAA,KAAA,EAAA,eAAA,CAAA;;AAEA,QAAA,OAAA,EAAA,EAAA,CAAA,MAAA,CAAA,cAAA,CAAA,KAAA,EAAA,eAAA,CAAA;;;AAIT,GAAA;AACF,CAAA,CAAA;;;;"}