confirm.js 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. var _typeof = require("@babel/runtime/helpers/typeof");
  4. Object.defineProperty(exports, "__esModule", {
  5. value: true
  6. });
  7. exports.default = void 0;
  8. exports.withConfirm = withConfirm;
  9. exports.withError = withError;
  10. exports.withInfo = withInfo;
  11. exports.withSuccess = withSuccess;
  12. exports.withWarn = withWarn;
  13. var _vue = require("vue");
  14. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  15. var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
  16. var _ConfirmDialog = _interopRequireDefault(require("./ConfirmDialog"));
  17. var _Modal = require("./Modal");
  18. var _configProvider = _interopRequireWildcard(require("../config-provider"));
  19. var _omit = _interopRequireDefault(require("../_util/omit"));
  20. var _InfoCircleOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/InfoCircleOutlined"));
  21. var _CheckCircleOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/CheckCircleOutlined"));
  22. var _CloseCircleOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/CloseCircleOutlined"));
  23. var _ExclamationCircleOutlined = _interopRequireDefault(require("@ant-design/icons-vue/lib/icons/ExclamationCircleOutlined"));
  24. function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
  25. function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
  26. var confirm = function confirm(config) {
  27. var container = document.createDocumentFragment();
  28. var currentConfig = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, (0, _omit.default)(config, ['parentContext', 'appContext'])), {}, {
  29. close: close,
  30. visible: true
  31. });
  32. var confirmDialogInstance = null;
  33. function destroy() {
  34. if (confirmDialogInstance) {
  35. // destroy
  36. (0, _vue.render)(null, container);
  37. confirmDialogInstance.component.update();
  38. confirmDialogInstance = null;
  39. }
  40. for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
  41. args[_key] = arguments[_key];
  42. }
  43. var triggerCancel = args.some(function (param) {
  44. return param && param.triggerCancel;
  45. });
  46. if (config.onCancel && triggerCancel) {
  47. config.onCancel.apply(config, args);
  48. }
  49. for (var i = 0; i < _Modal.destroyFns.length; i++) {
  50. var fn = _Modal.destroyFns[i];
  51. if (fn === close) {
  52. _Modal.destroyFns.splice(i, 1);
  53. break;
  54. }
  55. }
  56. }
  57. function close() {
  58. var _this = this;
  59. for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
  60. args[_key2] = arguments[_key2];
  61. }
  62. currentConfig = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, currentConfig), {}, {
  63. visible: false,
  64. afterClose: function afterClose() {
  65. if (typeof config.afterClose === 'function') {
  66. config.afterClose();
  67. }
  68. destroy.apply(_this, args);
  69. }
  70. });
  71. update(currentConfig);
  72. }
  73. function update(configUpdate) {
  74. if (typeof configUpdate === 'function') {
  75. currentConfig = configUpdate(currentConfig);
  76. } else {
  77. currentConfig = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, currentConfig), configUpdate);
  78. }
  79. if (confirmDialogInstance) {
  80. (0, _extends2.default)(confirmDialogInstance.component.props, currentConfig);
  81. confirmDialogInstance.component.update();
  82. }
  83. }
  84. var Wrapper = function Wrapper(p) {
  85. var global = _configProvider.globalConfigForApi;
  86. var rootPrefixCls = global.prefixCls;
  87. var prefixCls = p.prefixCls || "".concat(rootPrefixCls, "-modal");
  88. return (0, _vue.createVNode)(_configProvider.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, global), {}, {
  89. "notUpdateGlobalConfig": true,
  90. "prefixCls": rootPrefixCls
  91. }), {
  92. default: function _default() {
  93. return [(0, _vue.createVNode)(_ConfirmDialog.default, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, p), {}, {
  94. "rootPrefixCls": rootPrefixCls,
  95. "prefixCls": prefixCls
  96. }), null)];
  97. }
  98. });
  99. };
  100. function render(props) {
  101. var vm = (0, _vue.createVNode)(Wrapper, (0, _objectSpread2.default)({}, props));
  102. vm.appContext = config.parentContext || config.appContext || vm.appContext;
  103. (0, _vue.render)(vm, container);
  104. return vm;
  105. }
  106. confirmDialogInstance = render(currentConfig);
  107. _Modal.destroyFns.push(close);
  108. return {
  109. destroy: close,
  110. update: update
  111. };
  112. };
  113. var _default2 = confirm;
  114. exports.default = _default2;
  115. function withWarn(props) {
  116. return (0, _objectSpread2.default)((0, _objectSpread2.default)({
  117. icon: function icon() {
  118. return (0, _vue.createVNode)(_ExclamationCircleOutlined.default, null, null);
  119. },
  120. okCancel: false
  121. }, props), {}, {
  122. type: 'warning'
  123. });
  124. }
  125. function withInfo(props) {
  126. return (0, _objectSpread2.default)((0, _objectSpread2.default)({
  127. icon: function icon() {
  128. return (0, _vue.createVNode)(_InfoCircleOutlined.default, null, null);
  129. },
  130. okCancel: false
  131. }, props), {}, {
  132. type: 'info'
  133. });
  134. }
  135. function withSuccess(props) {
  136. return (0, _objectSpread2.default)((0, _objectSpread2.default)({
  137. icon: function icon() {
  138. return (0, _vue.createVNode)(_CheckCircleOutlined.default, null, null);
  139. },
  140. okCancel: false
  141. }, props), {}, {
  142. type: 'success'
  143. });
  144. }
  145. function withError(props) {
  146. return (0, _objectSpread2.default)((0, _objectSpread2.default)({
  147. icon: function icon() {
  148. return (0, _vue.createVNode)(_CloseCircleOutlined.default, null, null);
  149. },
  150. okCancel: false
  151. }, props), {}, {
  152. type: 'error'
  153. });
  154. }
  155. function withConfirm(props) {
  156. return (0, _objectSpread2.default)((0, _objectSpread2.default)({
  157. icon: function icon() {
  158. return (0, _vue.createVNode)(_ExclamationCircleOutlined.default, null, null);
  159. },
  160. okCancel: true
  161. }, props), {}, {
  162. type: 'confirm'
  163. });
  164. }