@hebcal/core 3.31.2 → 3.33.0
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/README.md +118 -5
- package/dist/bundle.js +4312 -3764
- package/dist/bundle.min.js +2 -2
- package/dist/hdate-bundle.js +10 -2
- package/dist/hdate-bundle.min.js +2 -2
- package/dist/hdate.js +18 -10
- package/dist/hdate.mjs +18 -10
- package/dist/index.js +344 -150
- package/dist/index.mjs +344 -150
- package/hebcal.d.ts +3 -0
- package/package.json +8 -8
package/dist/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @hebcal/core v3.
|
|
1
|
+
/*! @hebcal/core v3.33.0 */
|
|
2
2
|
/*
|
|
3
3
|
Hebcal - A Jewish Calendar Generator
|
|
4
4
|
Copyright (c) 1994-2020 Danny Sadinoff
|
|
@@ -391,7 +391,7 @@ const Locale = {
|
|
|
391
391
|
* @param {string} [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
|
|
392
392
|
* @return {string}
|
|
393
393
|
*/
|
|
394
|
-
lookupTranslation: function (id, locale) {
|
|
394
|
+
lookupTranslation: function lookupTranslation(id, locale) {
|
|
395
395
|
const locale0 = locale && locale.toLowerCase();
|
|
396
396
|
const loc = typeof locale == 'string' && this.locales[locale0] || this.activeLocale;
|
|
397
397
|
const array = loc[id];
|
|
@@ -409,7 +409,7 @@ const Locale = {
|
|
|
409
409
|
* @param {string} [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
|
|
410
410
|
* @return {string}
|
|
411
411
|
*/
|
|
412
|
-
gettext: function (id, locale) {
|
|
412
|
+
gettext: function gettext(id, locale) {
|
|
413
413
|
const text = this.lookupTranslation(id, locale);
|
|
414
414
|
|
|
415
415
|
if (typeof text == 'undefined') {
|
|
@@ -424,7 +424,7 @@ const Locale = {
|
|
|
424
424
|
* @param {string} locale Locale name (i.e.: `'he'`, `'fr'`)
|
|
425
425
|
* @param {LocaleDate} data parsed data from a `.po` file.
|
|
426
426
|
*/
|
|
427
|
-
addLocale: function (locale, data) {
|
|
427
|
+
addLocale: function addLocale(locale, data) {
|
|
428
428
|
if (typeof data.contexts !== 'object' || typeof data.contexts[''] !== 'object') {
|
|
429
429
|
throw new TypeError(`Locale '${locale}' invalid compact format`);
|
|
430
430
|
}
|
|
@@ -439,7 +439,7 @@ const Locale = {
|
|
|
439
439
|
* @param {string} locale Locale name (i.e: `'he'`, `'fr'`)
|
|
440
440
|
* @return {LocaleData}
|
|
441
441
|
*/
|
|
442
|
-
useLocale: function (locale) {
|
|
442
|
+
useLocale: function useLocale(locale) {
|
|
443
443
|
const locale0 = locale.toLowerCase();
|
|
444
444
|
const obj = this.locales[locale0];
|
|
445
445
|
|
|
@@ -456,16 +456,24 @@ const Locale = {
|
|
|
456
456
|
* Returns the name of the active locale (i.e. 'he', 'ashkenazi', 'fr')
|
|
457
457
|
* @return {string}
|
|
458
458
|
*/
|
|
459
|
-
getLocaleName: function () {
|
|
459
|
+
getLocaleName: function getLocaleName() {
|
|
460
460
|
return this.activeName;
|
|
461
461
|
},
|
|
462
462
|
|
|
463
|
+
/**
|
|
464
|
+
* Returns the names of registered locales
|
|
465
|
+
* @return {string[]}
|
|
466
|
+
*/
|
|
467
|
+
getLocaleNames: function getLocaleNames() {
|
|
468
|
+
return Object.keys(this.locales).sort();
|
|
469
|
+
},
|
|
470
|
+
|
|
463
471
|
/**
|
|
464
472
|
* @param {number} n
|
|
465
473
|
* @param {string} [locale] Optional locale name (i.e: `'he'`, `'fr'`). Defaults to active locale.
|
|
466
474
|
* @return {string}
|
|
467
475
|
*/
|
|
468
|
-
ordinal: function (n, locale) {
|
|
476
|
+
ordinal: function ordinal(n, locale) {
|
|
469
477
|
const locale1 = locale && locale.toLowerCase();
|
|
470
478
|
const locale0 = locale1 || this.activeName;
|
|
471
479
|
|
|
@@ -501,7 +509,7 @@ const Locale = {
|
|
|
501
509
|
* @param {number} n
|
|
502
510
|
* @return {string}
|
|
503
511
|
*/
|
|
504
|
-
getEnOrdinal: function (n) {
|
|
512
|
+
getEnOrdinal: function getEnOrdinal(n) {
|
|
505
513
|
const s = ['th', 'st', 'nd', 'rd'];
|
|
506
514
|
const v = n % 100;
|
|
507
515
|
return n + (s[(v - 20) % 10] || s[v] || s[0]);
|
|
@@ -512,7 +520,7 @@ const Locale = {
|
|
|
512
520
|
* @param {string} str
|
|
513
521
|
* @return {string}
|
|
514
522
|
*/
|
|
515
|
-
hebrewStripNikkud: function (str) {
|
|
523
|
+
hebrewStripNikkud: function hebrewStripNikkud(str) {
|
|
516
524
|
return str.replace(/[\u0590-\u05bd]/g, '').replace(/[\u05bf-\u05c7]/g, '');
|
|
517
525
|
}
|
|
518
526
|
};
|
|
@@ -609,7 +617,7 @@ const monthNames0 = ['', 'Nisan', 'Iyyar', 'Sivan', 'Tamuz', 'Av', 'Elul', 'Tish
|
|
|
609
617
|
|
|
610
618
|
const monthNames = [monthNames0.concat(['Adar', 'Nisan']), monthNames0.concat(['Adar I', 'Adar II', 'Nisan'])]; // eslint-disable-next-line require-jsdoc
|
|
611
619
|
|
|
612
|
-
function throwTypeError$
|
|
620
|
+
function throwTypeError$3(msg) {
|
|
613
621
|
throw new TypeError(msg);
|
|
614
622
|
}
|
|
615
623
|
|
|
@@ -644,7 +652,7 @@ const UNITS_VALID = {
|
|
|
644
652
|
|
|
645
653
|
/** Represents a Hebrew date */
|
|
646
654
|
|
|
647
|
-
class HDate
|
|
655
|
+
class HDate {
|
|
648
656
|
/**
|
|
649
657
|
* Create a Hebrew date. There are 3 basic forms for the `HDate()` constructor.
|
|
650
658
|
*
|
|
@@ -713,13 +721,13 @@ class HDate$1 {
|
|
|
713
721
|
} // 1 argument
|
|
714
722
|
|
|
715
723
|
|
|
716
|
-
const abs0 = typeof day === 'number' && !isNaN(day) ? day : greg.isDate(day) ? greg.greg2abs(day) : HDate
|
|
724
|
+
const abs0 = typeof day === 'number' && !isNaN(day) ? day : greg.isDate(day) ? greg.greg2abs(day) : HDate.isHDate(day) ? {
|
|
717
725
|
dd: day.day,
|
|
718
726
|
mm: day.month,
|
|
719
727
|
yy: day.year
|
|
720
|
-
} : throwTypeError$
|
|
728
|
+
} : throwTypeError$3(`HDate called with bad argument: ${day}`);
|
|
721
729
|
const isNumber = typeof abs0 === 'number';
|
|
722
|
-
const d = isNumber ? HDate
|
|
730
|
+
const d = isNumber ? HDate.abs2hebrew(abs0) : abs0;
|
|
723
731
|
/**
|
|
724
732
|
* @private
|
|
725
733
|
* @type {number}
|
|
@@ -764,7 +772,7 @@ class HDate$1 {
|
|
|
764
772
|
|
|
765
773
|
|
|
766
774
|
isLeapYear() {
|
|
767
|
-
return HDate
|
|
775
|
+
return HDate.isLeapYear(this.year);
|
|
768
776
|
}
|
|
769
777
|
/**
|
|
770
778
|
* Gets the Hebrew month (1=NISAN, 7=TISHREI) of this Hebrew date
|
|
@@ -782,7 +790,7 @@ class HDate$1 {
|
|
|
782
790
|
|
|
783
791
|
|
|
784
792
|
getTishreiMonth() {
|
|
785
|
-
const nummonths = HDate
|
|
793
|
+
const nummonths = HDate.monthsInYear(this.getFullYear());
|
|
786
794
|
return (this.getMonth() + nummonths - 6) % nummonths || nummonths;
|
|
787
795
|
}
|
|
788
796
|
/**
|
|
@@ -792,7 +800,7 @@ class HDate$1 {
|
|
|
792
800
|
|
|
793
801
|
|
|
794
802
|
daysInMonth() {
|
|
795
|
-
return HDate
|
|
803
|
+
return HDate.daysInMonth(this.getMonth(), this.getFullYear());
|
|
796
804
|
}
|
|
797
805
|
/**
|
|
798
806
|
* Gets the day within the month (1-30)
|
|
@@ -835,7 +843,7 @@ class HDate$1 {
|
|
|
835
843
|
|
|
836
844
|
|
|
837
845
|
setMonth(month) {
|
|
838
|
-
this.month = HDate
|
|
846
|
+
this.month = HDate.monthNum(month);
|
|
839
847
|
fix(this);
|
|
840
848
|
return this;
|
|
841
849
|
}
|
|
@@ -871,7 +879,7 @@ class HDate$1 {
|
|
|
871
879
|
|
|
872
880
|
abs() {
|
|
873
881
|
if (typeof this.abs0 !== 'number') {
|
|
874
|
-
this.abs0 = HDate
|
|
882
|
+
this.abs0 = HDate.hebrew2abs(this.year, this.month, this.day);
|
|
875
883
|
}
|
|
876
884
|
|
|
877
885
|
return this.abs0;
|
|
@@ -891,20 +899,20 @@ class HDate$1 {
|
|
|
891
899
|
let tempabs = day;
|
|
892
900
|
|
|
893
901
|
if (month < TISHREI$2) {
|
|
894
|
-
for (let m = TISHREI$2; m <= HDate
|
|
895
|
-
tempabs += HDate
|
|
902
|
+
for (let m = TISHREI$2; m <= HDate.monthsInYear(year); m++) {
|
|
903
|
+
tempabs += HDate.daysInMonth(m, year);
|
|
896
904
|
}
|
|
897
905
|
|
|
898
906
|
for (let m = NISAN$2; m < month; m++) {
|
|
899
|
-
tempabs += HDate
|
|
907
|
+
tempabs += HDate.daysInMonth(m, year);
|
|
900
908
|
}
|
|
901
909
|
} else {
|
|
902
910
|
for (let m = TISHREI$2; m < month; m++) {
|
|
903
|
-
tempabs += HDate
|
|
911
|
+
tempabs += HDate.daysInMonth(m, year);
|
|
904
912
|
}
|
|
905
913
|
}
|
|
906
914
|
|
|
907
|
-
return EPOCH + HDate
|
|
915
|
+
return EPOCH + HDate.elapsedDays(year) + tempabs - 1;
|
|
908
916
|
}
|
|
909
917
|
/**
|
|
910
918
|
* @private
|
|
@@ -914,7 +922,7 @@ class HDate$1 {
|
|
|
914
922
|
|
|
915
923
|
|
|
916
924
|
static newYear(year) {
|
|
917
|
-
return EPOCH + HDate
|
|
925
|
+
return EPOCH + HDate.elapsedDays(year) + HDate.newYearDelay(year);
|
|
918
926
|
}
|
|
919
927
|
/**
|
|
920
928
|
* @private
|
|
@@ -924,13 +932,13 @@ class HDate$1 {
|
|
|
924
932
|
|
|
925
933
|
|
|
926
934
|
static newYearDelay(year) {
|
|
927
|
-
const ny1 = HDate
|
|
928
|
-
const ny2 = HDate
|
|
935
|
+
const ny1 = HDate.elapsedDays(year);
|
|
936
|
+
const ny2 = HDate.elapsedDays(year + 1);
|
|
929
937
|
|
|
930
938
|
if (ny2 - ny1 === 356) {
|
|
931
939
|
return 2;
|
|
932
940
|
} else {
|
|
933
|
-
const ny0 = HDate
|
|
941
|
+
const ny0 = HDate.elapsedDays(year - 1);
|
|
934
942
|
return ny1 - ny0 === 382 ? 1 : 0;
|
|
935
943
|
}
|
|
936
944
|
}
|
|
@@ -951,18 +959,18 @@ class HDate$1 {
|
|
|
951
959
|
|
|
952
960
|
let year = Math.floor((abs - EPOCH) / AVG_HEBYEAR_DAYS);
|
|
953
961
|
|
|
954
|
-
while (HDate
|
|
962
|
+
while (HDate.newYear(year) <= abs) {
|
|
955
963
|
++year;
|
|
956
964
|
}
|
|
957
965
|
|
|
958
966
|
--year;
|
|
959
|
-
let month = abs < HDate
|
|
967
|
+
let month = abs < HDate.hebrew2abs(year, 1, 1) ? 7 : 1;
|
|
960
968
|
|
|
961
|
-
while (abs > HDate
|
|
969
|
+
while (abs > HDate.hebrew2abs(year, month, HDate.daysInMonth(month, year))) {
|
|
962
970
|
++month;
|
|
963
971
|
}
|
|
964
972
|
|
|
965
|
-
const day = 1 + abs - HDate
|
|
973
|
+
const day = 1 + abs - HDate.hebrew2abs(year, month, 1);
|
|
966
974
|
return {
|
|
967
975
|
yy: year,
|
|
968
976
|
mm: month,
|
|
@@ -976,7 +984,7 @@ class HDate$1 {
|
|
|
976
984
|
|
|
977
985
|
|
|
978
986
|
getMonthName() {
|
|
979
|
-
return HDate
|
|
987
|
+
return HDate.getMonthName(this.getMonth(), this.getFullYear());
|
|
980
988
|
}
|
|
981
989
|
/**
|
|
982
990
|
* Renders this Hebrew date as a translated or transliterated string,
|
|
@@ -998,7 +1006,7 @@ class HDate$1 {
|
|
|
998
1006
|
const day = this.getDate();
|
|
999
1007
|
const monthName = Locale.gettext(this.getMonthName(), locale0);
|
|
1000
1008
|
const nth = Locale.ordinal(day, locale0);
|
|
1001
|
-
const dayOf = HDate
|
|
1009
|
+
const dayOf = HDate.getDayOfTranslation(locale0);
|
|
1002
1010
|
const dateStr = `${nth}${dayOf} ${monthName}`;
|
|
1003
1011
|
|
|
1004
1012
|
if (showYear) {
|
|
@@ -1131,7 +1139,7 @@ class HDate$1 {
|
|
|
1131
1139
|
|
|
1132
1140
|
|
|
1133
1141
|
next() {
|
|
1134
|
-
return new HDate
|
|
1142
|
+
return new HDate(this.abs() + 1);
|
|
1135
1143
|
}
|
|
1136
1144
|
/**
|
|
1137
1145
|
* Returns the previous Hebrew date
|
|
@@ -1140,7 +1148,7 @@ class HDate$1 {
|
|
|
1140
1148
|
|
|
1141
1149
|
|
|
1142
1150
|
prev() {
|
|
1143
|
-
return new HDate
|
|
1151
|
+
return new HDate(this.abs() - 1);
|
|
1144
1152
|
}
|
|
1145
1153
|
/**
|
|
1146
1154
|
* Returns a cloned `HDate` object with a specified amount of time added
|
|
@@ -1164,24 +1172,24 @@ class HDate$1 {
|
|
|
1164
1172
|
number = parseInt(number, 10);
|
|
1165
1173
|
|
|
1166
1174
|
if (!number) {
|
|
1167
|
-
return new HDate
|
|
1175
|
+
return new HDate(this);
|
|
1168
1176
|
}
|
|
1169
1177
|
|
|
1170
|
-
units = HDate
|
|
1178
|
+
units = HDate.standardizeUnits(units);
|
|
1171
1179
|
|
|
1172
1180
|
if (units === UNITS_DAY) {
|
|
1173
|
-
return new HDate
|
|
1181
|
+
return new HDate(this.abs() + number);
|
|
1174
1182
|
} else if (units === UNITS_WEEK) {
|
|
1175
|
-
return new HDate
|
|
1183
|
+
return new HDate(this.abs() + 7 * number);
|
|
1176
1184
|
} else if (units === UNITS_YEAR) {
|
|
1177
|
-
return new HDate
|
|
1185
|
+
return new HDate(this.getDate(), this.getMonth(), this.getFullYear() + number);
|
|
1178
1186
|
} else if (units === UNITS_MONTH) {
|
|
1179
|
-
let hd = new HDate
|
|
1187
|
+
let hd = new HDate(this);
|
|
1180
1188
|
const sign = number > 0 ? 1 : -1;
|
|
1181
1189
|
number = Math.abs(number);
|
|
1182
1190
|
|
|
1183
1191
|
for (let i = 0; i < number; i++) {
|
|
1184
|
-
hd = new HDate
|
|
1192
|
+
hd = new HDate(hd.abs() + sign * hd.daysInMonth());
|
|
1185
1193
|
}
|
|
1186
1194
|
|
|
1187
1195
|
return hd;
|
|
@@ -1196,7 +1204,7 @@ class HDate$1 {
|
|
|
1196
1204
|
|
|
1197
1205
|
static standardizeUnits(units) {
|
|
1198
1206
|
const full = UNITS_SINGLE[units] || String(units || '').toLowerCase().replace(/s$/, '');
|
|
1199
|
-
return UNITS_VALID[full] || throwTypeError$
|
|
1207
|
+
return UNITS_VALID[full] || throwTypeError$3(`Invalid units '${units}'`);
|
|
1200
1208
|
}
|
|
1201
1209
|
/**
|
|
1202
1210
|
* Returns a cloned `HDate` object with a specified amount of time subracted
|
|
@@ -1245,7 +1253,7 @@ class HDate$1 {
|
|
|
1245
1253
|
|
|
1246
1254
|
|
|
1247
1255
|
deltaDays(other) {
|
|
1248
|
-
if (!HDate
|
|
1256
|
+
if (!HDate.isHDate(other)) {
|
|
1249
1257
|
throw new TypeError(`Bad argument: ${other}`);
|
|
1250
1258
|
}
|
|
1251
1259
|
|
|
@@ -1259,7 +1267,7 @@ class HDate$1 {
|
|
|
1259
1267
|
|
|
1260
1268
|
|
|
1261
1269
|
isSameDate(other) {
|
|
1262
|
-
if (HDate
|
|
1270
|
+
if (HDate.isHDate(other)) {
|
|
1263
1271
|
return this.year == other.year && this.month == other.month && this.day == other.day;
|
|
1264
1272
|
}
|
|
1265
1273
|
|
|
@@ -1292,7 +1300,7 @@ class HDate$1 {
|
|
|
1292
1300
|
|
|
1293
1301
|
|
|
1294
1302
|
static monthsInYear(year) {
|
|
1295
|
-
return 12 + HDate
|
|
1303
|
+
return 12 + HDate.isLeapYear(year); // boolean is cast to 1 or 0
|
|
1296
1304
|
}
|
|
1297
1305
|
/**
|
|
1298
1306
|
* Number of days in Hebrew month in a given year (29 or 30)
|
|
@@ -1303,7 +1311,7 @@ class HDate$1 {
|
|
|
1303
1311
|
|
|
1304
1312
|
|
|
1305
1313
|
static daysInMonth(month, year) {
|
|
1306
|
-
if (month == IYYAR$1 || month == TAMUZ$1 || month == ELUL$2 || month == TEVET$2 || month == ADAR_II$2 || month == ADAR_I$2 && !HDate
|
|
1314
|
+
if (month == IYYAR$1 || month == TAMUZ$1 || month == ELUL$2 || month == TEVET$2 || month == ADAR_II$2 || month == ADAR_I$2 && !HDate.isLeapYear(year) || month == CHESHVAN$2 && !HDate.longCheshvan(year) || month == KISLEV$2 && HDate.shortKislev(year)) {
|
|
1307
1315
|
return 29;
|
|
1308
1316
|
} else {
|
|
1309
1317
|
return 30;
|
|
@@ -1323,7 +1331,7 @@ class HDate$1 {
|
|
|
1323
1331
|
throw new TypeError(`bad month argument ${month}`);
|
|
1324
1332
|
}
|
|
1325
1333
|
|
|
1326
|
-
return monthNames[+HDate
|
|
1334
|
+
return monthNames[+HDate.isLeapYear(year)][month];
|
|
1327
1335
|
}
|
|
1328
1336
|
/**
|
|
1329
1337
|
* Returns the Hebrew month number (NISAN=1, TISHREI=7)
|
|
@@ -1335,7 +1343,7 @@ class HDate$1 {
|
|
|
1335
1343
|
static monthNum(month) {
|
|
1336
1344
|
return typeof month === 'number' ? month : month.charCodeAt(0) >= 48 && month.charCodeAt(0) <= 57 ?
|
|
1337
1345
|
/* number */
|
|
1338
|
-
parseInt(month, 10) : HDate
|
|
1346
|
+
parseInt(month, 10) : HDate.monthFromName(month);
|
|
1339
1347
|
}
|
|
1340
1348
|
/**
|
|
1341
1349
|
* Days from sunday prior to start of Hebrew calendar to mean
|
|
@@ -1346,7 +1354,7 @@ class HDate$1 {
|
|
|
1346
1354
|
|
|
1347
1355
|
|
|
1348
1356
|
static elapsedDays(year) {
|
|
1349
|
-
const elapsed = edCache[year] = edCache[year] || HDate
|
|
1357
|
+
const elapsed = edCache[year] = edCache[year] || HDate.elapsedDays0(year);
|
|
1350
1358
|
return elapsed;
|
|
1351
1359
|
}
|
|
1352
1360
|
/**
|
|
@@ -1368,7 +1376,7 @@ class HDate$1 {
|
|
|
1368
1376
|
const hElapsed = 5 + 12 * mElapsed + 793 * Math.floor(mElapsed / 1080) + Math.floor(pElapsed / 1080);
|
|
1369
1377
|
const parts = pElapsed % 1080 + 1080 * (hElapsed % 24);
|
|
1370
1378
|
const day = 1 + 29 * mElapsed + Math.floor(hElapsed / 24);
|
|
1371
|
-
const altDay = day + (parts >= 19440 || 2 == day % 7 && parts >= 9924 && !HDate
|
|
1379
|
+
const altDay = day + (parts >= 19440 || 2 == day % 7 && parts >= 9924 && !HDate.isLeapYear(year) || 1 == day % 7 && parts >= 16789 && HDate.isLeapYear(prevYear));
|
|
1372
1380
|
return altDay + (altDay % 7 === 0 || altDay % 7 == 3 || altDay % 7 == 5);
|
|
1373
1381
|
}
|
|
1374
1382
|
/**
|
|
@@ -1379,7 +1387,7 @@ class HDate$1 {
|
|
|
1379
1387
|
|
|
1380
1388
|
|
|
1381
1389
|
static daysInYear(year) {
|
|
1382
|
-
return HDate
|
|
1390
|
+
return HDate.elapsedDays(year + 1) - HDate.elapsedDays(year);
|
|
1383
1391
|
}
|
|
1384
1392
|
/**
|
|
1385
1393
|
* true if Cheshvan is long in Hebrew year
|
|
@@ -1389,7 +1397,7 @@ class HDate$1 {
|
|
|
1389
1397
|
|
|
1390
1398
|
|
|
1391
1399
|
static longCheshvan(year) {
|
|
1392
|
-
return HDate
|
|
1400
|
+
return HDate.daysInYear(year) % 10 == 5;
|
|
1393
1401
|
}
|
|
1394
1402
|
/**
|
|
1395
1403
|
* true if Kislev is short in Hebrew year
|
|
@@ -1399,7 +1407,7 @@ class HDate$1 {
|
|
|
1399
1407
|
|
|
1400
1408
|
|
|
1401
1409
|
static shortKislev(year) {
|
|
1402
|
-
return HDate
|
|
1410
|
+
return HDate.daysInYear(year) % 10 == 3;
|
|
1403
1411
|
}
|
|
1404
1412
|
/**
|
|
1405
1413
|
* Converts Hebrew month string name to numeric
|
|
@@ -1588,17 +1596,17 @@ function fixDate(date) {
|
|
|
1588
1596
|
date.year -= 1;
|
|
1589
1597
|
}
|
|
1590
1598
|
|
|
1591
|
-
date.day += HDate
|
|
1599
|
+
date.day += HDate.daysInMonth(date.month, date.year);
|
|
1592
1600
|
date.month -= 1;
|
|
1593
1601
|
fix(date);
|
|
1594
1602
|
}
|
|
1595
1603
|
|
|
1596
|
-
if (date.day > HDate
|
|
1604
|
+
if (date.day > HDate.daysInMonth(date.month, date.year)) {
|
|
1597
1605
|
if (date.month == ELUL$2) {
|
|
1598
1606
|
date.year += 1;
|
|
1599
1607
|
}
|
|
1600
1608
|
|
|
1601
|
-
date.day -= HDate
|
|
1609
|
+
date.day -= HDate.daysInMonth(date.month, date.year);
|
|
1602
1610
|
date.month += 1;
|
|
1603
1611
|
fix(date);
|
|
1604
1612
|
}
|
|
@@ -1617,11 +1625,11 @@ function fixMonth(date) {
|
|
|
1617
1625
|
|
|
1618
1626
|
fix(date);
|
|
1619
1627
|
} else if (date.month < 1) {
|
|
1620
|
-
date.month += HDate
|
|
1628
|
+
date.month += HDate.monthsInYear(date.year);
|
|
1621
1629
|
date.year -= 1;
|
|
1622
1630
|
fix(date);
|
|
1623
|
-
} else if (date.month > HDate
|
|
1624
|
-
date.month -= HDate
|
|
1631
|
+
} else if (date.month > HDate.monthsInYear(date.year)) {
|
|
1632
|
+
date.month -= HDate.monthsInYear(date.year);
|
|
1625
1633
|
date.year += 1;
|
|
1626
1634
|
fix(date);
|
|
1627
1635
|
}
|
|
@@ -1638,7 +1646,7 @@ function fixMonth(date) {
|
|
|
1638
1646
|
|
|
1639
1647
|
|
|
1640
1648
|
function onOrBefore(day, t, offset) {
|
|
1641
|
-
return new HDate
|
|
1649
|
+
return new HDate(HDate.dayOnOrBefore(day, t.abs() + offset));
|
|
1642
1650
|
}
|
|
1643
1651
|
|
|
1644
1652
|
const CHAG$1 = 0x000001;
|
|
@@ -1665,6 +1673,7 @@ const HEBREW_DATE = 0x040000;
|
|
|
1665
1673
|
const MINOR_HOLIDAY$2 = 0x080000;
|
|
1666
1674
|
const EREV$2 = 0x100000;
|
|
1667
1675
|
const CHOL_HAMOED$2 = 0x200000;
|
|
1676
|
+
const MISHNA_YOMI = 0x400000;
|
|
1668
1677
|
/**
|
|
1669
1678
|
* Holiday flags for Event
|
|
1670
1679
|
* @readonly
|
|
@@ -1736,7 +1745,10 @@ const flags = {
|
|
|
1736
1745
|
EREV: EREV$2,
|
|
1737
1746
|
|
|
1738
1747
|
/** Chol haMoed, intermediate days of Pesach or Sukkot */
|
|
1739
|
-
CHOL_HAMOED: CHOL_HAMOED$2
|
|
1748
|
+
CHOL_HAMOED: CHOL_HAMOED$2,
|
|
1749
|
+
|
|
1750
|
+
/** Mishna Yomi */
|
|
1751
|
+
MISHNA_YOMI
|
|
1740
1752
|
};
|
|
1741
1753
|
/** Represents an Event with a title, date, and flags */
|
|
1742
1754
|
|
|
@@ -2288,7 +2300,7 @@ function pad4(number) {
|
|
|
2288
2300
|
return String(number);
|
|
2289
2301
|
}
|
|
2290
2302
|
|
|
2291
|
-
function throwTypeError$
|
|
2303
|
+
function throwTypeError$2(error) {
|
|
2292
2304
|
throw new TypeError(error);
|
|
2293
2305
|
}
|
|
2294
2306
|
/**
|
|
@@ -2349,7 +2361,7 @@ class Zmanim {
|
|
|
2349
2361
|
throw new RangeError(`Longitude ${longitude} out of range [-180,180]`);
|
|
2350
2362
|
}
|
|
2351
2363
|
|
|
2352
|
-
const dt = greg.isDate(date) ? date : HDate
|
|
2364
|
+
const dt = greg.isDate(date) ? date : HDate.isHDate(date) ? date.greg() : throwTypeError$2(`invalid date: ${date}`);
|
|
2353
2365
|
this.date = dt;
|
|
2354
2366
|
this.sun = new Sun_1(this.date, latitude, longitude);
|
|
2355
2367
|
this.latitude = latitude;
|
|
@@ -3269,7 +3281,7 @@ class Molad {
|
|
|
3269
3281
|
let m_adj = month - 7;
|
|
3270
3282
|
|
|
3271
3283
|
if (m_adj < 0) {
|
|
3272
|
-
m_adj += HDate
|
|
3284
|
+
m_adj += HDate.monthsInYear(year);
|
|
3273
3285
|
}
|
|
3274
3286
|
|
|
3275
3287
|
const m_elapsed = 235 * Math.floor((year - 1) / 19) + // Months in complete 19 year lunar (Metonic) cycles so far
|
|
@@ -3312,7 +3324,7 @@ class Molad {
|
|
|
3312
3324
|
|
|
3313
3325
|
|
|
3314
3326
|
getMonthName() {
|
|
3315
|
-
return HDate
|
|
3327
|
+
return HDate.getMonthName(this.month, this.year);
|
|
3316
3328
|
}
|
|
3317
3329
|
/**
|
|
3318
3330
|
* @return {number} Day of Week (0=Sunday, 6=Saturday)
|
|
@@ -3493,18 +3505,23 @@ const shas = [['Berachot', 64], ['Shabbat', 157], ['Eruvin', 105], ['Pesachim',
|
|
|
3493
3505
|
name: m[0],
|
|
3494
3506
|
blatt: m[1]
|
|
3495
3507
|
};
|
|
3496
|
-
});
|
|
3508
|
+
}); // eslint-disable-next-line require-jsdoc
|
|
3509
|
+
|
|
3510
|
+
function throwTypeError$1(msg) {
|
|
3511
|
+
throw new TypeError(msg);
|
|
3512
|
+
}
|
|
3497
3513
|
/**
|
|
3498
3514
|
* Returns the Daf Yomi for given date
|
|
3499
3515
|
*/
|
|
3500
3516
|
|
|
3517
|
+
|
|
3501
3518
|
class DafYomi {
|
|
3502
3519
|
/**
|
|
3503
3520
|
* Initializes a daf yomi instance
|
|
3504
|
-
* @param {Date} gregdate Gregorian date
|
|
3521
|
+
* @param {Date|HDate|number} gregdate Gregorian date
|
|
3505
3522
|
*/
|
|
3506
3523
|
constructor(gregdate) {
|
|
3507
|
-
const cday = typeof gregdate === 'number' && !isNaN(gregdate) ? gregdate : greg.isDate(gregdate) ? greg.greg2abs(gregdate) : HDate.isHDate(gregdate) ? gregdate.abs() : throwTypeError(`non-date given to dafyomi: ${gregdate}`);
|
|
3524
|
+
const cday = typeof gregdate === 'number' && !isNaN(gregdate) ? gregdate : greg.isDate(gregdate) ? greg.greg2abs(gregdate) : HDate.isHDate(gregdate) ? gregdate.abs() : throwTypeError$1(`non-date given to dafyomi: ${gregdate}`);
|
|
3508
3525
|
|
|
3509
3526
|
if (cday < osday) {
|
|
3510
3527
|
throw new RangeError(`Date ${gregdate} too early; Daf Yomi cycle began on ${osdate}`);
|
|
@@ -3696,16 +3713,16 @@ class Sedra {
|
|
|
3696
3713
|
constructor(hebYr, il) {
|
|
3697
3714
|
// the Hebrew year
|
|
3698
3715
|
hebYr = +hebYr;
|
|
3699
|
-
const longC = HDate
|
|
3700
|
-
const shortK = HDate
|
|
3716
|
+
const longC = HDate.longCheshvan(hebYr);
|
|
3717
|
+
const shortK = HDate.shortKislev(hebYr);
|
|
3701
3718
|
const type = this.type = longC && !shortK ? COMPLETE : !longC && shortK ? INCOMPLETE : REGULAR;
|
|
3702
3719
|
this.year = hebYr;
|
|
3703
|
-
const rh0 = new HDate
|
|
3720
|
+
const rh0 = new HDate(1, months.TISHREI, hebYr);
|
|
3704
3721
|
const rh = rh0.abs();
|
|
3705
3722
|
const rhDay = this.roshHashanaDay = rh0.getDay() + 1; // find the first Saturday on or after Rosh Hashana
|
|
3706
3723
|
|
|
3707
|
-
this.firstSaturday = HDate
|
|
3708
|
-
const leap = this.leap = +HDate
|
|
3724
|
+
this.firstSaturday = HDate.dayOnOrBefore(6, rh + 6);
|
|
3725
|
+
const leap = this.leap = +HDate.isLeapYear(hebYr);
|
|
3709
3726
|
this.il = Boolean(il);
|
|
3710
3727
|
const key = `${leap}${rhDay}${type}`;
|
|
3711
3728
|
|
|
@@ -3782,7 +3799,7 @@ class Sedra {
|
|
|
3782
3799
|
return null; // doesn't occur this year
|
|
3783
3800
|
}
|
|
3784
3801
|
|
|
3785
|
-
return new HDate
|
|
3802
|
+
return new HDate(this.firstSaturday + idx * 7);
|
|
3786
3803
|
} else if (typeof parsha === 'string') {
|
|
3787
3804
|
const num = parsha2id[parsha];
|
|
3788
3805
|
|
|
@@ -3798,7 +3815,7 @@ class Sedra {
|
|
|
3798
3815
|
return null; // doesn't occur this year
|
|
3799
3816
|
}
|
|
3800
3817
|
|
|
3801
|
-
return new HDate
|
|
3818
|
+
return new HDate(this.firstSaturday + idx * 7);
|
|
3802
3819
|
}
|
|
3803
3820
|
} else if (Array.isArray(parsha) && parsha.length === 1 && typeof parsha[0] === 'string') {
|
|
3804
3821
|
return this.find(parsha[0]);
|
|
@@ -3849,9 +3866,9 @@ class Sedra {
|
|
|
3849
3866
|
|
|
3850
3867
|
|
|
3851
3868
|
lookup(hDate) {
|
|
3852
|
-
const absDate = typeof hDate === 'number' ? hDate : HDate
|
|
3869
|
+
const absDate = typeof hDate === 'number' ? hDate : HDate.isHDate(hDate) ? hDate.abs() : throwError(`Bad date argument: ${hDate}`); // find the first saturday on or after today's date
|
|
3853
3870
|
|
|
3854
|
-
const saturday = HDate
|
|
3871
|
+
const saturday = HDate.dayOnOrBefore(6, absDate + 6);
|
|
3855
3872
|
const weekNum = (saturday - this.firstSaturday) / 7;
|
|
3856
3873
|
const index = this.theSedraArray[weekNum];
|
|
3857
3874
|
|
|
@@ -4307,7 +4324,7 @@ class MevarchimChodeshEvent extends Event {
|
|
|
4307
4324
|
this.monthName = monthName;
|
|
4308
4325
|
const hyear = date.getFullYear();
|
|
4309
4326
|
const hmonth = date.getMonth();
|
|
4310
|
-
const monNext = hmonth == HDate
|
|
4327
|
+
const monNext = hmonth == HDate.monthsInYear(hyear) ? months.NISAN : hmonth + 1;
|
|
4311
4328
|
const molad = new MoladEvent(date, hyear, monNext);
|
|
4312
4329
|
this.memo = molad.render();
|
|
4313
4330
|
}
|
|
@@ -4471,8 +4488,8 @@ function getHolidaysForYear(year) {
|
|
|
4471
4488
|
return cached;
|
|
4472
4489
|
}
|
|
4473
4490
|
|
|
4474
|
-
const RH = new HDate
|
|
4475
|
-
const pesach = new HDate
|
|
4491
|
+
const RH = new HDate(1, TISHREI$1, year);
|
|
4492
|
+
const pesach = new HDate(15, NISAN$1, year);
|
|
4476
4493
|
const h = new SimpleMap(); // eslint-disable-next-line require-jsdoc
|
|
4477
4494
|
|
|
4478
4495
|
function add(...events) {
|
|
@@ -4496,7 +4513,7 @@ function getHolidaysForYear(year) {
|
|
|
4496
4513
|
|
|
4497
4514
|
function addEvents(year, arr) {
|
|
4498
4515
|
arr.forEach(a => {
|
|
4499
|
-
add(new HolidayEvent(new HDate
|
|
4516
|
+
add(new HolidayEvent(new HDate(a[0], a[1], year), a[2], a[3], a[4]));
|
|
4500
4517
|
});
|
|
4501
4518
|
} // standard holidays that don't shift based on year
|
|
4502
4519
|
|
|
@@ -4508,7 +4525,7 @@ function getHolidaysForYear(year) {
|
|
|
4508
4525
|
emoji: '📖✍️'
|
|
4509
4526
|
}]]); // first SAT after RH
|
|
4510
4527
|
|
|
4511
|
-
add(new HolidayEvent(new HDate
|
|
4528
|
+
add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, 7 + RH.abs())), 'Shabbat Shuva', SPECIAL_SHABBAT$1));
|
|
4512
4529
|
addEvents(year, [[10, TISHREI$1, 'Yom Kippur', CHAG | YOM_TOV_ENDS$1 | MAJOR_FAST$1, {
|
|
4513
4530
|
emoji: '📖✍️'
|
|
4514
4531
|
}], [14, TISHREI$1, 'Erev Sukkot', EREV$1 | LIGHT_CANDLES$1], // Attributes for Israel and Diaspora are different
|
|
@@ -4534,37 +4551,37 @@ function getHolidaysForYear(year) {
|
|
|
4534
4551
|
cholHaMoedDay: -1
|
|
4535
4552
|
}], [22, TISHREI$1, 'Shmini Atzeret', CHAG | LIGHT_CANDLES_TZEIS$1 | CHUL_ONLY$1], // [22, TISHREI, "Shmini Atzeret / Simchat Torah", YOM_TOV_ENDS | IL_ONLY],
|
|
4536
4553
|
[22, TISHREI$1, 'Shmini Atzeret', CHAG | YOM_TOV_ENDS$1 | IL_ONLY$1], [23, TISHREI$1, 'Simchat Torah', CHAG | YOM_TOV_ENDS$1 | CHUL_ONLY$1]]);
|
|
4537
|
-
add(new HolidayEvent(new HDate
|
|
4554
|
+
add(new HolidayEvent(new HDate(24, KISLEV$1, year), 'Chanukah: 1 Candle', EREV$1 | MINOR_HOLIDAY$1 | CHANUKAH_CANDLES$1, {
|
|
4538
4555
|
emoji: chanukahEmoji + KEYCAP_DIGITS[1]
|
|
4539
4556
|
})); // yes, we know Kislev 30-32 are wrong
|
|
4540
4557
|
// HDate() corrects the month automatically
|
|
4541
4558
|
|
|
4542
4559
|
for (let candles = 2; candles <= 8; candles++) {
|
|
4543
|
-
const hd = new HDate
|
|
4560
|
+
const hd = new HDate(23 + candles, KISLEV$1, year);
|
|
4544
4561
|
add(new HolidayEvent(hd, `Chanukah: ${candles} Candles`, MINOR_HOLIDAY$1 | CHANUKAH_CANDLES$1, {
|
|
4545
4562
|
chanukahDay: candles - 1,
|
|
4546
4563
|
emoji: chanukahEmoji + KEYCAP_DIGITS[candles]
|
|
4547
4564
|
}));
|
|
4548
4565
|
}
|
|
4549
4566
|
|
|
4550
|
-
add(new HolidayEvent(new HDate
|
|
4567
|
+
add(new HolidayEvent(new HDate(32, KISLEV$1, year), 'Chanukah: 8th Day', MINOR_HOLIDAY$1, {
|
|
4551
4568
|
chanukahDay: 8,
|
|
4552
4569
|
emoji: chanukahEmoji
|
|
4553
4570
|
}));
|
|
4554
|
-
add(new AsaraBTevetEvent(new HDate
|
|
4571
|
+
add(new AsaraBTevetEvent(new HDate(10, TEVET$1, year), 'Asara B\'Tevet', MINOR_FAST$1), new HolidayEvent(new HDate(15, SHVAT$1, year), 'Tu BiShvat', MINOR_HOLIDAY$1, {
|
|
4555
4572
|
emoji: '🌳'
|
|
4556
4573
|
}));
|
|
4557
4574
|
const pesachAbs = pesach.abs();
|
|
4558
|
-
add(new HolidayEvent(new HDate
|
|
4575
|
+
add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, pesachAbs - 43)), 'Shabbat Shekalim', SPECIAL_SHABBAT$1), new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, pesachAbs - 30)), 'Shabbat Zachor', SPECIAL_SHABBAT$1), new HolidayEvent(new HDate(pesachAbs - (pesach.getDay() == TUE ? 33 : 31)), 'Ta\'anit Esther', MINOR_FAST$1));
|
|
4559
4576
|
addEvents(year, [[13, ADAR_II$1, 'Erev Purim', EREV$1 | MINOR_HOLIDAY$1, {
|
|
4560
4577
|
emoji: '🎭️📜'
|
|
4561
4578
|
}], [14, ADAR_II$1, 'Purim', MINOR_HOLIDAY$1, {
|
|
4562
4579
|
emoji: '🎭️📜'
|
|
4563
4580
|
}]]);
|
|
4564
|
-
add(new HolidayEvent(new HDate
|
|
4581
|
+
add(new HolidayEvent(new HDate(pesachAbs - (pesach.getDay() == SUN ? 28 : 29)), 'Shushan Purim', MINOR_HOLIDAY$1, {
|
|
4565
4582
|
emoji: '🎭️📜'
|
|
4566
|
-
}), new HolidayEvent(new HDate
|
|
4567
|
-
pesach.prev().getDay() == SAT$1 ? pesach.onOrBefore(THU) : new HDate
|
|
4583
|
+
}), new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, pesachAbs - 14) - 7), 'Shabbat Parah', SPECIAL_SHABBAT$1), new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, pesachAbs - 14)), 'Shabbat HaChodesh', SPECIAL_SHABBAT$1), new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, pesachAbs - 1)), 'Shabbat HaGadol', SPECIAL_SHABBAT$1), new HolidayEvent( // if the fast falls on Shabbat, move to Thursday
|
|
4584
|
+
pesach.prev().getDay() == SAT$1 ? pesach.onOrBefore(THU) : new HDate(14, NISAN$1, year), 'Ta\'anit Bechorot', MINOR_FAST$1));
|
|
4568
4585
|
addEvents(year, [[14, NISAN$1, 'Erev Pesach', EREV$1 | LIGHT_CANDLES$1], // Attributes for Israel and Diaspora are different
|
|
4569
4586
|
[15, NISAN$1, 'Pesach I', CHAG | YOM_TOV_ENDS$1 | IL_ONLY$1], [16, NISAN$1, 'Pesach II (CH\'\'M)', IL_ONLY$1 | CHOL_HAMOED$1, {
|
|
4570
4587
|
cholHaMoedDay: 1
|
|
@@ -4599,22 +4616,22 @@ function getHolidaysForYear(year) {
|
|
|
4599
4616
|
}], [1, ELUL$1, 'Rosh Hashana LaBehemot', MINOR_HOLIDAY$1, {
|
|
4600
4617
|
emoji: '🐑'
|
|
4601
4618
|
}]]);
|
|
4602
|
-
add(new HolidayEvent(new HDate
|
|
4619
|
+
add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, new HDate(1, TISHREI$1, year + 1).abs() - 4)), 'Leil Selichot', MINOR_HOLIDAY$1, {
|
|
4603
4620
|
emoji: '🕍'
|
|
4604
4621
|
}));
|
|
4605
|
-
add(new HolidayEvent(new HDate
|
|
4622
|
+
add(new HolidayEvent(new HDate(29, ELUL$1, year), 'Erev Rosh Hashana', EREV$1 | LIGHT_CANDLES$1, {
|
|
4606
4623
|
emoji: '🍏🍯'
|
|
4607
4624
|
}));
|
|
4608
4625
|
|
|
4609
|
-
if (HDate
|
|
4610
|
-
add(new HolidayEvent(new HDate
|
|
4626
|
+
if (HDate.isLeapYear(year)) {
|
|
4627
|
+
add(new HolidayEvent(new HDate(14, ADAR_I$1, year), 'Purim Katan', MINOR_HOLIDAY$1, {
|
|
4611
4628
|
emoji: '🎭️'
|
|
4612
4629
|
}));
|
|
4613
4630
|
}
|
|
4614
4631
|
|
|
4615
4632
|
if (year >= 5711) {
|
|
4616
4633
|
// Yom HaShoah first observed in 1951
|
|
4617
|
-
let nisan27dt = new HDate
|
|
4634
|
+
let nisan27dt = new HDate(27, NISAN$1, year);
|
|
4618
4635
|
/* When the actual date of Yom Hashoah falls on a Friday, the
|
|
4619
4636
|
* state of Israel observes Yom Hashoah on the preceding
|
|
4620
4637
|
* Thursday. When it falls on a Sunday, Yom Hashoah is observed
|
|
@@ -4623,9 +4640,9 @@ function getHolidaysForYear(year) {
|
|
|
4623
4640
|
*/
|
|
4624
4641
|
|
|
4625
4642
|
if (nisan27dt.getDay() == FRI$1) {
|
|
4626
|
-
nisan27dt = new HDate
|
|
4643
|
+
nisan27dt = new HDate(26, NISAN$1, year);
|
|
4627
4644
|
} else if (nisan27dt.getDay() == SUN) {
|
|
4628
|
-
nisan27dt = new HDate
|
|
4645
|
+
nisan27dt = new HDate(28, NISAN$1, year);
|
|
4629
4646
|
}
|
|
4630
4647
|
|
|
4631
4648
|
add(new HolidayEvent(nisan27dt, 'Yom HaShoah', MODERN_HOLIDAY$1));
|
|
@@ -4647,34 +4664,34 @@ function getHolidaysForYear(year) {
|
|
|
4647
4664
|
day = 4;
|
|
4648
4665
|
}
|
|
4649
4666
|
|
|
4650
|
-
add(new HolidayEvent(new HDate
|
|
4667
|
+
add(new HolidayEvent(new HDate(day, IYYAR, year), 'Yom HaZikaron', MODERN_HOLIDAY$1, emojiIsraelFlag), new HolidayEvent(new HDate(day + 1, IYYAR, year), 'Yom HaAtzma\'ut', MODERN_HOLIDAY$1, emojiIsraelFlag));
|
|
4651
4668
|
}
|
|
4652
4669
|
|
|
4653
4670
|
if (year >= 5727) {
|
|
4654
4671
|
// Yom Yerushalayim only celebrated after 1967
|
|
4655
|
-
add(new HolidayEvent(new HDate
|
|
4672
|
+
add(new HolidayEvent(new HDate(28, IYYAR, year), 'Yom Yerushalayim', MODERN_HOLIDAY$1, emojiIsraelFlag));
|
|
4656
4673
|
}
|
|
4657
4674
|
|
|
4658
4675
|
if (year >= 5769) {
|
|
4659
|
-
add(new HolidayEvent(new HDate
|
|
4676
|
+
add(new HolidayEvent(new HDate(29, CHESHVAN$1, year), 'Sigd', MODERN_HOLIDAY$1));
|
|
4660
4677
|
}
|
|
4661
4678
|
|
|
4662
4679
|
if (year >= 5777) {
|
|
4663
|
-
add(new HolidayEvent(new HDate
|
|
4680
|
+
add(new HolidayEvent(new HDate(7, CHESHVAN$1, year), 'Yom HaAliyah School Observance', MODERN_HOLIDAY$1, emojiIsraelFlag), new HolidayEvent(new HDate(10, NISAN$1, year), 'Yom HaAliyah', MODERN_HOLIDAY$1, emojiIsraelFlag));
|
|
4664
4681
|
}
|
|
4665
4682
|
|
|
4666
|
-
let tamuz17 = new HDate
|
|
4683
|
+
let tamuz17 = new HDate(17, TAMUZ, year);
|
|
4667
4684
|
let tamuz17attrs;
|
|
4668
4685
|
|
|
4669
4686
|
if (tamuz17.getDay() == SAT$1) {
|
|
4670
|
-
tamuz17 = new HDate
|
|
4687
|
+
tamuz17 = new HDate(18, TAMUZ, year);
|
|
4671
4688
|
tamuz17attrs = {
|
|
4672
4689
|
observed: true
|
|
4673
4690
|
};
|
|
4674
4691
|
}
|
|
4675
4692
|
|
|
4676
4693
|
add(new HolidayEvent(tamuz17, 'Tzom Tammuz', MINOR_FAST$1, tamuz17attrs));
|
|
4677
|
-
let av9dt = new HDate
|
|
4694
|
+
let av9dt = new HDate(9, AV, year);
|
|
4678
4695
|
let av9title = 'Tish\'a B\'Av';
|
|
4679
4696
|
let av9attrs;
|
|
4680
4697
|
|
|
@@ -4687,17 +4704,17 @@ function getHolidaysForYear(year) {
|
|
|
4687
4704
|
}
|
|
4688
4705
|
|
|
4689
4706
|
const av9abs = av9dt.abs();
|
|
4690
|
-
add(new HolidayEvent(new HDate
|
|
4691
|
-
const monthsInYear = HDate
|
|
4707
|
+
add(new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, av9abs)), 'Shabbat Chazon', SPECIAL_SHABBAT$1), new HolidayEvent(av9dt.prev(), 'Erev Tish\'a B\'Av', EREV$1 | MAJOR_FAST$1, av9attrs), new HolidayEvent(av9dt, av9title, MAJOR_FAST$1, av9attrs), new HolidayEvent(new HDate(HDate.dayOnOrBefore(SAT$1, av9abs + 7)), 'Shabbat Nachamu', SPECIAL_SHABBAT$1));
|
|
4708
|
+
const monthsInYear = HDate.monthsInYear(year);
|
|
4692
4709
|
|
|
4693
4710
|
for (let month = 1; month <= monthsInYear; month++) {
|
|
4694
|
-
const monthName = HDate
|
|
4711
|
+
const monthName = HDate.getMonthName(month, year);
|
|
4695
4712
|
|
|
4696
|
-
if ((month == NISAN$1 ? HDate
|
|
4697
|
-
add(new RoshChodeshEvent(new HDate
|
|
4698
|
-
add(new RoshChodeshEvent(new HDate
|
|
4713
|
+
if ((month == NISAN$1 ? HDate.daysInMonth(HDate.monthsInYear(year - 1), year - 1) : HDate.daysInMonth(month - 1, year)) == 30) {
|
|
4714
|
+
add(new RoshChodeshEvent(new HDate(1, month, year), monthName));
|
|
4715
|
+
add(new RoshChodeshEvent(new HDate(30, month - 1, year), monthName));
|
|
4699
4716
|
} else if (month !== TISHREI$1) {
|
|
4700
|
-
add(new RoshChodeshEvent(new HDate
|
|
4717
|
+
add(new RoshChodeshEvent(new HDate(1, month, year), monthName));
|
|
4701
4718
|
}
|
|
4702
4719
|
|
|
4703
4720
|
if (month == ELUL$1) {
|
|
@@ -4705,8 +4722,8 @@ function getHolidaysForYear(year) {
|
|
|
4705
4722
|
} // Don't worry about month overrun; will get "Nisan" for month=14
|
|
4706
4723
|
|
|
4707
4724
|
|
|
4708
|
-
const nextMonthName = HDate
|
|
4709
|
-
add(new MevarchimChodeshEvent(new HDate
|
|
4725
|
+
const nextMonthName = HDate.getMonthName(month + 1, year);
|
|
4726
|
+
add(new MevarchimChodeshEvent(new HDate(29, month, year).onOrBefore(SAT$1), nextMonthName));
|
|
4710
4727
|
}
|
|
4711
4728
|
|
|
4712
4729
|
const sedra = getSedra(year, false);
|
|
@@ -4716,14 +4733,14 @@ function getHolidaysForYear(year) {
|
|
|
4716
4733
|
return h;
|
|
4717
4734
|
}
|
|
4718
4735
|
|
|
4719
|
-
var version="3.
|
|
4736
|
+
var version="3.33.0";
|
|
4720
4737
|
|
|
4721
|
-
var headers$1={"plural-forms":"nplurals=2; plural=(n > 1);",language:"en_CA@ashkenazi"};var contexts$1={"":{Berachot:["Berachos"],Shabbat:["Shabbos"],Taanit:["Taanis"],Yevamot:["Yevamos"],Ketubot:["Kesubos"],"Baba Batra":["Baba Basra"],Makkot:["Makkos"],Shevuot:["Shevuos"],Horayot:["Horayos"],Menachot:["Menachos"],Bechorot:["Bechoros"],Keritot:["Kerisos"],Midot:["Midos"],"Achrei Mot":["Achrei Mos"],Bechukotai:["Bechukosai"],"Beha'alotcha":["Beha'aloscha"],Bereshit:["Bereshis"],Chukat:["Chukas"],"Erev Shavuot":["Erev Shavuos"],"Erev Sukkot":["Erev Sukkos"],"Ki Tavo":["Ki Savo"],"Ki Teitzei":["Ki Seitzei"],"Ki Tisa":["Ki Sisa"],Matot:["Matos"],"Purim Katan":["Purim Koton"],Tazria:["Sazria"],"Shabbat Chazon":["Shabbos Chazon"],"Shabbat HaChodesh":["Shabbos HaChodesh"],"Shabbat HaGadol":["Shabbos HaGadol"],"Shabbat Nachamu":["Shabbos Nachamu"],"Shabbat Parah":["Shabbos Parah"],"Shabbat Shekalim":["Shabbos Shekalim"],"Shabbat Shuva":["Shabbos Shuvah"],"Shabbat Zachor":["Shabbos Zachor"],Shavuot:["Shavuos"],"Shavuot I":["Shavuos I"],"Shavuot II":["Shavuos II"],Shemot:["Shemos"],"Shmini Atzeret":["Shmini Atzeres"],"Simchat Torah":["Simchas Torah"],Sukkot:["Sukkos"],"Sukkot I":["Sukkos I"],"Sukkot II":["Sukkos II"],"Sukkot II (CH''M)":["Sukkos II (CH''M)"],"Sukkot III (CH''M)":["Sukkos III (CH''M)"],"Sukkot IV (CH''M)":["Sukkos IV (CH''M)"],"Sukkot V (CH''M)":["Sukkos V (CH''M)"],"Sukkot VI (CH''M)":["Sukkos VI (CH''M)"],"Sukkot VII (Hoshana Raba)":["Sukkos VII (Hoshana Raba)"],"Ta'anit Bechorot":["Ta'anis Bechoros"],"Ta'anit Esther":["Ta'anis Esther"],Toldot:["Toldos"],Vaetchanan:["Vaeschanan"],Yitro:["Yisro"],"Vezot Haberakhah":["Vezos Haberakhah"],Parashat:["Parshas"],"Leil Selichot":["Leil Selichos"],"Shabbat Mevarchim Chodesh":["Shabbos Mevorchim Chodesh"],"Shabbat Shirah":["Shabbos Shirah"],Tevet:["Teves"],"Asara B'Tevet":["Asara B'Teves"]}};var poAshkenazi = {headers:headers$1,contexts:contexts$1};
|
|
4738
|
+
var headers$1={"plural-forms":"nplurals=2; plural=(n > 1);",language:"en_CA@ashkenazi"};var contexts$1={"":{Berachot:["Berachos"],Shabbat:["Shabbos"],Taanit:["Taanis"],Yevamot:["Yevamos"],Ketubot:["Kesubos"],"Baba Batra":["Baba Basra"],Makkot:["Makkos"],Shevuot:["Shevuos"],Horayot:["Horayos"],Menachot:["Menachos"],Bechorot:["Bechoros"],Keritot:["Kerisos"],Midot:["Midos"],"Achrei Mot":["Achrei Mos"],Bechukotai:["Bechukosai"],"Beha'alotcha":["Beha'aloscha"],Bereshit:["Bereshis"],Chukat:["Chukas"],"Erev Shavuot":["Erev Shavuos"],"Erev Sukkot":["Erev Sukkos"],"Ki Tavo":["Ki Savo"],"Ki Teitzei":["Ki Seitzei"],"Ki Tisa":["Ki Sisa"],Matot:["Matos"],"Purim Katan":["Purim Koton"],Tazria:["Sazria"],"Shabbat Chazon":["Shabbos Chazon"],"Shabbat HaChodesh":["Shabbos HaChodesh"],"Shabbat HaGadol":["Shabbos HaGadol"],"Shabbat Nachamu":["Shabbos Nachamu"],"Shabbat Parah":["Shabbos Parah"],"Shabbat Shekalim":["Shabbos Shekalim"],"Shabbat Shuva":["Shabbos Shuvah"],"Shabbat Zachor":["Shabbos Zachor"],Shavuot:["Shavuos"],"Shavuot I":["Shavuos I"],"Shavuot II":["Shavuos II"],Shemot:["Shemos"],"Shmini Atzeret":["Shmini Atzeres"],"Simchat Torah":["Simchas Torah"],Sukkot:["Sukkos"],"Sukkot I":["Sukkos I"],"Sukkot II":["Sukkos II"],"Sukkot II (CH''M)":["Sukkos II (CH''M)"],"Sukkot III (CH''M)":["Sukkos III (CH''M)"],"Sukkot IV (CH''M)":["Sukkos IV (CH''M)"],"Sukkot V (CH''M)":["Sukkos V (CH''M)"],"Sukkot VI (CH''M)":["Sukkos VI (CH''M)"],"Sukkot VII (Hoshana Raba)":["Sukkos VII (Hoshana Raba)"],"Ta'anit Bechorot":["Ta'anis Bechoros"],"Ta'anit Esther":["Ta'anis Esther"],Toldot:["Toldos"],Vaetchanan:["Vaeschanan"],Yitro:["Yisro"],"Vezot Haberakhah":["Vezos Haberakhah"],Parashat:["Parshas"],"Leil Selichot":["Leil Selichos"],"Shabbat Mevarchim Chodesh":["Shabbos Mevorchim Chodesh"],"Shabbat Shirah":["Shabbos Shirah"],Tevet:["Teves"],"Asara B'Tevet":["Asara B'Teves"],Berakhot:["Berakhos"],Sheviit:["Sheviis"],Terumot:["Terumos"],Maasrot:["Maasros"],Eduyot:["Eduyos"],Avot:["Avos"],Bekhorot:["Bekhoros"],Middot:["Middos"],Oholot:["Oholos"],Tahorot:["Tahoros"],Mikvaot:["Mikvaos"]}};var poAshkenazi = {headers:headers$1,contexts:contexts$1};
|
|
4722
4739
|
|
|
4723
4740
|
Locale.addLocale('ashkenazi', poAshkenazi);
|
|
4724
4741
|
Locale.addLocale('a', poAshkenazi);
|
|
4725
4742
|
|
|
4726
|
-
var headers={"plural-forms":"nplurals=2; plural=(n > 1);",language:"he_IL"};var contexts={"":{Berachot:["ברכות"],Shabbat:["שַׁבָּת"],Eruvin:["עירובין"],Pesachim:["פסחים"],Shekalim:["שקלים"],Yoma:["יומא"],Sukkah:["סוכה"],Beitzah:["ביצה"],Taanit:["תענית"],Megillah:["מגילה"],"Moed Katan":["מועד קטן"],Chagigah:["חגיגה"],Yevamot:["יבמות"],Ketubot:["כתובות"],Nedarim:["נדרים"],Nazir:["נזיר"],Sotah:["סוטה"],Gitin:["גיטין"],Kiddushin:["קידושין"],"Baba Kamma":["בבא קמא"],"Baba Metzia":["בבא מציעא"],"Baba Batra":["בבא בתרא"],Sanhedrin:["סנהדרין"],Makkot:["מכות"],Shevuot:["שבועות"],"Avodah Zarah":["עבודה זרה"],Horayot:["הוריות"],Zevachim:["זבחים"],Menachot:["מנחות"],Chullin:["חולין"],Bechorot:["בכורות"],Arachin:["ערכין"],Temurah:["תמורה"],Keritot:["כריתות"],Meilah:["מעילה"],Kinnim:["קינים"],Tamid:["תמיד"],Midot:["מדות"],Niddah:["נדה"],"Daf Yomi: %s %d":["דף יומי: %s %d"],"Daf Yomi":["דף יומי"],Parashat:["פָּרָשַׁת"],"Achrei Mot":["אַחֲרֵי מוֹת"],Balak:["בָּלָק"],Bamidbar:["בְּמִדְבַּר"],Bechukotai:["בְּחֻקֹּתַי"],"Beha'alotcha":["בְּהַעֲלֹתְךָ"],Behar:["בְּהַר"],Bereshit:["בְּרֵאשִׁית"],Beshalach:["בְּשַׁלַּח"],Bo:["בֹּא"],"Chayei Sara":["חַיֵּי שָֹרָה"],Chukat:["חֻקַּת"],Devarim:["דְּבָרִים"],Eikev:["עֵקֶב"],Emor:["אֱמוֹר"],"Ha'Azinu":["הַאֲזִינוּ"],Kedoshim:["קְדשִׁים"],"Ki Tavo":["כִּי־תָבוֹא"],"Ki Teitzei":["כִּי־תֵצֵא"],"Ki Tisa":["כִּי תִשָּׂא"],Korach:["קוֹרַח"],"Lech-Lecha":["לֶךְ־לְךָ"],Masei:["מַסְעֵי"],Matot:["מַּטּוֹת"],Metzora:["מְּצֹרָע"],Miketz:["מִקֵּץ"],Mishpatim:["מִּשְׁפָּטִים"],Nasso:["נָשׂא"],Nitzavim:["נִצָּבִים"],Noach:["נֹחַ"],Pekudei:["פְקוּדֵי"],Pinchas:["פִּינְחָס"],"Re'eh":["רְאֵה"],"Sh'lach":["שְׁלַח־לְךָ"],Shemot:["שְׁמוֹת"],Shmini:["שְּׁמִינִי"],Shoftim:["שׁוֹפְטִים"],Tazria:["תַזְרִיעַ"],Terumah:["תְּרוּמָה"],Tetzaveh:["תְּצַוֶּה"],Toldot:["תּוֹלְדוֹת"],Tzav:["צַו"],Vaera:["וָאֵרָא"],Vaetchanan:["וָאֶתְחַנַּן"],Vayakhel:["וַיַּקְהֵל"],Vayechi:["וַיְחִי"],Vayeilech:["וַיֵּלֶךְ"],Vayera:["וַיֵּרָא"],Vayeshev:["וַיֵּשֶׁב"],Vayetzei:["וַיֵּצֵא"],Vayigash:["וַיִּגַּשׁ"],Vayikra:["וַיִּקְרָא"],Vayishlach:["וַיִּשְׁלַח"],"Vezot Haberakhah":["וְזֹאת הַבְּרָכָה"],Yitro:["יִתְרוֹ"],"Asara B'Tevet":["עֲשָׂרָה בְּטֵבֵת"],"Candle lighting":["הַדלָקָת נֵרוֹת"],Chanukah:["חֲנוּכָּה"],"Chanukah: 1 Candle":["חֲנוּכָּה: א׳ נֵר"],"Chanukah: 2 Candles":["חֲנוּכָּה: ב׳ נֵרוֹת"],"Chanukah: 3 Candles":["חֲנוּכָּה: ג׳ נֵרוֹת"],"Chanukah: 4 Candles":["חֲנוּכָּה: ד׳ נֵרוֹת"],"Chanukah: 5 Candles":["חֲנוּכָּה: ה׳ נֵרוֹת"],"Chanukah: 6 Candles":["חֲנוּכָּה: ו׳ נֵרוֹת"],"Chanukah: 7 Candles":["חֲנוּכָּה: ז׳ נֵרוֹת"],"Chanukah: 8 Candles":["חֲנוּכָּה: ח׳ נֵרוֹת"],"Chanukah: 8th Day":["חֲנוּכָּה: יוֹם ח׳"],"Days of the Omer":["עוֹמֶר"],Omer:["עוֹמֶר"],"day of the Omer":["בָּעוֹמֶר"],"Erev Pesach":["עֶרֶב פֶּסַח"],"Erev Purim":["עֶרֶב פּוּרִים"],"Erev Rosh Hashana":["עֶרֶב רֹאשׁ הַשָּׁנָה"],"Erev Shavuot":["עֶרֶב שָׁבוּעוֹת"],"Erev Simchat Torah":["עֶרֶב שִׂמְחַת תּוֹרָה"],"Erev Sukkot":["עֶרֶב סוּכּוֹת"],"Erev Tish'a B'Av":["עֶרֶב תִּשְׁעָה בְּאָב"],"Erev Yom Kippur":["עֶרֶב יוֹם כִּפּוּר"],Havdalah:["הַבדָלָה"],"Lag BaOmer":["ל״ג בָּעוֹמֶר"],"Leil Selichot":["סליחות"],Pesach:["פֶּסַח"],"Pesach I":["פֶּסַח א׳"],"Pesach II":["פֶּסַח ב׳"],"Pesach II (CH''M)":["פֶּסַח ב׳ (חוה״מ)"],"Pesach III (CH''M)":["פֶּסַח ג׳ (חוה״מ)"],"Pesach IV (CH''M)":["פֶּסַח ד׳ (חוה״מ)"],"Pesach Sheni":["פֶּסַח שני"],"Pesach V (CH''M)":["פֶּסַח ה׳ (חוה״מ)"],"Pesach VI (CH''M)":["פֶּסַח ו׳ (חוה״מ)"],"Pesach VII":["פֶּסַח ז׳"],"Pesach VIII":["פֶּסַח ח׳"],Purim:["פּוּרִים"],"Purim Katan":["פּוּרִים קָטָן"],"Rosh Chodesh %s":["רֹאשׁ חוֹדֶשׁ %s"],"Rosh Chodesh":["רֹאשׁ חוֹדֶשׁ"],Adar:["אַדָר"],"Adar I":["אַדָר א׳"],"Adar II":["אַדָר ב׳"],Av:["אָב"],Cheshvan:["חֶשְׁוָן"],Elul:["אֱלוּל"],Iyyar:["אִיָיר"],Kislev:["כִּסְלֵו"],Nisan:["נִיסָן"],"Sh'vat":["שְׁבָט"],Sivan:["סִיוָן"],Tamuz:["תַּמּוּז"],Tevet:["טֵבֵת"],Tishrei:["תִשְׁרֵי"],"Rosh Hashana":["רֹאשׁ הַשָּׁנָה"],"Rosh Hashana I":["רֹאשׁ הַשָּׁנָה א׳"],"Rosh Hashana II":["רֹאשׁ הַשָּׁנָה ב׳"],"Shabbat Chazon":["שַׁבָּת חֲזוֹן"],"Shabbat HaChodesh":["שַׁבָּת הַחֹדֶשׁ"],"Shabbat HaGadol":["שַׁבָּת הַגָּדוֹל"],"Shabbat Machar Chodesh":["שַׁבָּת מָחָר חוֹדֶשׁ"],"Shabbat Nachamu":["שַׁבָּת נַחֲמוּ"],"Shabbat Parah":["שַׁבָּת פּרה"],"Shabbat Rosh Chodesh":["שַׁבָּת רֹאשׁ חוֹדֶשׁ"],"Shabbat Shekalim":["שַׁבָּת שְׁקָלִים"],"Shabbat Shuva":["שַׁבָּת שׁוּבָה"],"Shabbat Zachor":["שַׁבָּת זָכוֹר"],Shavuot:["שָׁבוּעוֹת"],"Shavuot I":["שָׁבוּעוֹת א׳"],"Shavuot II":["שָׁבוּעוֹת ב׳"],"Shmini Atzeret":["שְׁמִינִי עֲצֶרֶת"],"Shushan Purim":["שׁוּשָׁן פּוּרִים"],Sigd:["סיגד"],"Simchat Torah":["שִׂמְחַת תּוֹרָה"],Sukkot:["סוּכּוֹת"],"Sukkot I":["סוּכּוֹת א׳"],"Sukkot II":["סוּכּוֹת ב׳"],"Sukkot II (CH''M)":["סוּכּוֹת ב׳ (חוה״מ)"],"Sukkot III (CH''M)":["סוּכּוֹת ג׳ (חוה״מ)"],"Sukkot IV (CH''M)":["סוּכּוֹת ד׳ (חוה״מ)"],"Sukkot V (CH''M)":["סוּכּוֹת ה׳ (חוה״מ)"],"Sukkot VI (CH''M)":["סוּכּוֹת ו׳ (חוה״מ)"],"Sukkot VII (Hoshana Raba)":["סוּכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"],"Ta'anit Bechorot":["תַּעֲנִית בְּכוֹרוֹת"],"Ta'anit Esther":["תַּעֲנִית אֶסְתֵּר"],"Tish'a B'Av":["תִּשְׁעָה בְּאָב"],"Tu B'Av":["טוּ בְּאָב"],"Tu BiShvat":["טוּ בִּשְׁבָט"],"Tu B'Shvat":["טוּ בִּשְׁבָט"],"Tzom Gedaliah":["צוֹם גְּדַלְיָה"],"Tzom Tammuz":["צוֹם תָּמוּז"],"Yom HaAtzma'ut":["יוֹם הָעַצְמָאוּת"],"Yom HaShoah":["יוֹם הַשּׁוֹאָה"],"Yom HaZikaron":["יוֹם הַזִּכָּרוֹן"],"Yom Kippur":["יוֹם כִּפּוּר"],"Yom Yerushalayim":["יוֹם יְרוּשָׁלַיִם"],"Yom HaAliyah":["יוֹם הַעֲלִיָּה"],"Yom HaAliyah School Observance":["שְׁמִירָת בֵּית הַסֵפֶר לְיוֹם הַעֲלִיָּה"],"Pesach I (on Shabbat)":["פֶּסַח יוֹם א׳ (בְּשַׁבָּת)"],"Pesach Chol ha-Moed Day 1":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם א׳"],"Pesach Chol ha-Moed Day 2":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ב׳"],"Pesach Chol ha-Moed Day 3":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ג׳"],"Pesach Chol ha-Moed Day 4":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ד׳"],"Pesach Chol ha-Moed Day 5":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ה׳"],"Pesach Shabbat Chol ha-Moed":["פֶּסַח שַׁבָּת חוֹל הַמּוֹעֵד"],"Shavuot II (on Shabbat)":["שָׁבוּעוֹת יוֹם ב׳ (בְּשַׁבָּת)"],"Rosh Hashana I (on Shabbat)":["רֹאשׁ הַשָּׁנָה יוֹם א׳ (בְּשַׁבָּת)"],"Yom Kippur (on Shabbat)":["יוֹם כִּפּוּר (בְּשַׁבָּת)"],"Yom Kippur (Mincha, Traditional)":["יוֹם כִּפּוּר מנחה"],"Yom Kippur (Mincha, Alternate)":["יוֹם כִּפּוּר מנחה"],"Sukkot I (on Shabbat)":["סוּכּוֹת יוֹם א׳ (בְּשַׁבָּת)"],"Sukkot Chol ha-Moed Day 1":["סוּכּוֹת
|
|
4743
|
+
var headers={"plural-forms":"nplurals=2; plural=(n > 1);",language:"he_IL"};var contexts={"":{Berachot:["ברכות"],Shabbat:["שַׁבָּת"],Eruvin:["עירובין"],Pesachim:["פסחים"],Shekalim:["שקלים"],Yoma:["יומא"],Sukkah:["סוכה"],Beitzah:["ביצה"],Taanit:["תענית"],Megillah:["מגילה"],"Moed Katan":["מועד קטן"],Chagigah:["חגיגה"],Yevamot:["יבמות"],Ketubot:["כתובות"],Nedarim:["נדרים"],Nazir:["נזיר"],Sotah:["סוטה"],Gitin:["גיטין"],Kiddushin:["קידושין"],"Baba Kamma":["בבא קמא"],"Baba Metzia":["בבא מציעא"],"Baba Batra":["בבא בתרא"],Sanhedrin:["סנהדרין"],Makkot:["מכות"],Shevuot:["שבועות"],"Avodah Zarah":["עבודה זרה"],Horayot:["הוריות"],Zevachim:["זבחים"],Menachot:["מנחות"],Chullin:["חולין"],Bechorot:["בכורות"],Arachin:["ערכין"],Temurah:["תמורה"],Keritot:["כריתות"],Meilah:["מעילה"],Kinnim:["קינים"],Tamid:["תמיד"],Midot:["מדות"],Niddah:["נדה"],"Daf Yomi: %s %d":["דף יומי: %s %d"],"Daf Yomi":["דף יומי"],Parashat:["פָּרָשַׁת"],"Achrei Mot":["אַחֲרֵי מוֹת"],Balak:["בָּלָק"],Bamidbar:["בְּמִדְבַּר"],Bechukotai:["בְּחֻקֹּתַי"],"Beha'alotcha":["בְּהַעֲלֹתְךָ"],Behar:["בְּהַר"],Bereshit:["בְּרֵאשִׁית"],Beshalach:["בְּשַׁלַּח"],Bo:["בֹּא"],"Chayei Sara":["חַיֵּי שָֹרָה"],Chukat:["חֻקַּת"],Devarim:["דְּבָרִים"],Eikev:["עֵקֶב"],Emor:["אֱמוֹר"],"Ha'Azinu":["הַאֲזִינוּ"],Kedoshim:["קְדשִׁים"],"Ki Tavo":["כִּי־תָבוֹא"],"Ki Teitzei":["כִּי־תֵצֵא"],"Ki Tisa":["כִּי תִשָּׂא"],Korach:["קוֹרַח"],"Lech-Lecha":["לֶךְ־לְךָ"],Masei:["מַסְעֵי"],Matot:["מַּטּוֹת"],Metzora:["מְּצֹרָע"],Miketz:["מִקֵּץ"],Mishpatim:["מִּשְׁפָּטִים"],Nasso:["נָשׂא"],Nitzavim:["נִצָּבִים"],Noach:["נֹחַ"],Pekudei:["פְקוּדֵי"],Pinchas:["פִּינְחָס"],"Re'eh":["רְאֵה"],"Sh'lach":["שְׁלַח־לְךָ"],Shemot:["שְׁמוֹת"],Shmini:["שְּׁמִינִי"],Shoftim:["שׁוֹפְטִים"],Tazria:["תַזְרִיעַ"],Terumah:["תְּרוּמָה"],Tetzaveh:["תְּצַוֶּה"],Toldot:["תּוֹלְדוֹת"],Tzav:["צַו"],Vaera:["וָאֵרָא"],Vaetchanan:["וָאֶתְחַנַּן"],Vayakhel:["וַיַּקְהֵל"],Vayechi:["וַיְחִי"],Vayeilech:["וַיֵּלֶךְ"],Vayera:["וַיֵּרָא"],Vayeshev:["וַיֵּשֶׁב"],Vayetzei:["וַיֵּצֵא"],Vayigash:["וַיִּגַּשׁ"],Vayikra:["וַיִּקְרָא"],Vayishlach:["וַיִּשְׁלַח"],"Vezot Haberakhah":["וְזֹאת הַבְּרָכָה"],Yitro:["יִתְרוֹ"],"Asara B'Tevet":["עֲשָׂרָה בְּטֵבֵת"],"Candle lighting":["הַדלָקָת נֵרוֹת"],Chanukah:["חֲנוּכָּה"],"Chanukah: 1 Candle":["חֲנוּכָּה: א׳ נֵר"],"Chanukah: 2 Candles":["חֲנוּכָּה: ב׳ נֵרוֹת"],"Chanukah: 3 Candles":["חֲנוּכָּה: ג׳ נֵרוֹת"],"Chanukah: 4 Candles":["חֲנוּכָּה: ד׳ נֵרוֹת"],"Chanukah: 5 Candles":["חֲנוּכָּה: ה׳ נֵרוֹת"],"Chanukah: 6 Candles":["חֲנוּכָּה: ו׳ נֵרוֹת"],"Chanukah: 7 Candles":["חֲנוּכָּה: ז׳ נֵרוֹת"],"Chanukah: 8 Candles":["חֲנוּכָּה: ח׳ נֵרוֹת"],"Chanukah: 8th Day":["חֲנוּכָּה: יוֹם ח׳"],"Days of the Omer":["עוֹמֶר"],Omer:["עוֹמֶר"],"day of the Omer":["בָּעוֹמֶר"],"Erev Pesach":["עֶרֶב פֶּסַח"],"Erev Purim":["עֶרֶב פּוּרִים"],"Erev Rosh Hashana":["עֶרֶב רֹאשׁ הַשָּׁנָה"],"Erev Shavuot":["עֶרֶב שָׁבוּעוֹת"],"Erev Simchat Torah":["עֶרֶב שִׂמְחַת תּוֹרָה"],"Erev Sukkot":["עֶרֶב סוּכּוֹת"],"Erev Tish'a B'Av":["עֶרֶב תִּשְׁעָה בְּאָב"],"Erev Yom Kippur":["עֶרֶב יוֹם כִּפּוּר"],Havdalah:["הַבדָלָה"],"Lag BaOmer":["ל״ג בָּעוֹמֶר"],"Leil Selichot":["סליחות"],Pesach:["פֶּסַח"],"Pesach I":["פֶּסַח א׳"],"Pesach II":["פֶּסַח ב׳"],"Pesach II (CH''M)":["פֶּסַח ב׳ (חוה״מ)"],"Pesach III (CH''M)":["פֶּסַח ג׳ (חוה״מ)"],"Pesach IV (CH''M)":["פֶּסַח ד׳ (חוה״מ)"],"Pesach Sheni":["פֶּסַח שני"],"Pesach V (CH''M)":["פֶּסַח ה׳ (חוה״מ)"],"Pesach VI (CH''M)":["פֶּסַח ו׳ (חוה״מ)"],"Pesach VII":["פֶּסַח ז׳"],"Pesach VIII":["פֶּסַח ח׳"],Purim:["פּוּרִים"],"Purim Katan":["פּוּרִים קָטָן"],"Rosh Chodesh %s":["רֹאשׁ חוֹדֶשׁ %s"],"Rosh Chodesh":["רֹאשׁ חוֹדֶשׁ"],Adar:["אַדָר"],"Adar I":["אַדָר א׳"],"Adar II":["אַדָר ב׳"],Av:["אָב"],Cheshvan:["חֶשְׁוָן"],Elul:["אֱלוּל"],Iyyar:["אִיָיר"],Kislev:["כִּסְלֵו"],Nisan:["נִיסָן"],"Sh'vat":["שְׁבָט"],Sivan:["סִיוָן"],Tamuz:["תַּמּוּז"],Tevet:["טֵבֵת"],Tishrei:["תִשְׁרֵי"],"Rosh Hashana":["רֹאשׁ הַשָּׁנָה"],"Rosh Hashana I":["רֹאשׁ הַשָּׁנָה א׳"],"Rosh Hashana II":["רֹאשׁ הַשָּׁנָה ב׳"],"Shabbat Chazon":["שַׁבָּת חֲזוֹן"],"Shabbat HaChodesh":["שַׁבָּת הַחֹדֶשׁ"],"Shabbat HaGadol":["שַׁבָּת הַגָּדוֹל"],"Shabbat Machar Chodesh":["שַׁבָּת מָחָר חוֹדֶשׁ"],"Shabbat Nachamu":["שַׁבָּת נַחֲמוּ"],"Shabbat Parah":["שַׁבָּת פּרה"],"Shabbat Rosh Chodesh":["שַׁבָּת רֹאשׁ חוֹדֶשׁ"],"Shabbat Shekalim":["שַׁבָּת שְׁקָלִים"],"Shabbat Shuva":["שַׁבָּת שׁוּבָה"],"Shabbat Zachor":["שַׁבָּת זָכוֹר"],Shavuot:["שָׁבוּעוֹת"],"Shavuot I":["שָׁבוּעוֹת א׳"],"Shavuot II":["שָׁבוּעוֹת ב׳"],"Shmini Atzeret":["שְׁמִינִי עֲצֶרֶת"],"Shushan Purim":["שׁוּשָׁן פּוּרִים"],Sigd:["סיגד"],"Simchat Torah":["שִׂמְחַת תּוֹרָה"],Sukkot:["סוּכּוֹת"],"Sukkot I":["סוּכּוֹת א׳"],"Sukkot II":["סוּכּוֹת ב׳"],"Sukkot II (CH''M)":["סוּכּוֹת ב׳ (חוה״מ)"],"Sukkot III (CH''M)":["סוּכּוֹת ג׳ (חוה״מ)"],"Sukkot IV (CH''M)":["סוּכּוֹת ד׳ (חוה״מ)"],"Sukkot V (CH''M)":["סוּכּוֹת ה׳ (חוה״מ)"],"Sukkot VI (CH''M)":["סוּכּוֹת ו׳ (חוה״מ)"],"Sukkot VII (Hoshana Raba)":["סוּכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"],"Ta'anit Bechorot":["תַּעֲנִית בְּכוֹרוֹת"],"Ta'anit Esther":["תַּעֲנִית אֶסְתֵּר"],"Tish'a B'Av":["תִּשְׁעָה בְּאָב"],"Tu B'Av":["טוּ בְּאָב"],"Tu BiShvat":["טוּ בִּשְׁבָט"],"Tu B'Shvat":["טוּ בִּשְׁבָט"],"Tzom Gedaliah":["צוֹם גְּדַלְיָה"],"Tzom Tammuz":["צוֹם תָּמוּז"],"Yom HaAtzma'ut":["יוֹם הָעַצְמָאוּת"],"Yom HaShoah":["יוֹם הַשּׁוֹאָה"],"Yom HaZikaron":["יוֹם הַזִּכָּרוֹן"],"Yom Kippur":["יוֹם כִּפּוּר"],"Yom Yerushalayim":["יוֹם יְרוּשָׁלַיִם"],"Yom HaAliyah":["יוֹם הַעֲלִיָּה"],"Yom HaAliyah School Observance":["שְׁמִירָת בֵּית הַסֵפֶר לְיוֹם הַעֲלִיָּה"],"Pesach I (on Shabbat)":["פֶּסַח יוֹם א׳ (בְּשַׁבָּת)"],"Pesach Chol ha-Moed Day 1":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם א׳"],"Pesach Chol ha-Moed Day 2":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ב׳"],"Pesach Chol ha-Moed Day 3":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ג׳"],"Pesach Chol ha-Moed Day 4":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ד׳"],"Pesach Chol ha-Moed Day 5":["פֶּסַח חוֹל הַמּוֹעֵד יוֹם ה׳"],"Pesach Shabbat Chol ha-Moed":["פֶּסַח שַׁבָּת חוֹל הַמּוֹעֵד"],"Shavuot II (on Shabbat)":["שָׁבוּעוֹת יוֹם ב׳ (בְּשַׁבָּת)"],"Rosh Hashana I (on Shabbat)":["רֹאשׁ הַשָּׁנָה יוֹם א׳ (בְּשַׁבָּת)"],"Yom Kippur (on Shabbat)":["יוֹם כִּפּוּר (בְּשַׁבָּת)"],"Yom Kippur (Mincha, Traditional)":["יוֹם כִּפּוּר מנחה"],"Yom Kippur (Mincha, Alternate)":["יוֹם כִּפּוּר מנחה"],"Sukkot I (on Shabbat)":["סוּכּוֹת יוֹם א׳ (בְּשַׁבָּת)"],"Sukkot Chol ha-Moed Day 1":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם א׳"],"Sukkot Chol ha-Moed Day 2":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ב׳"],"Sukkot Chol ha-Moed Day 3":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ג׳"],"Sukkot Chol ha-Moed Day 4":["סוּכּוֹת חוֹל הַמּוֹעֵד יוֹם ד׳"],"Sukkot Shabbat Chol ha-Moed":["סוּכּוֹת שַׁבָּת חוֹל הַמּוֹעֵד"],"Sukkot Final Day (Hoshana Raba)":["סוּכּוֹת ז׳ (הוֹשַׁעְנָא רַבָּה)"],"Rosh Chodesh Adar":["רֹאשׁ חוֹדֶשׁ אַדָר"],"Rosh Chodesh Adar I":["רֹאשׁ חוֹדֶשׁ אַדָר א׳"],"Rosh Chodesh Adar II":["רֹאשׁ חוֹדֶשׁ אַדָר ב׳"],"Rosh Chodesh Av":["רֹאשׁ חוֹדֶשׁ אָב"],"Rosh Chodesh Cheshvan":["רֹאשׁ חוֹדֶשׁ חֶשְׁוָן"],"Rosh Chodesh Elul":["רֹאשׁ חוֹדֶשׁ אֱלוּל"],"Rosh Chodesh Iyyar":["רֹאשׁ חוֹדֶשׁ אִיָיר"],"Rosh Chodesh Kislev":["רֹאשׁ חוֹדֶשׁ כִּסְלֵו"],"Rosh Chodesh Nisan":["רֹאשׁ חוֹדֶשׁ נִיסָן"],"Rosh Chodesh Sh'vat":["רֹאשׁ חוֹדֶשׁ שְׁבָט"],"Rosh Chodesh Sivan":["רֹאשׁ חוֹדֶשׁ סִיוָן"],"Rosh Chodesh Tamuz":["רֹאשׁ חוֹדֶשׁ תָּמוּז"],"Rosh Chodesh Tevet":["רֹאשׁ חוֹדֶשׁ טֵבֵת"],min:["דקות"],"Fast begins":["תחילת הַצוֹם"],"Fast ends":["סִיּוּם הַצוֹם"],"Rosh Hashana LaBehemot":["רֹאשׁ הַשָּׁנָה לְמַעְשַׂר בְּהֵמָה"],"Tish'a B'Av (observed)":["תִּשְׁעָה בְּאָב נִדחֶה"],"Shabbat Mevarchim Chodesh":["שַׁבָּת מברכים חוֹדֶשׁ"],"Shabbat Shirah":["שַׁבָּת שִׁירָה"],chatzotNight:["חֲצוֹת הַלַיְלָה"],alotHaShachar:["עֲלוֹת הַשַּׁחַר"],misheyakir:["משיכיר - זמן ציצית ותפילין"],misheyakirMachmir:["משיכיר - זמן ציצית ותפילין"],neitzHaChama:["הַנֵץ הַחַמָּה"],sofZmanShma:["סוֹף זְמַן קְרִיאַת שְׁמַע גר״א"],sofZmanTfilla:["סוֹף זְמַן תְּפִלָּה גר״א"],chatzot:["חֲצוֹת הַיּוֹם"],minchaGedola:["מִנְחָה גְּדוֹלָה"],minchaKetana:["מִנְחָה קְטַנָּה"],plagHaMincha:["פְּלַג הַמִּנְחָה"],shkiah:["שְׁקִיעָה"],"Nightfall - End of ordained fasts":["לַיְלָה - גמר תעניות דרבנן"],tzeit:["צֵאת כוכבים"],Lovingkindness:["חֶֽסֶד"],Might:["גְבוּרָה"],Beauty:["תִּפאֶרֶת"],Eternity:["נֶּֽצַח"],Splendor:["הוֹד"],Foundation:["יְּסוֹד"],Majesty:["מַּלְכוּת"],day:["יוֹם"],"Chanukah Day 1":["חֲנוּכָּה יוֹם א׳"],"Chanukah Day 2":["חֲנוּכָּה יוֹם ב׳"],"Chanukah Day 3":["חֲנוּכָּה יוֹם ג׳"],"Chanukah Day 4":["חֲנוּכָּה יוֹם ד׳"],"Chanukah Day 5":["חֲנוּכָּה יוֹם ה׳"],"Chanukah Day 6":["חֲנוּכָּה יוֹם ו׳"],"Chanukah Day 7":["חֲנוּכָּה יוֹם ז׳"],"Chanukah Day 7 (on Rosh Chodesh)":["חֲנוּכָּה יוֹם ז׳ (רֹאשׁ חוֹדֶשׁ)"],"Chanukah Day 8":["חֲנוּכָּה יוֹם ח׳"],Berakhot:["ברכות"],Peah:["פאה"],Demai:["דמאי"],Kilayim:["כלאים"],Sheviit:["שביעית"],Terumot:["תרומות"],Maasrot:["מעשרות"],"Maaser Sheni":["מעשר שני"],Challah:["חלה"],Orlah:["ערלה"],Bikkurim:["ביכורים"],"Rosh Hashanah":["ראש השנה"],Gittin:["גיטין"],"Bava Kamma":["בבא קמא"],"Bava Metzia":["בבא מציעא"],"Bava Batra":["בבא בתרא"],Eduyot:["עדיות"],Avot:["אבות"],Bekhorot:["בכורות"],Arakhin:["ערכין"],Middot:["מדות"],Kelim:["כלים"],Oholot:["אהלות"],Negaim:["נגעים"],Parah:["פרה"],Tahorot:["טהרות"],Mikvaot:["מקואות"],Makhshirin:["מכשירין"],Zavim:["זבים"],"Tevul Yom":["טבול יום"],Yadayim:["ידים"],Oktzin:["עוקצים"]}};var poHe = {headers:headers,contexts:contexts};
|
|
4727
4744
|
|
|
4728
4745
|
Locale.addLocale('he', poHe);
|
|
4729
4746
|
Locale.addLocale('h', poHe);
|
|
@@ -4744,6 +4761,164 @@ const poHeNoNikud = {
|
|
|
4744
4761
|
};
|
|
4745
4762
|
Locale.addLocale(localeName, poHeNoNikud);
|
|
4746
4763
|
|
|
4764
|
+
/**
|
|
4765
|
+
* @private
|
|
4766
|
+
* @param {MishnaYomi[]} mishnaYomi
|
|
4767
|
+
* @param {string} locale
|
|
4768
|
+
* @return {string}
|
|
4769
|
+
*/
|
|
4770
|
+
|
|
4771
|
+
function formatMyomi(mishnaYomi, locale) {
|
|
4772
|
+
const k1 = mishnaYomi[0].k;
|
|
4773
|
+
const cv1 = mishnaYomi[0].v;
|
|
4774
|
+
const mishna1 = Locale.gettext(k1, locale) + ' ' + cv1;
|
|
4775
|
+
const k2 = mishnaYomi[1].k;
|
|
4776
|
+
const cv2 = mishnaYomi[1].v;
|
|
4777
|
+
|
|
4778
|
+
if (k1 !== k2) {
|
|
4779
|
+
return mishna1 + '-' + Locale.gettext(k2, locale) + ' ' + cv2;
|
|
4780
|
+
}
|
|
4781
|
+
|
|
4782
|
+
const p1 = cv1.split(':');
|
|
4783
|
+
const p2 = cv2.split(':');
|
|
4784
|
+
|
|
4785
|
+
if (p1[0] === p2[0]) {
|
|
4786
|
+
return mishna1 + '-' + p2[1];
|
|
4787
|
+
}
|
|
4788
|
+
|
|
4789
|
+
return mishna1 + '-' + cv2;
|
|
4790
|
+
}
|
|
4791
|
+
/**
|
|
4792
|
+
* Event wrapper around a Mishna Yomi instance
|
|
4793
|
+
*/
|
|
4794
|
+
|
|
4795
|
+
|
|
4796
|
+
class MishnaYomiEvent extends Event {
|
|
4797
|
+
/**
|
|
4798
|
+
* @param {HDate} date
|
|
4799
|
+
* @param {MishnaYomi[]} mishnaYomi
|
|
4800
|
+
*/
|
|
4801
|
+
constructor(date, mishnaYomi) {
|
|
4802
|
+
super(date, formatMyomi(mishnaYomi, null), flags.MISHNA_YOMI, {
|
|
4803
|
+
mishnaYomi
|
|
4804
|
+
});
|
|
4805
|
+
}
|
|
4806
|
+
/**
|
|
4807
|
+
* Returns Mishna Yomi name (e.g. "Bava Metzia 10:5-6" or "Berakhot 9:5-Peah 1:1").
|
|
4808
|
+
* @param {string} [locale] Optional locale name (defaults to active locale).
|
|
4809
|
+
* @return {string}
|
|
4810
|
+
*/
|
|
4811
|
+
|
|
4812
|
+
|
|
4813
|
+
render(locale) {
|
|
4814
|
+
return formatMyomi(this.mishnaYomi, locale);
|
|
4815
|
+
}
|
|
4816
|
+
/**
|
|
4817
|
+
* Returns a link to sefaria.org
|
|
4818
|
+
* @return {string}
|
|
4819
|
+
*/
|
|
4820
|
+
|
|
4821
|
+
|
|
4822
|
+
url() {
|
|
4823
|
+
const mishnaYomi = this.mishnaYomi;
|
|
4824
|
+
const k1 = mishnaYomi[0].k;
|
|
4825
|
+
const mishna = k1 === 'Avot' ? 'Pirkei' : 'Mishnah';
|
|
4826
|
+
const name = k1.replace(/ /g, '_');
|
|
4827
|
+
const prefix = `https://www.sefaria.org/${mishna}_${name}`;
|
|
4828
|
+
const cv1 = mishnaYomi[0].v;
|
|
4829
|
+
|
|
4830
|
+
if (k1 !== mishnaYomi[1].k) {
|
|
4831
|
+
return `${prefix}.${cv1}?lang=bi`;
|
|
4832
|
+
}
|
|
4833
|
+
|
|
4834
|
+
const cv2 = mishnaYomi[1].v;
|
|
4835
|
+
const p1 = cv1.split(':');
|
|
4836
|
+
const p2 = cv2.split(':');
|
|
4837
|
+
const verse1 = p1.join('.');
|
|
4838
|
+
const verse2 = p1[0] === p2[0] ? p2[1] : p2.join('.');
|
|
4839
|
+
return `${prefix}.${verse1}-${verse2}?lang=bi`;
|
|
4840
|
+
}
|
|
4841
|
+
|
|
4842
|
+
}
|
|
4843
|
+
|
|
4844
|
+
var mishnayot = [{k:"Berakhot",v:[5,8,6,7,5,8,5,8,5]},{k:"Peah",v:[6,8,8,11,8,11,8,9]},{k:"Demai",v:[4,5,6,7,11,12,8]},{k:"Kilayim",v:[9,11,7,9,8,9,8,6,10]},{k:"Sheviit",v:[8,10,10,10,9,6,7,11,9,9]},{k:"Terumot",v:[10,6,9,13,9,6,7,12,7,12,10]},{k:"Maasrot",v:[8,8,10,6,8]},{k:"Maaser Sheni",v:[7,10,13,12,15]},{k:"Challah",v:[9,8,10,11]},{k:"Orlah",v:[9,17,9]},{k:"Bikkurim",v:[11,11,12,5]},{k:"Shabbat",v:[11,7,6,2,4,10,4,7,7,6,6,6,7,4,3,8,8,3,6,5,3,6,5,5]},{k:"Eruvin",v:[10,6,9,11,9,10,11,11,4,15]},{k:"Pesachim",v:[7,8,8,9,10,6,13,8,11,9]},{k:"Shekalim",v:[7,5,4,9,6,6,7,8]},{k:"Yoma",v:[8,7,11,6,7,8,5,9]},{k:"Sukkah",v:[11,9,15,10,8]},{k:"Beitzah",v:[10,10,8,7,7]},{k:"Rosh Hashanah",v:[9,9,8,9]},{k:"Taanit",v:[7,10,9,8]},{k:"Megillah",v:[11,6,6,10]},{k:"Moed Katan",v:[10,5,9]},{k:"Chagigah",v:[8,7,8]},{k:"Yevamot",v:[4,10,10,13,6,6,6,6,6,9,7,6,13,9,10,7]},{k:"Ketubot",v:[10,10,9,12,9,7,10,8,9,6,6,4,11]},{k:"Nedarim",v:[4,5,11,8,6,10,9,7,10,8,12]},{k:"Nazir",v:[7,10,7,7,7,11,4,2,5]},{k:"Sotah",v:[9,6,8,5,5,4,8,7,15]},{k:"Gittin",v:[6,7,8,9,9,7,9,10,10]},{k:"Kiddushin",v:[10,10,13,14]},{k:"Bava Kamma",v:[4,6,11,9,7,6,7,7,12,10]},{k:"Bava Metzia",v:[8,11,12,12,11,8,11,9,13,6]},{k:"Bava Batra",v:[6,14,8,9,11,8,4,8,10,8]},{k:"Sanhedrin",v:[6,5,8,5,5,6,11,7,6,6,6]},{k:"Makkot",v:[10,8,16]},{k:"Shevuot",v:[7,5,11,13,5,7,8,6]},{k:"Eduyot",v:[14,10,12,12,7,3,9,7]},{k:"Avodah Zarah",v:[9,7,10,12,12]},{k:"Avot",v:[18,16,18,22,23,11]},{k:"Horayot",v:[5,7,8]},{k:"Zevachim",v:[4,5,6,6,8,7,6,12,7,8,8,6,8,10]},{k:"Menachot",v:[4,5,7,5,9,7,6,7,9,9,9,5,11]},{k:"Chullin",v:[7,10,7,7,5,7,6,6,8,4,2,5]},{k:"Bekhorot",v:[7,9,4,10,6,12,7,10,8]},{k:"Arakhin",v:[4,6,5,4,6,5,5,7,8]},{k:"Temurah",v:[6,3,5,4,6,5,6]},{k:"Keritot",v:[7,6,10,3,8,9]},{k:"Meilah",v:[4,9,8,6,5,6]},{k:"Tamid",v:[4,5,9,3,6,3,4]},{k:"Middot",v:[9,6,8,7,4]},{k:"Kinnim",v:[4,5,6]},{k:"Kelim",v:[9,8,8,4,11,4,6,11,8,8,9,8,8,8,6,8,17,9,10,7,3,10,5,17,9,9,12,10,8,4]},{k:"Oholot",v:[8,7,7,3,7,7,6,6,16,7,9,8,6,7,10,5,5,10]},{k:"Negaim",v:[6,5,8,11,5,8,5,10,3,10,12,7,12,13]},{k:"Parah",v:[4,5,11,4,9,5,12,11,9,6,9,11]},{k:"Tahorot",v:[9,8,8,13,9,10,9,9,9,8]},{k:"Mikvaot",v:[8,10,4,5,6,11,7,5,7,8]},{k:"Niddah",v:[7,7,7,7,9,14,5,4,11,8]},{k:"Makhshirin",v:[6,11,8,10,11,8]},{k:"Zavim",v:[6,4,3,7,12]},{k:"Tevul Yom",v:[5,8,6,7]},{k:"Yadayim",v:[5,4,5,8]},{k:"Oktzin",v:[6,10,12]}];
|
|
4845
|
+
|
|
4846
|
+
const cycleStartDate = new Date(1947, 4, 20);
|
|
4847
|
+
const mishnaYomiStart = greg.greg2abs(cycleStartDate);
|
|
4848
|
+
const numMishnayot = 4192;
|
|
4849
|
+
const numDays = numMishnayot / 2;
|
|
4850
|
+
/**
|
|
4851
|
+
* Options to configure which events are returned
|
|
4852
|
+
* @typedef {Object} MishnaYomi
|
|
4853
|
+
* @property {string} k tractate name in Sephardic transliteration (e.g. "Berakhot", "Moed Katan")
|
|
4854
|
+
* @property {string} v verse (e.g. "2:1")
|
|
4855
|
+
*/
|
|
4856
|
+
// eslint-disable-next-line require-jsdoc
|
|
4857
|
+
|
|
4858
|
+
function throwTypeError(msg) {
|
|
4859
|
+
throw new TypeError(msg);
|
|
4860
|
+
}
|
|
4861
|
+
/**
|
|
4862
|
+
* A program of daily learning in which participants study two Mishnahs
|
|
4863
|
+
* each day in order to finish the entire Mishnah in ~6 years.
|
|
4864
|
+
*/
|
|
4865
|
+
|
|
4866
|
+
|
|
4867
|
+
class MinshnaYomiIndex {
|
|
4868
|
+
/**
|
|
4869
|
+
* Initializes a Mishna Yomi instance
|
|
4870
|
+
*/
|
|
4871
|
+
constructor() {
|
|
4872
|
+
const tmp = Array(numMishnayot);
|
|
4873
|
+
let i = 0;
|
|
4874
|
+
|
|
4875
|
+
for (const tractate of mishnayot) {
|
|
4876
|
+
const v = tractate.v;
|
|
4877
|
+
|
|
4878
|
+
for (let chap = 1; chap <= v.length; chap++) {
|
|
4879
|
+
const numv = v[chap - 1];
|
|
4880
|
+
|
|
4881
|
+
for (let verse = 1; verse <= numv; verse++) {
|
|
4882
|
+
tmp[i++] = {
|
|
4883
|
+
k: tractate.k,
|
|
4884
|
+
v: `${chap}:${verse}`
|
|
4885
|
+
};
|
|
4886
|
+
}
|
|
4887
|
+
}
|
|
4888
|
+
}
|
|
4889
|
+
|
|
4890
|
+
const days = Array(numDays);
|
|
4891
|
+
|
|
4892
|
+
for (let j = 0; j < numDays; j++) {
|
|
4893
|
+
const k = j * 2;
|
|
4894
|
+
days[j] = [tmp[k], tmp[k + 1]];
|
|
4895
|
+
}
|
|
4896
|
+
/** @type {MishnaYomi[]} */
|
|
4897
|
+
|
|
4898
|
+
|
|
4899
|
+
this.days = days;
|
|
4900
|
+
}
|
|
4901
|
+
/**
|
|
4902
|
+
* Looks up a Mishna Yomi
|
|
4903
|
+
* @param {Date|HDate|number} date Gregorian date
|
|
4904
|
+
* @return {MishnaYomi[]}
|
|
4905
|
+
*/
|
|
4906
|
+
|
|
4907
|
+
|
|
4908
|
+
lookup(date) {
|
|
4909
|
+
const abs = typeof date === 'number' && !isNaN(date) ? date : greg.isDate(date) ? greg.greg2abs(date) : HDate.isHDate(date) ? date.abs() : throwTypeError(`Invalid date: ${date}`);
|
|
4910
|
+
|
|
4911
|
+
if (abs < mishnaYomiStart) {
|
|
4912
|
+
const s = date.toISOString().substring(0, 10);
|
|
4913
|
+
throw new RangeError(`Date ${s} too early; Mishna Yomi cycle began on 1947-05-20`);
|
|
4914
|
+
}
|
|
4915
|
+
|
|
4916
|
+
const dayNum = (abs - mishnaYomiStart) % numDays;
|
|
4917
|
+
return this.days[dayNum];
|
|
4918
|
+
}
|
|
4919
|
+
|
|
4920
|
+
}
|
|
4921
|
+
|
|
4747
4922
|
/*
|
|
4748
4923
|
Hebcal - A Jewish Calendar Generator
|
|
4749
4924
|
Copyright (c) 1994-2020 Danny Sadinoff
|
|
@@ -4819,6 +4994,7 @@ const RECOGNIZED_OPTIONS = {
|
|
|
4819
4994
|
noSpecialShabbat: 1,
|
|
4820
4995
|
noHolidays: 1,
|
|
4821
4996
|
dafyomi: 1,
|
|
4997
|
+
mishnaYomi: 1,
|
|
4822
4998
|
omer: 1,
|
|
4823
4999
|
molad: 1,
|
|
4824
5000
|
ashkenazi: 1,
|
|
@@ -4919,6 +5095,7 @@ function checkCandleOptions(options) {
|
|
|
4919
5095
|
* @property {boolean} noSpecialShabbat - suppress Special Shabbat
|
|
4920
5096
|
* @property {boolean} noHolidays - suppress regular holidays
|
|
4921
5097
|
* @property {boolean} dafyomi - include Daf Yomi
|
|
5098
|
+
* @property {boolean} mishnaYomi - include Mishna Yomi
|
|
4922
5099
|
* @property {boolean} omer - include Days of the Omer
|
|
4923
5100
|
* @property {boolean} molad - include event announcing the molad
|
|
4924
5101
|
* @property {boolean} ashkenazi - use Ashkenazi transliterations for event titles (default Sephardi transliterations)
|
|
@@ -4942,7 +5119,7 @@ function checkCandleOptions(options) {
|
|
|
4942
5119
|
function getAbs(d) {
|
|
4943
5120
|
if (typeof d == 'number') return d;
|
|
4944
5121
|
if (greg.isDate(d)) return greg.greg2abs(d);
|
|
4945
|
-
if (HDate
|
|
5122
|
+
if (HDate.isHDate(d)) return d.abs();
|
|
4946
5123
|
throw new TypeError(`Invalid date type: ${d}`);
|
|
4947
5124
|
}
|
|
4948
5125
|
/**
|
|
@@ -4961,7 +5138,7 @@ function getStartAndEnd(options) {
|
|
|
4961
5138
|
}
|
|
4962
5139
|
|
|
4963
5140
|
const isHebrewYear = Boolean(options.isHebrewYear);
|
|
4964
|
-
const theYear = typeof options.year !== 'undefined' ? parseInt(options.year, 10) : isHebrewYear ? new HDate
|
|
5141
|
+
const theYear = typeof options.year !== 'undefined' ? parseInt(options.year, 10) : isHebrewYear ? new HDate().getFullYear() : new Date().getFullYear();
|
|
4965
5142
|
|
|
4966
5143
|
if (isNaN(theYear)) {
|
|
4967
5144
|
throw new RangeError(`Invalid year ${options.year}`);
|
|
@@ -4975,7 +5152,7 @@ function getStartAndEnd(options) {
|
|
|
4975
5152
|
|
|
4976
5153
|
if (options.month) {
|
|
4977
5154
|
if (isHebrewYear) {
|
|
4978
|
-
theMonth = HDate
|
|
5155
|
+
theMonth = HDate.monthNum(options.month);
|
|
4979
5156
|
} else {
|
|
4980
5157
|
theMonth = options.month;
|
|
4981
5158
|
}
|
|
@@ -4984,9 +5161,9 @@ function getStartAndEnd(options) {
|
|
|
4984
5161
|
const numYears = parseInt(options.numYears, 10) || 1;
|
|
4985
5162
|
|
|
4986
5163
|
if (isHebrewYear) {
|
|
4987
|
-
const startDate = new HDate
|
|
5164
|
+
const startDate = new HDate(1, theMonth || TISHREI, theYear);
|
|
4988
5165
|
let startAbs = startDate.abs();
|
|
4989
|
-
const endAbs = options.month ? startAbs + startDate.daysInMonth() : new HDate
|
|
5166
|
+
const endAbs = options.month ? startAbs + startDate.daysInMonth() : new HDate(1, TISHREI, theYear + numYears).abs() - 1; // for full Hebrew year, start on Erev Rosh Hashana which
|
|
4990
5167
|
// is technically in the previous Hebrew year
|
|
4991
5168
|
// (but conveniently lets us get candle-lighting time for Erev)
|
|
4992
5169
|
|
|
@@ -5040,6 +5217,7 @@ function getMaskFromOptions(options) {
|
|
|
5040
5217
|
if (m & DAF_YOMI) options.dafyomi = true;
|
|
5041
5218
|
if (m & OMER_COUNT) options.omer = true;
|
|
5042
5219
|
if (m & SHABBAT_MEVARCHIM) options.shabbatMevarchim = true;
|
|
5220
|
+
if (m & flags.MISHNA_YOMI) options.mishnaYomi = true;
|
|
5043
5221
|
options.userMask = true;
|
|
5044
5222
|
return m;
|
|
5045
5223
|
}
|
|
@@ -5088,6 +5266,10 @@ function getMaskFromOptions(options) {
|
|
|
5088
5266
|
mask |= DAF_YOMI;
|
|
5089
5267
|
}
|
|
5090
5268
|
|
|
5269
|
+
if (options.mishnaYomi) {
|
|
5270
|
+
mask |= flags.MISHNA_YOMI;
|
|
5271
|
+
}
|
|
5272
|
+
|
|
5091
5273
|
if (options.omer) {
|
|
5092
5274
|
mask |= OMER_COUNT;
|
|
5093
5275
|
}
|
|
@@ -5143,6 +5325,7 @@ const HebrewCalendar = {
|
|
|
5143
5325
|
* * Parashat HaShavua - weekly Torah Reading on Saturdays (`options.sedrot`)
|
|
5144
5326
|
* * Counting of the Omer (`options.omer`)
|
|
5145
5327
|
* * Daf Yomi (`options.dafyomi`)
|
|
5328
|
+
* * Mishna Yomi (`options.mishnaYomi`)
|
|
5146
5329
|
* * Shabbat Mevarchim HaChodesh on Saturday before Rosh Chodesh (`options.shabbatMevarchim`)
|
|
5147
5330
|
* * Molad announcement on Saturday before Rosh Chodesh (`options.molad`)
|
|
5148
5331
|
*
|
|
@@ -5249,8 +5432,14 @@ const HebrewCalendar = {
|
|
|
5249
5432
|
options.candlelighting = false;
|
|
5250
5433
|
}
|
|
5251
5434
|
|
|
5435
|
+
let mishnaYomiIndex;
|
|
5436
|
+
|
|
5437
|
+
if (options.mishnaYomi) {
|
|
5438
|
+
mishnaYomiIndex = new MinshnaYomiIndex();
|
|
5439
|
+
}
|
|
5440
|
+
|
|
5252
5441
|
for (let abs = startAbs; abs <= endAbs; abs++) {
|
|
5253
|
-
const hd = new HDate
|
|
5442
|
+
const hd = new HDate(abs);
|
|
5254
5443
|
const hyear = hd.getFullYear();
|
|
5255
5444
|
|
|
5256
5445
|
if (hyear != currentYear) {
|
|
@@ -5262,8 +5451,8 @@ const HebrewCalendar = {
|
|
|
5262
5451
|
}
|
|
5263
5452
|
|
|
5264
5453
|
if (options.omer) {
|
|
5265
|
-
beginOmer = HDate
|
|
5266
|
-
endOmer = HDate
|
|
5454
|
+
beginOmer = HDate.hebrew2abs(currentYear, NISAN, 16);
|
|
5455
|
+
endOmer = HDate.hebrew2abs(currentYear, SIVAN, 5);
|
|
5267
5456
|
}
|
|
5268
5457
|
}
|
|
5269
5458
|
|
|
@@ -5287,6 +5476,11 @@ const HebrewCalendar = {
|
|
|
5287
5476
|
evts.push(new DafYomiEvent(hd));
|
|
5288
5477
|
}
|
|
5289
5478
|
|
|
5479
|
+
if (options.mishnaYomi && abs >= mishnaYomiStart) {
|
|
5480
|
+
const mishnaYomi = mishnaYomiIndex.lookup(abs);
|
|
5481
|
+
evts.push(new MishnaYomiEvent(hd, mishnaYomi));
|
|
5482
|
+
}
|
|
5483
|
+
|
|
5290
5484
|
if (options.omer && abs >= beginOmer && abs <= endOmer) {
|
|
5291
5485
|
const omer = abs - beginOmer + 1;
|
|
5292
5486
|
evts.push(new OmerEvent(hd, omer));
|
|
@@ -5295,14 +5489,14 @@ const HebrewCalendar = {
|
|
|
5295
5489
|
const hmonth = hd.getMonth();
|
|
5296
5490
|
|
|
5297
5491
|
if (options.molad && dow == SAT && hmonth != ELUL && hd.getDate() >= 23 && hd.getDate() <= 29) {
|
|
5298
|
-
const monNext = hmonth == HDate
|
|
5492
|
+
const monNext = hmonth == HDate.monthsInYear(hyear) ? NISAN : hmonth + 1;
|
|
5299
5493
|
evts.push(new MoladEvent(hd, hyear, monNext));
|
|
5300
5494
|
}
|
|
5301
5495
|
|
|
5302
5496
|
if (!candlesEv && options.candlelighting && (dow == FRI || dow == SAT)) {
|
|
5303
5497
|
candlesEv = makeCandleEvent(undefined, hd, dow, location, options);
|
|
5304
5498
|
|
|
5305
|
-
if (dow
|
|
5499
|
+
if (dow === FRI && candlesEv && sedra) {
|
|
5306
5500
|
candlesEv.memo = sedra.getString(abs);
|
|
5307
5501
|
}
|
|
5308
5502
|
} // suppress Havdalah when options.havdalahMins=0 or options.havdalahDeg=0
|
|
@@ -5357,7 +5551,7 @@ const HebrewCalendar = {
|
|
|
5357
5551
|
* @return {HDate} anniversary occurring in `hyear`
|
|
5358
5552
|
*/
|
|
5359
5553
|
getBirthdayOrAnniversary: function (hyear, gdate) {
|
|
5360
|
-
const orig = HDate
|
|
5554
|
+
const orig = HDate.isHDate(gdate) ? gdate : new HDate(gdate);
|
|
5361
5555
|
const origYear = orig.getFullYear();
|
|
5362
5556
|
|
|
5363
5557
|
if (hyear <= origYear) {
|
|
@@ -5365,24 +5559,24 @@ const HebrewCalendar = {
|
|
|
5365
5559
|
return undefined;
|
|
5366
5560
|
}
|
|
5367
5561
|
|
|
5368
|
-
const isOrigLeap = HDate
|
|
5562
|
+
const isOrigLeap = HDate.isLeapYear(origYear);
|
|
5369
5563
|
let month = orig.getMonth();
|
|
5370
5564
|
let day = orig.getDate();
|
|
5371
5565
|
|
|
5372
5566
|
if (month == ADAR_I && !isOrigLeap || month == ADAR_II && isOrigLeap) {
|
|
5373
|
-
month = HDate
|
|
5374
|
-
} else if (month == CHESHVAN && day == 30 && !HDate
|
|
5567
|
+
month = HDate.monthsInYear(hyear);
|
|
5568
|
+
} else if (month == CHESHVAN && day == 30 && !HDate.longCheshvan(hyear)) {
|
|
5375
5569
|
month = KISLEV;
|
|
5376
5570
|
day = 1;
|
|
5377
|
-
} else if (month == KISLEV && day == 30 && HDate
|
|
5571
|
+
} else if (month == KISLEV && day == 30 && HDate.shortKislev(hyear)) {
|
|
5378
5572
|
month = TEVET;
|
|
5379
5573
|
day = 1;
|
|
5380
|
-
} else if (month == ADAR_I && day == 30 && isOrigLeap && !HDate
|
|
5574
|
+
} else if (month == ADAR_I && day == 30 && isOrigLeap && !HDate.isLeapYear(hyear)) {
|
|
5381
5575
|
month = NISAN;
|
|
5382
5576
|
day = 1;
|
|
5383
5577
|
}
|
|
5384
5578
|
|
|
5385
|
-
return new HDate
|
|
5579
|
+
return new HDate(day, month, hyear);
|
|
5386
5580
|
},
|
|
5387
5581
|
|
|
5388
5582
|
/**
|
|
@@ -5420,7 +5614,7 @@ const HebrewCalendar = {
|
|
|
5420
5614
|
* @return {HDate} anniversary occurring in hyear
|
|
5421
5615
|
*/
|
|
5422
5616
|
getYahrzeit: function (hyear, gdate) {
|
|
5423
|
-
const orig = HDate
|
|
5617
|
+
const orig = HDate.isHDate(gdate) ? gdate : new HDate(gdate);
|
|
5424
5618
|
let hDeath = {
|
|
5425
5619
|
yy: orig.getFullYear(),
|
|
5426
5620
|
mm: orig.getMonth(),
|
|
@@ -5432,18 +5626,18 @@ const HebrewCalendar = {
|
|
|
5432
5626
|
return undefined;
|
|
5433
5627
|
}
|
|
5434
5628
|
|
|
5435
|
-
if (hDeath.mm == CHESHVAN && hDeath.dd == 30 && !HDate
|
|
5629
|
+
if (hDeath.mm == CHESHVAN && hDeath.dd == 30 && !HDate.longCheshvan(hDeath.yy + 1)) {
|
|
5436
5630
|
// If it's Heshvan 30 it depends on the first anniversary;
|
|
5437
5631
|
// if that was not Heshvan 30, use the day before Kislev 1.
|
|
5438
|
-
hDeath = HDate
|
|
5439
|
-
} else if (hDeath.mm == KISLEV && hDeath.dd == 30 && HDate
|
|
5632
|
+
hDeath = HDate.abs2hebrew(HDate.hebrew2abs(hyear, KISLEV, 1) - 1);
|
|
5633
|
+
} else if (hDeath.mm == KISLEV && hDeath.dd == 30 && HDate.shortKislev(hDeath.yy + 1)) {
|
|
5440
5634
|
// If it's Kislev 30 it depends on the first anniversary;
|
|
5441
5635
|
// if that was not Kislev 30, use the day before Teveth 1.
|
|
5442
|
-
hDeath = HDate
|
|
5636
|
+
hDeath = HDate.abs2hebrew(HDate.hebrew2abs(hyear, TEVET, 1) - 1);
|
|
5443
5637
|
} else if (hDeath.mm == ADAR_II) {
|
|
5444
5638
|
// If it's Adar II, use the same day in last month of year (Adar or Adar II).
|
|
5445
|
-
hDeath.mm = HDate
|
|
5446
|
-
} else if (hDeath.mm == ADAR_I && hDeath.dd == 30 && !HDate
|
|
5639
|
+
hDeath.mm = HDate.monthsInYear(hyear);
|
|
5640
|
+
} else if (hDeath.mm == ADAR_I && hDeath.dd == 30 && !HDate.isLeapYear(hyear)) {
|
|
5447
5641
|
// If it's the 30th in Adar I and year is not a leap year
|
|
5448
5642
|
// (so Adar has only 29 days), use the last day in Shevat.
|
|
5449
5643
|
hDeath.dd = 30;
|
|
@@ -5452,15 +5646,15 @@ const HebrewCalendar = {
|
|
|
5452
5646
|
// advance day to rosh chodesh if needed
|
|
5453
5647
|
|
|
5454
5648
|
|
|
5455
|
-
if (hDeath.mm == CHESHVAN && hDeath.dd == 30 && !HDate
|
|
5649
|
+
if (hDeath.mm == CHESHVAN && hDeath.dd == 30 && !HDate.longCheshvan(hyear)) {
|
|
5456
5650
|
hDeath.mm = KISLEV;
|
|
5457
5651
|
hDeath.dd = 1;
|
|
5458
|
-
} else if (hDeath.mm == KISLEV && hDeath.dd == 30 && HDate
|
|
5652
|
+
} else if (hDeath.mm == KISLEV && hDeath.dd == 30 && HDate.shortKislev(hyear)) {
|
|
5459
5653
|
hDeath.mm = TEVET;
|
|
5460
5654
|
hDeath.dd = 1;
|
|
5461
5655
|
}
|
|
5462
5656
|
|
|
5463
|
-
return new HDate
|
|
5657
|
+
return new HDate(hDeath.dd, hDeath.mm, hyear);
|
|
5464
5658
|
},
|
|
5465
5659
|
|
|
5466
5660
|
/**
|
|
@@ -5481,12 +5675,12 @@ const HebrewCalendar = {
|
|
|
5481
5675
|
*/
|
|
5482
5676
|
getHolidaysForYearArray: function (year, il) {
|
|
5483
5677
|
const yearMap = HebrewCalendar.getHolidaysForYear(year);
|
|
5484
|
-
const startAbs = HDate
|
|
5485
|
-
const endAbs = HDate
|
|
5678
|
+
const startAbs = HDate.hebrew2abs(year, TISHREI, 1);
|
|
5679
|
+
const endAbs = HDate.hebrew2abs(year + 1, TISHREI, 1) - 1;
|
|
5486
5680
|
const events = [];
|
|
5487
5681
|
|
|
5488
5682
|
for (let absDt = startAbs; absDt <= endAbs; absDt++) {
|
|
5489
|
-
const hd = new HDate
|
|
5683
|
+
const hd = new HDate(absDt);
|
|
5490
5684
|
const holidays = yearMap.get(hd.toString());
|
|
5491
5685
|
|
|
5492
5686
|
if (holidays) {
|
|
@@ -5505,7 +5699,7 @@ const HebrewCalendar = {
|
|
|
5505
5699
|
* @return {Event[]}
|
|
5506
5700
|
*/
|
|
5507
5701
|
getHolidaysOnDate: function (date, il) {
|
|
5508
|
-
const hd = HDate
|
|
5702
|
+
const hd = HDate.isHDate(date) ? date : new HDate(date);
|
|
5509
5703
|
const yearMap = HebrewCalendar.getHolidaysForYear(hd.getFullYear());
|
|
5510
5704
|
const events = yearMap.get(hd.toString());
|
|
5511
5705
|
|
|
@@ -5635,4 +5829,4 @@ function appendHolidayAndRelated(events, ev, options, candlesEv, dow) {
|
|
|
5635
5829
|
return candlesEv;
|
|
5636
5830
|
}
|
|
5637
5831
|
|
|
5638
|
-
export { AsaraBTevetEvent, CandleLightingEvent, DafYomi, DafYomiEvent, Event, HDate
|
|
5832
|
+
export { AsaraBTevetEvent, CandleLightingEvent, DafYomi, DafYomiEvent, Event, HDate, HavdalahEvent, HebrewCalendar, HebrewDateEvent, HolidayEvent, Locale, Location, MevarchimChodeshEvent, Molad, MoladEvent, OmerEvent, ParshaEvent, RoshChodeshEvent, RoshHashanaEvent, Sedra, TimedEvent, Zmanim, flags, gematriya, greg, months, parshiot, version };
|