From 9f6180317b0899a8a07fe81a44991efdf945f8a7 Mon Sep 17 00:00:00 2001 From: Andrea Vos Date: Wed, 15 Sep 2021 22:39:08 +0000 Subject: [PATCH] [calendar] add aids_memorial, health_week, lesbian_visibility_week --- locale/_/events.js | 58 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 49 insertions(+), 9 deletions(-) diff --git a/locale/_/events.js b/locale/_/events.js index 375360a1f..2ba2701ab 100644 --- a/locale/_/events.js +++ b/locale/_/events.js @@ -1,4 +1,4 @@ -import {Event, day, week, month, EventLevel} from "../../src/calendar/helpers"; +import {Event, Day, day, week, month, EventLevel} from "../../src/calendar/helpers"; export default [ // months @@ -33,15 +33,15 @@ export default [ new Event('nonbinary_parents_day', 'Nonbinary', 4, day(18), EventLevel.MajorDay), new Event('trans_prisoner', 'Transgender', 1, day(22), EventLevel.MajorDay), new Event('xenogender_day', 'Xenogender', 5, day(15), EventLevel.MajorDay), - new Event('genderqueer_day', 'Genderqueer', 4, day(25), EventLevel.MajorDay), - new Event('genderfluid_day', 'Genderfluid', 6, day(16), EventLevel.MajorDay), - new Event('aids_day', null, 12, day(1), EventLevel.MajorDay), + new Event('genderqueer_day', 'Genderqueer', 4, day(25), EventLevel.MajorDay), + new Event('genderfluid_day', 'Genderfluid', 6, day(16), EventLevel.MajorDay), + new Event('aids_day', null, 12, day(1), EventLevel.MajorDay), new Event('tolerance_day', null, 11, day(16), EventLevel.MajorDay), - new Event('social_justice_day', null, 2, day(20), EventLevel.MajorDay), - new Event('stonewall_day', 'Progress Pride', 6, day(28), EventLevel.MajorDay), - new Event('domestic_violence', null, 5, day(25), EventLevel.MajorDay), - new Event('polysexual_day', 'Polysexual', 7, day(26), EventLevel.MajorDay), - new Event('orlando_day', null, 6, day(12), EventLevel.MajorDay), + new Event('social_justice_day', null, 2, day(20), EventLevel.MajorDay), + new Event('stonewall_day', 'Progress Pride', 6, day(28), EventLevel.MajorDay), + new Event('domestic_violence', null, 5, day(25), EventLevel.MajorDay), + new Event('polysexual_day', 'Polysexual', 7, day(26), EventLevel.MajorDay), + new Event('orlando_day', null, 6, day(12), EventLevel.MajorDay), // dynamic date new Event('arospec_week', 'Aromantic', 2, week(function* (monthDays) { @@ -137,4 +137,44 @@ export default [ } } }, EventLevel.MajorDay), + + new Event('aids_memorial', null, 5, function* (monthDays) { + let sundays = 0; + for (let d of monthDays) { + if (d.dayOfWeek === 7) { + sundays++; + if (sundays === 3) { + yield d; + return; + } + } + } + }, EventLevel.MajorDay), + + new Event('health_week', null, 3, week(function* (monthDays) { + let prevBuffer = []; + let buffer = []; + for (let d of monthDays) { + if (d.dayOfWeek <= 5) { + buffer.push(d); + } + if (d.dayOfWeek === 5) { + prevBuffer = buffer; + buffer = []; + } + } + yield* prevBuffer; + }), EventLevel.Week), + + new Event('lesbian_visibility_week', 'Lesbian', 4, week(function* (monthDays) { + let lastDay = null; + for (let d of monthDays) { + if (d.day >= 26) { + yield d; + } + lastDay = d; + } + yield new Day(lastDay.year, 5, 1); + yield new Day(lastDay.year, 5, 2); + }), EventLevel.Week), ];