UNPKG

homebridge-virtual-accessories

Version:
54 lines 2.12 kB
/* eslint-disable curly */ import { Utils } from '../utils/utils.js'; /** * */ export class DurationConfiguration { static DAYS_MAX_VALUE = 7; static HOURS_MAX_VALUE = 23; static MINUTES_MAX_VALUE = 59; static SECONDS_MAX_VALUE = 59; days; hours = 0; minutes = 0; seconds = 0; errorFields = []; fieldNames = Utils.proxiedPropertiesOf(this); isValid(prefix, maxDays) { const DAYS_MAX_VALUE = (maxDays !== undefined) ? maxDays : DurationConfiguration.DAYS_MAX_VALUE; const isValidDays = (Utils.required(this.days) && (this.days >= 0 && this.days <= DAYS_MAX_VALUE)); // Do not exceed maximum value (DAYS_MAX_VALUE) if (isValidDays && this.days === DAYS_MAX_VALUE) { this.hours = 0; this.minutes = 0; this.seconds = 0; } const isValidHours = (Utils.required(this.hours) && (this.hours >= 0 && this.hours <= DurationConfiguration.HOURS_MAX_VALUE)); const isValidMinutes = (Utils.required(this.minutes) && (this.minutes >= 0 && this.minutes <= DurationConfiguration.MINUTES_MAX_VALUE)); const isValidSeconds = (Utils.required(this.seconds) && (this.seconds >= 0 && this.seconds <= DurationConfiguration.SECONDS_MAX_VALUE)); if (!isValidDays) this.errorFields.push(prefix + '.' + this.fieldNames.days); if (!isValidHours) this.errorFields.push(prefix + '.' + this.fieldNames.hours); if (!isValidMinutes) this.errorFields.push(prefix + '.' + this.fieldNames.minutes); if (!isValidSeconds) this.errorFields.push(prefix + '.' + this.fieldNames.seconds); return [ (isValidDays && isValidHours && isValidMinutes && isValidSeconds), this.errorFields, ]; } toSeconds() { const seconds = Utils.daysHoursMinutesSecondsToSeconds(this.days, this.hours, this.minutes, this.seconds); return seconds; } } //# sourceMappingURL=configurationDuration.js.map