rws-js-client
Version:
client for RWS frontend
55 lines (42 loc) • 1.49 kB
text/typescript
import { RWSView, RWSViewComponent, observable, attr } from '../../index';
import {
nullableNumberConverter,
} from "@microsoft/fast-element";
class RWSProgress extends RWSViewComponent {
public value: number | null;
protected valueChanged(): void {
this.updatePercentComplete();
}
public min: number;
protected minChanged(): void {
if (this.$fastController.isConnected) {
this.updatePercentComplete();
}
}
public max: number;
protected maxChanged(): void {
if (this.$fastController.isConnected) {
this.updatePercentComplete();
}
}
public percentComplete: number = 0;
public connectedCallback(): void {
super.connectedCallback();
this.updatePercentComplete();
}
private updatePercentComplete(): void {
const min: number = typeof this.min === "number" ? this.min : 0;
const max: number = typeof this.max === "number" ? this.max : 100;
const value: number = typeof this.value === "number" ? this.value : 0;
const range: number = max - min;
this.percentComplete =
range === 0 ? 0 : Math.fround(((value - min) / range) * 100);
}
}
RWSProgress.defineComponent();
export { RWSProgress };