import { Component, Input, OnInit } from '@angular/core';
import { CommonModule } from '@angular/common';
interface carouselImage {
imageSrc: string;
imageAlt: string;
}
@Component({
selector: 'bgui-carousel',
standalone: true,
imports: [CommonModule],
templateUrl: './carousel.component.html',
styleUrls: ['./carousel.component.scss'],
})
export class CarouselComponent implements OnInit {
@Input() images: carouselImage[] = [];
@Input() indicators = true;
@Input() controls = true;
@Input() autoSlide = false;
@Input() slideInterval = 70;
selectedIndex = 0;
constructor() {}
ngOnInit(): void {
if (this.autoSlide) {
this.autoSlideImages();
}
}
autoSlideImages(): void {
setInterval(() => {
this.onNextClick();
}, this.slideInterval);
}
selectImage(index: number): void {
this.selectedIndex = index;
}
onPrevClick(): void {
if (this.selectedIndex === 0) {
this.selectedIndex = this.images.length - 1;
} else {
this.selectedIndex--;
}
}
onNextClick(): void {
if (this.selectedIndex === this.images.length - 1) {
this.selectedIndex = 0;
} else {
this.selectedIndex++;
}
}
}