import type { AnchorHTMLAttributes, ExtractPropTypes, FunctionalComponent } from 'vue';
import warning from '../_util/warning';
import Base, { baseProps } from './Base';
import omit from '../_util/omit';
export const linkProps = () =>
omit({ ...baseProps(), ellipsis: { type: Boolean, default: undefined } }, ['component']);
export type LinkProps = Partial>> &
AnchorHTMLAttributes;
const Link: FunctionalComponent = (props, { slots, attrs }) => {
const { ellipsis, rel, ...restProps } = { ...props, ...attrs };
warning(
typeof ellipsis !== 'object',
'Typography.Link',
'`ellipsis` only supports boolean value.',
);
const mergedProps = {
...restProps,
rel: rel === undefined && restProps.target === '_blank' ? 'noopener noreferrer' : rel,
ellipsis: !!ellipsis,
component: 'a',
};
// https://github.com/ant-design/ant-design/issues/26622
// @ts-ignore
delete mergedProps.navigate;
return ;
};
Link.displayName = 'ATypographyLink';
Link.inheritAttrs = false;
Link.props = linkProps();
export default Link;