in src/app/shared/carousel/carousel.ts [113:138]
private _scrollToActiveItem() {
if (!this._isOutOfView(this.index)) {
return;
}
const itemsArray = this.items.toArray();
let targetItemIndex = this.index;
// Only shift the carousel by one if we're going forwards. This
// looks better compared to moving the carousel by an entire page.
if (this.index > 0 && !this._isOutOfView(this.index - 1)) {
targetItemIndex = itemsArray.findIndex((_, i) => !this._isOutOfView(i)) + 1;
}
this.position = itemsArray[targetItemIndex].element.nativeElement.offsetLeft;
this.list.nativeElement.style.transform = `translateX(-${this.position}px)`;
this.showPrevArrow = this.index > 0;
this.showNextArrow = false;
for (let i = itemsArray.length - 1; i > -1; i--) {
if (this._isOutOfView(i, 'end')) {
this.showNextArrow = true;
break;
}
}
}