blob: ac89f3809d0e089793e3ad28cb3720e264e05d10 [file] [log] [blame]
/**
* 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;
}
}