app.component.ts
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
isDisabled:boolean = false;
progress:number = 0;
timer:any;
maxValue:number = 25;
percentage:number = 0;
bufferProgress:number = 0;
onClick(){
this.progress = 0;
this.isDisabled = true;
this.timer = setInterval(() => this.updateProgress(), 1000)
}
updateProgress(){
this.progress++
if(this.progress>=this.maxValue){
clearInterval(this.timer);
this.isDisabled = false;
}
this.calculatePercentage()
}
calculatePercentage(){
//this.percentage = Math.round((this.progress / this.maxValue) * 100);
//this.percentage = Math.ceil((this.progress / this.maxValue) * 100);
this.percentage = Math.floor((this.progress / this.maxValue) * 100);
this.updateBuffer();
}
updateBuffer(){
if(this.bufferProgress<=100){
this.bufferProgress = this.percentage + 10;
if(this.bufferProgress>100){
this.bufferProgress = 100;
}
}
}
}
app.component.html
<h2 style="padding-top:25px; padding-bottom:25px;">
Angular Material - How to use buffer Progress bar
</h2>
<button
mat-raised-button
color="primary"
(click)="onClick()"
[disabled]="isDisabled"
style="margin-bottom:25px;">
Run {{maxValue}} Tasks
</button>
<h3>
{{
'Task ' + progress + ' of ' + maxValue + ' done.'
+ ' ( '+ percentage + '% done. )'
}}
</h3>
<h3>{{'Buffered : ' + bufferProgress + '%'}}</h3>
<mat-progress-bar
mode="buffer"
[bufferValue]="bufferProgress"
[value]="percentage">
</mat-progress-bar>
app.module.ts [import]
import {MatProgressBarModule} from '@angular/material/progress-bar';
import {MatButtonModule} from '@angular/material/button'
- angular material - How to show vertical Divider
- angular material - How to use Progress bar
- angular material - Progress bar with percentage
- angular material - How to use indeterminate Progress bar
- angular - How to change default font
- angular - How to do a task after a delay
- angular - How to use setInterval()
- angular material - How to change vertical Divider height
- angular material - How to change Divider margin
- angular material - How to use Progress spinner
- angular material - How to show thumb label in Slider
- angular material - Slider custom formatted thumb label
- angular material - How to use Slider change event
- angular material - Determine an Expansion Panel is disabled or enabled
- angular material - How to toggle Expansion Panel expanded state