jcal-zmanim 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +674 -0
- package/README.md +2 -0
- package/build/AppUtils.d.ts +109 -0
- package/build/AppUtils.js +394 -0
- package/build/GeneralUtils.d.ts +43 -0
- package/build/GeneralUtils.js +93 -0
- package/build/JCal/Dafyomi.d.ts +27 -0
- package/build/JCal/Dafyomi.js +131 -0
- package/build/JCal/Location.d.ts +33 -0
- package/build/JCal/Location.js +80 -0
- package/build/JCal/Molad.d.ts +39 -0
- package/build/JCal/Molad.js +95 -0
- package/build/JCal/PirkeiAvos.d.ts +13 -0
- package/build/JCal/PirkeiAvos.js +172 -0
- package/build/JCal/Sedra.d.ts +63 -0
- package/build/JCal/Sedra.js +186 -0
- package/build/JCal/Utils.d.ts +225 -0
- package/build/JCal/Utils.js +666 -0
- package/build/JCal/Zmanim.d.ts +95 -0
- package/build/JCal/Zmanim.js +224 -0
- package/build/JCal/jDate.d.ts +203 -0
- package/build/JCal/jDate.js +647 -0
- package/build/Locations.d.ts +7 -0
- package/build/Locations.js +1308 -0
- package/build/Notifications.d.ts +14 -0
- package/build/Notifications.js +1040 -0
- package/build/Settings.d.ts +25 -0
- package/build/Settings.js +75 -0
- package/build/ZmanTypes.d.ts +34 -0
- package/build/ZmanTypes.js +184 -0
- package/build/index.d.ts +1 -0
- package/build/index.js +59 -0
- package/package.json +33 -0
- package/src/AppUtils.ts +500 -0
- package/src/GeneralUtils.ts +84 -0
- package/src/JCal/Dafyomi.ts +139 -0
- package/src/JCal/Location.ts +100 -0
- package/src/JCal/Molad.ts +105 -0
- package/src/JCal/PirkeiAvos.ts +180 -0
- package/src/JCal/Sedra.ts +215 -0
- package/src/JCal/Utils.ts +732 -0
- package/src/JCal/Zmanim.ts +270 -0
- package/src/JCal/jDate.ts +714 -0
- package/src/Locations.ts +1303 -0
- package/src/Notifications.ts +1243 -0
- package/src/Settings.ts +103 -0
- package/src/ZmanTypes.ts +184 -0
- package/src/index.ts +31 -0
- package/src/jcal-zmanim.d.ts +4 -0
- package/tsconfig.json +109 -0
|
@@ -0,0 +1,1243 @@
|
|
|
1
|
+
import Utils from './JCal/Utils';
|
|
2
|
+
import Settings from './Settings';
|
|
3
|
+
import jDate from './JCal/jDate';
|
|
4
|
+
import Molad from './JCal/Molad';
|
|
5
|
+
import PirkeiAvos from './JCal/PirkeiAvos';
|
|
6
|
+
import AppUtils, { DaysOfWeek } from './AppUtils';
|
|
7
|
+
import Location from './JCal/Location';
|
|
8
|
+
import { Time } from './jcal-zmanim';
|
|
9
|
+
|
|
10
|
+
type DayInfo = {
|
|
11
|
+
jdate: jDate,
|
|
12
|
+
sdate: Date,
|
|
13
|
+
month: number,
|
|
14
|
+
day: number,
|
|
15
|
+
dow: number,
|
|
16
|
+
isAfterChatzosHayom: boolean,
|
|
17
|
+
isAfterChatzosHalayla: boolean,
|
|
18
|
+
isAfterAlos: boolean,
|
|
19
|
+
isAfterShkia: boolean,
|
|
20
|
+
isDaytime: boolean,
|
|
21
|
+
isNightTime: boolean,
|
|
22
|
+
isMorning: boolean,
|
|
23
|
+
isAfternoon: boolean,
|
|
24
|
+
isYomTov: boolean,
|
|
25
|
+
isLeapYear: boolean,
|
|
26
|
+
noTachnun: boolean,
|
|
27
|
+
location: Location,
|
|
28
|
+
}
|
|
29
|
+
const dayNotes: string[] = [];
|
|
30
|
+
const tefillahNotes: string[] = [];
|
|
31
|
+
let showEnglish = false,
|
|
32
|
+
dayInfo: DayInfo,
|
|
33
|
+
showGaonShirShelYom = true,
|
|
34
|
+
israel = true;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Get shul notifications for the given date and location
|
|
38
|
+
* @param {jDate} jdate
|
|
39
|
+
* @param {Date} sdate
|
|
40
|
+
* @param {Time} time
|
|
41
|
+
* @param {Settings} settings
|
|
42
|
+
*/
|
|
43
|
+
export default function getNotifications(jdate: jDate, sdate: Date, time: Time, settings: Settings) {
|
|
44
|
+
dayNotes.length = 0;
|
|
45
|
+
tefillahNotes.length = 0;
|
|
46
|
+
const month = jdate.Month,
|
|
47
|
+
day = jdate.Day,
|
|
48
|
+
dow = jdate.DayOfWeek,
|
|
49
|
+
{ location, showGaonShir, showDafYomi, english } = settings,
|
|
50
|
+
{
|
|
51
|
+
chatzosHayom,
|
|
52
|
+
chatzosHalayla,
|
|
53
|
+
alos,
|
|
54
|
+
shkia,
|
|
55
|
+
} = AppUtils.getBasicShulZmanim(jdate, sdate, location),
|
|
56
|
+
isAfterChatzosHayom = Utils.isTimeAfter(chatzosHayom, time),
|
|
57
|
+
isAfterChatzosHalayla = (typeof (chatzosHalayla) !== 'undefined') &&
|
|
58
|
+
(Utils.isTimeAfter(chatzosHalayla, time) ||
|
|
59
|
+
(chatzosHalayla.hour > 12 && time.hour < 12)), //Chatzos is before 0:00 and time is after 0:00
|
|
60
|
+
isAfterAlos = Utils.isTimeAfter(alos, time),
|
|
61
|
+
isAfterShkia = Utils.isTimeAfter(shkia, time),
|
|
62
|
+
isDaytime = isAfterAlos && !isAfterShkia,
|
|
63
|
+
isNightTime = !isDaytime,
|
|
64
|
+
isNotBeinHasmashos =
|
|
65
|
+
!isAfterShkia ||
|
|
66
|
+
Utils.isTimeAfter(Utils.addMinutes(shkia, 18), time),
|
|
67
|
+
isMorning = isDaytime && !isAfterChatzosHayom,
|
|
68
|
+
isAfternoon = isDaytime && isAfterChatzosHayom,
|
|
69
|
+
isYomTov = jdate.isYomTovOrCholHamoed(location.Israel),
|
|
70
|
+
isLeapYear = jDate.isJdLeapY(jdate.Year),
|
|
71
|
+
noTachnun = isAfternoon && (dow === DaysOfWeek.FRIDAY || day === 29);
|
|
72
|
+
|
|
73
|
+
dayInfo = {
|
|
74
|
+
jdate,
|
|
75
|
+
sdate,
|
|
76
|
+
month,
|
|
77
|
+
day,
|
|
78
|
+
dow,
|
|
79
|
+
isAfterChatzosHayom,
|
|
80
|
+
isAfterChatzosHalayla,
|
|
81
|
+
isAfterAlos,
|
|
82
|
+
isAfterShkia,
|
|
83
|
+
isDaytime,
|
|
84
|
+
isNightTime,
|
|
85
|
+
isMorning,
|
|
86
|
+
isAfternoon,
|
|
87
|
+
isYomTov,
|
|
88
|
+
isLeapYear,
|
|
89
|
+
noTachnun,
|
|
90
|
+
location,
|
|
91
|
+
};
|
|
92
|
+
showEnglish = english;
|
|
93
|
+
showGaonShirShelYom = showGaonShir;
|
|
94
|
+
israel = location.Israel;
|
|
95
|
+
|
|
96
|
+
if (dow === DaysOfWeek.SHABBOS) {
|
|
97
|
+
getShabbosNotifications();
|
|
98
|
+
} else {
|
|
99
|
+
getWeekDayNotifications();
|
|
100
|
+
}
|
|
101
|
+
getAroundTheYearNotifications();
|
|
102
|
+
|
|
103
|
+
if (dayInfo.noTachnun && isDaytime && !isYomTov) {
|
|
104
|
+
if (dow !== DaysOfWeek.SHABBOS) {
|
|
105
|
+
addTefillahNote('No Tachnun', 'א"א תחנון');
|
|
106
|
+
} else if (isAfternoon) {
|
|
107
|
+
addTefillahNote('No Tzidkascha', 'א"א צדקתך');
|
|
108
|
+
} else if (
|
|
109
|
+
!(
|
|
110
|
+
(month === 1 && day > 21) ||
|
|
111
|
+
month === 2 ||
|
|
112
|
+
(month === 3 && day < 6)
|
|
113
|
+
)
|
|
114
|
+
) {
|
|
115
|
+
addTefillahNote('No Av Harachamim', 'א"א אב הרחמים');
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
if (showDafYomi) {
|
|
119
|
+
addDayNote(jdate.getDafYomi(), jdate.getDafyomiHeb());
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
//If it is after the earliest Nacht during Sefiras Ha'omer
|
|
123
|
+
if (
|
|
124
|
+
isNotBeinHasmashos &&
|
|
125
|
+
((month === 1 && day > 15) || month === 2 || (month === 3 && day < 6))
|
|
126
|
+
) {
|
|
127
|
+
const dayOfSefirah = jdate.getDayOfOmer();
|
|
128
|
+
if (dayOfSefirah > 0) {
|
|
129
|
+
addTefillahNote(Utils.getOmerNusach(dayOfSefirah, 'ashkenaz'));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
//return only unique values
|
|
134
|
+
return {
|
|
135
|
+
dayNotes: [...new Set(dayNotes)],
|
|
136
|
+
tefillahNotes: [...new Set(tefillahNotes)],
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
function getShabbosNotifications() {
|
|
141
|
+
const {
|
|
142
|
+
month,
|
|
143
|
+
day,
|
|
144
|
+
isLeapYear,
|
|
145
|
+
isMorning,
|
|
146
|
+
isYomTov,
|
|
147
|
+
jdate,
|
|
148
|
+
isDaytime,
|
|
149
|
+
isAfternoon,
|
|
150
|
+
} = dayInfo;
|
|
151
|
+
if (month === 1 && day > 7 && day < 15) {
|
|
152
|
+
addDayNote('Shabbos Hagadol', 'שבת הגדול');
|
|
153
|
+
} else if (month === 7 && day > 2 && day < 10) {
|
|
154
|
+
addDayNote('Shabbos Shuva', 'שבת שובה');
|
|
155
|
+
} else if (month === 5 && day > 2 && day < 10) {
|
|
156
|
+
addDayNote('Shabbos Chazon', 'שבת חזון');
|
|
157
|
+
} else if (
|
|
158
|
+
(month === (isLeapYear ? 12 : 11) && day > 24) ||
|
|
159
|
+
(month === (isLeapYear ? 13 : 12) && day === 1)
|
|
160
|
+
) {
|
|
161
|
+
addDayNote('Parshas Shkalim', 'פרשת שקלים');
|
|
162
|
+
} else if (month === (isLeapYear ? 13 : 12) && day > 7 && day < 14) {
|
|
163
|
+
addDayNote('Parshas Zachor', 'פרשת זכור');
|
|
164
|
+
} else if (month === (isLeapYear ? 13 : 12) && day > 16 && day < 24) {
|
|
165
|
+
addDayNote('Parshas Parah', 'פרשת פרה');
|
|
166
|
+
} else if (
|
|
167
|
+
(month === (isLeapYear ? 13 : 12) && day > 23 && day < 30) ||
|
|
168
|
+
(month === 1 && day === 1)
|
|
169
|
+
) {
|
|
170
|
+
addDayNote('Parshas Hachodesh', 'פרשת החודש');
|
|
171
|
+
}
|
|
172
|
+
if (isMorning && !isYomTov) {
|
|
173
|
+
const sedra = jdate.getSedra(israel);
|
|
174
|
+
if (sedra.sedras.length > 0) {
|
|
175
|
+
addTefillahNote(
|
|
176
|
+
`Kriyas Hatorah Parshas ${sedra.toString()}`,
|
|
177
|
+
`קה"ת פרשת ${sedra.toStringHeb()}`,
|
|
178
|
+
);
|
|
179
|
+
}
|
|
180
|
+
//All months but Tishrei have Shabbos Mevarchim on the Shabbos before Rosh Chodesh
|
|
181
|
+
if (month !== 6 && day > 22 && day < 30) {
|
|
182
|
+
const nextMonth = jdate.addMonths(1);
|
|
183
|
+
addTefillahNote(
|
|
184
|
+
'The molad will be ' +
|
|
185
|
+
Molad.getString(nextMonth.Year, nextMonth.Month),
|
|
186
|
+
'המולד יהיה ב' +
|
|
187
|
+
Molad.getStringHeb(nextMonth.Year, nextMonth.Month),
|
|
188
|
+
);
|
|
189
|
+
addTefillahNote('Bircas Hachodesh', 'מברכים החודש');
|
|
190
|
+
if (month !== 1 && month !== 2) {
|
|
191
|
+
addTefillahNote('No Av Harachamim', 'א"א אב הרחמים');
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
//Rosh Chodesh
|
|
196
|
+
if (month !== 7 && (day === 1 || day === 30)) {
|
|
197
|
+
addDayNote('Rosh Chodesh', 'ראש חודש');
|
|
198
|
+
addTefillahNote('Ya`aleh Viyavo', 'יעלה ויבא');
|
|
199
|
+
if (showGaonShirShelYom && isDaytime) {
|
|
200
|
+
addTefillahNote('Barchi Nafshi', 'שיר של יום - קי"ד - ברכי נפשי');
|
|
201
|
+
}
|
|
202
|
+
//Rosh Chodesh Teves is during Chanuka
|
|
203
|
+
if (isDaytime && month !== 10 && !(month === 9 && day === 30)) {
|
|
204
|
+
addTefillahNote('Chatzi Hallel', 'חצי הלל');
|
|
205
|
+
}
|
|
206
|
+
addTefillahNote('No Av Harachamim', 'א"א אב הרחמים');
|
|
207
|
+
} else if (isYomTov) {
|
|
208
|
+
addTefillahNote('No Av Harachamim', 'א"א אב הרחמים');
|
|
209
|
+
if (showGaonShirShelYom && isDaytime) {
|
|
210
|
+
addTefillahNote('שיר של יום - מזמור שיר ליום השבת');
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
//Kriyas Hatora - Shabbos by mincha - besides for Yom Kippur
|
|
214
|
+
if (isAfternoon && !(month === 7 && day === 10)) {
|
|
215
|
+
const sedra = jdate.addDays(1).getSedra(israel);
|
|
216
|
+
addTefillahNote(
|
|
217
|
+
'Kriyas Hatorah Mincha Parshas ' + sedra.sedras[0].eng,
|
|
218
|
+
'קה"ת במנחה פרשת ' + sedra.sedras[0].heb,
|
|
219
|
+
);
|
|
220
|
+
}
|
|
221
|
+
if (
|
|
222
|
+
isAfternoon &&
|
|
223
|
+
((month === 1 && day > 21) ||
|
|
224
|
+
(month <= 6 && !(month === 5 && [8, 9].includes(day))))
|
|
225
|
+
) {
|
|
226
|
+
const prakim = PirkeiAvos.getPrakim(jdate, israel);
|
|
227
|
+
if (prakim.length > 0) {
|
|
228
|
+
addDayNote(
|
|
229
|
+
'Pirkei Avos - ' +
|
|
230
|
+
prakim.map(s => `Perek ${Utils.toJNum(s)}`).join(' and '),
|
|
231
|
+
'פרקי אבות - ' +
|
|
232
|
+
prakim.map(s => `פרק ${Utils.toJNum(s)}`).join(' ו'),
|
|
233
|
+
);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
function getWeekDayNotifications() {
|
|
239
|
+
const {
|
|
240
|
+
isNightTime,
|
|
241
|
+
dow,
|
|
242
|
+
isYomTov,
|
|
243
|
+
month,
|
|
244
|
+
day,
|
|
245
|
+
isMorning,
|
|
246
|
+
jdate,
|
|
247
|
+
location,
|
|
248
|
+
isDaytime,
|
|
249
|
+
isAfternoon,
|
|
250
|
+
} = dayInfo;
|
|
251
|
+
|
|
252
|
+
//מוצאי שבת
|
|
253
|
+
if (isNightTime && dow === DaysOfWeek.SUNDAY) {
|
|
254
|
+
//הבדלה בתפילה for מוצאי שבת
|
|
255
|
+
addTefillahNote(
|
|
256
|
+
(month === 1 && day === 15) || (month === 3 && day === 6)
|
|
257
|
+
? 'ותודיעינו'
|
|
258
|
+
: 'אתה חוננתנו',
|
|
259
|
+
);
|
|
260
|
+
//Motzai Shabbos before Yom Tov - no ויהי נועם
|
|
261
|
+
if (
|
|
262
|
+
(month === 6 && day > 22) ||
|
|
263
|
+
(month === 7 && day < 22 && day !== 3) ||
|
|
264
|
+
(month === 1 && day > 8 && day < 15) ||
|
|
265
|
+
(month === 3 && day < 6)
|
|
266
|
+
) {
|
|
267
|
+
addTefillahNote('No Vihi Noam', 'א"א ויהי נועם');
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
//אתה חוננתנו for מוצאי יו"ט
|
|
271
|
+
else if (
|
|
272
|
+
isNightTime &&
|
|
273
|
+
((month === 1 && (day === 16 || day === 22)) ||
|
|
274
|
+
(month === 3 && day === 7) ||
|
|
275
|
+
(month === 7 && [3, 11, 16, 23].includes(day)))
|
|
276
|
+
) {
|
|
277
|
+
addTefillahNote('Ata Chonantanu', 'אתה חוננתנו');
|
|
278
|
+
}
|
|
279
|
+
//Kriyas hatorah for monday and thursday
|
|
280
|
+
//when it's not chol hamoed, chanuka, purim, a fast day or rosh chodesh
|
|
281
|
+
if (
|
|
282
|
+
isMorning &&
|
|
283
|
+
!isYomTov &&
|
|
284
|
+
(dow === DaysOfWeek.MONDAY || dow === DaysOfWeek.THURSDAY) &&
|
|
285
|
+
!hasOwnKriyasHatorah(jdate, location)
|
|
286
|
+
) {
|
|
287
|
+
const sedra = jdate.getSedra(israel);
|
|
288
|
+
if (sedra.sedras.length > 0) {
|
|
289
|
+
addTefillahNote(
|
|
290
|
+
`Kriyas Hatorah Parshas ${sedra.sedras[0].eng}`,
|
|
291
|
+
`קה"ת פרשת ${sedra.sedras[0].heb}`,
|
|
292
|
+
);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
//Rosh Chodesh
|
|
296
|
+
if ((month !== 7 && day === 1) || day === 30) {
|
|
297
|
+
dayInfo.noTachnun = true;
|
|
298
|
+
addDayNote('Rosh Chodesh', 'ראש חודש');
|
|
299
|
+
addTefillahNote('Ya`aleh Viyavo', 'יעלה ויבא');
|
|
300
|
+
if (showGaonShirShelYom && isDaytime) {
|
|
301
|
+
addTefillahNote('Barchi Nafshi', 'שיר של יום - קי"ד - ברכי נפשי');
|
|
302
|
+
}
|
|
303
|
+
//Rosh Chodesh Teves is during Chanuka
|
|
304
|
+
if (isDaytime && month !== 10 && !(month === 9 && day === 30)) {
|
|
305
|
+
addTefillahNote('Chatzi Hallel', 'חצי הלל');
|
|
306
|
+
if (isMorning && dow !== DaysOfWeek.SHABBOS) {
|
|
307
|
+
noLaminatzeach();
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
//Yom Kippur Kattan
|
|
312
|
+
else if (
|
|
313
|
+
month !== 6 &&
|
|
314
|
+
((dow < DaysOfWeek.FRIDAY && day === 29) ||
|
|
315
|
+
(dow === DaysOfWeek.THURSDAY && day === 28)) &&
|
|
316
|
+
isAfternoon
|
|
317
|
+
) {
|
|
318
|
+
addTefillahNote('Yom Kippur Kattan', 'יו"כ קטן');
|
|
319
|
+
}
|
|
320
|
+
if (jdate.hasEiruvTavshilin(israel)) {
|
|
321
|
+
addDayNote('Eruv Tavshilin', 'עירוב תבשילין');
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
function getAroundTheYearNotifications() {
|
|
326
|
+
const {
|
|
327
|
+
month,
|
|
328
|
+
day,
|
|
329
|
+
isNightTime,
|
|
330
|
+
dow,
|
|
331
|
+
isAfternoon,
|
|
332
|
+
isDaytime,
|
|
333
|
+
isMorning,
|
|
334
|
+
isAfterChatzosHalayla,
|
|
335
|
+
jdate,
|
|
336
|
+
isLeapYear,
|
|
337
|
+
location,
|
|
338
|
+
} = dayInfo;
|
|
339
|
+
switch (month) {
|
|
340
|
+
case 1: //Nissan
|
|
341
|
+
dayInfo.noTachnun = true;
|
|
342
|
+
if (day > 15) {
|
|
343
|
+
addTefillahNote('Morid Hatal', 'מוריד הטל');
|
|
344
|
+
}
|
|
345
|
+
if (dow !== DaysOfWeek.SHABBOS && day > 15 && day !== 21) {
|
|
346
|
+
addTefillahNote('Vesain Bracha', 'ותן ברכה');
|
|
347
|
+
}
|
|
348
|
+
if (
|
|
349
|
+
isMorning &&
|
|
350
|
+
dow !== DaysOfWeek.SHABBOS &&
|
|
351
|
+
[14, 16, 17, 18, 19, 20].includes(day)
|
|
352
|
+
) {
|
|
353
|
+
addTefillahNote('No Mizmor Lesodah', 'א"א מזמור לתודה');
|
|
354
|
+
if (dow !== DaysOfWeek.SHABBOS) {
|
|
355
|
+
noLaminatzeach();
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
if (day === 15) {
|
|
359
|
+
addDayNote('First Day of Pesach', 'יו"ט ראשון של פסח');
|
|
360
|
+
addTefillahNote('Full Hallel', 'הלל השלם');
|
|
361
|
+
if (isAfternoon) {
|
|
362
|
+
addTefillahNote('Morid Hatal', 'מוריד הטל');
|
|
363
|
+
}
|
|
364
|
+
if (
|
|
365
|
+
showGaonShirShelYom &&
|
|
366
|
+
isDaytime &&
|
|
367
|
+
dow !== DaysOfWeek.SHABBOS
|
|
368
|
+
) {
|
|
369
|
+
addTefillahNote('שיר של יום - קי"ד - בצאת ישראל');
|
|
370
|
+
}
|
|
371
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
372
|
+
} else if (day === 16 && !israel) {
|
|
373
|
+
addDayNote('Second Day of Pesach', 'יו"ט שני של פסח');
|
|
374
|
+
addTefillahNote('Full Hallel', 'הלל השלם');
|
|
375
|
+
addTefillahNote('Morid Hatal', 'מוריד הטל');
|
|
376
|
+
if (
|
|
377
|
+
showGaonShirShelYom &&
|
|
378
|
+
isDaytime &&
|
|
379
|
+
dow !== DaysOfWeek.SHABBOS
|
|
380
|
+
) {
|
|
381
|
+
addTefillahNote('שיר של יום - קי"ד - בצאת ישראל');
|
|
382
|
+
}
|
|
383
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
384
|
+
} else if ([16, 17, 18, 19, 20, 21].includes(day)) {
|
|
385
|
+
if (day === 21) {
|
|
386
|
+
addDayNote('Shvi`i Shel Pesach', 'שביעי של פםח');
|
|
387
|
+
if (isDaytime) {
|
|
388
|
+
if (israel) {
|
|
389
|
+
addTefillahNote('Yizkor', 'יזכור');
|
|
390
|
+
}
|
|
391
|
+
if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {
|
|
392
|
+
addTefillahNote(
|
|
393
|
+
'שיר של יום - י"ח - למנצח לעבד ה\'',
|
|
394
|
+
);
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
} else {
|
|
398
|
+
addDayNote('Chol Ha`moed Pesach', 'פסח - חול המועד');
|
|
399
|
+
addTefillahNote('Ya`aleh Viyavo', 'יעלה ויבא');
|
|
400
|
+
if (isMorning && dow !== DaysOfWeek.SHABBOS)
|
|
401
|
+
noLaminatzeach();
|
|
402
|
+
if (
|
|
403
|
+
showGaonShirShelYom &&
|
|
404
|
+
isDaytime &&
|
|
405
|
+
dow !== DaysOfWeek.SHABBOS
|
|
406
|
+
) {
|
|
407
|
+
switch (day) {
|
|
408
|
+
case 16:
|
|
409
|
+
if (dow === DaysOfWeek.SUNDAY) {
|
|
410
|
+
addTefillahNote(
|
|
411
|
+
'שיר של יום - קי"ד - בצאת ישראל',
|
|
412
|
+
);
|
|
413
|
+
} else {
|
|
414
|
+
addTefillahNote(
|
|
415
|
+
'שיר של יום - ע"ח - משכיל לאסף',
|
|
416
|
+
);
|
|
417
|
+
}
|
|
418
|
+
break;
|
|
419
|
+
case 17:
|
|
420
|
+
if (dow === DaysOfWeek.MONDAY) {
|
|
421
|
+
addTefillahNote(
|
|
422
|
+
'שיר של יום - ע"ח - משכיל לאסף',
|
|
423
|
+
);
|
|
424
|
+
} else {
|
|
425
|
+
addTefillahNote(
|
|
426
|
+
"שיר של יום - פ' - למנצח אל שושנים",
|
|
427
|
+
);
|
|
428
|
+
}
|
|
429
|
+
break;
|
|
430
|
+
case 18:
|
|
431
|
+
if (
|
|
432
|
+
dow === DaysOfWeek.TUESDAY ||
|
|
433
|
+
dow === DaysOfWeek.SUNDAY
|
|
434
|
+
) {
|
|
435
|
+
addTefillahNote(
|
|
436
|
+
"שיר של יום - פ' - למנצח אל שושנים",
|
|
437
|
+
);
|
|
438
|
+
} else {
|
|
439
|
+
addTefillahNote(
|
|
440
|
+
'שיר של יום - ק"ה - הודו לה\'',
|
|
441
|
+
);
|
|
442
|
+
}
|
|
443
|
+
break;
|
|
444
|
+
case 19:
|
|
445
|
+
if (dow === DaysOfWeek.THURSDAY) {
|
|
446
|
+
addTefillahNote(
|
|
447
|
+
'שיר של יום - קל"ה - הללוי-ה הללו את שם',
|
|
448
|
+
);
|
|
449
|
+
} else {
|
|
450
|
+
addTefillahNote(
|
|
451
|
+
'שיר של יום - ק"ה - הודו לה\'',
|
|
452
|
+
);
|
|
453
|
+
}
|
|
454
|
+
break;
|
|
455
|
+
case 20:
|
|
456
|
+
if (dow === DaysOfWeek.FRIDAY) {
|
|
457
|
+
addTefillahNote(
|
|
458
|
+
'שיר של יום - ס"ו - למנצח שיר מזמור',
|
|
459
|
+
);
|
|
460
|
+
} else {
|
|
461
|
+
addTefillahNote(
|
|
462
|
+
'שיר של יום - קל"ה - הללוי-ה הללו את שם',
|
|
463
|
+
);
|
|
464
|
+
}
|
|
465
|
+
break;
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
}
|
|
469
|
+
if (isDaytime) addTefillahNote('Half Hallel', 'חצי הלל');
|
|
470
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
471
|
+
}
|
|
472
|
+
if (day === 22) {
|
|
473
|
+
if (israel) {
|
|
474
|
+
addDayNote('Isru Chag', 'איסרו חג');
|
|
475
|
+
} else {
|
|
476
|
+
addDayNote('Acharon Shel Pesach', 'אחרון של פסח');
|
|
477
|
+
if (isDaytime) {
|
|
478
|
+
addTefillahNote('Yizkor', 'יזכור');
|
|
479
|
+
addTefillahNote('Half Hallel', 'חצי הלל');
|
|
480
|
+
}
|
|
481
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
482
|
+
}
|
|
483
|
+
if (dow !== DaysOfWeek.SHABBOS && isMorning) {
|
|
484
|
+
noLaminatzeach();
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
if (
|
|
488
|
+
dow === DaysOfWeek.SHABBOS &&
|
|
489
|
+
([15, 16, 17, 18, 19, 20, 21].includes(day) ||
|
|
490
|
+
(!israel && day === 22))
|
|
491
|
+
) {
|
|
492
|
+
addTefillahNote('Shir Hashirim', 'מגילת שיר השירים');
|
|
493
|
+
}
|
|
494
|
+
break;
|
|
495
|
+
case 2: //Iyar
|
|
496
|
+
if (day <= 15) {
|
|
497
|
+
addTefillahNote('Morid Hatal', 'מוריד הטל');
|
|
498
|
+
if (dow !== DaysOfWeek.SHABBOS) {
|
|
499
|
+
addTefillahNote('V`sain Bracha', 'ותן ברכה');
|
|
500
|
+
}
|
|
501
|
+
}
|
|
502
|
+
//Pesach Sheini and Lag Ba'Omer
|
|
503
|
+
if (
|
|
504
|
+
day === 14 ||
|
|
505
|
+
(day === 13 && isAfternoon) ||
|
|
506
|
+
day === 18 ||
|
|
507
|
+
(day === 17 && isAfternoon)
|
|
508
|
+
) {
|
|
509
|
+
dayInfo.noTachnun = true;
|
|
510
|
+
if (day === 14) {
|
|
511
|
+
addDayNote('Pesach Sheini', 'פסח שני');
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
//Baha"b
|
|
515
|
+
if (
|
|
516
|
+
isMorning &&
|
|
517
|
+
((dow === DaysOfWeek.MONDAY && day > 3 && day < 13) ||
|
|
518
|
+
(dow === DaysOfWeek.THURSDAY && day > 6 && day < 14) ||
|
|
519
|
+
(dow === DaysOfWeek.MONDAY &&
|
|
520
|
+
day > 10 &&
|
|
521
|
+
day < 18 &&
|
|
522
|
+
day !== 14))
|
|
523
|
+
) {
|
|
524
|
+
addTefillahNote('Ba`hab', 'סליחות בה"ב');
|
|
525
|
+
addTefillahNote('Avinu Malkeinu', 'אבינו מלכנו');
|
|
526
|
+
}
|
|
527
|
+
break;
|
|
528
|
+
case 3: //Sivan
|
|
529
|
+
if (day < 13) {
|
|
530
|
+
dayInfo.noTachnun = true;
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
if (day === 6) {
|
|
534
|
+
addDayNote('Shavuos', 'יום טוב של שבועות');
|
|
535
|
+
if (isDaytime) {
|
|
536
|
+
addTefillahNote('Full Hallel', 'הלל השלם');
|
|
537
|
+
addTefillahNote('Megilas Rus', 'מגילת רות');
|
|
538
|
+
addTefillahNote('Akdamus', 'אקדמות');
|
|
539
|
+
if (israel) addTefillahNote('Yizkor', 'יזכור');
|
|
540
|
+
if (showGaonShirShelYom) {
|
|
541
|
+
addTefillahNote('שיר של יום - י"ט - ..השמים מספרים..');
|
|
542
|
+
}
|
|
543
|
+
}
|
|
544
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
545
|
+
} else if (day === 7) {
|
|
546
|
+
if (israel) {
|
|
547
|
+
addDayNote('Issru Chag', 'איסרו חג');
|
|
548
|
+
if (isMorning && dow !== DaysOfWeek.SHABBOS) {
|
|
549
|
+
noLaminatzeach();
|
|
550
|
+
}
|
|
551
|
+
} else {
|
|
552
|
+
addDayNote('Shavuos Second Day', 'יום טוב של שבועות');
|
|
553
|
+
if (isDaytime) {
|
|
554
|
+
addTefillahNote('Full Hallel', 'הלל השלם');
|
|
555
|
+
addTefillahNote('Yizkor', 'יזכור');
|
|
556
|
+
}
|
|
557
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
break;
|
|
562
|
+
case 4: //Tammuz
|
|
563
|
+
if (
|
|
564
|
+
isDaytime &&
|
|
565
|
+
((day === 17 && DaysOfWeek.SHABBOS !== 6) ||
|
|
566
|
+
(day === 18 && dow === DaysOfWeek.SUNDAY))
|
|
567
|
+
) {
|
|
568
|
+
if (isDaytime) {
|
|
569
|
+
addDayNote('Shiva Asar B`Tamuz', 'י"ז בתמוז');
|
|
570
|
+
addTefillahNote('Avinu Malkeinu', 'אבינו מלכנו');
|
|
571
|
+
addTefillahNote('Aneinu', 'עננו');
|
|
572
|
+
}
|
|
573
|
+
if (isMorning) {
|
|
574
|
+
addTefillahNote('Selichos', 'סליחות');
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
break;
|
|
578
|
+
case 5: //Av
|
|
579
|
+
if (isAfternoon && day === 8 && dow !== DaysOfWeek.FRIDAY) {
|
|
580
|
+
dayInfo.noTachnun = true;
|
|
581
|
+
} else if (
|
|
582
|
+
(day === 9 && dow !== DaysOfWeek.SHABBOS) ||
|
|
583
|
+
(day === 10 && dow === DaysOfWeek.SUNDAY)
|
|
584
|
+
) {
|
|
585
|
+
addDayNote('Tish B`Av', 'תשעה באב');
|
|
586
|
+
if (isDaytime) {
|
|
587
|
+
addTefillahNote('Kinos', 'קינות');
|
|
588
|
+
addTefillahNote('Aneinu', 'עננו');
|
|
589
|
+
if (isMorning && dow !== DaysOfWeek.SHABBOS) {
|
|
590
|
+
noLaminatzeach();
|
|
591
|
+
}
|
|
592
|
+
} else {
|
|
593
|
+
addTefillahNote('Megilas Eicha', 'מגילת איכה');
|
|
594
|
+
if (isNightTime && dow === DaysOfWeek.SUNDAY) {
|
|
595
|
+
addTefillahNote('No Vihi Noam', 'א"א ויהי נועם');
|
|
596
|
+
}
|
|
597
|
+
}
|
|
598
|
+
dayInfo.noTachnun = true;
|
|
599
|
+
} else if (isAfternoon && day === 14) {
|
|
600
|
+
dayInfo.noTachnun = true;
|
|
601
|
+
} else if (day === 15) {
|
|
602
|
+
addDayNote('Tu B`Av', 'ט"ו באב');
|
|
603
|
+
dayInfo.noTachnun = true;
|
|
604
|
+
}
|
|
605
|
+
break;
|
|
606
|
+
case 6: //Ellul
|
|
607
|
+
addTefillahNote('L`Dovid Hashem Ori', 'לדוד ה');
|
|
608
|
+
if (
|
|
609
|
+
day > 20 &&
|
|
610
|
+
dow !== DaysOfWeek.SHABBOS &&
|
|
611
|
+
(isAfterChatzosHalayla || isMorning)
|
|
612
|
+
) {
|
|
613
|
+
let startedSelichos = day >= 26;
|
|
614
|
+
if (day < 26) {
|
|
615
|
+
const daysToRH = 30 - day,
|
|
616
|
+
dowRH = (daysToRH + dow) % 7;
|
|
617
|
+
switch (dowRH) {
|
|
618
|
+
case DaysOfWeek.MONDAY:
|
|
619
|
+
startedSelichos = day >= 22;
|
|
620
|
+
break;
|
|
621
|
+
case DaysOfWeek.TUESDAY:
|
|
622
|
+
startedSelichos = day >= 21;
|
|
623
|
+
break;
|
|
624
|
+
case DaysOfWeek.SHABBOS:
|
|
625
|
+
startedSelichos = day >= 24;
|
|
626
|
+
break;
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
if (startedSelichos) {
|
|
630
|
+
addTefillahNote('Selichos', 'סליחות');
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
if (day === 29) {
|
|
634
|
+
dayInfo.noTachnun = true;
|
|
635
|
+
}
|
|
636
|
+
break;
|
|
637
|
+
case 7: //Tishrei
|
|
638
|
+
if (day < 11) {
|
|
639
|
+
addTefillahNote('Hamelech Hakadosh', 'המלך הקדוש');
|
|
640
|
+
if (dow !== DaysOfWeek.SHABBOS && day !== 9) {
|
|
641
|
+
addTefillahNote('Avinu Malkeinu', 'אבינו מלכנו');
|
|
642
|
+
}
|
|
643
|
+
}
|
|
644
|
+
//Days of Rosh Hashana, Tzom Gedaliah and Yom Kippur are dealt with individually below.
|
|
645
|
+
if (day > 4 && day < 10 && dow !== DaysOfWeek.SHABBOS) {
|
|
646
|
+
addTefillahNote('Selichos', 'סליחות');
|
|
647
|
+
addTefillahNote('Hamelech Hamishpat', 'המלך המשפט');
|
|
648
|
+
}
|
|
649
|
+
if (dow === DaysOfWeek.SHABBOS && day > 2 && day < 10) {
|
|
650
|
+
addDayNote('Shabbos Shuva', 'שבת שובה');
|
|
651
|
+
}
|
|
652
|
+
if (day >= 10) {
|
|
653
|
+
dayInfo.noTachnun = true;
|
|
654
|
+
}
|
|
655
|
+
switch (day) {
|
|
656
|
+
case 1:
|
|
657
|
+
addDayNote('Rosh Hashana', 'ראש השנה');
|
|
658
|
+
if (dow !== DaysOfWeek.SHABBOS && isDaytime) {
|
|
659
|
+
addTefillahNote('Tekias Shofar', 'תקיעת שופר');
|
|
660
|
+
if (showGaonShirShelYom) {
|
|
661
|
+
addTefillahNote(
|
|
662
|
+
'שיר של יום - פ"א - למנצח על הגתית',
|
|
663
|
+
);
|
|
664
|
+
}
|
|
665
|
+
if (isAfternoon) {
|
|
666
|
+
addDayNote('Tashlich', 'תשליך');
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
670
|
+
break;
|
|
671
|
+
case 2:
|
|
672
|
+
addDayNote('Rosh Hashana', 'ראש השנה');
|
|
673
|
+
if (isDaytime) {
|
|
674
|
+
addTefillahNote('Tekias Shofar', 'תקיעת שופר');
|
|
675
|
+
if (showGaonShirShelYom) {
|
|
676
|
+
addTefillahNote(
|
|
677
|
+
'שיר של יום - פ"א - למנצח על הגתית',
|
|
678
|
+
);
|
|
679
|
+
}
|
|
680
|
+
if (dow === DaysOfWeek.SUNDAY && isAfternoon) {
|
|
681
|
+
addDayNote('Tashlich', 'תשליך');
|
|
682
|
+
}
|
|
683
|
+
}
|
|
684
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
685
|
+
break;
|
|
686
|
+
case 3:
|
|
687
|
+
if (dow !== DaysOfWeek.SHABBOS) {
|
|
688
|
+
if (isDaytime) {
|
|
689
|
+
addDayNote('Fast of Tzom Gedalya', 'צום גדליה');
|
|
690
|
+
addTefillahNote('Aneinu', 'עננו');
|
|
691
|
+
}
|
|
692
|
+
if (isAfterChatzosHalayla || isMorning) {
|
|
693
|
+
addTefillahNote('Selichos', 'סליחות');
|
|
694
|
+
}
|
|
695
|
+
addTefillahNote('Hamelech Hamishpat', 'המלך המשפט');
|
|
696
|
+
}
|
|
697
|
+
break;
|
|
698
|
+
case 4:
|
|
699
|
+
if (dow === DaysOfWeek.SUNDAY) {
|
|
700
|
+
if (isDaytime) {
|
|
701
|
+
addDayNote('Fast of Tzom Gedalya', 'צום גדליה');
|
|
702
|
+
addTefillahNote('Aneinu', 'עננו');
|
|
703
|
+
}
|
|
704
|
+
if (isAfterChatzosHalayla || isMorning) {
|
|
705
|
+
addTefillahNote('Selichos', 'סליחות');
|
|
706
|
+
}
|
|
707
|
+
addTefillahNote('Hamelech Hamishpat', 'המלך המשפט');
|
|
708
|
+
} else if (dow !== DaysOfWeek.SHABBOS) {
|
|
709
|
+
addTefillahNote('Hamelech Hamishpat', 'המלך המשפט');
|
|
710
|
+
if (isAfterChatzosHalayla || isMorning) {
|
|
711
|
+
addTefillahNote('Selichos', 'סליחות');
|
|
712
|
+
}
|
|
713
|
+
}
|
|
714
|
+
break;
|
|
715
|
+
case 9:
|
|
716
|
+
addDayNote('Erev Yom Kippur', 'ערב יום כיפור');
|
|
717
|
+
if (isMorning) {
|
|
718
|
+
addTefillahNote('No Mizmor L`Sodah', 'א"א מזמור לתודה');
|
|
719
|
+
if (dow !== DaysOfWeek.SHABBOS) {
|
|
720
|
+
noLaminatzeach();
|
|
721
|
+
}
|
|
722
|
+
if (dow === DaysOfWeek.FRIDAY) {
|
|
723
|
+
addTefillahNote('Avinu Malkeinu', 'אבינו מלכנו');
|
|
724
|
+
}
|
|
725
|
+
} else if (isAfternoon) {
|
|
726
|
+
addTefillahNote('Vidduy', 'ודוי בעמידה');
|
|
727
|
+
}
|
|
728
|
+
if (isDaytime && dow !== DaysOfWeek.FRIDAY) {
|
|
729
|
+
addTefillahNote('No Avinu Malkeinu', 'א"א אבינו מלכנו');
|
|
730
|
+
}
|
|
731
|
+
dayInfo.noTachnun = true;
|
|
732
|
+
break;
|
|
733
|
+
case 10:
|
|
734
|
+
addDayNote('Yom Kippur', 'יום הכיפורים');
|
|
735
|
+
addDayNote("לפני ה' תטהרו");
|
|
736
|
+
if (isDaytime) {
|
|
737
|
+
addTefillahNote('Yizkor', 'יזכור');
|
|
738
|
+
if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {
|
|
739
|
+
addTefillahNote('שיר של יום - ל"ב - לדוד משכיל');
|
|
740
|
+
}
|
|
741
|
+
}
|
|
742
|
+
if (isAfternoon) {
|
|
743
|
+
//only Yom Kippur has its own Kriyas Hatorah
|
|
744
|
+
addTefillahNote('קה"ת במנחה סוף פרשת אח"מ');
|
|
745
|
+
}
|
|
746
|
+
break;
|
|
747
|
+
case 15:
|
|
748
|
+
addDayNote('First day of Sukkos', 'יו"ט ראשון של סוכות');
|
|
749
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
750
|
+
if (isDaytime) {
|
|
751
|
+
addTefillahNote('Full Hallel', 'הלל השלם');
|
|
752
|
+
if (dow !== DaysOfWeek.SHABBOS) {
|
|
753
|
+
addTefillahNote(
|
|
754
|
+
'Hoshanos - למען אמתך',
|
|
755
|
+
'הושענות - למען אמתך',
|
|
756
|
+
);
|
|
757
|
+
addTefillahNote('Kah Keli', 'קה קלי');
|
|
758
|
+
if (showGaonShirShelYom) {
|
|
759
|
+
addTefillahNote(
|
|
760
|
+
'שיר של יום - ע"ו - למנצח בנגינות מזמור',
|
|
761
|
+
);
|
|
762
|
+
}
|
|
763
|
+
} else {
|
|
764
|
+
addTefillahNote(
|
|
765
|
+
'Hoshanos - אום נצורה',
|
|
766
|
+
'הושענות - אום נצורה',
|
|
767
|
+
);
|
|
768
|
+
}
|
|
769
|
+
}
|
|
770
|
+
break;
|
|
771
|
+
case 16:
|
|
772
|
+
case 17:
|
|
773
|
+
case 18:
|
|
774
|
+
case 19:
|
|
775
|
+
case 20:
|
|
776
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
777
|
+
if (day === 16 && !israel) {
|
|
778
|
+
addDayNote(
|
|
779
|
+
'Second day of Sukkos',
|
|
780
|
+
'סוכות - יום טוב שני',
|
|
781
|
+
);
|
|
782
|
+
} else if (!israel) {
|
|
783
|
+
addDayNote('Chol Hamoed Sukkos', 'סוכות - חול המועד');
|
|
784
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
785
|
+
}
|
|
786
|
+
if (isDaytime) {
|
|
787
|
+
addTefillahNote('Full Hallel', 'הלל השלם');
|
|
788
|
+
switch (day) {
|
|
789
|
+
case 16:
|
|
790
|
+
addTefillahNote(
|
|
791
|
+
'הושענות - ' +
|
|
792
|
+
(dow === DaysOfWeek.SUNDAY
|
|
793
|
+
? 'למען אמתך'
|
|
794
|
+
: 'אבן שתיה'),
|
|
795
|
+
);
|
|
796
|
+
if (
|
|
797
|
+
showGaonShirShelYom &&
|
|
798
|
+
dow !== DaysOfWeek.SHABBOS
|
|
799
|
+
) {
|
|
800
|
+
addTefillahNote(
|
|
801
|
+
'שיר של יום - כ"ט - ..הבו לה\' בני אלים',
|
|
802
|
+
);
|
|
803
|
+
}
|
|
804
|
+
break;
|
|
805
|
+
case 17:
|
|
806
|
+
addTefillahNote(
|
|
807
|
+
(showEnglish ? 'Hoshanos' : 'הושענות') +
|
|
808
|
+
' - ' +
|
|
809
|
+
(dow === DaysOfWeek.SHABBOS
|
|
810
|
+
? 'אום נצורה'
|
|
811
|
+
: 'אערוך שועי'),
|
|
812
|
+
);
|
|
813
|
+
if (
|
|
814
|
+
showGaonShirShelYom &&
|
|
815
|
+
dow !== DaysOfWeek.SHABBOS
|
|
816
|
+
) {
|
|
817
|
+
addTefillahNote(
|
|
818
|
+
"שיר של יום - נ' - מזמור לאסף",
|
|
819
|
+
);
|
|
820
|
+
}
|
|
821
|
+
break;
|
|
822
|
+
case 18:
|
|
823
|
+
if (dow === DaysOfWeek.SUNDAY) {
|
|
824
|
+
addTefillahNote(
|
|
825
|
+
(showEnglish ? 'Hoshanos' : 'הושענות') +
|
|
826
|
+
' - ' +
|
|
827
|
+
'אערוך שועי',
|
|
828
|
+
);
|
|
829
|
+
if (showGaonShirShelYom) {
|
|
830
|
+
addTefillahNote(
|
|
831
|
+
"שיר של יום - נ' - מזמור לאסף",
|
|
832
|
+
);
|
|
833
|
+
}
|
|
834
|
+
} else {
|
|
835
|
+
if (dow === DaysOfWeek.TUESDAY) {
|
|
836
|
+
addTefillahNote(
|
|
837
|
+
(showEnglish
|
|
838
|
+
? 'Hoshanos'
|
|
839
|
+
: 'הושענות') +
|
|
840
|
+
' - ' +
|
|
841
|
+
'אבן שתיה',
|
|
842
|
+
);
|
|
843
|
+
} else if (dow === DaysOfWeek.THURSDAY) {
|
|
844
|
+
addTefillahNote(
|
|
845
|
+
(showEnglish
|
|
846
|
+
? 'Hoshanos'
|
|
847
|
+
: 'הושענות') +
|
|
848
|
+
' - ' +
|
|
849
|
+
'אום אני חומה',
|
|
850
|
+
);
|
|
851
|
+
} else if (dow === DaysOfWeek.FRIDAY) {
|
|
852
|
+
addTefillahNote(
|
|
853
|
+
(showEnglish
|
|
854
|
+
? 'Hoshanos'
|
|
855
|
+
: 'הושענות') +
|
|
856
|
+
' - ' +
|
|
857
|
+
'א-ל למושעות',
|
|
858
|
+
);
|
|
859
|
+
}
|
|
860
|
+
if (
|
|
861
|
+
showGaonShirShelYom &&
|
|
862
|
+
dow !== DaysOfWeek.SHABBOS
|
|
863
|
+
) {
|
|
864
|
+
addTefillahNote(
|
|
865
|
+
'שיר של יום - צ"ד - ..מי יקום לי..',
|
|
866
|
+
);
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
break;
|
|
870
|
+
case 19:
|
|
871
|
+
addTefillahNote(
|
|
872
|
+
(showEnglish ? 'Hoshanos' : 'הושענות') +
|
|
873
|
+
' - ' +
|
|
874
|
+
(dow === DaysOfWeek.SHABBOS
|
|
875
|
+
? 'אום נצורה'
|
|
876
|
+
: 'א-ל למושעות'),
|
|
877
|
+
);
|
|
878
|
+
if (
|
|
879
|
+
showGaonShirShelYom &&
|
|
880
|
+
dow !== DaysOfWeek.SHABBOS
|
|
881
|
+
) {
|
|
882
|
+
if (dow === DaysOfWeek.MONDAY) {
|
|
883
|
+
addTefillahNote(
|
|
884
|
+
'שיר של יום - צ"ד - ..מי יקום לי..',
|
|
885
|
+
);
|
|
886
|
+
} else {
|
|
887
|
+
addTefillahNote(
|
|
888
|
+
'שיר של יום - צ"ד - א-ל נקמות.. ישרי לב',
|
|
889
|
+
);
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
break;
|
|
893
|
+
case 20:
|
|
894
|
+
addTefillahNote(
|
|
895
|
+
(showEnglish ? 'Hoshanos' : 'הושענות') +
|
|
896
|
+
' - ' +
|
|
897
|
+
(dow === DaysOfWeek.SHABBOS
|
|
898
|
+
? 'אום נצורה'
|
|
899
|
+
: 'אדון המושיע'),
|
|
900
|
+
);
|
|
901
|
+
if (
|
|
902
|
+
showGaonShirShelYom &&
|
|
903
|
+
dow !== DaysOfWeek.SHABBOS
|
|
904
|
+
) {
|
|
905
|
+
if (dow === DaysOfWeek.THURSDAY) {
|
|
906
|
+
addTefillahNote(
|
|
907
|
+
'שיר של יום - פ"א - למנצח על הגתית',
|
|
908
|
+
);
|
|
909
|
+
} else {
|
|
910
|
+
addTefillahNote(
|
|
911
|
+
'שיר של יום - צ"ד - א-ל נקמות.. ישרי לב',
|
|
912
|
+
);
|
|
913
|
+
}
|
|
914
|
+
}
|
|
915
|
+
break;
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
break;
|
|
919
|
+
case 21:
|
|
920
|
+
addDayNote('Hoshana Raba', 'הושעה רבה');
|
|
921
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
922
|
+
if (isNightTime) {
|
|
923
|
+
addTefillahNote('Mishneh Torah', 'משנה תורה');
|
|
924
|
+
} else {
|
|
925
|
+
addTefillahNote('Hoshanos', 'הושענות');
|
|
926
|
+
addTefillahNote('Full Hallel', 'הלל השלם');
|
|
927
|
+
if (showGaonShirShelYom) {
|
|
928
|
+
if (dow === DaysOfWeek.FRIDAY) {
|
|
929
|
+
addTefillahNote(
|
|
930
|
+
'שיר של יום - פ"ב - מזמור לאסף',
|
|
931
|
+
);
|
|
932
|
+
} else {
|
|
933
|
+
addTefillahNote(
|
|
934
|
+
'שיר של יום - פ"א - למנצח על הגתית',
|
|
935
|
+
);
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
break;
|
|
940
|
+
case 22:
|
|
941
|
+
addDayNote('Shmini Atzeres', 'שמיני עצרת');
|
|
942
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
943
|
+
if (israel) {
|
|
944
|
+
addDayNote('Simchas Torah', 'שמחת תורה');
|
|
945
|
+
addTefillahNote('Hakafos', 'הקפות');
|
|
946
|
+
}
|
|
947
|
+
if (isDaytime) {
|
|
948
|
+
addTefillahNote('Full Hallel', 'הלל השלם');
|
|
949
|
+
addTefillahNote('Yizkor', 'יזכור');
|
|
950
|
+
addTefillahNote('Tefilas Geshem', 'תפילת גשם');
|
|
951
|
+
addTefillahNote('משיב הרוח ומוריד הגשם');
|
|
952
|
+
if (showGaonShirShelYom && dow !== DaysOfWeek.SHABBOS) {
|
|
953
|
+
addTefillahNote(
|
|
954
|
+
'שיר של יום - י"ב - למנצח על השמינית',
|
|
955
|
+
);
|
|
956
|
+
}
|
|
957
|
+
}
|
|
958
|
+
break;
|
|
959
|
+
}
|
|
960
|
+
if (day === 23) {
|
|
961
|
+
if (!israel) {
|
|
962
|
+
addDayNote('Simchas Torah', 'שמחת תורה');
|
|
963
|
+
addTefillahNote('Ya`aleh V`yavo', 'יעלה ויבא');
|
|
964
|
+
addTefillahNote('Hakafos', 'הקפות');
|
|
965
|
+
addTefillahNote('Full Hallel', 'הלל השלם');
|
|
966
|
+
} else {
|
|
967
|
+
addDayNote('Issru Chag', 'איסרו חג');
|
|
968
|
+
if (isNightTime) {
|
|
969
|
+
addDayNote('א גוטען ווינטער', 'חורף טוב');
|
|
970
|
+
} else if (dow !== DaysOfWeek.SHABBOS && isMorning) {
|
|
971
|
+
noLaminatzeach();
|
|
972
|
+
}
|
|
973
|
+
}
|
|
974
|
+
} else if (
|
|
975
|
+
dow === DaysOfWeek.SHABBOS &&
|
|
976
|
+
[15, 17, 18, 19, 20].includes(day)
|
|
977
|
+
) {
|
|
978
|
+
addTefillahNote('Megilas Koheles', 'מגילת קהלת');
|
|
979
|
+
}
|
|
980
|
+
if (day < 22) {
|
|
981
|
+
addTefillahNote('L`Dovid Hashem Ori', 'לדוד ה');
|
|
982
|
+
} else if (day > 22) {
|
|
983
|
+
addTefillahNote(
|
|
984
|
+
'Mashiv Haruach U`Morid Hageshem',
|
|
985
|
+
'משיב הרוח ומוריד הגשם',
|
|
986
|
+
);
|
|
987
|
+
}
|
|
988
|
+
break;
|
|
989
|
+
case 8: //Cheshvan
|
|
990
|
+
if (
|
|
991
|
+
isDaytime &&
|
|
992
|
+
((dow === DaysOfWeek.MONDAY && day > 3 && day < 13) ||
|
|
993
|
+
(dow === DaysOfWeek.THURSDAY && day > 6 && day < 14) ||
|
|
994
|
+
(dow === DaysOfWeek.MONDAY && day > 10 && day < 18))
|
|
995
|
+
) {
|
|
996
|
+
addTefillahNote('Ba`Hab', 'סליחות בה"ב');
|
|
997
|
+
addTefillahNote('Avinu Malkeinu', 'אבינו מלכנו');
|
|
998
|
+
}
|
|
999
|
+
if (day <= 22) {
|
|
1000
|
+
addTefillahNote(
|
|
1001
|
+
'Mashiv Haruach U`Morid Hageshem',
|
|
1002
|
+
'משיב הרוח ומוריד הגשם',
|
|
1003
|
+
);
|
|
1004
|
+
}
|
|
1005
|
+
if (day >= 7 && dow !== DaysOfWeek.SHABBOS) {
|
|
1006
|
+
addTefillahNote('V`sain Tal U`matar', 'ותן טל ומטר');
|
|
1007
|
+
}
|
|
1008
|
+
break;
|
|
1009
|
+
case 9: //Kislev
|
|
1010
|
+
if (day <= 7 && dow !== DaysOfWeek.SHABBOS) {
|
|
1011
|
+
addTefillahNote('V`sain Tal U`matar', 'ותן טל ומטר');
|
|
1012
|
+
} else if (
|
|
1013
|
+
day === 24 &&
|
|
1014
|
+
dow !== DaysOfWeek.SHABBOS &&
|
|
1015
|
+
isAfternoon
|
|
1016
|
+
) {
|
|
1017
|
+
dayInfo.noTachnun = true;
|
|
1018
|
+
} else if (day >= 25) {
|
|
1019
|
+
dayInfo.noTachnun = true;
|
|
1020
|
+
addDayNote('Chanukah', 'חנוכה');
|
|
1021
|
+
addTefillahNote('Al Hanissim', 'על הניסים');
|
|
1022
|
+
if (isDaytime) {
|
|
1023
|
+
addTefillahNote('Full Hallel', 'הלל השלם');
|
|
1024
|
+
if (isMorning && dow !== DaysOfWeek.SHABBOS)
|
|
1025
|
+
noLaminatzeach();
|
|
1026
|
+
if (
|
|
1027
|
+
showGaonShirShelYom &&
|
|
1028
|
+
day !== 30 &&
|
|
1029
|
+
dow !== DaysOfWeek.SHABBOS
|
|
1030
|
+
) {
|
|
1031
|
+
addTefillahNote(
|
|
1032
|
+
"שיר של יום - ל' - מזמור שיר חנוכת הבית",
|
|
1033
|
+
);
|
|
1034
|
+
}
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
1037
|
+
break;
|
|
1038
|
+
case 10: //Teves
|
|
1039
|
+
if (day <= (jDate.isShortKislev(jdate.Year) ? 3 : 2)) {
|
|
1040
|
+
dayInfo.noTachnun = true;
|
|
1041
|
+
addDayNote('Chanukah', 'חנוכה');
|
|
1042
|
+
addTefillahNote('Al Hanissim', 'על הניסים');
|
|
1043
|
+
if (isDaytime) {
|
|
1044
|
+
addTefillahNote('Full Hallel', 'הלל השלם');
|
|
1045
|
+
if (isMorning && dow !== DaysOfWeek.SHABBOS) {
|
|
1046
|
+
noLaminatzeach();
|
|
1047
|
+
if (day !== 1 && showGaonShirShelYom) {
|
|
1048
|
+
addTefillahNote(
|
|
1049
|
+
"שיר של יום - ל' - מזמור שיר חנוכת הבית",
|
|
1050
|
+
);
|
|
1051
|
+
}
|
|
1052
|
+
}
|
|
1053
|
+
}
|
|
1054
|
+
} else if (day === 10 && isDaytime) {
|
|
1055
|
+
addDayNote('Fast of Asara B`Teves', 'עשרה בטבת');
|
|
1056
|
+
if (isMorning) {
|
|
1057
|
+
addTefillahNote('Selichos', 'סליחות');
|
|
1058
|
+
}
|
|
1059
|
+
addTefillahNote('Avinu Malkeinu', 'אבינו מלכנו');
|
|
1060
|
+
addTefillahNote('Aneinu', 'עננו');
|
|
1061
|
+
}
|
|
1062
|
+
break;
|
|
1063
|
+
case 11: //Shvat
|
|
1064
|
+
if (day === 14 && isAfternoon) dayInfo.noTachnun = true;
|
|
1065
|
+
if (day === 15) {
|
|
1066
|
+
dayInfo.noTachnun = true;
|
|
1067
|
+
addDayNote('Tu B`Shvat', 'ט"ו בשבט');
|
|
1068
|
+
}
|
|
1069
|
+
break;
|
|
1070
|
+
case 12:
|
|
1071
|
+
case 13:
|
|
1072
|
+
if (month === 12 && isLeapYear) {
|
|
1073
|
+
//Adar Rishon in a leap year
|
|
1074
|
+
if (
|
|
1075
|
+
((day === 13 && isAfternoon) || [14, 15].includes(day)) &&
|
|
1076
|
+
isDaytime
|
|
1077
|
+
) {
|
|
1078
|
+
addDayNote(
|
|
1079
|
+
day === 14
|
|
1080
|
+
? showEnglish
|
|
1081
|
+
? 'Purim Katan'
|
|
1082
|
+
: 'פורים קטן'
|
|
1083
|
+
: showEnglish
|
|
1084
|
+
? 'Shushan Purim Katan'
|
|
1085
|
+
: 'שושן פורים קטן',
|
|
1086
|
+
);
|
|
1087
|
+
dayInfo.noTachnun = true;
|
|
1088
|
+
if (isMorning && dow !== DaysOfWeek.SHABBOS) {
|
|
1089
|
+
noLaminatzeach();
|
|
1090
|
+
}
|
|
1091
|
+
}
|
|
1092
|
+
} else {
|
|
1093
|
+
//The "real" Adar: the only one in a non-leap-year or Adar Sheini
|
|
1094
|
+
if (
|
|
1095
|
+
isDaytime &&
|
|
1096
|
+
((day === 11 && dow === DaysOfWeek.THURSDAY) ||
|
|
1097
|
+
(day === 13 && dow !== DaysOfWeek.SHABBOS))
|
|
1098
|
+
) {
|
|
1099
|
+
if (isMorning) {
|
|
1100
|
+
addDayNote('Fast of Ta`anis Esther', 'תענית אסתר');
|
|
1101
|
+
addTefillahNote('Selichos', 'סליחות');
|
|
1102
|
+
}
|
|
1103
|
+
addTefillahNote('Avinu Malkeinu', 'אבינו מלכנו');
|
|
1104
|
+
addTefillahNote('Aneinu', 'עננו');
|
|
1105
|
+
} else {
|
|
1106
|
+
//Only ירושלים says על הניסים on ט"ו
|
|
1107
|
+
const isYerushalayim = location.Name === 'ירושלים';
|
|
1108
|
+
if (day === 14) {
|
|
1109
|
+
dayInfo.noTachnun = true;
|
|
1110
|
+
if (isMorning && dow !== DaysOfWeek.SHABBOS) {
|
|
1111
|
+
noLaminatzeach();
|
|
1112
|
+
}
|
|
1113
|
+
//On a Purim Meshulash in Yerushalayim, מגילת אסתר is on י"ד
|
|
1114
|
+
if (!isYerushalayim || dow === DaysOfWeek.FRIDAY) {
|
|
1115
|
+
addDayNote('Megilas Esther', 'מגילת אסתר');
|
|
1116
|
+
if (!isYerushalayim) {
|
|
1117
|
+
addDayNote('Purim', 'פורים');
|
|
1118
|
+
addTefillahNote('Al Hanissim', 'על הניסים');
|
|
1119
|
+
if (showGaonShirShelYom) {
|
|
1120
|
+
addTefillahNote(
|
|
1121
|
+
'שיר של יום - כ"ב - למנצח על אילת השחר',
|
|
1122
|
+
);
|
|
1123
|
+
}
|
|
1124
|
+
} else {
|
|
1125
|
+
//On a Purim Meshulash in Yerushalayim, מתנות לאביונים is on י"ד
|
|
1126
|
+
addDayNote(
|
|
1127
|
+
'Matanos LeEvyonim',
|
|
1128
|
+
'מתנות לאביונים',
|
|
1129
|
+
);
|
|
1130
|
+
}
|
|
1131
|
+
} else {
|
|
1132
|
+
addDayNote('Purim D`Prazim', 'פורים דפרזים');
|
|
1133
|
+
}
|
|
1134
|
+
} else if (day === 15) {
|
|
1135
|
+
dayInfo.noTachnun = true;
|
|
1136
|
+
if (isMorning && dow !== DaysOfWeek.SHABBOS) {
|
|
1137
|
+
noLaminatzeach();
|
|
1138
|
+
}
|
|
1139
|
+
if (isYerushalayim) {
|
|
1140
|
+
addDayNote('Purim', 'פורים');
|
|
1141
|
+
addTefillahNote('Al Hanissim', 'על הניסים');
|
|
1142
|
+
if (dow !== DaysOfWeek.SHABBOS) {
|
|
1143
|
+
addDayNote('Megilas Esther', 'מגילת אסתר');
|
|
1144
|
+
}
|
|
1145
|
+
if (
|
|
1146
|
+
showGaonShirShelYom &&
|
|
1147
|
+
isDaytime &&
|
|
1148
|
+
dow !== DaysOfWeek.SHABBOS
|
|
1149
|
+
) {
|
|
1150
|
+
addTefillahNote(
|
|
1151
|
+
'שיר של יום - כ"ב - למנצח על אילת השחר',
|
|
1152
|
+
);
|
|
1153
|
+
}
|
|
1154
|
+
} else if (
|
|
1155
|
+
[
|
|
1156
|
+
'טבריה',
|
|
1157
|
+
'יפו',
|
|
1158
|
+
'עכו',
|
|
1159
|
+
'צפת',
|
|
1160
|
+
'באר שבע',
|
|
1161
|
+
'חיפה',
|
|
1162
|
+
'באר שבע',
|
|
1163
|
+
'בית שאן',
|
|
1164
|
+
'לוד',
|
|
1165
|
+
].includes(location.Name)
|
|
1166
|
+
) {
|
|
1167
|
+
addDayNote('Purim D`Mukafin', 'פורים דמוקפין');
|
|
1168
|
+
if (dow !== DaysOfWeek.SHABBOS) {
|
|
1169
|
+
addDayNote('(Megilas Esther)', '(מגילת אסתר)');
|
|
1170
|
+
}
|
|
1171
|
+
} else {
|
|
1172
|
+
addDayNote('Shushan Purim', 'שושן פורים');
|
|
1173
|
+
}
|
|
1174
|
+
} else if (
|
|
1175
|
+
day === 16 &&
|
|
1176
|
+
isYerushalayim &&
|
|
1177
|
+
dow === DaysOfWeek.SUNDAY
|
|
1178
|
+
) {
|
|
1179
|
+
addDayNote(
|
|
1180
|
+
'Purim Seuda and Mishloach Manos',
|
|
1181
|
+
'סעודת פורים ומשלוח מנות',
|
|
1182
|
+
);
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
}
|
|
1186
|
+
break;
|
|
1187
|
+
}
|
|
1188
|
+
}
|
|
1189
|
+
|
|
1190
|
+
function noLaminatzeach() {
|
|
1191
|
+
addTefillahNote('No Laminatzeach', 'א"א למנצח');
|
|
1192
|
+
}
|
|
1193
|
+
|
|
1194
|
+
function addDayNote(englishOrDefaultText: string, hebrewText?: string) {
|
|
1195
|
+
const note = showEnglish || !hebrewText ? englishOrDefaultText : hebrewText;
|
|
1196
|
+
if (!dayNotes.includes(note)) {
|
|
1197
|
+
dayNotes.push(note);
|
|
1198
|
+
}
|
|
1199
|
+
}
|
|
1200
|
+
|
|
1201
|
+
function addTefillahNote(englishOrDefaultText: string, hebrewText?: string) {
|
|
1202
|
+
const note = showEnglish || !hebrewText ? englishOrDefaultText : hebrewText;
|
|
1203
|
+
if (!tefillahNotes.includes(note)) {
|
|
1204
|
+
tefillahNotes.push(note);
|
|
1205
|
+
}
|
|
1206
|
+
}
|
|
1207
|
+
|
|
1208
|
+
function hasOwnKriyasHatorah(jdate: jDate, location: Location) {
|
|
1209
|
+
const { Month, Day, DayOfWeek } = jdate;
|
|
1210
|
+
//Rosh chodesh
|
|
1211
|
+
if (Day === 1 || Day === 30) {
|
|
1212
|
+
return true;
|
|
1213
|
+
}
|
|
1214
|
+
switch (Month) {
|
|
1215
|
+
case 1:
|
|
1216
|
+
return Day > 14 && Day < 22;
|
|
1217
|
+
case 4:
|
|
1218
|
+
return Day === 17 || (DayOfWeek === 0 && Day === 18);
|
|
1219
|
+
case 5:
|
|
1220
|
+
return Day === 9 || (DayOfWeek === 0 && Day === 10);
|
|
1221
|
+
case 7:
|
|
1222
|
+
return (
|
|
1223
|
+
[3, 16, 17, 18, 19, 20, 21].includes(Day) ||
|
|
1224
|
+
(DayOfWeek === 0 && Day === 4)
|
|
1225
|
+
);
|
|
1226
|
+
case 9:
|
|
1227
|
+
return Day >= 25;
|
|
1228
|
+
case 10:
|
|
1229
|
+
return (
|
|
1230
|
+
Day === 10 ||
|
|
1231
|
+
Day < 3 ||
|
|
1232
|
+
(Day === 3 && jDate.isShortKislev(jdate.Year))
|
|
1233
|
+
);
|
|
1234
|
+
case 12:
|
|
1235
|
+
case 13:
|
|
1236
|
+
return (
|
|
1237
|
+
Month === (jDate.isJdLeapY(jdate.Year) ? 13 : 12) &&
|
|
1238
|
+
(Day === 13 || Day === (location.Name === 'ירושלים' ? 15 : 14))
|
|
1239
|
+
);
|
|
1240
|
+
default:
|
|
1241
|
+
return false;
|
|
1242
|
+
}
|
|
1243
|
+
}
|