UNPKG

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
(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