Link.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import _typeof from "@babel/runtime/helpers/esm/typeof";
  2. import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
  3. import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
  4. var _excluded = ["ellipsis", "rel"];
  5. import { createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
  6. import warning from '../_util/warning';
  7. import Base, { baseProps } from './Base';
  8. import omit from '../_util/omit';
  9. export var linkProps = function linkProps() {
  10. return omit(_objectSpread(_objectSpread({}, baseProps()), {}, {
  11. ellipsis: {
  12. type: Boolean,
  13. default: undefined
  14. }
  15. }), ['component']);
  16. };
  17. var Link = function Link(props, _ref) {
  18. var slots = _ref.slots,
  19. attrs = _ref.attrs;
  20. var _props$attrs = _objectSpread(_objectSpread({}, props), attrs),
  21. ellipsis = _props$attrs.ellipsis,
  22. rel = _props$attrs.rel,
  23. restProps = _objectWithoutProperties(_props$attrs, _excluded);
  24. warning(_typeof(ellipsis) !== 'object', 'Typography.Link', '`ellipsis` only supports boolean value.');
  25. var mergedProps = _objectSpread(_objectSpread({}, restProps), {}, {
  26. rel: rel === undefined && restProps.target === '_blank' ? 'noopener noreferrer' : rel,
  27. ellipsis: !!ellipsis,
  28. component: 'a'
  29. });
  30. // https://github.com/ant-design/ant-design/issues/26622
  31. // @ts-ignore
  32. delete mergedProps.navigate;
  33. return _createVNode(Base, mergedProps, slots);
  34. };
  35. Link.displayName = 'ATypographyLink';
  36. Link.inheritAttrs = false;
  37. Link.props = linkProps();
  38. export default Link;