// /**
//  * Copyright © Magento, Inc. All rights reserved.
//  * See COPYING.txt for license details.
//  */

//
//  Components -> Single File Uploader
//  _____________________________________________

//
//  Variables
//  ---------------------------------------------

@file-uploader-preview__border-color: @color-lighter-grayish;
@file-uploader-preview__background-color: @color-white;
@file-uploader-preview-focus__color: @color-blue2;

@file-uploader-document-icon__color: @color-gray80;
@file-uploader-document-icon__size: 7rem;
@file-uploader-document-icon__z-index: @data-grid-file-uploader-image__z-index + 1;

@file-uploader-video-icon__color: @color-gray80;
@file-uploader-video-icon__size: 4rem;
@file-uploader-video-icon__z-index: @data-grid-file-uploader-image__z-index + 1;

@file-uploader-placeholder-icon__color: @color-gray80;
@file-uploader-placeholder-icon__z-index: @data-grid-file-uploader-image__z-index + 1;

@file-uploader-delete-icon__color: @color-brownie;
@file-uploader-delete-icon__hover__color: @color-brownie-vanilla;
@file-uploader-delete-icon__font-size: 2rem;

@file-uploader-muted-text__color: @color-gray62;

@file-uploader-preview__width: 150px;
@file-uploader-preview__height: @file-uploader-preview__width;
@file-uploader-preview__opacity: .7;

@file-uploader-spinner-dimensions: 15px;

@file-uploader-dragover__background: @color-gray83;
@file-uploader-dragover-focus__color: @color-blue2;

//  Grid uploader

@data-grid-file-uploader-image__size: 5rem;
@data-grid-file-uploader-image__z-index: 1;

@data-grid-file-uploader-menu-button__width: 2rem;

@data-grid-file-uploader-upload-icon__color: @color-darker-gray;
@data-grid-file-uploader-upload-icon__hover__color: @color-very-dark-gray;
@data-grid-file-uploader-upload-icon__line-height: 48px;

@data-grid-file-uploader-wrapper__size: @data-grid-file-uploader-image__size + 2rem;

//
//  Single file uploader
//  ---------------------------------------------

.file-uploader-area {
    position: relative;

    input[type='file'] {
        cursor: pointer;
        opacity: 0;
        overflow: hidden;
        position: absolute;
        visibility: hidden;
        width: 0;

        &:focus {
            + .file-uploader-button {
                box-shadow: 0 0 0 1px @file-uploader-preview-focus__color;
            }
        }

        &:disabled {
            + .file-uploader-button {
                cursor: default;
                opacity: .5;
                pointer-events: none;
            }
        }
    }
}

.file-uploader-summary {
    display: inline-block;
    vertical-align: top;
}

.file-uploader-button {
    cursor: pointer;
    display: inline-block;

    &._is-dragover {
        background: @file-uploader-dragover__background;
        border: 1px solid @file-uploader-preview-focus__color;
    }
}

.file-uploader-spinner {
    background-image: url('@{baseDir}images/loader-1.gif');
    background-position: 50%;
    background-repeat: no-repeat;
    background-size: @file-uploader-spinner-dimensions;
    display: none;
    height: 30px;
    margin-left: @indent__s;
    vertical-align: top;
    width: @file-uploader-spinner-dimensions;
}

.file-uploader-preview {
    .action-remove {
        &:extend(.abs-action-reset all);
        .lib-icon-font (
        @icon-delete__content,
        @_icon-font: @icons-admin__font-name,
        @_icon-font-size: @file-uploader-delete-icon__font-size,
        @_icon-font-color: @file-uploader-delete-icon__color,
        @_icon-font-color-hover: @file-uploader-delete-icon__hover__color,
        @_icon-font-text-hide: true,
        @_icon-font-display: block
        );
        bottom: 4px;
        cursor: pointer;
        display: block;
        height: 27px;
        left: 6px;
        position: absolute;
        text-decoration: none;
        width: 25px;
        z-index: 2;
    }

    &:hover {
        .preview-image img,
        .preview-link:before {
            opacity: @file-uploader-preview__opacity;
        }
    }

    .preview-link {
        display: block;
        height: 100%;
    }

    .preview-image img {
        bottom: 0;
        left: 0;
        margin: auto;
        max-height: 100%;
        max-width: 100%;
        position: absolute;
        right: 0;
        top: 0;
        z-index: 1;
    }

    .preview-video {
        .lib-icon-font(
            @icon-video__content,
            @_icon-font: @icons-admin__font-name,
            @_icon-font-size: @file-uploader-video-icon__size,
            @_icon-font-color: @file-uploader-video-icon__color,
            @_icon-font-color-hover: @file-uploader-video-icon__color
        );

        &:before {
            left: 0;
            margin-top: -@file-uploader-video-icon__size / 2;
            position: absolute;
            right: 0;
            top: 50%;
            z-index: @file-uploader-video-icon__z-index;
        }
    }

    .preview-document {
        .lib-icon-font(
            @icon-document__content,
            @_icon-font: @icons-admin__font-name,
            @_icon-font-size: @file-uploader-document-icon__size,
            @_icon-font-color: @file-uploader-document-icon__color,
            @_icon-font-color-hover: @file-uploader-document-icon__color
        );

        &:before {
            left: 0;
            margin-top: -@file-uploader-document-icon__size / 2;
            position: absolute;
            right: 0;
            top: 50%;
            z-index: @file-uploader-document-icon__z-index;
        }
    }
}

.file-uploader-preview,
.file-uploader-placeholder {
    background: @file-uploader-preview__background-color;
    border: 1px solid @file-uploader-preview__border-color;
    box-sizing: border-box;
    cursor: pointer;
    display: block;
    height: @file-uploader-preview__height;
    line-height: 1;
    margin: @indent__s @indent__m @indent__s 0;
    overflow: hidden;
    position: relative;
    width: @file-uploader-preview__width;
}

.file-uploader {
    &._loading {
        .file-uploader-spinner {
            display: inline-block;
        }
    }

    .admin__field-note,
    .admin__field-error {
        margin-bottom: @indent__s;
    }

    .file-uploader-filename {
        .lib-text-overflow();
        max-width: @file-uploader-preview__width;
        word-break: break-all;

        &:first-child {
            margin-bottom: @indent__s;
        }
    }

    .file-uploader-meta {
        color: @file-uploader-muted-text__color;
    }

    .admin__field-fallback-reset {
        margin-left: @indent__s;
    }

    ._keyfocus & .action-remove {
        &:focus {
            box-shadow: 0 0 0 1px @file-uploader-preview-focus__color;
        }
    }
}

//  Placeholder for multiple uploader
.file-uploader-placeholder {
    &.placeholder-document {
        .lib-icon-font(
            @icon-document__content,
            @_icon-font: @icons-admin__font-name,
            @_icon-font-size: 5rem,
            @_icon-font-color: @file-uploader-placeholder-icon__color,
            @_icon-font-color-hover: @file-uploader-placeholder-icon__color
        );

        &:before {
            left: 0;
            position: absolute;
            right: 0;
            top: 20px;
            z-index: @file-uploader-placeholder-icon__z-index;
        }
    }

    &.placeholder-image {
        .lib-icon-font(
            @icon-camera__content,
            @_icon-font: @icons-admin__font-name,
            @_icon-font-size: 5rem,
            @_icon-font-color: @file-uploader-placeholder-icon__color,
            @_icon-font-color-hover: @file-uploader-placeholder-icon__color
        );

        &:before {
            left: 0;
            position: absolute;
            right: 0;
            top: 20px;
            z-index: @file-uploader-placeholder-icon__z-index;
        }
    }

    &.placeholder-video {
        .lib-icon-font(
            @icon-video__content,
            @_icon-font: @icons-admin__font-name,
            @_icon-font-size: 3rem,
            @_icon-font-color: @file-uploader-placeholder-icon__color,
            @_icon-font-color-hover: @file-uploader-placeholder-icon__color
        );

        &:before {
            left: 0;
            position: absolute;
            right: 0;
            top: 30px;
            z-index: @file-uploader-placeholder-icon__z-index;
        }
    }
}

.file-uploader-placeholder-text {
    bottom: 0;
    color: @color-blue-dodger;
    font-size: 1.1rem;
    left: 0;
    line-height: @line-height__base;
    margin-bottom: 15%;
    padding: 0 @indent__base;
    position: absolute;
    right: 0;
    text-align: center;
}

//
//  Grid image uploader
//  ---------------------------------------------

.data-grid-file-uploader {
    min-width: @data-grid-file-uploader-wrapper__size;

    &._loading {
        .file-uploader-spinner {
            display: block;
        }

        .file-uploader-button {
            &:before {
                display: none;
            }
        }
    }

    .file-uploader-image {
        background: transparent;
        bottom: 0;
        left: 0;
        margin: auto;
        max-height: 100%;
        max-width: 100%;
        position: absolute;
        right: 0;
        top: 0;
        z-index: @data-grid-file-uploader-image__z-index;

        + .file-uploader-area {
            .file-uploader-button {
                &:before {
                    display: none;
                }
            }
        }
    }

    .file-uploader-area {
        z-index: @data-grid-file-uploader-image__z-index + 1;
    }

    .file-uploader-spinner {
        height: 100%;
        margin: 0;
        position: absolute;
        top: 0;
        width: 100%;
    }

    .file-uploader-button {
        display: block;
        height: @data-grid-file-uploader-upload-icon__line-height;
        text-align: center;

        .lib-icon-font (
            @icon-plus__content,
            @_icon-font: @icons-admin__font-name,
            @_icon-font-size: 1.3rem,
            @_icon-font-line-height: @data-grid-file-uploader-upload-icon__line-height,
            @_icon-font-color: @data-grid-file-uploader-upload-icon__color,
            @_icon-font-color-hover: @data-grid-file-uploader-upload-icon__hover__color,
            @_icon-font-text-hide: true,
            @_icon-font-display: block
        );
    }

    .action-select-wrap {
        float: left;

        .action-select {
            border: 1px solid @file-uploader-preview__border-color;
            display: block;
            height: @data-grid-file-uploader-image__size;
            margin-left: -1px;
            padding: 0;
            width: @data-grid-file-uploader-menu-button__width;

            &:after {
                border-color: @data-grid-file-uploader-upload-icon__color transparent transparent transparent;
                left: 50%;
                margin: 0 0 0 -5px;
            }

            &:hover {
                &:after {
                    border-color: @data-grid-file-uploader-upload-icon__hover__color transparent transparent transparent;
                }
            }

            > span {
                display: none;
            }
        }

        .action-menu {
            left: 4rem;
            right: auto;
            z-index: @data-grid-file-uploader-image__z-index + 1;
        }
    }
}

.data-grid-file-uploader-inner {
    border: 1px solid @file-uploader-preview__border-color;
    float: left;
    height: @data-grid-file-uploader-image__size;
    position: relative;
    width: @data-grid-file-uploader-image__size;
}