UNPKG

xdesign-vue-next

Version:

XDesign Component for vue-next

1 lines 3.94 kB
{"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;;;;"}