file-input.component.scss 2.63 KB
/**
 * Copyright © 2016-2024 The Thingsboard Authors
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
@import "../../../scss/constants";

$previewSize: 100px !default;

:host {

  .tb-container {
    margin-top: 0;
    padding: 0 0 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
    label.tb-title {
      display: flex;
      padding-bottom: 0;
    }
  }

  .tb-file-select-container {
    position: relative;
    width: 100%;
    height: $previewSize;
  }

  .tb-file-preview {
    width: auto;
    max-width: $previewSize;
    height: auto;
    max-height: $previewSize;
  }

  .tb-file-clear-container {
    position: relative;
    float: right;
    width: 48px;
    height: $previewSize;
  }

  .tb-file-clear-btn {
    position: absolute !important;
    top: 50%;
    transform: translate(0%, -50%) !important;
  }

  .file-input {
    display: none;
  }

  .tb-flow-drop {
    position: relative;
    height: $previewSize;
    overflow: hidden;
    border: 2px dashed rgba(0, 0, 0, 0.2);
    border-radius: 4px;
    box-sizing: border-box;

    .upload-label {
      width: 100%;
      height: 100%;
      padding: 0 16px;
      display: flex;
      flex-direction: row;
      justify-content: center;
      align-items: center;
      font-size: 16px;
      color: rgba(0, 0, 0, 0.54);
      text-align: center;
      .mat-icon {
        margin-right: 17px;
        color: rgba(0,0,0,0.12);
      }
    }
  }

  .tb-file-info-container {
    display: flex;
    flex-direction: column;
    gap: 8px;
    font-size: 13px;
    font-style: normal;
    line-height: 16px;
    letter-spacing: normal;
  }

  .tb-file-name {
    color: rgba(0, 0, 0, 0.54);
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .tb-file-hint {
    color: rgba(0, 0, 0, 0.38);
    font-weight: 400;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

:host ::ng-deep {
  button.mat-mdc-button.mat-mdc-button-base.browse-file {
    padding: 0;
    min-width: 0;
    height: 24px;
    font-size: 16px;
    label {
      display: block;
      cursor: pointer;
      padding: 0 8px;
    }
  }

  .pointer-event {
    pointer-events: auto;
  }
}