blumjs
Version:
A UI Package for Angular2
66 lines (65 loc) • 2.96 kB
JavaScript
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;
;