1fb726d48Sopenharmony_ci/* 2fb726d48Sopenharmony_ci * Copyright (C) 2022 Huawei Device Co., Ltd. 3fb726d48Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 4fb726d48Sopenharmony_ci * you may not use this file except in compliance with the License. 5fb726d48Sopenharmony_ci * You may obtain a copy of the License at 6fb726d48Sopenharmony_ci * 7fb726d48Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 8fb726d48Sopenharmony_ci * 9fb726d48Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 10fb726d48Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 11fb726d48Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12fb726d48Sopenharmony_ci * See the License for the specific language governing permissions and 13fb726d48Sopenharmony_ci * limitations under the License. 14fb726d48Sopenharmony_ci */ 15fb726d48Sopenharmony_ci 16fb726d48Sopenharmony_ciimport { BaseElement, element } from '../BaseElement'; 17fb726d48Sopenharmony_ci 18fb726d48Sopenharmony_ci@element('lit-progress-bar') 19fb726d48Sopenharmony_ciexport class LitProgressBar extends BaseElement { 20fb726d48Sopenharmony_ci static get observedAttributes(): string[] { 21fb726d48Sopenharmony_ci return ['loading']; 22fb726d48Sopenharmony_ci } 23fb726d48Sopenharmony_ci 24fb726d48Sopenharmony_ci get loading(): boolean { 25fb726d48Sopenharmony_ci return this.hasAttribute('loading'); 26fb726d48Sopenharmony_ci } 27fb726d48Sopenharmony_ci 28fb726d48Sopenharmony_ci set loading(value: boolean) { 29fb726d48Sopenharmony_ci if (value) { 30fb726d48Sopenharmony_ci this.setAttribute('loading', ''); 31fb726d48Sopenharmony_ci } else { 32fb726d48Sopenharmony_ci this.removeAttribute('loading'); 33fb726d48Sopenharmony_ci } 34fb726d48Sopenharmony_ci } 35fb726d48Sopenharmony_ci 36fb726d48Sopenharmony_ci initElements(): void {} 37fb726d48Sopenharmony_ci 38fb726d48Sopenharmony_ci initHtml(): string { 39fb726d48Sopenharmony_ci return ` 40fb726d48Sopenharmony_ci <style> 41fb726d48Sopenharmony_ci :host{ 42fb726d48Sopenharmony_ci width: 100%; 43fb726d48Sopenharmony_ci height: 1px; 44fb726d48Sopenharmony_ci display: flex; 45fb726d48Sopenharmony_ci position: absolute; 46fb726d48Sopenharmony_ci overflow: hidden; 47fb726d48Sopenharmony_ci } 48fb726d48Sopenharmony_ci .root{ 49fb726d48Sopenharmony_ci width: 100%; 50fb726d48Sopenharmony_ci height: 100%; 51fb726d48Sopenharmony_ci position:relative; 52fb726d48Sopenharmony_ci } 53fb726d48Sopenharmony_ci :host([loading]) .track1{ 54fb726d48Sopenharmony_ci position: absolute; 55fb726d48Sopenharmony_ci width: 30%; 56fb726d48Sopenharmony_ci height: 100%; 57fb726d48Sopenharmony_ci background-image: linear-gradient(to right,transparent, #535da6, #535da6, #535da6, #535da6,#535da6,transparent); 58fb726d48Sopenharmony_ci left: -30%; 59fb726d48Sopenharmony_ci animation: anim 1.7s linear 0s infinite; 60fb726d48Sopenharmony_ci } 61fb726d48Sopenharmony_ci :host([loading]) .track2{ 62fb726d48Sopenharmony_ci position: absolute; 63fb726d48Sopenharmony_ci width: 30%; 64fb726d48Sopenharmony_ci height: 100%; 65fb726d48Sopenharmony_ci background-image: linear-gradient(to right,transparent, #535da6, #535da6, #535da6, #535da6,#535da6,transparent); 66fb726d48Sopenharmony_ci left: -30%; 67fb726d48Sopenharmony_ci animation: anim 1.7s ease-in-out 0.7s infinite; 68fb726d48Sopenharmony_ci } 69fb726d48Sopenharmony_ci @keyframes anim { 70fb726d48Sopenharmony_ci 0% { 71fb726d48Sopenharmony_ci left:-30%; 72fb726d48Sopenharmony_ci } 73fb726d48Sopenharmony_ci 74fb726d48Sopenharmony_ci 100% { 75fb726d48Sopenharmony_ci left:100%; 76fb726d48Sopenharmony_ci } 77fb726d48Sopenharmony_ci } 78fb726d48Sopenharmony_ci 79fb726d48Sopenharmony_ci </style> 80fb726d48Sopenharmony_ci <div class="root"> 81fb726d48Sopenharmony_ci <div class="track1"></div> 82fb726d48Sopenharmony_ci <div class="track2"></div> 83fb726d48Sopenharmony_ci </div> 84fb726d48Sopenharmony_ci `; 85fb726d48Sopenharmony_ci } 86fb726d48Sopenharmony_ci} 87