UNPKG

blumjs

Version:
66 lines (65 loc) 2.96 kB
"use strict"; var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __metadata = (this && this.__metadata) || function (k, v) { if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v); }; var core_1 = require("@angular/core"); var rxjs_1 = require("rxjs"); var LoaderDirective = (function () { function LoaderDirective(el) { this.el = el; this.loadData = new core_1.EventEmitter(); this.loadError = new core_1.EventEmitter(); this.loadComplete = new core_1.EventEmitter(); this.isLoading$ = new rxjs_1.BehaviorSubject(false); this.loading = document.createElement("span"); this.loading.setAttribute("class", "fa fa-calendar"); } LoaderDirective.prototype.onClick = function () { var _this = this; var temp = this.el.nativeElement.innerHTML; this.el.nativeElement.innerHTML = "<i class='fa fa-spinner fa-spin fa-fw'></i>"; this.destination.subscribe(function (res) { return _this.loadData.emit(res); }, function (err) { _this.loadError.emit(err); _this.el.nativeElement.innerHTML = temp; }, function () { _this.loadComplete.emit(); _this.el.nativeElement.innerHTML = temp; }); }; return LoaderDirective; }()); __decorate([ core_1.Input('bl-loader'), __metadata("design:type", rxjs_1.Observable) ], LoaderDirective.prototype, "destination", void 0); __decorate([ core_1.Output('load-data'), __metadata("design:type", core_1.EventEmitter) ], LoaderDirective.prototype, "loadData", void 0); __decorate([ core_1.Output('load-error'), __metadata("design:type", core_1.EventEmitter) ], LoaderDirective.prototype, "loadError", void 0); __decorate([ core_1.Output('load-complete'), __metadata("design:type", core_1.EventEmitter) ], LoaderDirective.prototype, "loadComplete", void 0); __decorate([ core_1.HostListener('click'), __metadata("design:type", Function), __metadata("design:paramtypes", []), __metadata("design:returntype", void 0) ], LoaderDirective.prototype, "onClick", null); LoaderDirective = __decorate([ core_1.Directive({ selector: '[bl-loader]' }), __metadata("design:paramtypes", [core_1.ElementRef]) ], LoaderDirective); exports.LoaderDirective = LoaderDirective;