// 箭头
// ----------------------------------------



@mixin step-item-state-rtl(
    $shape: 'circle',
    $background: $color-white
) {
    #{$step-prefix}-item-node-dot {
        right: 50%;
        left: auto;
    }

    @if ($shape == 'arrow') {
        background: $background;

        &:before {
            border: $step-arrow-item-border-width solid $background;
            border-right-color: transparent;
        }

        &:after {
            border-right-color: $background;
            border-left-color: transparent;
        }
    }
}

@mixin state-node-size-rtl($type: 'hor', $shape: 'circle', $node-size: $s-8) {
    @if ($type == 'hor') {
        @if ($shape == 'circle') {
            & > #{$step-prefix}-item-body {
                right: - ($step-circle-item-body-width - $node-size - $step-circle-item-node-padding * 2) / 2;
                left: auto;
            }
        }
        @if ($shape == 'dot') {
            & > #{$step-prefix}-item-body {
                right: - ($step-dot-item-body-width - $node-size - $step-dot-item-dot-padding * 2) / 2;
                left: auto;
            }
        }
    }

    @if ($type == 'ver') {
        @if ($shape == 'circle') {

            & > #{$step-prefix}-item-body {
                right: $node-size / 2;
                left: auto;
                margin-right: $step-circle-item-node-padding;
                margin-left: 0;
                & > #{$step-prefix}-item-title {
                    text-align: right;
                    @include reset-font;
                }
                & > #{$step-prefix}-item-content {
                    text-align: right;
                }
            }
        }

        @if ($shape == 'dot') {
            & > #{$step-prefix}-item-body {
                right: $node-size / 2;
                left: auto;
                margin-right: $step-dot-item-dot-padding;
                margin-left: 0;
                & > #{$step-prefix}-item-title {
                    text-align: right;
                    @include reset-font;
                }
                & > #{$step-prefix}-item-content {
                    text-align: right;
                }
            }
        }
    }
}


@mixin label-placement-rtl($node-size: $s-8) {

    #{$step-prefix}-item-body {
        left: auto;
        right: 0;
        text-align: right;
        #{$step-prefix}-item-title {
            padding-left: $step-circle-item-node-padding;
            padding-right: 0;
        }
    }

    #{$step-prefix}-item-tail {
        left: 0;
        right: auto;
    }
}


#{$step-prefix}-horizontal[dir="rtl"] {
    & > #{$step-prefix}-item {
        text-align: right;
    }
}

#{$step-prefix}-arrow[dir="rtl"] {
    #{$step-prefix}-item {
        @include step-item-size(
            $step-arrow-item-height,
            auto,
            $step-arrow-item-height/8,
            $step-arrow-item-height/2
        );

        &:before {
            right: -$step-arrow-item-border-width;
            left: auto;
            border: $step-arrow-item-border-width solid transparent;
            border-right-color: transparent;
        }

        &:after {
            left: -$step-arrow-item-border-width * 2;
            right: auto;
            border-top: $step-arrow-item-border-width solid transparent;
            border-bottom: $step-arrow-item-border-width solid transparent;
            border-right: $step-arrow-item-border-width solid transparent;
        }
    }

    & > #{$step-prefix}-item-wait {
        @include step-item-state-rtl(
            'arrow',
            $step-arrow-item-wait-background
        );
    }

    & > #{$step-prefix}-item-process {
        @include step-item-state-rtl(
            'arrow',
            $step-arrow-item-process-background
        );
    }

    & > #{$step-prefix}-item-finish {
        @include step-item-state-rtl(
            'arrow',
            $step-arrow-item-finish-background
        );
    }

    #{$step-prefix}-item-disabled {
        @include step-item-state-rtl(
            'arrow',
            $step-arrow-item-disabled-background
        );
    }

    #{$step-prefix}-item-first {
        margin-right: 0;
    }

    #{$step-prefix}-item-last {
        margin-left: 0;
    }
}


// 圆形
// ----------------------------------------

#{$step-prefix}-circle[dir="rtl"] {

    & > #{$step-prefix}-item-wait {
        @include step-item-state-rtl(
            'circle',
            $step-circle-item-node-wait-background
        );
    }

    & > #{$step-prefix}-item-process {
        @include step-item-state-rtl(
            'circle',
            $step-circle-item-node-process-background
        );
    }

    & > #{$step-prefix}-item-finish {
        @include step-item-state-rtl(
            'circle',
            $step-circle-item-node-finish-background
        );
    }

    #{$step-prefix}-item-disabled {
        @include step-item-state-rtl(
            'circle',
            $step-circle-item-node-disabled-background
        );
    }


    // 圆形 水平
    // ----------------------------------------
    &#{$step-prefix}-horizontal {

        & > #{$step-prefix}-item-wait {
            @include state-node-size-rtl('hor', 'circle');
        }
        & > #{$step-prefix}-item-process {
            @include state-node-size-rtl('hor', 'circle', $step-circle-item-node-process-size);
        }
        & > #{$step-prefix}-item-finish {
            @include state-node-size-rtl('hor', 'circle');
        }
        & > #{$step-prefix}-item-disabled {
            @include state-node-size-rtl('hor', 'circle');
        }
    }

    &#{$step-prefix}-horizontal#{$step-prefix}-label-horizontal {
        & > #{$step-prefix}-item-wait {
            @include label-placement-rtl();
        }
        & > #{$step-prefix}-item-process {
            @include label-placement-rtl($step-circle-item-node-process-size);
        }
        & > #{$step-prefix}-item-finish {
            @include label-placement-rtl();
        }
        & > #{$step-prefix}-item-disabled {
            @include label-placement-rtl();
        }
    }

    // 圆形 垂直
    // ----------------------------------------
    &#{$step-prefix}-vertical {

        & > #{$step-prefix}-item-wait {
            @include state-node-size-rtl('ver', 'circle');
        }
        & > #{$step-prefix}-item-process {
            @include state-node-size-rtl('ver', 'circle', $step-circle-item-node-process-size);
        }
        & > #{$step-prefix}-item-finish {
            @include state-node-size-rtl('ver', 'circle');
        }
        & > #{$step-prefix}-item-disabled {
            @include state-node-size-rtl('ver', 'circle');
        }
    }
}


// 点型
// ----------------------------------------


#{$step-prefix}-dot[dir="rtl"] {
    & > #{$step-prefix}-item-wait {
        @include step-item-state-rtl(
            'dot',
            $step-dot-item-node-wait-background
        );
    }

    & > #{$step-prefix}-item-process {
        @include step-item-state-rtl(
            'dot',
            $step-dot-item-node-process-background
        );
    }

    & > #{$step-prefix}-item-finish {
        @include step-item-state-rtl(
            'dot',
            $step-dot-item-node-finish-background
        );
    }

    #{$step-prefix}-item-disabled {
        @include step-item-state-rtl(
            'dot',
            $step-dot-item-node-disabled-background
        );
    }

    // 点型 水平
    // ----------------------------------------
    &#{$step-prefix}-horizontal {
        & > #{$step-prefix}-item-wait {
            @include state-node-size-rtl('hor', 'dot', $s-3);
        }
        & > #{$step-prefix}-item-process {
            @include state-node-size-rtl('hor', 'dot', $step-dot-item-dot-process-size);
        }
        & > #{$step-prefix}-item-finish {
            @include state-node-size-rtl('hor', 'dot', $s-3);
        }
        & > #{$step-prefix}-item-disabled {
            @include state-node-size-rtl('hor', 'dot', $s-3);
        }
    }

    // 点型 垂直
    // ----------------------------------------
    &#{$step-prefix}-vertical {
        padding: 0 4px 0 0;
        & > #{$step-prefix}-item-wait {
            @include state-node-size-rtl('ver', 'dot', $s-3);
        }
        & > #{$step-prefix}-item-process {
            @include state-node-size-rtl('ver', 'dot', $step-dot-item-dot-process-size);
        }
        & > #{$step-prefix}-item-finish {
            @include state-node-size-rtl('ver', 'dot', $s-3);
        }
        & > #{$step-prefix}-item-disabled {
            @include state-node-size-rtl('ver', 'dot', $s-3);
        }
    }
}
