@charset "utf-8";
@import "../element/yo-btn";

// 定义btnbar的基础构造
@mixin _btnbar {
    display: inline-block;
    vertical-align: middle;
    > .yo-btn {
        float: left;
        &:not(:first-child) {
            margin-left: -.01rem !important;
        }
        &::after {
            z-index: auto;
        }
        &:first-child {
            &,
            &::after {
                // 如果按钮有圆角,那么去掉第一个按钮的右侧圆角
                @if map-get($btn, radius) != 0 {
                    border-top-right-radius: 0;
                    border-bottom-right-radius: 0;
                }
            }
            // 如果工具栏定义了圆角,那么不管按钮有没有左侧圆角,都重绘
            @if map-get($btnbar, radius) != null and map-get($btnbar, radius) != map-get($btn, radius) {
                border-top-left-radius: map-get($btnbar, radius);
                border-bottom-left-radius: map-get($btnbar, radius);
                &::after {
                    @include responsive(retina1x) {
                        border-top-left-radius: map-get($btnbar, radius);
                        border-bottom-left-radius: map-get($btnbar, radius);
                    }
                    @include responsive(retina2x) {
                        border-top-left-radius: map-get($btnbar, radius) * 2;
                        border-bottom-left-radius: map-get($btnbar, radius) * 2;
                    }
                    @include responsive(retina3x) {
                        border-top-left-radius: map-get($btnbar, radius) * 3;
                        border-bottom-left-radius: map-get($btnbar, radius) * 3;
                    }
                }
            }
        }
        &:last-child {
            &,
            &::after {
                // 如果按钮有圆角,那么去掉最后一个按钮的左侧圆角
                @if map-get($btn, radius) != 0 {
                    border-top-left-radius: 0;
                    border-bottom-left-radius: 0;
                }
            }
            // 如果工具栏定义了圆角,那么不管按钮有没有右侧圆角,都重绘
            @if map-get($btnbar, radius) != null and map-get($btnbar, radius) != map-get($btn, radius) {
                border-top-right-radius: map-get($btnbar, radius);
                border-bottom-right-radius: map-get($btnbar, radius);
                &::after {
                    @include responsive(retina1x) {
                        border-top-right-radius: map-get($btnbar, radius);
                        border-bottom-right-radius: map-get($btnbar, radius);
                    }
                    @include responsive(retina2x) {
                        border-top-right-radius: map-get($btnbar, radius) * 2;
                        border-bottom-right-radius: map-get($btnbar, radius) * 2;
                    }
                    @include responsive(retina3x) {
                        border-top-right-radius: map-get($btnbar, radius) * 3;
                        border-bottom-right-radius: map-get($btnbar, radius) * 3;
                    }
                }
            }
        }
        &:not(:first-child):not(:last-child){
            &,
            &::after {
                // 如果按钮有圆角,那么清除中间所有按钮的圆角
                @if map-get($btn, radius) != 0 {
                    border-radius: 0;
                }
            }
        }
    }
}

/**
 * @module fragment
 * @method yo-btnbar
 * @version 1.0.0
 * @description 构造按钮组的自定义使用方法
 * @demo http://doyoe.github.io/Yo/demo/fragment/yo-btnbar.html
 * @param {String} $name 定义扩展名称 {add:1.0.0}
 * @param {Length} $radius 圆角半径长度 {add:1.0.0}
 */

@mixin yo-btnbar(
    $name: default,
    $radius: default) {
    // 区别是否新增实例还是修改本身
    $name: if($name == default, "", "-#{$name}");
    // 如果值为default,则取config的定义
    @if $radius == default {
        $radius: map-get($btnbar, radius);
    }
    .yo-btnbar#{$name} {
        > .yo-btn {
            // 如果工具栏定义了圆角且不等于config定义,则重绘圆角半径
            @if $radius != null and $radius != map-get($btnbar, radius) {
                &:first-child {
                    border-top-left-radius: $radius;
                    border-bottom-left-radius: $radius;
                    &::after {
                        @include responsive(retina1x) {
                            border-top-left-radius: $radius;
                            border-bottom-left-radius: $radius;
                        }
                        @include responsive(retina2x) {
                            border-top-left-radius: $radius * 2;
                            border-bottom-left-radius: $radius * 2;
                        }
                        @include responsive(retina3x) {
                            border-top-left-radius: $radius * 3;
                            border-bottom-left-radius: $radius * 3;
                        }
                    }
                }
                &:last-child {
                    border-top-right-radius: $radius;
                    border-bottom-right-radius: $radius;
                    &::after {
                        @include responsive(retina1x) {
                            border-top-right-radius: $radius;
                            border-bottom-right-radius: $radius;
                        }
                        @include responsive(retina2x) {
                            border-top-right-radius: $radius * 2;
                            border-bottom-right-radius: $radius * 2;
                        }
                        @include responsive(retina3x) {
                            border-top-right-radius: $radius * 3;
                            border-bottom-right-radius: $radius * 3;
                        }
                    }
                }
            }
        }
        // 增量扩展
        @content;
    }
}

// 调用本文件时载入btnbar基础构造
.yo-btnbar {
    @include _btnbar;
}