import * as i1 from '@angular/common';
import { isPlatformServer, CommonModule } from '@angular/common';
import * as i0 from '@angular/core';
import { Directive, HostBinding, PLATFORM_ID, Component, Inject, Input, ViewChild, ContentChildren, forwardRef, HostListener, NgModule } from '@angular/core';
import { FadeInOutAnimation } from '@mintplayer/ng-animations';
import { Color } from '@mintplayer/ng-bootstrap';
import * as i2 from '@mintplayer/ng-swiper';
import { BsSwiperModule } from '@mintplayer/ng-swiper';
import { BehaviorSubject, map } from 'rxjs';
import * as i3 from '@mintplayer/ng-bootstrap/no-noscript';
import { BsNoNoscriptModule } from '@mintplayer/ng-bootstrap/no-noscript';

class BsCarouselImageDirective {
    constructor(templateRef, carousel) {
        this.templateRef = templateRef;
        this.width100class = true;
        this.itemTemplate = this.templateRef;
        this.id = carousel.imageCounter++;
    }
}
BsCarouselImageDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsCarouselImageDirective, deps: [{ token: i0.TemplateRef }, { token: BsCarouselComponent }], target: i0.ɵɵFactoryTarget.Directive });
BsCarouselImageDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.7", type: BsCarouselImageDirective, selector: "*[bsCarouselImage]", host: { properties: { "class.w-100": "this.width100class" } }, ngImport: i0 });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsCarouselImageDirective, decorators: [{
            type: Directive,
            args: [{
                    selector: '*[bsCarouselImage]'
                }]
        }], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: BsCarouselComponent }]; }, propDecorators: { width100class: [{
                type: HostBinding,
                args: ['class.w-100']
            }] } });

class BsCarouselComponent {
    constructor(platformId, cdRef) {
        this.cdRef = cdRef;
        this.colors = Color;
        this.currentImageIndex = 0;
        this.images$ = new BehaviorSubject(null);
        this.indicators = false;
        this.keyboardEvents = true;
        //#region Animation
        this.animationsDisabled = false;
        this._animation = 'slide';
        this.imageCounter = 1;
        this.isServerSide = isPlatformServer(platformId);
        this.imageCount$ = this.images$.pipe(map((images) => images?.length ?? 0));
        this.firstImageTemplate$ = this.images$.pipe(map((images) => {
            if (!images)
                return null;
            if (images.length === 0)
                return null;
            const img = images.get(0);
            if (!img)
                return null;
            return img.itemTemplate;
        }));
        this.lastImageTemplate$ = this.images$.pipe(map((images) => {
            if (!images)
                return null;
            if (images.length === 0)
                return null;
            const img = images.get(images.length - 1);
            if (!img)
                return null;
            return img.itemTemplate;
        }));
    }
    set images(value) {
        this.images$.next(value);
    }
    set animation(value) {
        this.animationsDisabled = true;
        this._animation = value;
        setTimeout(() => this.animationsDisabled = false, 20);
        setTimeout(() => this.cdRef.detectChanges(), 50);
    }
    get animation() {
        return this._animation;
    }
    //#endregion
    onKeyPress(ev) {
        if (this.keyboardEvents) {
            switch (ev.key) {
                case 'ArrowLeft':
                    this.previousImage();
                    break;
                case 'ArrowRight':
                    this.nextImage();
                    break;
            }
            ev.preventDefault();
        }
    }
    previousImage() {
        switch (this.animation) {
            case 'fade':
                if (this.currentImageIndex > 0) {
                    this.currentImageIndex--;
                }
                else {
                    this.currentImageIndex = this.images$.value.length - 1;
                }
                break;
            case 'slide':
                this.swipeContainer.previous();
                break;
        }
    }
    nextImage() {
        switch (this.animation) {
            case 'fade':
                if (this.currentImageIndex < this.images$.value.length - 1) {
                    this.currentImageIndex++;
                }
                else {
                    this.currentImageIndex = 0;
                }
                break;
            case 'slide':
                this.swipeContainer.next();
                break;
        }
    }
    trackByImageId(index, item) {
        return item.id;
    }
}
BsCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsCarouselComponent, deps: [{ token: PLATFORM_ID }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
BsCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: BsCarouselComponent, selector: "bs-carousel", inputs: { indicators: "indicators", keyboardEvents: "keyboardEvents", animation: "animation" }, host: { listeners: { "document:keydown.ArrowLeft": "onKeyPress($event)", "document:keydown.ArrowRight": "onKeyPress($event)" }, properties: { "@.disabled": "this.animationsDisabled" } }, queries: [{ propertyName: "images", predicate: i0.forwardRef(function () { return BsCarouselImageDirective; }) }], viewQueries: [{ propertyName: "swipeContainer", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"isServerSide\">\n    <div class=\"carousel mx-auto noscript\">\n        <div class=\"carousel-inner d-grid\" *ngIf=\"(imageCount$ | async) as imageCount\">\n            <ng-container *ngFor=\"let image of (images$ | async); trackBy: trackByImageId; let i = index\">\n                <input type=\"radio\" [id]=\"'car-' + i\" [name]=\"'car'\" class=\"car-radio d-none\" bsNoNoscript [checked]=\"i === 0\">\n                <div class=\"carousel-item fade d-flex flex-row h-100 align-items-center\">\n                    <div class=\"w-100 position-relative\">\n                        <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n                        <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n                            <label *ngFor=\"let image of (images$ | async); trackBy: trackByImageId; let j = index\" [attr.for]=\"'car-' + (j % imageCount)\" [class.active]=\"i === j\" data-bs-target></label>\n                        </div>\n                    </div>\n                </div>\n                \n                <label class=\"carousel-control-prev cursor-pointer\" [for]=\"'car-' + ((i - 1 + imageCount) % imageCount)\">\n                    <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n                    <span class=\"visually-hidden\">Previous</span>\n                </label>\n                <label class=\"carousel-control-next cursor-pointer\" [for]=\"'car-' + ((i + 1) % imageCount)\">\n                    <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n                    <span class=\"visually-hidden\">Next</span>\n                </label>\n            </ng-container>\n        </div>\n    </div>\n</ng-container>\n<ng-container *ngIf=\"!isServerSide\">\n    <div *ngIf=\"animation === 'slide'\" class=\"carousel slide mx-auto\" [style.height.px]=\"container.currentSlideHeight$ | async\">\n        <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n            <button *ngFor=\"let image of (images$ | async); trackBy: trackByImageId; let i = index\" type=\"button\" (click)=\"container.goto(i)\"\n                [class.active]=\"(container.imageIndex$ | async) === i\" data-bs-target\n                [attr.aria-current]=\"(container.imageIndex$ | async) === i ? true : null\"\n                [attr.aria-label]=\"'Slide ' + i\"></button>\n        </div>\n        <div class=\"carousel-inner overflow-hidden text-nowrap pe-none\">\n            <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\n                <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n                    <ng-container *ngTemplateOutlet=\"lastImageTemplate$ | async\"></ng-container>\n                </div>\n                <div *ngFor=\"let image of (images$ | async); trackBy: trackByImageId\" class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" [class.active]=\"true\" bsSwipe>\n                    <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n                </div>\n                <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n                    <ng-container *ngTemplateOutlet=\"firstImageTemplate$ | async\"></ng-container>\n                </div>\n            </div>\n        </div>\n        <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n            <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n            <span class=\"visually-hidden\">Previous</span>\n        </button>\n        <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n            <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n            <span class=\"visually-hidden\">Next</span>\n        </button>\n    </div>\n    <div *ngIf=\"animation === 'fade'\" class=\"carousel fade mx-auto\">\n        <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n            <button *ngFor=\"let image of (images$ | async); trackBy: trackByImageId; let i = index\" type=\"button\" (click)=\"currentImageIndex = i\"\n                [class.active]=\"currentImageIndex === i\" data-bs-target\n                [attr.aria-current]=\"currentImageIndex === i ? true : null\"\n                [attr.aria-label]=\"'Slide ' + i\"></button>\n        </div>\n        <div class=\"carousel-inner\">\n            <ng-container *ngFor=\"let image of (images$ | async); trackBy: trackByImageId; let i = index\">\n                <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut *ngIf=\"currentImageIndex === i\">\n                    <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>    \n                </div>\n            </ng-container>\n        </div>\n        <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n            <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n            <span class=\"visually-hidden\">Previous</span>\n        </button>\n        <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n            <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n            <span class=\"visually-hidden\">Next</span>\n        </button>\n    </div>\n</ng-container>", styles: [":host ::ng-deep .carousel{position:relative}:host ::ng-deep .carousel.pointer-event{touch-action:pan-y}:host ::ng-deep .carousel-inner{position:relative;width:100%;overflow:hidden}:host ::ng-deep .carousel-inner:after{display:block;clear:both;content:\"\"}:host ::ng-deep .carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-item{transition:none}}:host ::ng-deep .carousel-item.active,:host ::ng-deep .carousel-item-next,:host ::ng-deep .carousel-item-prev{display:block}:host ::ng-deep .carousel-item-next:not(.carousel-item-start),:host ::ng-deep .active.carousel-item-end{transform:translate(100%)}:host ::ng-deep .carousel-item-prev:not(.carousel-item-end),:host ::ng-deep .active.carousel-item-start{transform:translate(-100%)}:host ::ng-deep .carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}:host ::ng-deep .carousel-fade .carousel-item.active,:host ::ng-deep .carousel-fade .carousel-item-next.carousel-item-start,:host ::ng-deep .carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{transition:none}}:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{transition:none}}:host ::ng-deep .carousel-control-prev:hover,:host ::ng-deep .carousel-control-prev:focus,:host ::ng-deep .carousel-control-next:hover,:host ::ng-deep .carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}:host ::ng-deep .carousel-control-prev{left:0}:host ::ng-deep .carousel-control-next{right:0}:host ::ng-deep .carousel-control-prev-icon,:host ::ng-deep .carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}:host ::ng-deep .carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}:host ::ng-deep .carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-indicators [data-bs-target]{transition:none}}:host ::ng-deep .carousel-indicators .active{opacity:1}:host ::ng-deep .carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}:host ::ng-deep .carousel-dark .carousel-control-prev-icon,:host ::ng-deep .carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep .carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep .carousel-dark .carousel-caption{color:#000}:host ::ng-deep .carousel{min-height:100px;max-width:500px}:host ::ng-deep .carousel.noscript .carousel-inner{grid-template-rows:100%;grid-template-columns:100%}:host ::ng-deep .carousel.noscript .carousel-control-prev,:host ::ng-deep .carousel.noscript .carousel-control-next{display:none;z-index:10}:host ::ng-deep .carousel.noscript .carousel-item{display:block;opacity:0;transition:opacity .4s ease-in-out;grid-row:1;grid-column:1}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item{opacity:1;z-index:5}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev,:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev+.carousel-control-next{display:flex}:host ::ng-deep .carousel.noscript .carousel-indicators{z-index:10}.wrapper{overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.BsSwipeDirective, selector: "[bsSwipe]", inputs: ["offside"] }, { kind: "directive", type: i2.BsSwipeContainerDirective, selector: "[bsSwipeContainer]", inputs: ["minimumOffset", "imageIndex"], outputs: ["imageIndexChange"], exportAs: ["bsSwipeContainer"] }, { kind: "directive", type: i3.BsNoNoscriptDirective, selector: "[bsNoNoscript]" }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], animations: [FadeInOutAnimation] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsCarouselComponent, decorators: [{
            type: Component,
            args: [{ selector: 'bs-carousel', animations: [FadeInOutAnimation], template: "<ng-container *ngIf=\"isServerSide\">\n    <div class=\"carousel mx-auto noscript\">\n        <div class=\"carousel-inner d-grid\" *ngIf=\"(imageCount$ | async) as imageCount\">\n            <ng-container *ngFor=\"let image of (images$ | async); trackBy: trackByImageId; let i = index\">\n                <input type=\"radio\" [id]=\"'car-' + i\" [name]=\"'car'\" class=\"car-radio d-none\" bsNoNoscript [checked]=\"i === 0\">\n                <div class=\"carousel-item fade d-flex flex-row h-100 align-items-center\">\n                    <div class=\"w-100 position-relative\">\n                        <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>\n                        <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n                            <label *ngFor=\"let image of (images$ | async); trackBy: trackByImageId; let j = index\" [attr.for]=\"'car-' + (j % imageCount)\" [class.active]=\"i === j\" data-bs-target></label>\n                        </div>\n                    </div>\n                </div>\n                \n                <label class=\"carousel-control-prev cursor-pointer\" [for]=\"'car-' + ((i - 1 + imageCount) % imageCount)\">\n                    <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n                    <span class=\"visually-hidden\">Previous</span>\n                </label>\n                <label class=\"carousel-control-next cursor-pointer\" [for]=\"'car-' + ((i + 1) % imageCount)\">\n                    <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n                    <span class=\"visually-hidden\">Next</span>\n                </label>\n            </ng-container>\n        </div>\n    </div>\n</ng-container>\n<ng-container *ngIf=\"!isServerSide\">\n    <div *ngIf=\"animation === 'slide'\" class=\"carousel slide mx-auto\" [style.height.px]=\"container.currentSlideHeight$ | async\">\n        <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n            <button *ngFor=\"let image of (images$ | async); trackBy: trackByImageId; let i = index\" type=\"button\" (click)=\"container.goto(i)\"\n                [class.active]=\"(container.imageIndex$ | async) === i\" data-bs-target\n                [attr.aria-current]=\"(container.imageIndex$ | async) === i ? true : null\"\n                [attr.aria-label]=\"'Slide ' + i\"></button>\n        </div>\n        <div class=\"carousel-inner overflow-hidden text-nowrap pe-none\">\n            <div bsSwipeContainer #container=\"bsSwipeContainer\" [minimumOffset]=\"50\" [(imageIndex)]=\"currentImageIndex\">\n                <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n                    <ng-container *ngTemplateOutlet=\"lastImageTemplate$ | async\"></ng-container>\n                </div>\n                <div *ngFor=\"let image of (images$ | async); trackBy: trackByImageId\" class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" [class.active]=\"true\" bsSwipe>\n                    <ng-container *ngTemplateOutlet=\"image.itemTemplate\"></ng-container>\n                </div>\n                <div class=\"carousel-item d-inline-block float-none w-100 me-0 pe-auto\" bsSwipe [offside]=\"true\">\n                    <ng-container *ngTemplateOutlet=\"firstImageTemplate$ | async\"></ng-container>\n                </div>\n            </div>\n        </div>\n        <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n            <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n            <span class=\"visually-hidden\">Previous</span>\n        </button>\n        <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n            <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n            <span class=\"visually-hidden\">Next</span>\n        </button>\n    </div>\n    <div *ngIf=\"animation === 'fade'\" class=\"carousel fade mx-auto\">\n        <div *ngIf=\"indicators\" class=\"carousel-indicators\">\n            <button *ngFor=\"let image of (images$ | async); trackBy: trackByImageId; let i = index\" type=\"button\" (click)=\"currentImageIndex = i\"\n                [class.active]=\"currentImageIndex === i\" data-bs-target\n                [attr.aria-current]=\"currentImageIndex === i ? true : null\"\n                [attr.aria-label]=\"'Slide ' + i\"></button>\n        </div>\n        <div class=\"carousel-inner\">\n            <ng-container *ngFor=\"let image of (images$ | async); trackBy: trackByImageId; let i = index\">\n                <div class=\"carousel-item\" [class.active]=\"true\" @fadeInOut *ngIf=\"currentImageIndex === i\">\n                    <ng-container [ngTemplateOutlet]=\"image.itemTemplate\"></ng-container>    \n                </div>\n            </ng-container>\n        </div>\n        <button class=\"carousel-control-prev\" type=\"button\" (click)=\"previousImage()\">\n            <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\"></span>\n            <span class=\"visually-hidden\">Previous</span>\n        </button>\n        <button class=\"carousel-control-next\" type=\"button\" (click)=\"nextImage()\">\n            <span class=\"carousel-control-next-icon\" aria-hidden=\"true\"></span>\n            <span class=\"visually-hidden\">Next</span>\n        </button>\n    </div>\n</ng-container>", styles: [":host ::ng-deep .carousel{position:relative}:host ::ng-deep .carousel.pointer-event{touch-action:pan-y}:host ::ng-deep .carousel-inner{position:relative;width:100%;overflow:hidden}:host ::ng-deep .carousel-inner:after{display:block;clear:both;content:\"\"}:host ::ng-deep .carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-item{transition:none}}:host ::ng-deep .carousel-item.active,:host ::ng-deep .carousel-item-next,:host ::ng-deep .carousel-item-prev{display:block}:host ::ng-deep .carousel-item-next:not(.carousel-item-start),:host ::ng-deep .active.carousel-item-end{transform:translate(100%)}:host ::ng-deep .carousel-item-prev:not(.carousel-item-end),:host ::ng-deep .active.carousel-item-start{transform:translate(-100%)}:host ::ng-deep .carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}:host ::ng-deep .carousel-fade .carousel-item.active,:host ::ng-deep .carousel-fade .carousel-item-next.carousel-item-start,:host ::ng-deep .carousel-fade .carousel-item-prev.carousel-item-end{z-index:1;opacity:1}:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-fade .active.carousel-item-start,:host ::ng-deep .carousel-fade .active.carousel-item-end{transition:none}}:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:none;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-control-prev,:host ::ng-deep .carousel-control-next{transition:none}}:host ::ng-deep .carousel-control-prev:hover,:host ::ng-deep .carousel-control-prev:focus,:host ::ng-deep .carousel-control-next:hover,:host ::ng-deep .carousel-control-next:focus{color:#fff;text-decoration:none;outline:0;opacity:.9}:host ::ng-deep .carousel-control-prev{left:0}:host ::ng-deep .carousel-control-next{right:0}:host ::ng-deep .carousel-control-prev-icon,:host ::ng-deep .carousel-control-next-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}:host ::ng-deep .carousel-control-prev-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-control-next-icon{background-image:url(\"data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")}:host ::ng-deep .carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}:host ::ng-deep .carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion: reduce){:host ::ng-deep .carousel-indicators [data-bs-target]{transition:none}}:host ::ng-deep .carousel-indicators .active{opacity:1}:host ::ng-deep .carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}:host ::ng-deep .carousel-dark .carousel-control-prev-icon,:host ::ng-deep .carousel-dark .carousel-control-next-icon{filter:invert(1) grayscale(100)}:host ::ng-deep .carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}:host ::ng-deep .carousel-dark .carousel-caption{color:#000}:host ::ng-deep .carousel{min-height:100px;max-width:500px}:host ::ng-deep .carousel.noscript .carousel-inner{grid-template-rows:100%;grid-template-columns:100%}:host ::ng-deep .carousel.noscript .carousel-control-prev,:host ::ng-deep .carousel.noscript .carousel-control-next{display:none;z-index:10}:host ::ng-deep .carousel.noscript .carousel-item{display:block;opacity:0;transition:opacity .4s ease-in-out;grid-row:1;grid-column:1}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item{opacity:1;z-index:5}:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev,:host ::ng-deep .carousel.noscript .car-radio.noscript:checked+.carousel-item+label.carousel-control-prev+.carousel-control-next{display:flex}:host ::ng-deep .carousel.noscript .carousel-indicators{z-index:10}.wrapper{overflow:hidden}\n"] }]
        }], ctorParameters: function () { return [{ type: undefined, decorators: [{
                    type: Inject,
                    args: [PLATFORM_ID]
                }] }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { indicators: [{
                type: Input
            }], keyboardEvents: [{
                type: Input
            }], swipeContainer: [{
                type: ViewChild,
                args: ['container']
            }], images: [{
                type: ContentChildren,
                args: [forwardRef(() => BsCarouselImageDirective)]
            }], animationsDisabled: [{
                type: HostBinding,
                args: ['@.disabled']
            }], animation: [{
                type: Input
            }], onKeyPress: [{
                type: HostListener,
                args: ['document:keydown.ArrowLeft', ['$event']]
            }, {
                type: HostListener,
                args: ['document:keydown.ArrowRight', ['$event']]
            }] } });

class BsCarouselModule {
}
BsCarouselModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
BsCarouselModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: BsCarouselModule, declarations: [BsCarouselComponent,
        BsCarouselImageDirective], imports: [CommonModule,
        BsSwiperModule,
        BsNoNoscriptModule], exports: [BsCarouselComponent,
        BsCarouselImageDirective] });
BsCarouselModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsCarouselModule, imports: [CommonModule,
        BsSwiperModule,
        BsNoNoscriptModule] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: BsCarouselModule, decorators: [{
            type: NgModule,
            args: [{
                    declarations: [
                        BsCarouselComponent,
                        BsCarouselImageDirective
                    ],
                    imports: [
                        CommonModule,
                        BsSwiperModule,
                        BsNoNoscriptModule
                    ],
                    exports: [
                        BsCarouselComponent,
                        BsCarouselImageDirective
                    ]
                }]
        }] });

/**
 * Generated bundle index. Do not edit.
 */

export { BsCarouselComponent, BsCarouselImageDirective, BsCarouselModule };
//# sourceMappingURL=mintplayer-ng-bootstrap-carousel.mjs.map
