UNPKG

@rowantervelde/ng2-carousel

Version:

RTV - Angular 2 Carousel component

43 lines (41 loc) 2.55 kB
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