//// Carousel
/// @group components
/// @author <a href="https://github.com/simeonoff" target="_blank">Simeon Simeonoff</a>
/// @requires {mixin} bem-block
/// @requires {mixin} bem-elem
/// @requires {mixin} bem-mod
////

/// @access private
@mixin _igx-carousel-indicators-partial {
    @include b(igx-carousel-indicators) {
        @extend %igx-carousel-indicators !optional;

        @include e(indicator) {
            @extend %igx-carousel-indicator !optional;
        }

        @include m(top) {
            @extend %igx-carousel-indicators !optional;
            @extend %igx-carousel-indicators--top !optional;
        }

        @include m(bottom) {
            @extend %igx-carousel-indicators !optional;
            @extend %igx-carousel-indicators--bottom !optional;
        }
    }
}

/// @access private
@mixin _igx-carousel-navigation-partial {
    @include b(igx-nav-dot) {
        @extend %igx-nav-dot !optional;

        @include m(active) {
            @extend %igx-nav-dot--active !optional;
        }
    }

    @include b(igx-nav-arrow) {
        @extend %igx-nav-arrow !optional;

        @include m(disabled) {
            @extend %igx-nav-arrow--disabled !optional;
        }

        &:hover {
            @extend %igx-nav-arrow--hover !optional;
        }
    }
}

/// @access private
@mixin _igx-carousel-slide-partial {
    @include b(igx-slide) {
        @extend %igx-carousel-slide !optional;

        @include m(current) {
            @extend %igx-carousel-slide--current !optional;
        }

        @include m(previous) {
            @extend %igx-carousel-slide--previous !optional;
        }
    }
}

/// @access public
@include b(igx-carousel) {
    $this: bem--selector-to-string(&);
    @include register-component(str-slice($this, 2, -1));

    @extend %igx-carousel-display !optional;

    @include e(inner) {
        @extend %igx-carousel-slide-wrapper !optional;
    }

    @include e(label) {
        @extend %igx-carousel-indicators-label !optional;
    }

    @include e(arrow) {
        @extend %igx-carousel-arrow !optional;
    }

    @include e(arrow, $m: prev) {
        @extend %igx-carousel-arrow !optional;
        @extend %igx-carousel-arrow--prev !optional;
    }

    @include e(arrow, $m: next) {
        @extend %igx-carousel-arrow !optional;
        @extend %igx-carousel-arrow--next !optional;
    }

    @include _igx-carousel-indicators-partial();
    @include _igx-carousel-navigation-partial();
    @include _igx-carousel-slide-partial();
}

