toast.js 9.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. "use strict";
  2. var __assign = undefined && undefined.__assign || function () {
  3. __assign = Object.assign || function (t) {
  4. for (var s, i = 1, n = arguments.length; i < n; i++) {
  5. s = arguments[i];
  6. for (var p in s) {
  7. if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
  8. }
  9. }
  10. return t;
  11. };
  12. return __assign.apply(this, arguments);
  13. };
  14. Object.defineProperty(exports, "__esModule", { value: true });
  15. var utils_1 = require('./../common/utils.js');
  16. var defaultOptions = {
  17. type: 'text',
  18. mask: false,
  19. message: '',
  20. show: true,
  21. zIndex: 1000,
  22. duration: 3000,
  23. position: 'middle',
  24. forbidClick: false,
  25. loadingType: 'circular',
  26. selector: '#van-toast'
  27. };
  28. var queue = [];
  29. var currentOptions = __assign({}, defaultOptions);
  30. function parseOptions(message) {
  31. return utils_1.isObj(message) ? message : { message: message };
  32. }
  33. function getContext() {
  34. var pages = getCurrentPages();
  35. return pages[pages.length - 1];
  36. }
  37. function Toast(toastOptions) {
  38. var options = __assign({}, currentOptions, parseOptions(toastOptions));
  39. var context = options.context || getContext();
  40. var toast = context.selectComponent(options.selector);
  41. if (!toast) {
  42. console.warn('未找到 van-toast 节点,请确认 selector 及 context 是否正确');
  43. return;
  44. }
  45. delete options.context;
  46. delete options.selector;
  47. toast.clear = function () {
  48. toast.set({ show: false });
  49. if (options.onClose) {
  50. options.onClose();
  51. }
  52. };
  53. queue.push(toast);
  54. toast.set(options);
  55. clearTimeout(toast.timer);
  56. if (options.duration > 0) {
  57. toast.timer = setTimeout(function () {
  58. toast.clear();
  59. queue = queue.filter(function (item) {
  60. return item !== toast;
  61. });
  62. }, options.duration);
  63. }
  64. return toast;
  65. }
  66. var createMethod = function createMethod(type) {
  67. return function (options) {
  68. return Toast(__assign({ type: type }, parseOptions(options)));
  69. };
  70. };
  71. Toast.loading = createMethod('loading');
  72. Toast.success = createMethod('success');
  73. Toast.fail = createMethod('fail');
  74. Toast.clear = function () {
  75. queue.forEach(function (toast) {
  76. toast.clear();
  77. });
  78. queue = [];
  79. };
  80. Toast.setDefaultOptions = function (options) {
  81. Object.assign(currentOptions, options);
  82. };
  83. Toast.resetDefaultOptions = function () {
  84. currentOptions = __assign({}, defaultOptions);
  85. };
  86. exports.default = Toast;
  87. //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInRvYXN0LmpzIl0sIm5hbWVzIjpbIl9fYXNzaWduIiwiT2JqZWN0IiwiaSIsIm4iLCJhcmd1bWVudHMiLCJzIiwidCIsInZhbHVlIiwidXRpbHNfMSIsInJlcXVpcmUiLCJkZWZhdWx0T3B0aW9ucyIsInR5cGUiLCJtYXNrIiwibWVzc2FnZSIsInNob3ciLCJ6SW5kZXgiLCJkdXJhdGlvbiIsInBvc2l0aW9uIiwiZm9yYmlkQ2xpY2siLCJsb2FkaW5nVHlwZSIsInNlbGVjdG9yIiwicXVldWUiLCJjdXJyZW50T3B0aW9ucyIsInBhZ2VzIiwib3B0aW9ucyIsInBhcnNlT3B0aW9ucyIsImNvbnRleHQiLCJ0b2FzdCIsImNvbnNvbGUiLCJjbGVhclRpbWVvdXQiLCJpdGVtIiwiY3JlYXRlTWV0aG9kIiwiVG9hc3QiLCJleHBvcnRzIl0sIm1hcHBpbmdzIjoiOztBQUNBLElBQUlBLFdBQVksYUFBUSxVQUFULFFBQUMsSUFBMEIsWUFBWTtBQUNsREEsZUFBV0MsT0FBQUEsTUFBQUEsSUFBaUIsVUFBQSxDQUFBLEVBQVk7QUFDcEMsYUFBSyxJQUFBLENBQUEsRUFBT0MsSUFBUCxDQUFBLEVBQWNDLElBQUlDLFVBQXZCLE1BQUEsRUFBeUNGLElBQXpDLENBQUEsRUFBQSxHQUFBLEVBQXFEO0FBQ2pERyxnQkFBSUQsVUFBSkMsQ0FBSUQsQ0FBSkM7QUFDQSxpQkFBSyxJQUFMLENBQUEsSUFBQSxDQUFBLEVBQUE7QUFBaUIsb0JBQUlKLE9BQUFBLFNBQUFBLENBQUFBLGNBQUFBLENBQUFBLElBQUFBLENBQUFBLENBQUFBLEVBQUosQ0FBSUEsQ0FBSixFQUNiSyxFQUFBQSxDQUFBQSxJQUFPRCxFQUFQQyxDQUFPRCxDQUFQQztBQURKO0FBRUg7QUFDRCxlQUFBLENBQUE7QUFOSk4sS0FBQUE7QUFRQSxXQUFPQSxTQUFBQSxLQUFBQSxDQUFBQSxJQUFBQSxFQUFQLFNBQU9BLENBQVA7QUFUSixDQUFBO0FBV0FDLE9BQUFBLGNBQUFBLENBQUFBLE9BQUFBLEVBQUFBLFlBQUFBLEVBQTZDLEVBQUVNLE9BQS9DTixJQUE2QyxFQUE3Q0E7QUFDQSxJQUFJTyxVQUFVQyxRQUFkLHNCQUFjQSxDQUFkO0FBQ0EsSUFBSUMsaUJBQWlCO0FBQ2pCQyxVQURpQixNQUFBO0FBRWpCQyxVQUZpQixLQUFBO0FBR2pCQyxhQUhpQixFQUFBO0FBSWpCQyxVQUppQixJQUFBO0FBS2pCQyxZQUxpQixJQUFBO0FBTWpCQyxjQU5pQixJQUFBO0FBT2pCQyxjQVBpQixRQUFBO0FBUWpCQyxpQkFSaUIsS0FBQTtBQVNqQkMsaUJBVGlCLFVBQUE7QUFVakJDLGNBQVU7QUFWTyxDQUFyQjtBQVlBLElBQUlDLFFBQUosRUFBQTtBQUNBLElBQUlDLGlCQUFpQnRCLFNBQUFBLEVBQUFBLEVBQXJCLGNBQXFCQSxDQUFyQjtBQUNBLFNBQUEsWUFBQSxDQUFBLE9BQUEsRUFBK0I7QUFDM0IsV0FBT1EsUUFBQUEsS0FBQUEsQ0FBQUEsT0FBQUEsSUFBQUEsT0FBQUEsR0FBbUMsRUFBRUssU0FBNUMsT0FBMEMsRUFBMUM7QUFDSDtBQUNELFNBQUEsVUFBQSxHQUFzQjtBQUNsQixRQUFJVSxRQUFKLGlCQUFBO0FBQ0EsV0FBT0EsTUFBTUEsTUFBQUEsTUFBQUEsR0FBYixDQUFPQSxDQUFQO0FBQ0g7QUFDRCxTQUFBLEtBQUEsQ0FBQSxZQUFBLEVBQTZCO0FBQ3pCLFFBQUlDLFVBQVV4QixTQUFBQSxFQUFBQSxFQUFBQSxjQUFBQSxFQUE2QnlCLGFBQTNDLFlBQTJDQSxDQUE3QnpCLENBQWQ7QUFDQSxRQUFJMEIsVUFBVUYsUUFBQUEsT0FBQUEsSUFBZCxZQUFBO0FBQ0EsUUFBSUcsUUFBUUQsUUFBQUEsZUFBQUEsQ0FBd0JGLFFBQXBDLFFBQVlFLENBQVo7QUFDQSxRQUFJLENBQUosS0FBQSxFQUFZO0FBQ1JFLGdCQUFBQSxJQUFBQSxDQUFBQSw4Q0FBQUE7QUFDQTtBQUNIO0FBQ0QsV0FBT0osUUFBUCxPQUFBO0FBQ0EsV0FBT0EsUUFBUCxRQUFBO0FBQ0FHLFVBQUFBLEtBQUFBLEdBQWMsWUFBWTtBQUN0QkEsY0FBQUEsR0FBQUEsQ0FBVSxFQUFFYixNQUFaYSxLQUFVLEVBQVZBO0FBQ0EsWUFBSUgsUUFBSixPQUFBLEVBQXFCO0FBQ2pCQSxvQkFBQUEsT0FBQUE7QUFDSDtBQUpMRyxLQUFBQTtBQU1BTixVQUFBQSxJQUFBQSxDQUFBQSxLQUFBQTtBQUNBTSxVQUFBQSxHQUFBQSxDQUFBQSxPQUFBQTtBQUNBRSxpQkFBYUYsTUFBYkUsS0FBQUE7QUFDQSxRQUFJTCxRQUFBQSxRQUFBQSxHQUFKLENBQUEsRUFBMEI7QUFDdEJHLGNBQUFBLEtBQUFBLEdBQWMsV0FBVyxZQUFZO0FBQ2pDQSxrQkFBQUEsS0FBQUE7QUFDQU4sb0JBQVEsTUFBQSxNQUFBLENBQWEsVUFBQSxJQUFBLEVBQWdCO0FBQUUsdUJBQU9TLFNBQVAsS0FBQTtBQUF2Q1QsYUFBUSxDQUFSQTtBQUZVLFNBQUEsRUFHWEcsUUFISEcsUUFBYyxDQUFkQTtBQUlIO0FBQ0QsV0FBQSxLQUFBO0FBQ0g7QUFDRCxJQUFJSSxlQUFlLFNBQWZBLFlBQWUsQ0FBQSxJQUFBLEVBQWdCO0FBQUUsV0FBTyxVQUFBLE9BQUEsRUFBbUI7QUFDM0QsZUFBT0MsTUFBTWhDLFNBQVMsRUFBRVcsTUFBWFgsSUFBUyxFQUFUQSxFQUF5QnlCLGFBQXRDLE9BQXNDQSxDQUF6QnpCLENBQU5nQyxDQUFQO0FBRGlDLEtBQUE7QUFBckMsQ0FBQTtBQUdBQSxNQUFBQSxPQUFBQSxHQUFnQkQsYUFBaEJDLFNBQWdCRCxDQUFoQkM7QUFDQUEsTUFBQUEsT0FBQUEsR0FBZ0JELGFBQWhCQyxTQUFnQkQsQ0FBaEJDO0FBQ0FBLE1BQUFBLElBQUFBLEdBQWFELGFBQWJDLE1BQWFELENBQWJDO0FBQ0FBLE1BQUFBLEtBQUFBLEdBQWMsWUFBWTtBQUN0QlgsVUFBQUEsT0FBQUEsQ0FBYyxVQUFBLEtBQUEsRUFBaUI7QUFDM0JNLGNBQUFBLEtBQUFBO0FBREpOLEtBQUFBO0FBR0FBLFlBQUFBLEVBQUFBO0FBSkpXLENBQUFBO0FBTUFBLE1BQUFBLGlCQUFBQSxHQUEwQixVQUFBLE9BQUEsRUFBbUI7QUFDekMvQixXQUFBQSxNQUFBQSxDQUFBQSxjQUFBQSxFQUFBQSxPQUFBQTtBQURKK0IsQ0FBQUE7QUFHQUEsTUFBQUEsbUJBQUFBLEdBQTRCLFlBQVk7QUFDcENWLHFCQUFpQnRCLFNBQUFBLEVBQUFBLEVBQWpCc0IsY0FBaUJ0QixDQUFqQnNCO0FBREpVLENBQUFBO0FBR0FDLFFBQUFBLE9BQUFBLEdBQUFBLEtBQUFBIiwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG52YXIgX19hc3NpZ24gPSAodGhpcyAmJiB0aGlzLl9fYXNzaWduKSB8fCBmdW5jdGlvbiAoKSB7XG4gICAgX19hc3NpZ24gPSBPYmplY3QuYXNzaWduIHx8IGZ1bmN0aW9uKHQpIHtcbiAgICAgICAgZm9yICh2YXIgcywgaSA9IDEsIG4gPSBhcmd1bWVudHMubGVuZ3RoOyBpIDwgbjsgaSsrKSB7XG4gICAgICAgICAgICBzID0gYXJndW1lbnRzW2ldO1xuICAgICAgICAgICAgZm9yICh2YXIgcCBpbiBzKSBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHMsIHApKVxuICAgICAgICAgICAgICAgIHRbcF0gPSBzW3BdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0O1xuICAgIH07XG4gICAgcmV0dXJuIF9fYXNzaWduLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7IHZhbHVlOiB0cnVlIH0pO1xudmFyIHV0aWxzXzEgPSByZXF1aXJlKFwiLi4vY29tbW9uL3V0aWxzXCIpO1xudmFyIGRlZmF1bHRPcHRpb25zID0ge1xuICAgIHR5cGU6ICd0ZXh0JyxcbiAgICBtYXNrOiBmYWxzZSxcbiAgICBtZXNzYWdlOiAnJyxcbiAgICBzaG93OiB0cnVlLFxuICAgIHpJbmRleDogMTAwMCxcbiAgICBkdXJhdGlvbjogMzAwMCxcbiAgICBwb3NpdGlvbjogJ21pZGRsZScsXG4gICAgZm9yYmlkQ2xpY2s6IGZhbHNlLFxuICAgIGxvYWRpbmdUeXBlOiAnY2lyY3VsYXInLFxuICAgIHNlbGVjdG9yOiAnI3Zhbi10b2FzdCdcbn07XG52YXIgcXVldWUgPSBbXTtcbnZhciBjdXJyZW50T3B0aW9ucyA9IF9fYXNzaWduKHt9LCBkZWZhdWx0T3B0aW9ucyk7XG5mdW5jdGlvbiBwYXJzZU9wdGlvbnMobWVzc2FnZSkge1xuICAgIHJldHVybiB1dGlsc18xLmlzT2JqKG1lc3NhZ2UpID8gbWVzc2FnZSA6IHsgbWVzc2FnZTogbWVzc2FnZSB9O1xufVxuZnVuY3Rpb24gZ2V0Q29udGV4dCgpIHtcbiAgICB2YXIgcGFnZXMgPSBnZXRDdXJyZW50UGFnZXMoKTtcbiAgICByZXR1cm4gcGFnZXNbcGFnZXMubGVuZ3RoIC0gMV07XG59XG5mdW5jdGlvbiBUb2FzdCh0b2FzdE9wdGlvbnMpIHtcbiAgICB2YXIgb3B0aW9ucyA9IF9fYXNzaWduKHt9LCBjdXJyZW50T3B0aW9ucywgcGFyc2VPcHRpb25zKHRvYXN0T3B0aW9ucykpO1xuICAgIHZhciBjb250ZXh0ID0gb3B0aW9ucy5jb250ZXh0IHx8IGdldENvbnRleHQoKTtcbiAgICB2YXIgdG9hc3QgPSBjb250ZXh0LnNlbGVjdENvbXBvbmVudChvcHRpb25zLnNlbGVjdG9yKTtcbiAgICBpZiAoIXRvYXN0KSB7XG4gICAgICAgIGNvbnNvbGUud2Fybign5pyq5om+5YiwIHZhbi10b2FzdCDoioLngrnvvIzor7fnoa7orqQgc2VsZWN0b3Ig5Y+KIGNvbnRleHQg5piv5ZCm5q2j56GuJyk7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgZGVsZXRlIG9wdGlvbnMuY29udGV4dDtcbiAgICBkZWxldGUgb3B0aW9ucy5zZWxlY3RvcjtcbiAgICB0b2FzdC5jbGVhciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdG9hc3Quc2V0KHsgc2hvdzogZmFsc2UgfSk7XG4gICAgICAgIGlmIChvcHRpb25zLm9uQ2xvc2UpIHtcbiAgICAgICAgICAgIG9wdGlvbnMub25DbG9zZSgpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICBxdWV1ZS5wdXNoKHRvYXN0KTtcbiAgICB0b2FzdC5zZXQob3B0aW9ucyk7XG4gICAgY2xlYXJUaW1lb3V0KHRvYXN0LnRpbWVyKTtcbiAgICBpZiAob3B0aW9ucy5kdXJhdGlvbiA+IDApIHtcbiAgICAgICAgdG9hc3QudGltZXIgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRvYXN0LmNsZWFyKCk7XG4gICAgICAgICAgICBxdWV1ZSA9IHF1ZXVlLmZpbHRlcihmdW5jdGlvbiAoaXRlbSkgeyByZXR1cm4gaXRlbSAhPT0gdG9hc3Q7IH0pO1xuICAgICAgICB9LCBvcHRpb25zLmR1cmF0aW9uKTtcbiAgICB9XG4gICAgcmV0dXJuIHRvYXN0O1xufVxudmFyIGNyZWF0ZU1ldGhvZCA9IGZ1bmN0aW9uICh0eXBlKSB7IHJldHVybiBmdW5jdGlvbiAob3B0aW9ucykge1xuICAgIHJldHVybiBUb2FzdChfX2Fzc2lnbih7IHR5cGU6IHR5cGUgfSwgcGFyc2VPcHRpb25zKG9wdGlvbnMpKSk7XG59OyB9O1xuVG9hc3QubG9hZGluZyA9IGNyZWF0ZU1ldGhvZCgnbG9hZGluZycpO1xuVG9hc3Quc3VjY2VzcyA9IGNyZWF0ZU1ldGhvZCgnc3VjY2VzcycpO1xuVG9hc3QuZmFpbCA9IGNyZWF0ZU1ldGhvZCgnZmFpbCcpO1xuVG9hc3QuY2xlYXIgPSBmdW5jdGlvbiAoKSB7XG4gICAgcXVldWUuZm9yRWFjaChmdW5jdGlvbiAodG9hc3QpIHtcbiAgICAgICAgdG9hc3QuY2xlYXIoKTtcbiAgICB9KTtcbiAgICBxdWV1ZSA9IFtdO1xufTtcblRvYXN0LnNldERlZmF1bHRPcHRpb25zID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICBPYmplY3QuYXNzaWduKGN1cnJlbnRPcHRpb25zLCBvcHRpb25zKTtcbn07XG5Ub2FzdC5yZXNldERlZmF1bHRPcHRpb25zID0gZnVuY3Rpb24gKCkge1xuICAgIGN1cnJlbnRPcHRpb25zID0gX19hc3NpZ24oe30sIGRlZmF1bHRPcHRpb25zKTtcbn07XG5leHBvcnRzLmRlZmF1bHQgPSBUb2FzdDtcbiJdLCJmaWxlIjoidG9hc3QuanMifQ==