@import '../../styles/var.less';

mor-textinput{
    position: relative;
    z-index: 1;
    display: block;
    width: 100%;
    box-sizing: border-box;
    vertical-align: middle;

    .setup-form();

    .input-wrap{
        position: relative;
        width: 100%;
    }

    input{
        box-sizing: border-box;
        z-index: 2;
        width: 100%;
        background: @colorFormBackground;
        border: 1px @colorFormBorder solid;
        border-radius: @borderRadius;
        color: @colorFormText !important;
        outline: none;
        -webkit-appearance: none;

        &.align-left{
            text-align: left;
        }

        &.align-center{
            text-align: center;
        }

        &.align-right{
            text-align: right;
        }

        &::placeholder{
            color: @colorFormPlaceholder;
        }

        &:hover{
            border-color: @colorFormBorderHover;
            color: @colorFormText !important;

            &::placeholder{
                color: @colorFormPlaceholderHover !important;
            }
        }
    }

    .form-body{
        position: relative;

        .cleanicon{
            position: absolute;
            display: none;
            top: 50%;
            transform: translateY(-50%);
            font-size: @fontSize*0.875;
            color: @colorFormPlaceholder;

            &:hover{
                color: @colorFormPlaceholderHover;
                cursor: pointer;
            }
        }

        &:hover .cleanicon{
            display: block;
        }
    }

    &.input-group {
        .cleanicon{
            z-index: 2;
        }

        .textinput-wrap{
            display: flex;
            vertical-align: middle;
        }

        .input-group-addon {
            color: @colorFormAddonFont;
            text-align: center;
            background-color: @colorFormAddonBg;
            border: 1px solid @colorFormBorder;
            white-space: nowrap;
            border-radius: @borderRadius;
            display: flex;
            align-items: center;
            justify-content: center;
            box-sizing: border-box;

            &:first-child {
                border-right: 0;
            }
        }

        .input-group-addon,
        input {
            vertical-align: middle;
            margin: 0;
        }

        .input-group-addon:first-child {
            border-top-right-radius: 0;
            border-bottom-right-radius: 0;
        }

        .input-wrap + .input-group-addon {
            border-top-left-radius: 0;
            border-bottom-left-radius: 0;
            border-left: 0;
        }

        .input-group-addon + .input-wrap.has-append > input {
            border-top-right-radius: 0;
            border-bottom-right-radius: 0;
        }

        .input-group-addon + .input-wrap.has-prepend > input {
            border-top-left-radius: 0;
            border-bottom-left-radius: 0;
        }

        &.input-group-prepend-inline{
            .input-group-addon:first-child{
                background: @colorWhite;
                padding-right: 0;
            }

            .input-group-addon + .input-wrap > input{
                border-left: 0;
            }

            &.input-focus{
                .input-group-addon:first-child{
                    border-color: @colorFormBorderFocus;
                }
            }
        }

        &.input-group-append-inline{
            .input-group-addon:nth-child(3){
                background: @colorWhite;
                padding-left: 0;
            }

            input.has-append {
                border-right: 0;
            }

            &.input-focus{
                .input-group-addon:nth-child(3){
                    border-color: @colorFormBorderFocus;
                }
            }
        }
    }

    &.input-group-prepend-inline.input-focus,
    &.input-group-append-inline.input-focus{
        .textinput-wrap{
            .setup-form-focus-only-box-shadow();
            border-radius: @borderRadius;
        }

        input{
            .setup-form-focus-only-border();
        }
    }

    &:not(.input-group-prepend-inline):not(.input-group-append-inline){
        input:focus{
            .setup-form-focus();
            color: @colorFormTextFocus !important;
        }
    }

    &.si-xs{
        > .form-name{
            font-size: @fontSize*0.8125;
        }

        input{
            font-size: @formInputFontSizeXs;
            height: @formHeightXs;
            line-height: @formHeightXs;
            padding: 0 1.625em 0 0.625em;
        }

        .cleanicon{
            right: 0.3em;
        }

        &.input-group {
            .input-group-addon {
                padding: @fontSize*0.3125 @fontSize*0.625;
                font-size: @formInputFontSizeXs;
                height: @formHeightXs;

                > .mo-icon,
                > .iconfont,
                > i{
                    font-size: @formInputFontSizeXs;
                }
            }
        }
    }

    &.si-s{
        > .form-name{
            font-size: @fontSize*0.875;
        }

        input{
            font-size: @formInputFontSizeS;
            height: @formHeightS;
            line-height: @formHeightS;
            padding: 0 1.75em 0 0.75em;
        }

        .cleanicon{
            right: 0.5em;
        }

        &.input-group {
            .input-group-addon {
                padding: @fontSize*0.375 @fontSize*0.75;
                font-size: @formInputFontSizeS;
                height: @formHeightS;

                > .mo-icon,
                > .iconfont,
                > i{
                    font-size: @formInputFontSizeS;
                }
            }
        }
    }

    &.si-m{
        > .form-name{
            font-size: @fontSize;
        }

        input{
            font-size: @formInputFontSize;
            height: @formHeight;
            line-height: @formHeight;
            padding: 0 2em 0 1em;
        }

        .cleanicon{
            right: 0.6em;
        }

        &.input-group {
            .input-group-addon {
                padding: @fontSize*0.375 @fontSize*0.75;
                font-size: @formInputFontSize;
                height: @formHeight;

                > .mo-icon,
                > .iconfont,
                > i{
                    font-size: @formInputFontSize;
                }
            }
        }
    }

    &.st-normal{}

    &.st-disabled,
    &.st-readonly{
        input[disabled] {
            border-color: @colorFormBorderDisable;
            background-color: @colorFormBackgroundDisable;
            -webkit-user-select: none;
            cursor: not-allowed !important;
            color: @colorFormTextDisable !important;
        }

        &.input-group-prepend-inline .input-group-addon:first-child,
        &.input-group-append-inline .input-group-addon:nth-child(3){
            border-color: @colorFormBorderDisable;
            background-color: @colorFormBackgroundDisable;
            -webkit-user-select: none;
            cursor: not-allowed !important;
        }
    }

    // default status
    &{
        .st-normal;
        .si-m;
    }
}
