tdesign-mobile-vue
Version:
tdesign-mobile-vue
1 lines • 5.16 kB
Source Map (JSON)
{"version":3,"file":"link.mjs","sources":["../../src/link/link.tsx"],"sourcesContent":["import { defineComponent, computed } from 'vue';\nimport config from '../config';\nimport props from './props';\nimport { useContent, useTNodeJSX } from '../hooks/tnode';\nimport { usePrefixClass } from '../hooks/useClass';\nimport { useFormDisabled } from '../form/hooks';\n\nconst { prefix } = config;\nexport default defineComponent({\n name: `${prefix}-link`,\n props,\n setup(props) {\n const linkClass = usePrefixClass('link');\n const renderTNodeJSX = useTNodeJSX();\n const renderTNodeContent = useContent();\n const isDisabled = useFormDisabled();\n\n const linkClasses = computed(() => [\n linkClass.value,\n `${linkClass.value}--${props.theme || 'default'}`,\n `${linkClass.value}--${props.size || 'medium'}`,\n {\n [`${linkClass.value}--disabled`]: props.disabled,\n [`${linkClass.value}--underline`]: props.underline,\n [`${linkClass.value}--hover`]: props.hover && !props.disabled,\n },\n ]);\n\n const handleClick = (e: MouseEvent) => {\n if (props.disabled) return;\n props.onClick?.(e);\n };\n\n const renderContent = () => {\n const content = renderTNodeContent('default', 'content');\n return content ? <span class={[`${linkClass.value}__content`]}>{content}</span> : null;\n };\n\n const renderPrefixIcon = () => {\n const prefixIcon = renderTNodeJSX('prefixIcon');\n return prefixIcon ? <span class={[`${linkClass.value}__prefix-icon`]}>{prefixIcon}</span> : null;\n };\n\n const renderSuffixIcon = () => {\n const suffixIcon = renderTNodeJSX('suffixIcon');\n return suffixIcon ? <span class={[`${linkClass.value}__suffix-icon`]}>{suffixIcon}</span> : null;\n };\n\n return () => {\n return (\n <a\n class={linkClasses.value}\n aria-disabled={isDisabled.value}\n target={props.target}\n href={isDisabled.value || !props.href ? undefined : props.href}\n onClick={handleClick}\n >\n {renderPrefixIcon()}\n {renderContent()}\n {renderSuffixIcon()}\n </a>\n );\n };\n },\n});\n"],"names":["prefix","config","defineComponent","name","props","setup","linkClass","usePrefixClass","renderTNodeJSX","useTNodeJSX","renderTNodeContent","useContent","isDisabled","useFormDisabled","linkClasses","computed","value","concat","theme","size","_defineProperty","disabled","underline","hover","handleClick","e","_props2$onClick","onClick","renderContent","content","_createVNode","renderPrefixIcon","prefixIcon","renderSuffixIcon","suffixIcon","target","href"],"mappings":"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"}