Files
lovelace-time-picker-card/src/models/time.ts
T
2020-11-22 13:11:16 +02:00

38 lines
897 B
TypeScript

import { Direction } from '../types';
import { Hour } from './hour';
import { Minute } from './minute';
import { Second } from './second';
export class Time {
constructor(
public hour: Hour,
public minute: Minute,
public second: Second,
private _linkValues: boolean = false
) {}
hourStep(direction: Direction): void {
this.hour.stepUpdate(direction);
}
minuteStep(direction: Direction): void {
if (this._linkValues && this.minute.willOverflow(direction)) {
this.hour.stepUpdate(direction, 1);
}
this.minute.stepUpdate(direction);
}
secondStep(direction: Direction): void {
if (this._linkValues && this.second.willOverflow(direction)) {
this.minute.stepUpdate(direction, 1);
}
this.second.stepUpdate(direction);
}
get value(): string {
return `${this.hour.value}:${this.minute.value}:${this.second.value}`;
}
}