/**
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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 '../../main';
 .indicator() {
  height: 20px;
  opacity: 1;
  width: 20px;
 }

@keyframes dash {
  0% {
    stroke-dashoffset: 1000;
  }
  100% {
    stroke-dashoffset: 0;
  }
}

@keyframes dash-check {
  0% {
    stroke-dashoffset: -100;
  }
  100% {
    stroke-dashoffset: 900;
  }
}

@keyframes rotate {
  100% {
    -webkit-transform: rotate(360deg);
            transform: rotate(360deg);
  }
}
@keyframes dash-loading {
  0% {
    stroke-dasharray: 1,200;
    stroke-dashoffset: 0;
  }
  50% {
    stroke-dasharray: 89,200;
    stroke-dashoffset: -35;
  }
  100% {
    stroke-dasharray: 89,200;
    stroke-dashoffset: -124;
  }
}

:host {
  height: 80vh;
  .data-avaibility {
    align-items: center;
    align-content: center;
    display: flex;
    justify-content: center;
    margin: 25vh 0 0 0;
    width: 100vw;
    .state-item {
      align-items: center;
      display: flex;
      flex-direction: column;
      margin: 0 10px;
      width: 9em;
      .label {
        color: @base-font-color;
        font-size: 13px;
        margin: 0 0 .5em 0;
      }
      .state-indicator {
        .path {
          stroke-dasharray: 1000;
          stroke-dashoffset: 0;
          &.circle {
            animation: dash .9s ease-in-out;
          }
          &.line {
            stroke-dashoffset: 1000;
            animation: dash .9s .35s ease-in-out forwards;
          }
          &.check {
            stroke-dashoffset: -100;
            animation: dash-check .9s .35s ease-in-out forwards;
          }
        }
        .circular-loader {
          animation: rotate 2s linear infinite;
          height: 20px;
          transform-origin: center center;
          width: 20px;
        }
        .loading-path {
          stroke: @form-success-color;
          stroke-dasharray: 150,200;
          stroke-dashoffset: -10;
          -webkit-animation: dash-loading 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
                  animation: dash-loading 1.5s ease-in-out infinite, color 6s ease-in-out infinite;
          stroke-linecap: round;
        }
      }
      &.available .state-indicator {
        .state-available {
          stroke: @form-success-color;
          .indicator();
        }
      }
      &.error .state-indicator {
        .state-error {
          stroke: @form-error-color;
          .indicator();
        }
      }
      &.not-available .state-indicator {
        .state-not-available {
          color: @unknown-color;
          .indicator();
        }
      }
    }
  }
  .data-avaibility-progress {
    width: 100vw;
    .progress-bar {
      background-color: #fff;
      box-shadow: 0 0 8px rgba(0,0,0,.6);
      height: 4px;
      width: 100%;
      .progress-bar-indicator {
        height: 100%;
        width: 0;
        background: @form-success-color;
        transition: width 30ms ease-in-out;
      }
    }
  }
  .data-avaibility-error {
    color: @form-error-color;
    height: 2em;
    line-height: 2em;
    text-align: center;
    width: 100vw;

  }
}
