angular-button-loader
Version:
Angular directive to display loading spinner on button and disable the button while performing async calls. It supports Angular 4+.
156 lines (147 loc) • 5.77 kB
JavaScript
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('rxjs'), require('@angular/core')) :
typeof define === 'function' && define.amd ? define('angular-button-loader', ['exports', 'rxjs', '@angular/core'], factory) :
(factory((global['angular-button-loader'] = {}),global.rxjs,global.ng.core));
}(this, (function (exports,rxjs,core) { 'use strict';
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var AngularButtonLoaderService = /** @class */ (function () {
function AngularButtonLoaderService() {
this.load = new rxjs.Subject();
}
/**
* @return {?}
*/
AngularButtonLoaderService.prototype.displayLoader = /**
* @return {?}
*/
function () {
this.load.next(true);
};
/**
* @return {?}
*/
AngularButtonLoaderService.prototype.hideLoader = /**
* @return {?}
*/
function () {
this.load.next(false);
};
return AngularButtonLoaderService;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var AngularButtonLoaderDirective = /** @class */ (function () {
function AngularButtonLoaderDirective(loaderService, elementRef, renderer) {
this.loaderService = loaderService;
this.elementRef = elementRef;
this.renderer = renderer;
this.disableProperty = false;
}
/**
* @param {?} event
* @return {?}
*/
AngularButtonLoaderDirective.prototype.onClick = /**
* @param {?} event
* @return {?}
*/
function (event) {
var _this = this;
/** @type {?} */
var span = this.elementRef.nativeElement.querySelector('span');
this.subscription = this.loaderService.load.subscribe(( /**
* @param {?} flag
* @return {?}
*/function (flag) {
_this.disableProperty = flag;
if (flag) {
_this.renderer.addClass(span, 'loader');
if (_this.loaderColor) {
_this.renderer.setStyle(span, 'border-color', _this.loaderColor);
}
else {
_this.renderer.setStyle(span, 'border-color', '#0288d1');
}
_this.renderer.addClass(_this.elementRef.nativeElement, 'loader-btn');
}
else {
_this.renderer.removeAttribute(span, 'class');
_this.subscription.unsubscribe();
}
}));
};
/**
* @return {?}
*/
AngularButtonLoaderDirective.prototype.ngOnInit = /**
* @return {?}
*/
function () { };
AngularButtonLoaderDirective.decorators = [
{ type: core.Directive, args: [{
selector: '[buttonLoader]',
},] }
];
/** @nocollapse */
AngularButtonLoaderDirective.ctorParameters = function () {
return [
{ type: AngularButtonLoaderService },
{ type: core.ElementRef },
{ type: core.Renderer2 }
];
};
AngularButtonLoaderDirective.propDecorators = {
disableProperty: [{ type: core.HostBinding, args: ['disabled',] }],
loaderColor: [{ type: core.Input }],
onClick: [{ type: core.HostListener, args: ['click',] }]
};
return AngularButtonLoaderDirective;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
var AngularButtonLoaderModule = /** @class */ (function () {
function AngularButtonLoaderModule() {
}
/**
* @return {?}
*/
AngularButtonLoaderModule.forRoot = /**
* @return {?}
*/
function () {
return {
ngModule: AngularButtonLoaderModule,
providers: [AngularButtonLoaderService]
};
};
AngularButtonLoaderModule.decorators = [
{ type: core.NgModule, args: [{
declarations: [AngularButtonLoaderDirective],
imports: [],
exports: [AngularButtonLoaderDirective],
providers: []
},] }
];
return AngularButtonLoaderModule;
}());
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
exports.AngularButtonLoaderService = AngularButtonLoaderService;
exports.AngularButtonLoaderModule = AngularButtonLoaderModule;
exports.ɵa = AngularButtonLoaderDirective;
Object.defineProperty(exports, '__esModule', { value: true });
})));
//# sourceMappingURL=angular-button-loader.umd.js.map