loading-button.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. (function (global, factory) {
  2. if (typeof define === "function" && define.amd) {
  3. define("/Plugin/loading-button", ["exports", "Plugin"], factory);
  4. } else if (typeof exports !== "undefined") {
  5. factory(exports, require("Plugin"));
  6. } else {
  7. var mod = {
  8. exports: {}
  9. };
  10. factory(mod.exports, global.Plugin);
  11. global.PluginLoadingButton = mod.exports;
  12. }
  13. })(this, function (_exports, _Plugin2) {
  14. "use strict";
  15. Object.defineProperty(_exports, "__esModule", {
  16. value: true
  17. });
  18. _exports.default = void 0;
  19. _Plugin2 = babelHelpers.interopRequireDefault(_Plugin2);
  20. var NAME = 'loadingButton';
  21. var LoadingButton =
  22. /*#__PURE__*/
  23. function (_Plugin) {
  24. babelHelpers.inherits(LoadingButton, _Plugin);
  25. function LoadingButton() {
  26. babelHelpers.classCallCheck(this, LoadingButton);
  27. return babelHelpers.possibleConstructorReturn(this, babelHelpers.getPrototypeOf(LoadingButton).apply(this, arguments));
  28. }
  29. babelHelpers.createClass(LoadingButton, [{
  30. key: "getName",
  31. value: function getName() {
  32. return NAME;
  33. }
  34. }, {
  35. key: "render",
  36. value: function render() {
  37. this.text = this.$el.text();
  38. this.$el.data('loadingButtonApi', this);
  39. }
  40. }, {
  41. key: "loading",
  42. value: function loading() {
  43. var $el = this.$el;
  44. var i = this.options.time;
  45. var loadingText = this.options.loadingText;
  46. var opacity = this.options.opacity;
  47. var text = this.text;
  48. $el.text("".concat(loadingText, "(").concat(i, ")")).css('opacity', opacity);
  49. var timeout = setInterval(function () {
  50. $el.text("".concat(loadingText, "(").concat(--i, ")"));
  51. if (i === 0) {
  52. clearInterval(timeout);
  53. $el.text(text).css('opacity', '1');
  54. }
  55. }, 1000);
  56. }
  57. }], [{
  58. key: "api",
  59. value: function api() {
  60. return 'click|loading';
  61. }
  62. }, {
  63. key: "getDefaults",
  64. value: function getDefaults() {
  65. return {
  66. loadingText: 'Loading',
  67. time: 20,
  68. opacity: '0.6'
  69. };
  70. }
  71. }]);
  72. return LoadingButton;
  73. }(_Plugin2.default);
  74. _Plugin2.default.register(NAME, LoadingButton);
  75. var _default = LoadingButton;
  76. _exports.default = _default;
  77. });