BreadcrumbItem.js 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = exports.breadcrumbItemProps = void 0;
  7. var _vue = require("vue");
  8. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  9. var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
  10. var _vueTypes = _interopRequireDefault(require("../_util/vue-types"));
  11. var _propsUtil = require("../_util/props-util");
  12. var _dropdown = _interopRequireDefault(require("../dropdown/dropdown"));
  13. var _DownOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/DownOutlined"));
  14. var _useConfigInject2 = _interopRequireDefault(require("../_util/hooks/useConfigInject"));
  15. var _excluded = ["class", "style"];
  16. var breadcrumbItemProps = function breadcrumbItemProps() {
  17. return {
  18. prefixCls: String,
  19. href: String,
  20. separator: _vueTypes.default.any,
  21. overlay: _vueTypes.default.any,
  22. onClick: Function
  23. };
  24. };
  25. exports.breadcrumbItemProps = breadcrumbItemProps;
  26. var _default2 = (0, _vue.defineComponent)({
  27. compatConfig: {
  28. MODE: 3
  29. },
  30. name: 'ABreadcrumbItem',
  31. inheritAttrs: false,
  32. __ANT_BREADCRUMB_ITEM: true,
  33. props: breadcrumbItemProps(),
  34. // emits: ['click'],
  35. slots: ['separator', 'overlay'],
  36. setup: function setup(props, _ref) {
  37. var slots = _ref.slots,
  38. attrs = _ref.attrs;
  39. var _useConfigInject = (0, _useConfigInject2.default)('breadcrumb', props),
  40. prefixCls = _useConfigInject.prefixCls;
  41. /**
  42. * if overlay is have
  43. * Wrap a DropDown
  44. */
  45. var renderBreadcrumbNode = function renderBreadcrumbNode(breadcrumbItem, prefixCls) {
  46. var overlay = (0, _propsUtil.getPropsSlot)(slots, props, 'overlay');
  47. if (overlay) {
  48. return (0, _vue.createVNode)(_dropdown.default, {
  49. "overlay": overlay,
  50. "placement": "bottom"
  51. }, {
  52. default: function _default() {
  53. return [(0, _vue.createVNode)("span", {
  54. "class": "".concat(prefixCls, "-overlay-link")
  55. }, [breadcrumbItem, (0, _vue.createVNode)(_DownOutlined.default, null, null)])];
  56. }
  57. });
  58. }
  59. return breadcrumbItem;
  60. };
  61. return function () {
  62. var _getPropsSlot;
  63. var separator = (_getPropsSlot = (0, _propsUtil.getPropsSlot)(slots, props, 'separator')) !== null && _getPropsSlot !== void 0 ? _getPropsSlot : '/';
  64. var children = (0, _propsUtil.getPropsSlot)(slots, props);
  65. var cls = attrs.class,
  66. style = attrs.style,
  67. restAttrs = (0, _objectWithoutProperties2.default)(attrs, _excluded);
  68. var link;
  69. if (props.href !== undefined) {
  70. link = (0, _vue.createVNode)("a", (0, _objectSpread2.default)({
  71. "class": "".concat(prefixCls.value, "-link"),
  72. "onClick": props.onClick
  73. }, restAttrs), [children]);
  74. } else {
  75. link = (0, _vue.createVNode)("span", (0, _objectSpread2.default)({
  76. "class": "".concat(prefixCls.value, "-link"),
  77. "onClick": props.onClick
  78. }, restAttrs), [children]);
  79. }
  80. // wrap to dropDown
  81. link = renderBreadcrumbNode(link, prefixCls.value);
  82. if (children) {
  83. return (0, _vue.createVNode)("span", {
  84. "class": cls,
  85. "style": style
  86. }, [link, separator && (0, _vue.createVNode)("span", {
  87. "class": "".concat(prefixCls.value, "-separator")
  88. }, [separator])]);
  89. }
  90. return null;
  91. };
  92. }
  93. });
  94. exports.default = _default2;