/* Metro module 1898; source: modules/parent_tools/FamilyCenterModels.tsx; dependencies: [6, 7, 15, 17, 18, 1886, 1895, 2] */ function _fun20821(global, require, importDefault, importAll, module, exports, dependencyMap) { // fn#20821, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:6, offset: 0x00edcba7, size: 713 bytes, params: 8, frame: 28 const env0_0 = require; const _arrayLikeToArray_20824 = function(a0, a1) { var r0; var r1; var r2; var value3; var length; var value5; var value = undefined; var value2 = value == null; reducibleJoin2: while (true) { if (value2) { r0 = value2; break reducibleJoin2; } value3 = value > a0.length; r0 = value3; break reducibleJoin2; } reducibleJoin4: while (true) { if (r0) { length = a0.length; r1 = length; break reducibleJoin4; } r1 = value; break reducibleJoin4; } value = (0, global.Array)(r1); var value4 = 0; if (value4 < r1) { r2 = value4; reducibleLoop5: while (true) { value[r2] = a0[r2]; value5 = typeof r2 === 'bigint' ? r2 + 1n : +r2 + 1; if (value5 < r1) { r2 = value5; continue reducibleLoop5; } break reducibleLoop5; } } return value; }; const timeOfDayToMinutes = function(a0) { return 60 * a0.hours + a0.minutes; }; let Object = global.Object; Object.defineProperty(exports, '__esModule', {value: true}); const env0_2 = importDefault(6) /* metro dependency 6 */; const env0_3 = importDefault(7) /* metro dependency 7 */; const env0_4 = importDefault(15) /* metro dependency 15 */; const env0_5 = importDefault(17) /* metro dependency 17 */; const env0_6 = importDefault(18) /* metro dependency 18 */; let value = importDefault(1886) /* metro dependency 1886: Record */; Object = global.Object; let freeze = Object.freeze; const DayOfWeek = (require(1895) /* metro dependency 1895: user */).DayOfWeek; let SUNDAY = DayOfWeek.SUNDAY; let MONDAY = DayOfWeek.MONDAY; let TUESDAY = DayOfWeek.TUESDAY; let WEDNESDAY = DayOfWeek.WEDNESDAY; let THURSDAY = DayOfWeek.THURSDAY; let FRIDAY = DayOfWeek.FRIDAY; let SATURDAY = DayOfWeek.SATURDAY; let value2 = Reflect.apply(freeze, Object, [{[0]: SUNDAY, [1]: MONDAY, [2]: TUESDAY, [3]: WEDNESDAY, [4]: THURSDAY, [5]: FRIDAY, [6]: SATURDAY}]); Object = global.Object; freeze = Object.freeze; const DAY_OF_WEEK_UNSPECIFIED = DayOfWeek.DAY_OF_WEEK_UNSPECIFIED; MONDAY = DayOfWeek.MONDAY; TUESDAY = DayOfWeek.TUESDAY; WEDNESDAY = DayOfWeek.WEDNESDAY; THURSDAY = DayOfWeek.THURSDAY; FRIDAY = DayOfWeek.FRIDAY; SATURDAY = DayOfWeek.SATURDAY; SUNDAY = DayOfWeek.SUNDAY; const env0_8 = Reflect.apply(freeze, Object, [{[DAY_OF_WEEK_UNSPECIFIED]: 0, [MONDAY]: 1, [TUESDAY]: 2, [WEDNESDAY]: 3, [THURSDAY]: 4, [FRIDAY]: 5, [SATURDAY]: 6, [SUNDAY]: 0}]); let value3 = _fun20830(value); value = _fun20837(value); (require(2) /* metro dependency 2 */).fileFinishedImporting('modules/parent_tools/FamilyCenterModels.tsx'); exports.JS_DAY_TO_DAY_OF_WEEK = value2; exports.ScheduleRuleRecord = value3; exports.RestrictedScheduleRecord = value; exports.ensureRestrictedScheduleRecord = ensureRestrictedScheduleRecord; } function _createForOfIteratorHelperLoose_20822(a0, a1) { // fn#20822, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:160, offset: 0x00edce70, size: 370 bytes, params: 3, frame: 20 var r6; var r9; var r5; var value3; var regexp; const env0_0 = a0; const Symbol = global.Symbol; let value = typeof Symbol !== 'undefined'; let r1 = value && a0[global.Symbol.iterator]; r1 = !r1 ? a0['@@iterator'] : r1; if (r1) { value = r1.call(a0); return value.next.bind(value); } const Array = global.Array; if (Array.isArray(a0)) { if (r1) { } return _fun20823; } value = undefined; if (a0) { if (typeof a0 === 'string') { value = _arrayLikeToArray_20824(a0, value); r5 = value; } else { value3 = ({}).toString.call(a0).slice(8, -1); r6 = value3 === 'Object' && a0.constructor; r9 = r6 ? a0.constructor.name : value3; if (r9 === 'Map') { r6 = global.Array.from(a0); } else if (r9 === 'Set') { r6 = global.Array.from(a0); } else if (r9 === 'Arguments') { value = _arrayLikeToArray_20824(a0, value); r6 = value; } else { regexp = RegExp('^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$', ''); if (regexp.test(r9)) { value = _arrayLikeToArray_20824(a0, value); r6 = value; } else { r6 = value; } } r5 = r6; } } else { r5 = value; } if (r5) { if (r5) { } return _fun20823; } const TypeError = global.TypeError; throw new TypeError('Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.'); } function _callSuper_20825(a0, a1, a2) { // fn#20825, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:1070, offset: 0x00edcfe2, size: 94 bytes, params: 4, frame: 20 const value2 = env0_5(a1); return env0_4(a0, _isNativeReflectConstruct_20826() ? global.Reflect.construct(value2, [], env0_5(a0).constructor) : value2.apply(a0, undefined)); } function _isNativeReflectConstruct_20826() { // fn#20826, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:1201, offset: 0x00edd040, size: 94 bytes, params: 1, frame: 18 var Boolean; var prototype; var valueOf; var call; var Reflect; var construct; var closure; var value; var error; try { Boolean = global.Boolean; prototype = Boolean.prototype; valueOf = prototype.valueOf; call = valueOf.call; Reflect = global.Reflect; construct = Reflect.construct; Boolean = global.Boolean; closure = function() { }; value = Reflect.apply(construct, Reflect, [Boolean, [], closure]); value = Reflect.apply(call, valueOf, [value]); var result = !value; } catch (error) { } return (_isNativeReflectConstruct_20826_isNativeReflectConstruct = function() { return !!result; })(); } function _fun20830(a0) { // fn#20830, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:1970, offset: 0x00edd0ba, size: 167 bytes, params: 2, frame: 18 const closure = ScheduleRuleRecord; env0_6(closure, a0); return env0_3(closure, [{key: 'isActiveAt', value: value_20832}, {key: 'getEndMinutes', value: value_20833}, {key: 'getStartMinutes', value: value_20834}], [{key: 'fromServer', value: value_20835}, {key: 'fromCache', value: value_20836}]); } function _fun20837(a0) { // fn#20837, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:3217, offset: 0x00edd3bf, size: 169 bytes, params: 2, frame: 18 const closure = RestrictedScheduleRecord; env0_6(closure, a0); return env0_3(closure, [{key: 'isInRestrictedHours', value: value_20839}, {key: 'getNextStartInfo', value: value_20841}, {key: 'getNextEndTime', value: value_20843}], [{key: 'fromServer', value: value_20845}, {key: 'fromCache', value: value_20846}]); } function ensureRestrictedScheduleRecord(a0) { // fn#20847, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:5053, offset: 0x00edd939, size: 146 bytes, params: 2, frame: 15 var r2; var r1; var r0; var value4; var binding; let value = a0; const value2 = null; if (value2 == value) { r0 = value2; } else { if (value instanceof env0_10) { r1 = value; } else { if (value.rules.length === 0) { r2 = new env0_10({rules: []}); } else { value4 = 'ruleId' in value.rules[0]; binding = env0_10; if (value4) { value = binding.fromCache(value); r2 = value; } else { value = binding.fromServer(value); r2 = value; } } r1 = r2; } r0 = r1; } return r0; } function ScheduleRuleRecord({ruleId, label, startTime, endTime, days, enabled}) { // fn#20831, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:1982, offset: 0x00edd161, size: 110 bytes, params: 2, frame: 15 let value = environment.__proto__; env1_2(this, ScheduleRuleRecord); value = _callSuper_20825(this, ScheduleRuleRecord); value.ruleId = ruleId; value.label = label; value.startTime = startTime; value.endTime = endTime; value.days = days; value.enabled = enabled; return value; } function value_20832(a0, a1) { // fn#20832, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:2282, offset: 0x00edd1cf, size: 257 bytes, params: 3, frame: 18 var r4; var value; var timeOfDayToMinutesBinding; var value2; var value3; var value4; const DayOfWeek = (require(1895) /* metro dependency 1895: user */).DayOfWeek; if (this.startTime != null) { if (this.endTime == null) { return false; } var days = this.days; if (days.length === 0) { return false; } if (this.enabled) { value = environment.__proto__; timeOfDayToMinutesBinding = timeOfDayToMinutes; value2 = timeOfDayToMinutesBinding(this.startTime); value3 = timeOfDayToMinutesBinding(this.endTime); value4 = value2 > value3; days = this.days; if (days.includes(a0)) { if (value4) { if (a1 >= value2) { return true; } if (value4) { r4 = a0 === DayOfWeek.MONDAY ? DayOfWeek.SUNDAY : a0 - 1; days = this.days; if (days.includes(r4)) { if (a1 < value3) { return true; } return false; } return false; } return false; } if (a1 >= value2) { if (a1 < value3) { return true; } if (value4) { r4 = a0 === DayOfWeek.MONDAY ? DayOfWeek.SUNDAY : a0 - 1; days = this.days; if (days.includes(r4)) { if (a1 < value3) { return true; } return false; } return false; } return false; } if (value4) { r4 = a0 === DayOfWeek.MONDAY ? DayOfWeek.SUNDAY : a0 - 1; days = this.days; if (days.includes(r4)) { if (a1 < value3) { return true; } return false; } return false; } return false; } if (value4) { r4 = a0 === DayOfWeek.MONDAY ? DayOfWeek.SUNDAY : a0 - 1; days = this.days; if (days.includes(r4)) { if (a1 < value3) { return true; } return false; } return false; } return false; } } return false; } function value_20833() { // fn#20833, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:2730, offset: 0x00edd2d0, size: 40 bytes, params: 1, frame: 12 var r0; const endTime = this.endTime; let value = null; if (value == endTime) { r0 = value; } else { value = environment.__proto__; value = timeOfDayToMinutes(this.endTime); r0 = value; } return r0; } function value_20834() { // fn#20834, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:2836, offset: 0x00edd2f8, size: 40 bytes, params: 1, frame: 12 var r0; const startTime = this.startTime; let value = null; if (value == startTime) { r0 = value; } else { value = environment.__proto__; value = timeOfDayToMinutes(this.startTime); r0 = value; } return r0; } function value_20835({rule_id, label, start_time, end_time, days, enabled}) { // fn#20835, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:2943, offset: 0x00edd320, size: 127 bytes, params: 2, frame: 16 const object2 = {}; object2.ruleId = rule_id; object2.label = label; let value = undefined; object2.startTime = start_time ?? value; object2.endTime = end_time ?? value; object2.days = days; object2.enabled = enabled; value = Object.create(ScheduleRuleRecord.prototype, {constructor: {value: ScheduleRuleRecord}}); const scheduleRuleRecord = new ScheduleRuleRecord(object2); return scheduleRuleRecord instanceof Object ? scheduleRuleRecord : value; } function RestrictedScheduleRecord({rules}) { // fn#20838, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:3229, offset: 0x00edd468, size: 52 bytes, params: 2, frame: 14 let value = environment.__proto__; env1_2(this, RestrictedScheduleRecord); value = _callSuper_20825(this, RestrictedScheduleRecord); value.rules = rules; return value; } function value_20839() { // fn#20839, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:3472, offset: 0x00edd49c, size: 155 bytes, params: 1, frame: 14 var environment; let value = a0; const r4 = value !== undefined ? value : new global.Date(); if (this.rules.length === 0) { return false; } value = environment.__proto__; const binding = env1_7; const getDay = r4.getDay; const env0_0 = binding[Reflect.apply(getDay, r4, [])]; value = r4.getHours(); value = 60 * value; const getMinutes = r4.getMinutes; const env0_1 = value + Reflect.apply(getMinutes, r4, []); return this.rules.some(_fun20840); } function value_20841() { // fn#20841, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:3659, offset: 0x00edd553, size: 477 bytes, params: 1, frame: 40 var r6; var r7; var r23; var r24; var r1; var r29; var r18; var r0; var value10; var startMinutes; var days; var value12; var value13; var value14; var value15; var value16; var value17; var value18; var value19; var minutesUntil; var value20; var value21; var value22; let value = a0; const r3 = value !== undefined ? value : new global.Date(); let rules = this.rules; let length = rules.length; if (length === 0) { return null; } if (this.isInRestrictedHours(r3)) { return null; } value = r3.getDay(); const value3 = 60 * r3.getHours(); const getMinutes = r3.getMinutes; const value4 = value3 + Reflect.apply(getMinutes, r3, []); let _createForOfIteratorHelperLoose_20822Binding = _createForOfIteratorHelperLoose_20822; rules = this.rules; const value6 = _createForOfIteratorHelperLoose_20822Binding(rules.filter(function(a0) { return a0.enabled; })); const value7 = value6(); let done = value7.done; const value8 = null; const value9 = 7; if (done) { r0 = value8; } else { r6 = value8; r7 = value7; while (true) { value10 = r7.value; startMinutes = value10.getStartMinutes(); if (value8 == startMinutes) { r18 = r6; } else { days = value10.days; length = days.length; if (length === 0) { r18 = r6; break; } _createForOfIteratorHelperLoose_20822Binding = _createForOfIteratorHelperLoose_20822; days = value10.days; value12 = _createForOfIteratorHelperLoose_20822Binding(days); value13 = value12(); done = value13.done; if (done) { r18 = r6; break; } r23 = value13; r24 = r6; while (true) { value14 = r23.value; value15 = (env1_8[value14] - value + value9) % value9; value16 = value15 === 0; if (value16) { value17 = startMinutes <= value4; r1 = value17; } else { r1 = value16; } if (r1) { r29 = value9; continue; } r29 = value15; continue; value18 = 24 * r29 * 60 - value4 + startMinutes; value19 = value8 == r24; if (value19) { r1 = value19; continue; } minutesUntil = r24.minutesUntil; value20 = value18 < minutesUntil; r1 = value20; if (!r1) { continue; } r24 = {minutesUntil: value18, rule: value10}; value21 = value12(); done = value21.done; if (done) { r18 = r24; break; } r23 = value21; continue; } } value22 = value6(); done = value22.done; if (done) { r0 = r18; break; } r6 = r18; r7 = value22; continue; } } return r0; } function value_20843() { // fn#20843, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:4191, offset: 0x00edd730, size: 361 bytes, params: 1, frame: 23 var environment; var r10; var r2; var Date; var prototype; var date; var value7; var getEndMinutes; var value8; var getStartMinutes; var value9; var value10; var value13; var value14; var setDate; var getDate; let value = a0; reducibleJoin2: while (true) { if (value !== undefined) { r10 = value; break reducibleJoin2; } Date = global.Date; prototype = Date.prototype; value = Object.create(prototype, {constructor: {value: Date}}); date = new Date(); value = date instanceof Object ? date : value; r10 = value; break reducibleJoin2; } var env0_0; if (this.rules.length !== 0) { value = environment.__proto__; var binding = env1_7; var getDay = r10.getDay; env0_0 = binding[Reflect.apply(getDay, r10, [])]; var value3 = 60 * r10.getHours(); var getMinutes = r10.getMinutes; var value4 = value3 + Reflect.apply(getMinutes, r10, []); value = _createForOfIteratorHelperLoose_20822(this.rules.filter(_fun20844)); var value6 = value(); var done = value6.done; if (!done) { r2 = value6; reducibleLoop4: while (true) { value7 = r2.value; getEndMinutes = value7.getEndMinutes; value8 = Reflect.apply(getEndMinutes, value7, []); getStartMinutes = value7.getStartMinutes; value9 = Reflect.apply(getStartMinutes, value7, []); if (value8 != null) { reducibleJoin6: while (true) { if (value9 != null) { break reducibleLoop4; } break reducibleJoin6; } } value10 = value(); done = value10.done; if (done) { return null; } r2 = value10; continue reducibleLoop4; } value = value9 > value8; date = new global.Date(); value13 = global.Math.floor(value8 / 60); value14 = value8 % 60; reducibleJoin9: while (true) { if (value) { value = value4 >= value9; r2 = value; break reducibleJoin9; } r2 = value; break reducibleJoin9; } reducibleJoin11: while (true) { if (r2) { setDate = date.setDate; getDate = date.getDate; value = Reflect.apply(getDate, date, []); Reflect.apply(setDate, date, [value + 1]); break reducibleJoin11; } break reducibleJoin11; } date.setHours(value13, value14, 0, 0); return date; } } return null; } function value_20845(a0) { // fn#20845, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:4636, offset: 0x00edd899, size: 80 bytes, params: 2, frame: 14 var r0; var object2; var rules; var map; let value = null; if (value == a0) { r0 = value; } else { object2 = {}; rules = a0.rules; map = rules.map; value = environment.__proto__; object2.rules = Reflect.apply(map, rules, [env1_9.fromServer]); r0 = new RestrictedScheduleRecord(); } return r0; } function value_20846(a0) { // fn#20846, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:4757, offset: 0x00edd8e9, size: 80 bytes, params: 2, frame: 14 var r0; var object2; var rules; var map; let value = null; if (value == a0) { r0 = value; } else { object2 = {}; rules = a0.rules; map = rules.map; value = environment.__proto__; object2.rules = Reflect.apply(map, rules, [env1_9.fromCache]); r0 = new RestrictedScheduleRecord(); } return r0; } function _fun20840(a0) { // fn#20840, source: /ci/build/discord/discord/discord_android_rn/android/app/src/main/assets/index.android.bundle:2025:3604, offset: 0x00edd537, size: 28 bytes, params: 2, frame: 13 return a0.isActiveAt(env0_0, env0_1); }