index.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports["default"] = void 0;
  5. var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
  6. var _vue = _interopRequireDefault(require("vue"));
  7. var _Notify = _interopRequireDefault(require("./Notify"));
  8. var _color = require("../utils/color");
  9. var _utils = require("../utils");
  10. var _functional = require("../utils/functional");
  11. var timer;
  12. var instance;
  13. function parseOptions(message) {
  14. return (0, _utils.isObj)(message) ? message : {
  15. message: message
  16. };
  17. }
  18. function Notify(options) {
  19. /* istanbul ignore if */
  20. if (_utils.isServer) {
  21. return;
  22. }
  23. if (!instance) {
  24. instance = (0, _functional.mount)(_Notify["default"]);
  25. }
  26. options = (0, _extends2["default"])({}, Notify.currentOptions, parseOptions(options));
  27. (0, _extends2["default"])(instance, options);
  28. clearTimeout(timer);
  29. if (options.duration && options.duration > 0) {
  30. timer = setTimeout(Notify.clear, options.duration);
  31. }
  32. return instance;
  33. }
  34. function defaultOptions() {
  35. return {
  36. value: true,
  37. message: '',
  38. color: _color.WHITE,
  39. background: _color.RED,
  40. duration: 3000,
  41. className: ''
  42. };
  43. }
  44. Notify.clear = function () {
  45. if (instance) {
  46. instance.value = false;
  47. }
  48. };
  49. Notify.currentOptions = defaultOptions();
  50. Notify.setDefaultOptions = function (options) {
  51. (0, _extends2["default"])(Notify.currentOptions, options);
  52. };
  53. Notify.resetDefaultOptions = function () {
  54. Notify.currentOptions = defaultOptions();
  55. };
  56. Notify.install = function () {
  57. _vue["default"].use(_Notify["default"]);
  58. };
  59. _vue["default"].prototype.$notify = Notify;
  60. var _default = Notify;
  61. exports["default"] = _default;