ListItem.js 3.3 KB

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