236 lines
7.2 KiB
TypeScript
236 lines
7.2 KiB
TypeScript
// Metro module 1895 (f1896).
|
|
import Record from "../../lib/Record";
|
|
import { DayOfWeek } from "../../_bundle/Module1892";
|
|
import { $callWithNewTarget } from "../../_hermes/prelude";
|
|
let c1590_2 = Object.freeze({
|
|
0: DayOfWeek.SUNDAY,
|
|
1: DayOfWeek.MONDAY,
|
|
2: DayOfWeek.TUESDAY,
|
|
3: DayOfWeek.WEDNESDAY,
|
|
4: DayOfWeek.THURSDAY,
|
|
5: DayOfWeek.FRIDAY,
|
|
6: DayOfWeek.SATURDAY
|
|
});
|
|
const r50 = Object;
|
|
const r52 = {};
|
|
r52[DayOfWeek.DAY_OF_WEEK_UNSPECIFIED] = 0;
|
|
r52[DayOfWeek.MONDAY] = 1;
|
|
r52[DayOfWeek.TUESDAY] = 2;
|
|
r52[DayOfWeek.WEDNESDAY] = 3;
|
|
r52[DayOfWeek.THURSDAY] = 4;
|
|
r52[DayOfWeek.FRIDAY] = 5;
|
|
r52[DayOfWeek.SATURDAY] = 6;
|
|
r52[DayOfWeek.SUNDAY] = 0;
|
|
let c1590_3 = r50.freeze(r52);
|
|
class ScheduleRuleRecord extends Record {
|
|
constructor(a0) {
|
|
super();
|
|
this.ruleId = a0.ruleId;
|
|
this.label = a0.label;
|
|
this.startTime = a0.startTime;
|
|
this.endTime = a0.endTime;
|
|
this.days = a0.days;
|
|
this.enabled = a0.enabled;
|
|
}
|
|
static fromServer(a0) {
|
|
const { rule_id, label } = a0;
|
|
let start_time = a0.start_time;
|
|
if (start_time == null) {
|
|
start_time = void 0;
|
|
}
|
|
let end_time = a0.end_time;
|
|
if (end_time == null) {
|
|
end_time = void 0;
|
|
}
|
|
const { days, enabled } = a0;
|
|
const prototypeOf = Object.getPrototypeOf(ScheduleRuleRecord);
|
|
const r17 = Object.create(ScheduleRuleRecord.prototype);
|
|
const r18 = $callWithNewTarget(prototypeOf, r17, ScheduleRuleRecord);
|
|
const r19 = r18 instanceof Object ? r18 : r17;
|
|
r19.ruleId = rule_id;
|
|
r19.label = label;
|
|
r19.startTime = start_time;
|
|
r19.endTime = end_time;
|
|
r19.days = days;
|
|
r19.enabled = enabled;
|
|
return r19;
|
|
}
|
|
static fromCache(a0) {
|
|
const prototypeOf = Object.getPrototypeOf(ScheduleRuleRecord);
|
|
const r2 = Object.create(ScheduleRuleRecord.prototype);
|
|
const r10 = $callWithNewTarget(prototypeOf, r2, ScheduleRuleRecord);
|
|
const r11 = r10 instanceof Object ? r10 : r2;
|
|
r11.ruleId = a0.ruleId;
|
|
r11.label = a0.label;
|
|
r11.startTime = a0.startTime;
|
|
r11.endTime = a0.endTime;
|
|
r11.days = a0.days;
|
|
r11.enabled = a0.enabled;
|
|
return r11;
|
|
}
|
|
isActiveAt(a0, a1) {
|
|
if (this.startTime != null && this.endTime != null && this.days.length !== 0 && this.enabled) {
|
|
const startTime = this.startTime;
|
|
const r18 = 60 * startTime.hours + startTime.minutes;
|
|
const endTime = this.endTime;
|
|
const r22 = 60 * endTime.hours + endTime.minutes;
|
|
const r23 = r18 > r22;
|
|
if (this.days.includes(a0)) {
|
|
if (r23) {
|
|
if (a1 >= r18) {
|
|
return true;
|
|
}
|
|
} else if (a1 >= r18 && a1 < r22) {
|
|
return true;
|
|
}
|
|
}
|
|
if (r23 && this.days.includes(a0 === DayOfWeek.MONDAY ? DayOfWeek.SUNDAY : a0 - 1) && a1 < r22) {
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
return false;
|
|
}
|
|
getEndMinutes() {
|
|
const endTime = this.endTime;
|
|
let r2 = null;
|
|
if (endTime != null) {
|
|
const endTime2 = this.endTime;
|
|
r2 = 60 * endTime2.hours + endTime2.minutes;
|
|
}
|
|
return r2;
|
|
}
|
|
getStartMinutes() {
|
|
const startTime = this.startTime;
|
|
let r2 = null;
|
|
if (startTime != null) {
|
|
const startTime2 = this.startTime;
|
|
r2 = 60 * startTime2.hours + startTime2.minutes;
|
|
}
|
|
return r2;
|
|
}
|
|
}
|
|
class RestrictedScheduleRecord extends Record {
|
|
constructor(a0) {
|
|
super();
|
|
this.rules = a0.rules;
|
|
}
|
|
static fromServer(a0) {
|
|
let r1 = null;
|
|
if (a0 != null) {
|
|
const rules = a0.rules.map(ScheduleRuleRecord.fromServer);
|
|
const prototypeOf = Object.getPrototypeOf(RestrictedScheduleRecord);
|
|
const r16 = Object.create(RestrictedScheduleRecord.prototype);
|
|
const r17 = $callWithNewTarget(prototypeOf, r16, RestrictedScheduleRecord);
|
|
const r18 = r17 instanceof Object ? r17 : r16;
|
|
r18.rules = rules;
|
|
r1 = r18;
|
|
}
|
|
return r1;
|
|
}
|
|
static fromCache(a0) {
|
|
let r1 = null;
|
|
if (a0 != null) {
|
|
const rules = a0.rules.map(ScheduleRuleRecord.fromCache);
|
|
const prototypeOf = Object.getPrototypeOf(RestrictedScheduleRecord);
|
|
const r16 = Object.create(RestrictedScheduleRecord.prototype);
|
|
const r17 = $callWithNewTarget(prototypeOf, r16, RestrictedScheduleRecord);
|
|
const r18 = r17 instanceof Object ? r17 : r16;
|
|
r18.rules = rules;
|
|
r1 = r18;
|
|
}
|
|
return r1;
|
|
}
|
|
isInRestrictedHours(r5 = new Date()) {
|
|
if (this.rules.length === 0) {
|
|
return false;
|
|
}
|
|
let c13282_0 = c1590_2[r5.getDay()];
|
|
let c13282_1 = 60 * r5.getHours() + r5.getMinutes();
|
|
return this.rules.some((rule) => rule.isActiveAt(c13282_0, c13282_1));
|
|
}
|
|
getNextStartInfo(r4 = new Date()) {
|
|
if (this.rules.length !== 0 && !this.isInRestrictedHours(r4)) {
|
|
const day = r4.getDay();
|
|
const r6 = 60 * r4.getHours() + r4.getMinutes();
|
|
let r45 = null;
|
|
for (const item of this.rules.filter((rule) => rule.enabled)) {
|
|
const rule = item;
|
|
const startMinutes = item.getStartMinutes();
|
|
if (startMinutes != null && rule.days.length !== 0) {
|
|
for (const day2 of rule.days) {
|
|
const r73 = (c1590_3[day2] - day + 7) % 7;
|
|
const minutesUntil = 24 * ((r73 === 0 ? startMinutes <= r6 : r73 === 0) ? 7 : r73) * 60 - r6 + startMinutes;
|
|
if (r45 == null || minutesUntil < r45.minutesUntil) {
|
|
r45 = {
|
|
minutesUntil,
|
|
rule
|
|
};
|
|
}
|
|
}
|
|
}
|
|
}
|
|
return r45;
|
|
}
|
|
return null;
|
|
}
|
|
getNextEndTime(r14 = new Date()) {
|
|
if (this.rules.length === 0) {
|
|
return null;
|
|
}
|
|
let c13283_0 = c1590_2[r14.getDay()];
|
|
const r44 = 60 * r14.getHours() + r14.getMinutes();
|
|
let c13283_1 = r44;
|
|
for (const item of this.rules.filter((rule) => rule.isActiveAt(c13283_0, c13283_1))) {
|
|
const endMinutes = item.getEndMinutes();
|
|
const startMinutes = item.getStartMinutes();
|
|
if (endMinutes == null) {
|
|
continue;
|
|
}
|
|
if (startMinutes == null) {
|
|
continue;
|
|
}
|
|
let r60 = startMinutes > endMinutes;
|
|
const date = new Date(r14);
|
|
const r70 = Math.floor(endMinutes / 60);
|
|
const r71 = endMinutes % 60;
|
|
if (r60) {
|
|
r60 = r44 >= startMinutes;
|
|
}
|
|
if (r60) {
|
|
date.setDate(date.getDate() + 1);
|
|
}
|
|
date.setHours(r70, r71, 0, 0);
|
|
return date;
|
|
}
|
|
return null;
|
|
}
|
|
}
|
|
export { c1590_2 as JS_DAY_TO_DAY_OF_WEEK };
|
|
export { ScheduleRuleRecord };
|
|
export { RestrictedScheduleRecord };
|
|
export function ensureRestrictedScheduleRecord(a0) {
|
|
let r17;
|
|
let r2 = null;
|
|
if (a0 != null) {
|
|
const r11 = a0 instanceof RestrictedScheduleRecord;
|
|
let r3 = a0;
|
|
if (!r11) {
|
|
if (a0.rules.length === 0) {
|
|
const rules = [];
|
|
const prototypeOf = Object.getPrototypeOf(RestrictedScheduleRecord);
|
|
const r24 = Object.create(RestrictedScheduleRecord.prototype);
|
|
const r25 = $callWithNewTarget(prototypeOf, r24, RestrictedScheduleRecord);
|
|
const r26 = r25 instanceof Object ? r25 : r24;
|
|
r26.rules = rules;
|
|
r17 = r26;
|
|
} else {
|
|
r17 = "ruleId" in a0.rules[0] ? RestrictedScheduleRecord.fromCache(a0) : RestrictedScheduleRecord.fromServer(a0);
|
|
}
|
|
r3 = r17;
|
|
}
|
|
r2 = r3;
|
|
}
|
|
return r2;
|
|
}
|