File size: 2,251 Bytes
32361b4
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
progress_html = '''

<div class="loader-container">

  <div class="loader"></div>

  <div class="progress-container">

    <progress value="*number*" max="100"></progress>

  </div>

  <span>*text*</span>

</div>

'''

css = '''

.loader-container {

  display: flex; /* Use flex to align items horizontally */

  align-items: center; /* Center items vertically within the container */

  white-space: nowrap; /* Prevent line breaks within the container */

}



.loader {

  border: 8px solid #f3f3f3; /* Light grey */

  border-top: 8px solid #3498db; /* Blue */

  border-radius: 50%;

  width: 30px;

  height: 30px;

  animation: spin 2s linear infinite;

}



@keyframes spin {

  0% { transform: rotate(0deg); }

  100% { transform: rotate(360deg); }

}



/* Style the progress bar */

progress {

  appearance: none; /* Remove default styling */

  height: 20px; /* Set the height of the progress bar */

  border-radius: 5px; /* Round the corners of the progress bar */

  background-color: #f3f3f3; /* Light grey background */

  width: 100%;

  vertical-align: middle !important;

}



/* Style the progress bar container */

.progress-container {

  margin-left: 20px;

  margin-right: 20px;

  flex-grow: 1; /* Allow the progress container to take up remaining space */

}



/* Set the color of the progress bar fill */

progress::-webkit-progress-value {

  background-color: #3498db; /* Blue color for the fill */

}



progress::-moz-progress-bar {

  background-color: #3498db; /* Blue color for the fill in Firefox */

}



/* Style the text on the progress bar */

progress::after {

  content: attr(value '%'); /* Display the progress value followed by '%' */

  position: absolute;

  top: 50%;

  left: 50%;

  transform: translate(-50%, -50%);

  color: white; /* Set text color */

  font-size: 14px; /* Set font size */

}



/* Style other texts */

.loader-container > span {

  margin-left: 5px; /* Add spacing between the progress bar and the text */

}



.no-generating-animation > .generating {

  display: none !important;

}



'''


def make_progress_bar_html(number, text):
    return progress_html.replace('*number*', str(number)).replace('*text*', text)


def make_progress_bar_css():
    return css