iconUtil.js 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = renderSwitcherIcon;
  7. var _vue = require("vue");
  8. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  9. var _LoadingOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/LoadingOutlined"));
  10. var _FileOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/FileOutlined"));
  11. var _MinusSquareOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/MinusSquareOutlined"));
  12. var _PlusSquareOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/PlusSquareOutlined"));
  13. var _CaretDownFilled = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/CaretDownFilled"));
  14. var _propsUtil = require("../../_util/props-util");
  15. function renderSwitcherIcon(prefixCls, switcherIcon, props, leafIcon, showLine) {
  16. const {
  17. isLeaf,
  18. expanded,
  19. loading
  20. } = props;
  21. let icon = switcherIcon;
  22. if (loading) {
  23. return (0, _vue.createVNode)(_LoadingOutlined.default, {
  24. "class": `${prefixCls}-switcher-loading-icon`
  25. }, null);
  26. }
  27. let showLeafIcon;
  28. if (showLine && typeof showLine === 'object') {
  29. showLeafIcon = showLine.showLeafIcon;
  30. }
  31. let defaultIcon = null;
  32. const switcherCls = `${prefixCls}-switcher-icon`;
  33. if (isLeaf) {
  34. if (!showLine) {
  35. return null;
  36. }
  37. if (showLeafIcon && leafIcon) {
  38. return leafIcon(props);
  39. }
  40. if (typeof showLine === 'object' && !showLeafIcon) {
  41. defaultIcon = (0, _vue.createVNode)("span", {
  42. "class": `${prefixCls}-switcher-leaf-line`
  43. }, null);
  44. } else {
  45. defaultIcon = (0, _vue.createVNode)(_FileOutlined.default, {
  46. "class": `${prefixCls}-switcher-line-icon`
  47. }, null);
  48. }
  49. return defaultIcon;
  50. } else {
  51. defaultIcon = (0, _vue.createVNode)(_CaretDownFilled.default, {
  52. "class": switcherCls
  53. }, null);
  54. if (showLine) {
  55. defaultIcon = expanded ? (0, _vue.createVNode)(_MinusSquareOutlined.default, {
  56. "class": `${prefixCls}-switcher-line-icon`
  57. }, null) : (0, _vue.createVNode)(_PlusSquareOutlined.default, {
  58. "class": `${prefixCls}-switcher-line-icon`
  59. }, null);
  60. }
  61. }
  62. if (typeof switcherIcon === 'function') {
  63. icon = switcherIcon((0, _extends2.default)((0, _extends2.default)({}, props), {
  64. defaultIcon,
  65. switcherCls
  66. }));
  67. } else if ((0, _propsUtil.isValidElement)(icon)) {
  68. icon = (0, _vue.cloneVNode)(icon, {
  69. class: switcherCls
  70. });
  71. }
  72. return icon || defaultIcon;
  73. }