angular-button-loader
Version:
Angular directive to display loading spinner on button and disable the button while performing async calls. It supports Angular 4+.
2 lines • 1.78 kB
JavaScript
!function(e,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("rxjs"),require("@angular/core")):"function"==typeof define&&define.amd?define("angular-button-loader",["exports","rxjs","@angular/core"],r):r(e["angular-button-loader"]={},e.rxjs,e.ng.core)}(this,function(e,r,t){"use strict";var o=function(){function e(){this.load=new r.Subject}return e.prototype.displayLoader=function(){this.load.next(!0)},e.prototype.hideLoader=function(){this.load.next(!1)},e}(),n=function(){function e(e,r,t){this.loaderService=e,this.elementRef=r,this.renderer=t,this.disableProperty=!1}return e.prototype.onClick=function(e){var r=this,t=this.elementRef.nativeElement.querySelector("span");this.subscription=this.loaderService.load.subscribe(function(e){(r.disableProperty=e)?(r.renderer.addClass(t,"loader"),r.loaderColor?r.renderer.setStyle(t,"border-color",r.loaderColor):r.renderer.setStyle(t,"border-color","#0288d1"),r.renderer.addClass(r.elementRef.nativeElement,"loader-btn")):(r.renderer.removeAttribute(t,"class"),r.subscription.unsubscribe())})},e.prototype.ngOnInit=function(){},e.decorators=[{type:t.Directive,args:[{selector:"[buttonLoader]"}]}],e.ctorParameters=function(){return[{type:o},{type:t.ElementRef},{type:t.Renderer2}]},e.propDecorators={disableProperty:[{type:t.HostBinding,args:["disabled"]}],loaderColor:[{type:t.Input}],onClick:[{type:t.HostListener,args:["click"]}]},e}(),i=function(){function e(){}return e.forRoot=function(){return{ngModule:e,providers:[o]}},e.decorators=[{type:t.NgModule,args:[{declarations:[n],imports:[],exports:[n],providers:[]}]}],e}();e.AngularButtonLoaderService=o,e.AngularButtonLoaderModule=i,e.ɵa=n,Object.defineProperty(e,"__esModule",{value:!0})});
//# sourceMappingURL=angular-button-loader.umd.min.js.map