ListItem.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
  2. import { createVNode as _createVNode } from "vue";
  3. import PropTypes from '../_util/vue-types';
  4. import classNames from '../_util/classNames';
  5. import DeleteOutlined from "@ant-design/icons-vue/es/icons/DeleteOutlined";
  6. import defaultLocale from '../locale/default';
  7. import Checkbox from '../checkbox';
  8. import TransButton from '../_util/transButton';
  9. import LocaleReceiver from '../locale-provider/LocaleReceiver';
  10. import { defineComponent } from 'vue';
  11. function noop() {}
  12. export var transferListItemProps = {
  13. renderedText: PropTypes.any,
  14. renderedEl: PropTypes.any,
  15. item: PropTypes.any,
  16. checked: {
  17. type: Boolean,
  18. default: undefined
  19. },
  20. prefixCls: String,
  21. disabled: {
  22. type: Boolean,
  23. default: undefined
  24. },
  25. showRemove: {
  26. type: Boolean,
  27. default: undefined
  28. },
  29. onClick: Function,
  30. onRemove: Function
  31. };
  32. export default defineComponent({
  33. compatConfig: {
  34. MODE: 3
  35. },
  36. name: 'ListItem',
  37. inheritAttrs: false,
  38. props: transferListItemProps,
  39. emits: ['click', 'remove'],
  40. setup: function setup(props, _ref) {
  41. var emit = _ref.emit;
  42. return function () {
  43. var _classNames;
  44. var renderedText = props.renderedText,
  45. renderedEl = props.renderedEl,
  46. item = props.item,
  47. checked = props.checked,
  48. disabled = props.disabled,
  49. prefixCls = props.prefixCls,
  50. showRemove = props.showRemove;
  51. var className = classNames((_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "-content-item"), true), _defineProperty(_classNames, "".concat(prefixCls, "-content-item-disabled"), disabled || item.disabled), _classNames));
  52. var title;
  53. if (typeof renderedText === 'string' || typeof renderedText === 'number') {
  54. title = String(renderedText);
  55. }
  56. return _createVNode(LocaleReceiver, {
  57. "componentName": "Transfer",
  58. "defaultLocale": defaultLocale.Transfer
  59. }, {
  60. default: function _default(transferLocale) {
  61. var labelNode = _createVNode("span", {
  62. "class": "".concat(prefixCls, "-content-item-text")
  63. }, [renderedEl]);
  64. if (showRemove) {
  65. return _createVNode("li", {
  66. "class": className,
  67. "title": title
  68. }, [labelNode, _createVNode(TransButton, {
  69. "disabled": disabled || item.disabled,
  70. "class": "".concat(prefixCls, "-content-item-remove"),
  71. "aria-label": transferLocale.remove,
  72. "onClick": function onClick() {
  73. emit('remove', item);
  74. }
  75. }, {
  76. default: function _default() {
  77. return [_createVNode(DeleteOutlined, null, null)];
  78. }
  79. })]);
  80. }
  81. return _createVNode("li", {
  82. "class": className,
  83. "title": title,
  84. "onClick": disabled || item.disabled ? noop : function () {
  85. emit('click', item);
  86. }
  87. }, [_createVNode(Checkbox, {
  88. "class": "".concat(prefixCls, "-checkbox"),
  89. "checked": checked,
  90. "disabled": disabled || item.disabled
  91. }, null), labelNode]);
  92. }
  93. });
  94. };
  95. }
  96. });