PurePanel.js 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.PureContent = PureContent;
  7. exports.default = exports.TypeIcon = void 0;
  8. exports.getCloseIcon = getCloseIcon;
  9. var _vue = require("vue");
  10. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  11. var _style = _interopRequireDefault(require("./style"));
  12. var _useConfigInject = _interopRequireDefault(require("../config-provider/hooks/useConfigInject"));
  13. var _Notice = _interopRequireDefault(require("../vc-notification/Notice"));
  14. var _classNames = _interopRequireDefault(require("../_util/classNames"));
  15. var _LoadingOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/LoadingOutlined"));
  16. var _ExclamationCircleFilled = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/ExclamationCircleFilled"));
  17. var _CloseCircleFilled = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/CloseCircleFilled"));
  18. var _CheckCircleFilled = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/CheckCircleFilled"));
  19. var _InfoCircleFilled = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/InfoCircleFilled"));
  20. var _CloseOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/CloseOutlined"));
  21. var _util = require("../_util/util");
  22. function getCloseIcon(prefixCls, closeIcon) {
  23. return closeIcon || (0, _vue.createVNode)("span", {
  24. "class": `${prefixCls}-close-x`
  25. }, [(0, _vue.createVNode)(_CloseOutlined.default, {
  26. "class": `${prefixCls}-close-icon`
  27. }, null)]);
  28. }
  29. const TypeIcon = exports.TypeIcon = {
  30. info: (0, _vue.createVNode)(_InfoCircleFilled.default, null, null),
  31. success: (0, _vue.createVNode)(_CheckCircleFilled.default, null, null),
  32. error: (0, _vue.createVNode)(_CloseCircleFilled.default, null, null),
  33. warning: (0, _vue.createVNode)(_ExclamationCircleFilled.default, null, null),
  34. loading: (0, _vue.createVNode)(_LoadingOutlined.default, null, null)
  35. };
  36. const typeToIcon = {
  37. success: _CheckCircleFilled.default,
  38. info: _InfoCircleFilled.default,
  39. error: _CloseCircleFilled.default,
  40. warning: _ExclamationCircleFilled.default
  41. };
  42. function PureContent(_ref) {
  43. let {
  44. prefixCls,
  45. icon,
  46. type,
  47. message,
  48. description,
  49. btn
  50. } = _ref;
  51. let iconNode = null;
  52. if (icon) {
  53. iconNode = (0, _vue.createVNode)("span", {
  54. "class": `${prefixCls}-icon`
  55. }, [(0, _util.renderHelper)(icon)]);
  56. } else if (type) {
  57. const Icon = typeToIcon[type];
  58. iconNode = (0, _vue.createVNode)(Icon, {
  59. "class": `${prefixCls}-icon ${prefixCls}-icon-${type}`
  60. }, null);
  61. }
  62. return (0, _vue.createVNode)("div", {
  63. "class": (0, _classNames.default)({
  64. [`${prefixCls}-with-icon`]: iconNode
  65. }),
  66. "role": "alert"
  67. }, [iconNode, (0, _vue.createVNode)("div", {
  68. "class": `${prefixCls}-message`
  69. }, [message]), (0, _vue.createVNode)("div", {
  70. "class": `${prefixCls}-description`
  71. }, [description]), btn && (0, _vue.createVNode)("div", {
  72. "class": `${prefixCls}-btn`
  73. }, [btn])]);
  74. }
  75. /** @private Internal Component. Do not use in your production. */
  76. var _default = exports.default = (0, _vue.defineComponent)({
  77. name: 'PurePanel',
  78. inheritAttrs: false,
  79. props: ['prefixCls', 'icon', 'type', 'message', 'description', 'btn', 'closeIcon'],
  80. setup(props) {
  81. const {
  82. getPrefixCls
  83. } = (0, _useConfigInject.default)('notification', props);
  84. const prefixCls = (0, _vue.computed)(() => props.prefixCls || getPrefixCls('notification'));
  85. const noticePrefixCls = (0, _vue.computed)(() => `${prefixCls.value}-notice`);
  86. const [, hashId] = (0, _style.default)(prefixCls);
  87. return () => {
  88. return (0, _vue.createVNode)(_Notice.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, props), {}, {
  89. "prefixCls": prefixCls.value,
  90. "class": (0, _classNames.default)(hashId.value, `${noticePrefixCls.value}-pure-panel`),
  91. "noticeKey": "pure",
  92. "duration": null,
  93. "closable": props.closable,
  94. "closeIcon": getCloseIcon(prefixCls.value, props.closeIcon)
  95. }), {
  96. default: () => [(0, _vue.createVNode)(PureContent, {
  97. "prefixCls": noticePrefixCls.value,
  98. "icon": props.icon,
  99. "type": props.type,
  100. "message": props.message,
  101. "description": props.description,
  102. "btn": props.btn
  103. }, null)]
  104. });
  105. };
  106. }
  107. });