iconUtil.js 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. import { Fragment as _Fragment, createVNode as _createVNode } from "vue";
  2. import DownOutlined from "@ant-design/icons-vue/es/icons/DownOutlined";
  3. import LoadingOutlined from "@ant-design/icons-vue/es/icons/LoadingOutlined";
  4. import CheckOutlined from "@ant-design/icons-vue/es/icons/CheckOutlined";
  5. import CloseOutlined from "@ant-design/icons-vue/es/icons/CloseOutlined";
  6. import CloseCircleFilled from "@ant-design/icons-vue/es/icons/CloseCircleFilled";
  7. import SearchOutlined from "@ant-design/icons-vue/es/icons/SearchOutlined";
  8. export default function getIcons(props) {
  9. let slots = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  10. const {
  11. loading,
  12. multiple,
  13. prefixCls,
  14. hasFeedback,
  15. feedbackIcon,
  16. showArrow
  17. } = props;
  18. const suffixIcon = props.suffixIcon || slots.suffixIcon && slots.suffixIcon();
  19. const clearIcon = props.clearIcon || slots.clearIcon && slots.clearIcon();
  20. const menuItemSelectedIcon = props.menuItemSelectedIcon || slots.menuItemSelectedIcon && slots.menuItemSelectedIcon();
  21. const removeIcon = props.removeIcon || slots.removeIcon && slots.removeIcon();
  22. // Clear Icon
  23. const mergedClearIcon = clearIcon !== null && clearIcon !== void 0 ? clearIcon : _createVNode(CloseCircleFilled, null, null);
  24. // Validation Feedback Icon
  25. const getSuffixIconNode = arrowIcon => _createVNode(_Fragment, null, [showArrow !== false && arrowIcon, hasFeedback && feedbackIcon]);
  26. // Arrow item icon
  27. let mergedSuffixIcon = null;
  28. if (suffixIcon !== undefined) {
  29. mergedSuffixIcon = getSuffixIconNode(suffixIcon);
  30. } else if (loading) {
  31. mergedSuffixIcon = getSuffixIconNode(_createVNode(LoadingOutlined, {
  32. "spin": true
  33. }, null));
  34. } else {
  35. const iconCls = `${prefixCls}-suffix`;
  36. mergedSuffixIcon = _ref => {
  37. let {
  38. open,
  39. showSearch
  40. } = _ref;
  41. if (open && showSearch) {
  42. return getSuffixIconNode(_createVNode(SearchOutlined, {
  43. "class": iconCls
  44. }, null));
  45. }
  46. return getSuffixIconNode(_createVNode(DownOutlined, {
  47. "class": iconCls
  48. }, null));
  49. };
  50. }
  51. // Checked item icon
  52. let mergedItemIcon = null;
  53. if (menuItemSelectedIcon !== undefined) {
  54. mergedItemIcon = menuItemSelectedIcon;
  55. } else if (multiple) {
  56. mergedItemIcon = _createVNode(CheckOutlined, null, null);
  57. } else {
  58. mergedItemIcon = null;
  59. }
  60. let mergedRemoveIcon = null;
  61. if (removeIcon !== undefined) {
  62. mergedRemoveIcon = removeIcon;
  63. } else {
  64. mergedRemoveIcon = _createVNode(CloseOutlined, null, null);
  65. }
  66. return {
  67. clearIcon: mergedClearIcon,
  68. suffixIcon: mergedSuffixIcon,
  69. itemIcon: mergedItemIcon,
  70. removeIcon: mergedRemoveIcon
  71. };
  72. }