UNPKG

@ng-bootstrap/ng-bootstrap

Version:
50 lines 6.48 kB
import { isNumber, toInteger } from '../util/util'; export class NgbTime { constructor(hour, minute, second) { this.hour = toInteger(hour); this.minute = toInteger(minute); this.second = toInteger(second); } changeHour(step = 1) { this.updateHour((isNaN(this.hour) ? 0 : this.hour) + step); } updateHour(hour) { if (isNumber(hour)) { this.hour = (hour < 0 ? 24 + hour : hour) % 24; } else { this.hour = NaN; } } changeMinute(step = 1) { this.updateMinute((isNaN(this.minute) ? 0 : this.minute) + step); } updateMinute(minute) { if (isNumber(minute)) { this.minute = minute % 60 < 0 ? 60 + (minute % 60) : minute % 60; this.changeHour(Math.floor(minute / 60)); } else { this.minute = NaN; } } changeSecond(step = 1) { this.updateSecond((isNaN(this.second) ? 0 : this.second) + step); } updateSecond(second) { if (isNumber(second)) { this.second = second < 0 ? 60 + (second % 60) : second % 60; this.changeMinute(Math.floor(second / 60)); } else { this.second = NaN; } } isValid(checkSecs = true) { return isNumber(this.hour) && isNumber(this.minute) && (checkSecs ? isNumber(this.second) : true); } toString() { return `${this.hour || 0}:${this.minute || 0}:${this.second || 0}`; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmdiLXRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdGltZXBpY2tlci9uZ2ItdGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRCxNQUFNLE9BQU8sT0FBTztJQUtuQixZQUFZLElBQWEsRUFBRSxNQUFlLEVBQUUsTUFBZTtRQUMxRCxJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDdEIsSUFBSSxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDbkIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUMvQzthQUFNO1lBQ04sSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7U0FDaEI7SUFDRixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDMUIsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBQ2pFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN6QzthQUFNO1lBQ04sSUFBSSxDQUFDLE1BQU0sR0FBRyxHQUFHLENBQUM7U0FDbEI7SUFDRixDQUFDO0lBRUQsWUFBWSxDQUFDLElBQUksR0FBRyxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQWM7UUFDMUIsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDNUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQzNDO2FBQU07WUFDTixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztTQUNsQjtJQUNGLENBQUM7SUFFRCxPQUFPLENBQUMsU0FBUyxHQUFHLElBQUk7UUFDdkIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFRCxRQUFRO1FBQ1AsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDcEUsQ0FBQztDQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNOdW1iZXIsIHRvSW50ZWdlciB9IGZyb20gJy4uL3V0aWwvdXRpbCc7XG5cbmV4cG9ydCBjbGFzcyBOZ2JUaW1lIHtcblx0aG91cjogbnVtYmVyO1xuXHRtaW51dGU6IG51bWJlcjtcblx0c2Vjb25kOiBudW1iZXI7XG5cblx0Y29uc3RydWN0b3IoaG91cj86IG51bWJlciwgbWludXRlPzogbnVtYmVyLCBzZWNvbmQ/OiBudW1iZXIpIHtcblx0XHR0aGlzLmhvdXIgPSB0b0ludGVnZXIoaG91cik7XG5cdFx0dGhpcy5taW51dGUgPSB0b0ludGVnZXIobWludXRlKTtcblx0XHR0aGlzLnNlY29uZCA9IHRvSW50ZWdlcihzZWNvbmQpO1xuXHR9XG5cblx0Y2hhbmdlSG91cihzdGVwID0gMSkge1xuXHRcdHRoaXMudXBkYXRlSG91cigoaXNOYU4odGhpcy5ob3VyKSA/IDAgOiB0aGlzLmhvdXIpICsgc3RlcCk7XG5cdH1cblxuXHR1cGRhdGVIb3VyKGhvdXI6IG51bWJlcikge1xuXHRcdGlmIChpc051bWJlcihob3VyKSkge1xuXHRcdFx0dGhpcy5ob3VyID0gKGhvdXIgPCAwID8gMjQgKyBob3VyIDogaG91cikgJSAyNDtcblx0XHR9IGVsc2Uge1xuXHRcdFx0dGhpcy5ob3VyID0gTmFOO1xuXHRcdH1cblx0fVxuXG5cdGNoYW5nZU1pbnV0ZShzdGVwID0gMSkge1xuXHRcdHRoaXMudXBkYXRlTWludXRlKChpc05hTih0aGlzLm1pbnV0ZSkgPyAwIDogdGhpcy5taW51dGUpICsgc3RlcCk7XG5cdH1cblxuXHR1cGRhdGVNaW51dGUobWludXRlOiBudW1iZXIpIHtcblx0XHRpZiAoaXNOdW1iZXIobWludXRlKSkge1xuXHRcdFx0dGhpcy5taW51dGUgPSBtaW51dGUgJSA2MCA8IDAgPyA2MCArIChtaW51dGUgJSA2MCkgOiBtaW51dGUgJSA2MDtcblx0XHRcdHRoaXMuY2hhbmdlSG91cihNYXRoLmZsb29yKG1pbnV0ZSAvIDYwKSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMubWludXRlID0gTmFOO1xuXHRcdH1cblx0fVxuXG5cdGNoYW5nZVNlY29uZChzdGVwID0gMSkge1xuXHRcdHRoaXMudXBkYXRlU2Vjb25kKChpc05hTih0aGlzLnNlY29uZCkgPyAwIDogdGhpcy5zZWNvbmQpICsgc3RlcCk7XG5cdH1cblxuXHR1cGRhdGVTZWNvbmQoc2Vjb25kOiBudW1iZXIpIHtcblx0XHRpZiAoaXNOdW1iZXIoc2Vjb25kKSkge1xuXHRcdFx0dGhpcy5zZWNvbmQgPSBzZWNvbmQgPCAwID8gNjAgKyAoc2Vjb25kICUgNjApIDogc2Vjb25kICUgNjA7XG5cdFx0XHR0aGlzLmNoYW5nZU1pbnV0ZShNYXRoLmZsb29yKHNlY29uZCAvIDYwKSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuc2Vjb25kID0gTmFOO1xuXHRcdH1cblx0fVxuXG5cdGlzVmFsaWQoY2hlY2tTZWNzID0gdHJ1ZSkge1xuXHRcdHJldHVybiBpc051bWJlcih0aGlzLmhvdXIpICYmIGlzTnVtYmVyKHRoaXMubWludXRlKSAmJiAoY2hlY2tTZWNzID8gaXNOdW1iZXIodGhpcy5zZWNvbmQpIDogdHJ1ZSk7XG5cdH1cblxuXHR0b1N0cmluZygpIHtcblx0XHRyZXR1cm4gYCR7dGhpcy5ob3VyIHx8IDB9OiR7dGhpcy5taW51dGUgfHwgMH06JHt0aGlzLnNlY29uZCB8fCAwfWA7XG5cdH1cbn1cbiJdfQ==