сделайте activeContact в компоненте
при кнопке next меняйте активный this.activeContact = тут номер например активного таба, для активного таба добавляйте класс
<div class="slaider_mobile">
<ng-container *ngFor="let contact of contacts">
<app-carousel
[class.contact_item]="true"
[class.contact_item--active]="isActive(contact)"
[title]="contact.title"
[text]="contact.text"
[img]="contact.img"
></app-carousel>
<ng-container>
</div>
<button class="Slaider1_prev" (click)="prev()" type="button"></button>
<button class="Slaider1_next" (click)="next()" type="button"></button>
для класса .contact_item--active уже опишите стили
в компоненте (код на коленке, плохой, на основании ваших данных):
this.activeContact: Contact = this.contacts[0].title;
isActive(contact: Contact): boolean {
return contact.title === this.activeContact.titile;
}
next() {
// ищем актуальный контакт
const actualIdx = this.contacts.findIndex((c) => {
this.activeContact.title === c.title;
})
// присваиваем следующий, или первый, если сейчас актуальный контакт — последний в списке
const nextIdx = actualIdx + 1;
this.activeContact = nextIdx === this.contacts.length - 1
? this.contacts[0]
: this.activeContact[nextIdx];
}
prev() {
// ищем актуальный контакт
const actualIdx = this.contacts.findIndex((c) => {
this.activeContact.title === c.title
})
// присваиваем предыдущий, или первый, если сейчас первый из списка — к последнему в списке
const prevIdx = actualIdx + 1;
this.activeContact = prevIdx === 0;
? this.contacts[this.contacts.length-1]
: this.activeContact[prevIdx];
}