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