@rowantervelde/ng2-carousel
Version:
RTV - Angular 2 Carousel component
43 lines (41 loc) • 2.55 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);
};
import { Component } from '@angular/core';
import { CarouselService } from './carousel.service';
export var CarouselComponent = (function () {
function CarouselComponent(_carouselService) {
this._carouselService = _carouselService;
this.slides = [];
this.interval = 5500;
}
CarouselComponent.prototype.ngOnInit = function () {
this.getSlides();
};
CarouselComponent.prototype.getSlides = function () {
var _this = this;
this._carouselService.getSlides().
subscribe(function (slides) { return _this.slides = slides; }, function (error) { return _this.errorMessage = error; });
};
CarouselComponent.prototype.getDelay = function (index) {
return (index * this.interval / 1000) + 's';
};
CarouselComponent.prototype.getDuration = function () {
return (this.interval * this.slides.length / 1000) + 's';
};
CarouselComponent = __decorate([
Component({selector: 'rtv-carousel',
template: "<div *ngFor=\"let slide of slides; let index=index\" class=\"rtv-slide\" [style.animation-duration]=\"getDuration()\" [style.animation-delay]=\"getDelay(index)\" [ngStyle]=\"{'background-image': 'url(' + slide.imageSrc + ')'}\"> </div>",
styles: [".rtv-slide { position: absolute; background-size: cover; background-position: center; height: 100%; width: 100%; opacity: 0; animation: rtv-xfade infinite; } @keyframes rtv-xfade { 0% { opacity: 0; } 7% { opacity: 1; } 50% { opacity: 1; } 57% { opacity: 0; } 100% { opacity: 0; } } /*# sourceMappingURL=carousel.component.css.map */ "],
}),
__metadata('design:paramtypes', [CarouselService])
], CarouselComponent);
return CarouselComponent;
}());
//# sourceMappingURL=carousel.component.js.map