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

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

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

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

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