jcal-zmanim
Version:
A very complete JavaScript library for the Jewish Calendar, Zmanim, Holidays, and daily Shul notes.
3,063 lines • 345 kB
JavaScript
"use strict";
function _array_like_to_array(arr, len) {
if (len == null || len > arr.length) len = arr.length;
for(var i = 0, arr2 = new Array(len); i < len; i++)arr2[i] = arr[i];
return arr2;
}
function _array_without_holes(arr) {
if (Array.isArray(arr)) return _array_like_to_array(arr);
}
function _class_call_check(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
function _defineProperties(target, props) {
for(var i = 0; i < props.length; i++){
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _create_class(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
function _define_property(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _instanceof(left, right) {
if (right != null && typeof Symbol !== "undefined" && right[Symbol.hasInstance]) {
return !!right[Symbol.hasInstance](left);
} else {
return left instanceof right;
}
}
function _iterable_to_array(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter);
}
function _non_iterable_spread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
function _object_spread(target) {
for(var i = 1; i < arguments.length; i++){
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === "function") {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function(key) {
_define_property(target, key, source[key]);
});
}
return target;
}
function ownKeys(object, enumerableOnly) {
var keys = Object.keys(object);
if (Object.getOwnPropertySymbols) {
var symbols = Object.getOwnPropertySymbols(object);
if (enumerableOnly) {
symbols = symbols.filter(function(sym) {
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
});
}
keys.push.apply(keys, symbols);
}
return keys;
}
function _object_spread_props(target, source) {
source = source != null ? source : {};
if (Object.getOwnPropertyDescriptors) {
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
} else {
ownKeys(Object(source)).forEach(function(key) {
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
});
}
return target;
}
function _to_consumable_array(arr) {
return _array_without_holes(arr) || _iterable_to_array(arr) || _unsupported_iterable_to_array(arr) || _non_iterable_spread();
}
function _type_of(obj) {
"@swc/helpers - typeof";
return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
}
function _unsupported_iterable_to_array(o, minLen) {
if (!o) return;
if (typeof o === "string") return _array_like_to_array(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor) n = o.constructor.name;
if (n === "Map" || n === "Set") return Array.from(n);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _array_like_to_array(o, minLen);
}
var __defProp = Object.defineProperty;
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
var __getOwnPropNames = Object.getOwnPropertyNames;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __export = function(target, all) {
for(var name in all)__defProp(target, name, {
get: all[name],
enumerable: true
});
};
var __copyProps = function(to, from, except, desc) {
if (from && (typeof from === "undefined" ? "undefined" : _type_of(from)) === "object" || typeof from === "function") {
var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
try {
var _loop = function() {
var key = _step.value;
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
get: function() {
return from[key];
},
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
});
};
for(var _iterator = __getOwnPropNames(from)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true)_loop();
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally{
try {
if (!_iteratorNormalCompletion && _iterator.return != null) {
_iterator.return();
}
} finally{
if (_didIteratorError) {
throw _iteratorError;
}
}
}
}
return to;
};
var __toCommonJS = function(mod) {
return __copyProps(__defProp({}, "__esModule", {
value: true
}), mod);
};
// src/index.ts
var index_exports = {};
__export(index_exports, {
Dafyomi: function() {
return Dafyomi;
},
DaysOfWeek: function() {
return DaysOfWeek;
},
DaysOfWeekEng: function() {
return DaysOfWeekEng;
},
DaysOfWeekHeb: function() {
return DaysOfWeekHeb;
},
JewishMonthsEng: function() {
return JewishMonthsEng;
},
JewishMonthsHeb: function() {
return JewishMonthsHeb;
},
JewishMonthsNames: function() {
return JewishMonthsNames;
},
Location: function() {
return Location;
},
Locations: function() {
return Locations;
},
Molad: function() {
return Molad;
},
PirkeiAvos: function() {
return PirkeiAvos;
},
SecularMonthsEng: function() {
return SecularMonthsEng;
},
Sedra: function() {
return Sedra;
},
Utils: function() {
return Utils;
},
ZmanTypeIds: function() {
return ZmanTypeIds;
},
ZmanTypes: function() {
return ZmanTypes;
},
Zmanim: function() {
return Zmanim;
},
ZmanimUtils: function() {
return ZmanimUtils;
},
closestDistanceMatch: function() {
return closestDistanceMatch;
},
closestNameMatch: function() {
return closestNameMatch;
},
findLocation: function() {
return findLocation;
},
getNotifications: function() {
return getNotifications;
},
getZmanType: function() {
return getZmanType;
},
jDate: function() {
return jDate;
}
});
module.exports = __toCommonJS(index_exports);
// src/JCal/Sedra.ts
var _Sedra = /*#__PURE__*/ function() {
function _Sedra(jd, israel2) {
_class_call_check(this, _Sedra);
if (jd.Month === 7 && jd.Day >= 15 && jd.Day < (israel2 ? 23 : 24)) {
this.sedras = [
_Sedra.sedraList[53]
];
return;
}
var sedraArray = [], sedraOrder = _Sedra.getSedraOrder(jd.Year, israel2), absDate = jd.Abs, index, weekNum;
absDate = _Sedra.getDayOnOrBefore(6, absDate + 6);
weekNum = (absDate - sedraOrder.firstSatInYear) / 7;
if (sedraOrder.sedraArray && weekNum >= sedraOrder.sedraArray.length) {
var indexLast = sedraOrder.sedraArray[sedraOrder.sedraArray.length - 1];
if (indexLast < 0) {
index = -indexLast + 2;
} else {
index = indexLast + 1;
}
} else {
index = sedraOrder.sedraArray ? sedraOrder.sedraArray[weekNum] : -1;
}
if (index >= 0) {
sedraArray = [
_Sedra.sedraList[index]
];
} else {
var i = -index;
sedraArray = [
_Sedra.sedraList[i],
_Sedra.sedraList[i + 1]
];
}
this.sedras = sedraArray;
}
_create_class(_Sedra, [
{
/**
* Gets the sedra/s as a string. If there are two, they are seperated by a " - "
*/ key: "toString",
value: function toString() {
return this.sedras.length > 0 && this.sedras.map(function(s) {
return s.eng;
}).join(" - ");
}
},
{
/**
* Gets the sedra/s as a string. If there are two, they are seperated by a " - "
*/ key: "toStringHeb",
value: function toStringHeb() {
return this.sedras.length > 0 && this.sedras.map(function(s) {
return s.heb;
}).join(" - ");
}
}
], [
{
key: "getDayOnOrBefore",
value: function getDayOnOrBefore(day_of_week, date) {
return date - (date - day_of_week) % 7;
}
},
{
key: "getSedraOrder",
value: function getSedraOrder(year, israel2) {
if (_Sedra.lastCalculatedYear != null && _Sedra.lastCalculatedYear.year === year && _Sedra.lastCalculatedYear.israel === israel2) {
return _Sedra.lastCalculatedYear;
}
var longCheshvon = jDate.isLongCheshvan(year), shortKislev = jDate.isShortKislev(year), roshHashana = jDate.absJd(year, 7, 1), roshHashanaDOW = Math.abs(roshHashana % 7), firstSatInYear = _Sedra.getDayOnOrBefore(6, roshHashana + 6);
var yearType, sArray;
if (longCheshvon && !shortKislev) yearType = "complete";
else if (!longCheshvon && shortKislev) yearType = "incomplete";
else yearType = "regular";
if (!jDate.isJdLeapY(year)) {
switch(roshHashanaDOW){
case 6:
if (yearType === "incomplete") {
sArray = _Sedra.shabbos_short;
} else if (yearType === "complete") {
sArray = _Sedra.shabbos_long;
}
break;
case 1:
if (yearType === "incomplete") {
sArray = _Sedra.mon_short;
} else if (yearType === "complete") {
sArray = israel2 ? _Sedra.mon_short : _Sedra.mon_long;
}
break;
case 2:
if (yearType === "regular") {
sArray = israel2 ? _Sedra.mon_short : _Sedra.mon_long;
}
break;
case 4:
if (yearType === "regular") {
sArray = israel2 ? _Sedra.thu_normal_Israel : _Sedra.thu_normal;
} else if (yearType === "complete") {
sArray = _Sedra.thu_long;
}
break;
default:
throw "improper sedra year type calculated.";
}
} else {
switch(roshHashanaDOW){
case 6:
if (yearType === "incomplete") {
sArray = _Sedra.shabbos_short_leap;
} else if (yearType === "complete") {
sArray = israel2 ? _Sedra.shabbos_short_leap : _Sedra.shabbos_long_leap;
}
break;
case 1:
if (yearType === "incomplete") {
sArray = israel2 ? _Sedra.mon_short_leap_Israel : _Sedra.mon_short_leap;
} else if (yearType === "complete") {
sArray = israel2 ? _Sedra.mon_long_leap_Israel : _Sedra.mon_long_leap;
}
break;
case 2:
if (yearType === "regular") {
sArray = israel2 ? _Sedra.mon_long_leap_Israel : _Sedra.mon_long_leap;
}
break;
case 4:
if (yearType === "incomplete") {
sArray = _Sedra.thu_short_leap;
} else if (yearType === "complete") {
sArray = _Sedra.thu_long_leap;
}
break;
default:
throw "improper sedra year type calculated.";
}
}
var retobj = {
firstSatInYear: firstSatInYear,
sedraArray: sArray,
year: year,
israel: israel2
};
_Sedra.lastCalculatedYear = retobj;
return retobj;
}
}
]);
return _Sedra;
}();
_Sedra.lastCalculatedYear = null;
_Sedra.sedraList = [
{
eng: "Bereshis",
heb: "\u05D1\u05E8\u05D0\u05E9\u05D9\u05EA"
},
{
eng: "Noach",
heb: "\u05E0\u05D7"
},
{
eng: "Lech-Lecha",
heb: "\u05DC\u05DA \u05DC\u05DA"
},
{
eng: "Vayera",
heb: "\u05D5\u05D9\u05E8\u05D0"
},
{
eng: "Chayei Sara",
heb: "\u05D7\u05D9\u05D9 \u05E9\u05E8\u05D4"
},
{
eng: "Toldos",
heb: "\u05EA\u05D5\u05DC\u05D3\u05D5\u05EA"
},
{
eng: "Vayetzei",
heb: "\u05D5\u05D9\u05E6\u05D0"
},
{
eng: "Vayishlach",
heb: "\u05D5\u05D9\u05E9\u05DC\u05D7"
},
{
eng: "Vayeishev",
heb: "\u05D5\u05D9\u05E9\u05D1"
},
{
eng: "Mikeitz",
heb: "\u05DE\u05E7\u05E5"
},
{
eng: "Vayigash",
heb: "\u05D5\u05D9\u05D2\u05E9"
},
{
eng: "Vayechi",
heb: "\u05D5\u05D9\u05D7\u05D9"
},
{
eng: "Shemos",
heb: "\u05E9\u05DE\u05D5\u05EA"
},
{
eng: "Va'era",
heb: "\u05D5\u05D0\u05E8\u05D0"
},
{
eng: "Bo",
heb: "\u05D1\u05D0"
},
{
eng: "Beshalach",
heb: "\u05D1\u05E9\u05DC\u05D7"
},
{
eng: "Yisro",
heb: "\u05D9\u05EA\u05E8\u05D5"
},
{
eng: "Mishpatim",
heb: "\u05DE\u05E9\u05E4\u05D8\u05D9\u05DD"
},
{
eng: "Terumah",
heb: "\u05EA\u05E8\u05D5\u05DE\u05D4"
},
{
eng: "Tetzaveh",
heb: "\u05EA\u05E6\u05D5\u05D4"
},
{
eng: "Ki Sisa",
heb: "\u05DB\u05D9 \u05EA\u05E9\u05D0"
},
{
eng: "Vayakhel",
heb: "\u05D5\u05D9\u05E7\u05D4\u05DC"
},
{
eng: "Pekudei",
heb: "\u05E4\u05E7\u05D5\u05D3\u05D9"
},
{
eng: "Vayikra",
heb: "\u05D5\u05D9\u05E7\u05E8\u05D0"
},
{
eng: "Tzav",
heb: "\u05E6\u05D5"
},
{
eng: "Shmini",
heb: "\u05E9\u05DE\u05D9\u05E0\u05D9"
},
{
eng: "Tazria",
heb: "\u05EA\u05D6\u05E8\u05D9\u05E2"
},
{
eng: "Metzora",
heb: "\u05DE\u05E6\u05D5\u05E8\u05E2"
},
{
eng: "Achrei Mos",
heb: "\u05D0\u05D7\u05E8\u05D9 \u05DE\u05D5\u05EA"
},
{
eng: "Kedoshim",
heb: "\u05E7\u05D3\u05D5\u05E9\u05D9\u05DD"
},
{
eng: "Emor",
heb: "\u05D0\u05DE\u05D5\u05E8"
},
{
eng: "Behar",
heb: "\u05D1\u05D4\u05E8"
},
{
eng: "Bechukosai",
heb: "\u05D1\u05D7\u05E7\u05D5\u05EA\u05D9"
},
{
eng: "Bamidbar",
heb: "\u05D1\u05DE\u05D3\u05D1\u05E8"
},
{
eng: "Nasso",
heb: "\u05E0\u05E9\u05D0"
},
{
eng: "Beha'aloscha",
heb: "\u05D1\u05D4\u05E2\u05DC\u05EA\u05DA"
},
{
eng: "Sh'lach",
heb: "\u05E9\u05DC\u05D7"
},
{
eng: "Korach",
heb: "\u05E7\u05E8\u05D7"
},
{
eng: "Chukas",
heb: "\u05D7\u05E7\u05EA"
},
{
eng: "Balak",
heb: "\u05D1\u05DC\u05E7"
},
{
eng: "Pinchas",
heb: "\u05E4\u05D9\u05E0\u05D7\u05E1"
},
{
eng: "Matos",
heb: "\u05DE\u05D8\u05D5\u05EA"
},
{
eng: "Masei",
heb: "\u05DE\u05E1\u05E2\u05D9"
},
{
eng: "Devarim",
heb: "\u05D3\u05D1\u05E8\u05D9\u05DD"
},
{
eng: "Va'eschanan",
heb: "\u05D5\u05D0\u05EA\u05D7\u05E0\u05DF"
},
{
eng: "Eikev",
heb: "\u05E2\u05E7\u05D1"
},
{
eng: "Re'eh",
heb: "\u05E8\u05D0\u05D4"
},
{
eng: "Shoftim",
heb: "\u05E9\u05D5\u05E4\u05D8\u05D9\u05DD"
},
{
eng: "Ki Seitzei",
heb: "\u05DB\u05D9 \u05EA\u05E6\u05D0"
},
{
eng: "Ki Savo",
heb: "\u05DB\u05D9 \u05EA\u05D1\u05D0"
},
{
eng: "Nitzavim",
heb: "\u05E0\u05E6\u05D1\u05D9\u05DD"
},
{
eng: "Vayeilech",
heb: "\u05D5\u05D9\u05DC\u05DA"
},
{
eng: "Ha'Azinu",
heb: "\u05D4\u05D0\u05D6\u05D9\u05E0\u05D5"
},
{
eng: "Vezos Habracha",
heb: "\u05D5\u05D6\u05D0\u05EA \u05D4\u05D1\u05E8\u05DB\u05D4"
}
];
_Sedra.shabbos_short = [
52,
52,
53,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
-21,
23,
24,
25,
25,
-26,
-28,
30,
-31,
33,
34,
35,
36,
37,
38,
39,
40,
-41,
43,
44,
45,
46,
47,
48,
49,
50
];
_Sedra.shabbos_long = [
52,
52,
53,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
-21,
23,
24,
25,
25,
-26,
-28,
30,
-31,
33,
34,
35,
36,
37,
38,
39,
40,
-41,
43,
44,
45,
46,
47,
48,
49,
-50
];
_Sedra.mon_short = [
51,
52,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
-21,
23,
24,
25,
25,
-26,
-28,
30,
-31,
33,
34,
35,
36,
37,
38,
39,
40,
-41,
43,
44,
45,
46,
47,
48,
49,
-50
];
_Sedra.mon_long = [
51,
52,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
-21,
23,
24,
25,
25,
-26,
-28,
30,
-31,
33,
34,
34,
35,
36,
37,
-38,
40,
-41,
43,
44,
45,
46,
47,
48,
49,
-50
];
_Sedra.thu_normal = [
52,
53,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
-21,
23,
24,
25,
25,
25,
-26,
-28,
30,
-31,
33,
34,
35,
36,
37,
38,
39,
40,
-41,
43,
44,
45,
46,
47,
48,
49,
50
];
_Sedra.thu_normal_Israel = [
52,
53,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
-21,
23,
24,
25,
25,
-26,
-28,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
-41,
43,
44,
45,
46,
47,
48,
49,
50
];
_Sedra.thu_long = [
52,
53,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
25,
-26,
-28,
30,
-31,
33,
34,
35,
36,
37,
38,
39,
40,
-41,
43,
44,
45,
46,
47,
48,
49,
50
];
_Sedra.shabbos_short_leap = [
52,
52,
53,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
-41,
43,
44,
45,
46,
47,
48,
49,
-50
];
_Sedra.shabbos_long_leap = [
52,
52,
53,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
28,
29,
30,
31,
32,
33,
34,
34,
35,
36,
37,
-38,
40,
-41,
43,
44,
45,
46,
47,
48,
49,
-50
];
_Sedra.mon_short_leap = [
51,
52,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
28,
29,
30,
31,
32,
33,
34,
34,
35,
36,
37,
-38,
40,
-41,
43,
44,
45,
46,
47,
48,
49,
-50
];
_Sedra.mon_short_leap_Israel = [
51,
52,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
-41,
43,
44,
45,
46,
47,
48,
49,
-50
];
_Sedra.mon_long_leap = [
51,
52,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
28,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
-41,
43,
44,
45,
46,
47,
48,
49,
50
];
_Sedra.mon_long_leap_Israel = [
51,
52,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
28,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50
];
_Sedra.thu_short_leap = [
52,
53,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
50
];
_Sedra.thu_long_leap = [
52,
53,
53,
0,
1,
2,
3,
4,
5,
6,
7,
8,
9,
10,
11,
12,
13,
14,
15,
16,
17,
18,
19,
20,
21,
22,
23,
24,
25,
26,
27,
28,
29,
29,
30,
31,
32,
33,
34,
35,
36,
37,
38,
39,
40,
41,
42,
43,
44,
45,
46,
47,
48,
49,
-50
];
var Sedra = _Sedra;
// src/JCal/PirkeiAvos.ts
var _PirkeiAvos = /*#__PURE__*/ function() {
function _PirkeiAvos() {
_class_call_check(this, _PirkeiAvos);
}
_create_class(_PirkeiAvos, null, [
{
key: "getPrakim",
value: function getPrakim(jd, israel2) {
if (jd.getDayOfWeek() !== 6) {
return [];
}
var jMonth = jd.Month, jDay = jd.Day;
if (jMonth === 1 && jDay > (israel2 ? 21 : 22) || //All Shabbosim through Iyar, Sivan, Tamuz, Av - besides for the day/s of Shavuos and Tisha B'Av
jMonth > 1 && jMonth < 6 && !(jMonth === 3 && jDay === 6 || !israel2 && jMonth === 3 && jDay === 7) && !(jMonth === 5 && jDay === 9)) {
return [
_PirkeiAvos._get1stPerek(jd, israel2)
];
} else if (jMonth === 6) {
return _PirkeiAvos._ellul(jd, israel2);
} else {
return [];
}
}
}
]);
return _PirkeiAvos;
}();
_PirkeiAvos._get1stPerek = function(jd, israel2) {
var jYear = jd.Year, jMonth = jd.Month, jDay = jd.Day, pes1 = new jDate(jYear, 1, 15), shb1 = (israel2 ? 7 : 8) + (6 - pes1.getDayOfWeek()), cShb = jMonth === 1 && jDay === shb1 + 15 ? 1 : Utils.toInt((jd.Abs - (pes1.Abs + shb1)) / 7) + 1;
var prk = cShb % 6;
if (prk === 0) prk = 6;
if (!israel2 && pes1.getDayOfWeek() === 4 && (jMonth > 3 || jMonth === 3 && jDay > 6)) {
prk = prk === 1 ? 6 : prk - 1;
}
if (pes1.getDayOfWeek() === 6 && (jMonth > 5 || jMonth === 5 && jDay > 9)) {
prk = prk === 1 ? 6 : prk - 1;
}
return prk;
};
_PirkeiAvos._ellul = function(jd, israel2) {
var prakim;
var jYear = jd.Year, jDay = jd.Day, day1 = new jDate(jYear, 6, 1, jd.Abs - jd.Day + 1), day1DOW = day1.getDayOfWeek(), shabbos1Day = day1DOW === 6 ? 1 : 6 - (day1DOW + 6) % 6 + 1, shabbos1Date = new jDate(jYear, 6, shabbos1Day, day1.Abs + shabbos1Day - 1), cShb = jDay === shabbos1Day ? 1 : Utils.toInt((jDay - shabbos1Day) / 7) + 1;
switch(_PirkeiAvos._get1stPerek(shabbos1Date, israel2)){
case 1:
switch(cShb){
case 1:
prakim = [
1
];
break;
case 2:
prakim = [
2
];
break;
case 3:
prakim = [
3,
4
];
break;
case 4:
prakim = [
5,
6
];
break;
}
break;
case 2:
switch(cShb){
case 1:
prakim = [
2
];
break;
case 2:
prakim = [
3
];
break;
case 3:
prakim = [
4
];
break;
case 4:
prakim = [
5,
6
];
break;
}
break;
case 3:
switch(cShb){
case 1:
prakim = [
3
];
break;
case 2:
prakim = [
4
];
break;
case 3:
prakim = [
5
];
break;
case 4:
prakim = [
6
];
break;
}
break;
case 4:
switch(cShb){
case 1:
prakim = [
4,
5
];
break;
case 2:
prakim = [
6,
1
];
break;
case 3:
prakim = [
2,
3
];
break;
case 4:
prakim = [
4,
5,
6
];
break;
}
break;
case 5:
switch(cShb){
case 1:
prakim = [
5,
6
];
break;
case 2:
prakim = [
1,
2
];
break;
case 3:
prakim = [
3,
4
];
break;
case 4:
prakim = [
5,
6
];
break;
}
break;
case 6:
switch(cShb){
case 1:
prakim = [
6
];
break;
case 2:
prakim = [
1,
2
];
break;
case 3:
prakim = [
3,
4
];
break;
case 4:
prakim = [
5,
6
];
break;
}
break;
}
return prakim || [];
};
var PirkeiAvos = _PirkeiAvos;
// src/JCal/Dafyomi.ts
var _Dafyomi = /*#__PURE__*/ function() {
function _Dafyomi() {
_class_call_check(this, _Dafyomi);
}
_create_class(_Dafyomi, null, [
{
key: "getDaf",
value: function getDaf(jdate) {
var absoluteDate = jdate.Abs;
var dafcnt = 40, cno, dno, osday, nsday, total, count, j, blatt;
osday = jDate.absSd(new Date(1923, 8, 11));
nsday = jDate.absSd(new Date(1975, 5, 24));
if (absoluteDate < osday) return null;
if (absoluteDate >= nsday) {
cno = 8 + Utils.toInt((absoluteDate - nsday) / 2711);
dno = (absoluteDate - nsday) % 2711;
} else {
cno = 1 + Utils.toInt((absoluteDate - osday) / 2702);
dno = Utils.toInt((absoluteDate - osday) / 2702);
}
total = blatt = 0;
count = -1;
if (cno <= 7) _Dafyomi.masechtaList[4].daf = 13;
else _Dafyomi.masechtaList[4].daf = 22;
j = 0;
while(j < dafcnt){
count++;
total = total + _Dafyomi.masechtaList[j].daf - 1;
if (dno < total) {
blatt = _Dafyomi.masechtaList[j].daf + 1 - (total - dno);
switch(count){
case 36:
blatt = blatt + 21;
break;
case 37:
blatt = blatt + 24;
break;
case 38:
blatt = blatt + 33;
break;
default:
break;
}
j = 1 + dafcnt;
}
j++;
}
return {
masechet: _Dafyomi.masechtaList[count],
daf: blatt
};
}
},
{
key: "toString",
value: // Returns the name of the Masechta and daf number in English, For example: Sukkah, Daf 3
function toString(jd) {
var d = _Dafyomi.getDaf(jd);
if (d !== null) {
return d.masechet.eng + ", Daf " + d.daf.toString();
}
}
},
{
key: "toStringHeb",
value: //Returns the name of the Masechta and daf number in Hebrew. For example: 'סוכה דף כ.
function toStringHeb(jd) {
var d = _Dafyomi.getDaf(jd);
if (d !== null) {
return d.masechet.heb + " \u05D3\u05E3 " + Utils.toJewishNumber(d.daf);
}
}
}
]);
return _Dafyomi;
}();
_Dafyomi.masechtaList = [
{
eng: "Berachos",
heb: "\u05D1\u05E8\u05DB\u05D5\u05EA",
daf: 64
},
{
eng: "Shabbos",
heb: "\u05E9\u05D1\u05EA",
daf: 157
},
{
eng: "Eruvin",
heb: "\u05E2\u05E8\u05D5\u05D1\u05D9\u05DF",
daf: 105
},
{
eng: "Pesachim",
heb: "\u05E4\u05E1\u05D7\u05D9\u05DD",
daf: 121
},
{
eng: "Shekalim",
heb: "\u05E9\u05E7\u05DC\u05D9\u05DD",
daf: 22
},
{
eng: "Yoma",
heb: "\u05D9\u05D5\u05DE\u05D0",
daf: 88
},
{
eng: "Sukkah",
heb: "\u05E1\u05D5\u05DB\u05D4",
daf: 56
},
{
eng: "Beitzah",
heb: "\u05D1\u05D9\u05E6\u05D4",
daf: 40
},
{
eng: "Rosh Hashana",
heb: "\u05E8\u05D0\u05E9 \u05D4\u05E9\u05E0\u05D4",
daf: 35
},
{
eng: "Taanis",
heb: "\u05EA\u05E2\u05E0\u05D9\u05EA",
daf: 31
},
{
eng: "Megillah",
heb: "\u05DE\u05D2\u05D9\u05DC\u05D4",
daf: 32
},
{
eng: "Moed Katan",
heb: "\u05DE\u05D5\u05E2\u05D3 \u05E7\u05D8\u05DF",
daf: 29
},
{
eng: "Chagigah",
heb: "\u05D7\u05D2\u05D9\u05D2\u05D4",
daf: 27
},
{
eng: "Yevamos",
heb: "\u05D9\u05D1\u05DE\u05D5\u05EA",
daf: 122
},
{
eng: "Kesubos",
heb: "\u05DB\u05EA\u05D5\u05D1\u05D5\u05EA",
daf: 112
},
{
eng: "Nedarim",
heb: "\u05E0\u05D3\u05E8\u05D9\u05DD",
daf: 91
},
{
eng: "Nazir",
heb: "\u05E0\u05D6\u05D9\u05E8",
daf: 66
},
{
eng: "Sotah",
heb: "\u05E1\u05D5\u05D8\u05D4",
daf: 49
},
{
eng: "Gitin",
heb: "\u05D2\u05D9\u05D8\u05D9\u05DF",
daf: 90
},
{
eng: "Kiddushin",
heb: "\u05E7\u05D3\u05D5\u05E9\u05D9\u05DF",
daf: 82
},
{
eng: "Baba Kamma",
heb: "\u05D1\u05D1\u05D0 \u05E7\u05DE\u05D0",
daf: 119
},
{
eng: "Baba Metzia",
heb: "\u05D1\u05D1\u05D0 \u05DE\u05E6\u05D9\u05E2\u05D0",
daf: 119
},
{
eng: "Baba Basra",
heb: "\u05D1\u05D1\u05D0 \u05D1\u05EA\u05E8\u05D0",
daf: 176
},
{
eng: "Sanhedrin",
heb: "\u05E1\u05E0\u05D4\u05D3\u05E8\u05D9\u05DF",
daf: 113
},
{
eng: "Makkot",
heb: "\u05DE\u05DB\u05D5\u05EA",
daf: 24
},
{
eng: "Shevuot",
heb: "\u05E9\u05D1\u05D5\u05E2\u05D5\u05EA",
daf: 49
},
{
eng: "Avodah Zarah",
heb: "\u05E2\u05D1\u05D5\u05D3\u05D4 \u05D6\u05E8\u05D4",
daf: 76
},
{
eng: "Horayot",
heb: "\u05D4\u05D5\u05E8\u05D9\u05D5\u05EA",
daf: 14
},
{
eng: "Zevachim",
heb: "\u05D6\u05D1\u05D7\u05D9\u05DD",
daf: 120
},
{
eng: "Menachos",
heb: "\u05DE\u05E0\u05D7\u05D5\u05EA",
daf: 110
},
{
eng: "Chullin",
heb: "\u05D7\u05D5\u05DC\u05D9\u05DF",
daf: 142
},
{
eng: "Bechoros",
heb: "\u05D1\u05DB\u05D5\u05E8\u05D5\u05EA",
daf: 61
},
{
eng: "Arachin",
heb: "\u05E2\u05E8\u05DB\u05D9\u05DF",
daf: 34
},
{
eng: "Temurah",
heb: "\u05EA\u05DE\u05D5\u05E8\u05D4",
daf: 34
},
{
eng: "Kerisos",
heb: "\u05DB\u05E8\u05D9\u05EA\u05D5\u05EA",
daf: 28
},
{
eng: "Meilah",
heb: "\u05DE\u05E2\u05D9\u05DC\u05D4",
daf: 22
},
{
eng: "Kinnim",
heb: "\u05E7\u05E0\u05D9\u05DD",
daf: 4
},
{
eng: "Tamid",
heb: "\u05EA\u05DE\u05D9\u05D3",
daf: 10
},
{
eng: "Midos",
heb: "\u05DE\u05D3\u05D5\u05EA",
daf: 4
},
{
eng: "Niddah",
heb: "\u05E0\u05D3\u05D4",
daf: 73
}
];
var Dafyomi = _Dafyomi;
// src/JCal/jDate.ts
var JS_START_DATE_ABS = 719163;
var MS_PER_DAY = 864e5;
var JS_START_OFFSET = /* @__PURE__ */ new Date(0).getTimezoneOffset();
var yearTypes = [
{
isLeapYear: false,
dow: 5,
isLongCheshvan: false,
isLongKislev: true,
daysInYear: 354
},
{
isLeapYear: false,
dow: 7,
isLongCheshvan: true,
isLongKislev: true,
daysInYear: 355
},
{
isLeapYear: false,
dow: 2,
isLongCheshvan: true,
isLongKislev: true,
daysInYear: 355
},
{
isLeapYear: false,
dow: 3,
isLongCheshvan: false,
isLongKislev: true,
daysInYear: 354
},
{
isLeapYear: false,
dow: 7,
isLongCheshvan: false,
isLongKislev: false,
daysInYear: 353
},
{
isLeapYear: false,
dow: 2,
isLongCheshvan: false,
isLongKislev: false,
daysInYear: 353
},
{
isLeapYear: false,
dow: 5,
isLongCheshvan: true,
isLongKislev: true,
daysInYear: 355
},
{
isLeapYear: true,
dow: 5,
isLongCheshvan: true,
isLongKislev: true,
daysInYear: 385
},
{
isLeapYear: true,
dow: 2,
isLongCheshvan: false,
isLongKislev: false,
daysInYear: 383
},
{
isLeapYear: true,
dow: 5,
isLongCheshvan: false,
isLongKislev: false,
daysInYear: 383
},
{
isLeapYear: true,
dow: 7,
isLongCheshvan: false,
isLongKislev: false,
daysInYear: 383
},
{
isLeapYear: true,
dow: 2,
isLongCheshvan: true,
isLongKislev: true,
daysInYear: 385
},
{
isLeapYear: true,
dow: 7,
isLongCheshvan: true,
isLongKislev: true,
daysInYear: 385
},
{
isLeapYear: true,
dow: 3,
isLongCheshvan: false,
isLongKislev: true,
daysInYear: 384
}
];
var yearTypeList = [
8,
0,
1,
7,
0,
8,
1,
0,
8,
1,
0,
7,
4,
1,
13,
1,
8,
0,
1,
7,
4,
0,
7,
1,
8,
0,
1,
7,
0,
4,
7,
0,
1,
8,
0,
7,
4,
0,
7,
1,
4,
13,
1,
8,
1,
0,
7,
1,
0,
8,
1,
0,
8,
1,
7,
0,
4,
7,
0,
1,
8,
0,
7,
4,
1,
13,
1,
4,
13,
1,
1,
8,
0,
7,
1,
0,
8,
1,
0,
8,
1,
7,
0,
4,
7,
0,
1,
8,
0,
1,
7,
4,
13,
1,
1,
8,
0,
1,
8,
0,
7,
1,
0,
8,
1,
0,
7,
4,
0,
7,
1,
8,
0,
1,
8,
0,
1,
7,
4,
13,
1,
1,
8,
0,
1,
7,
0,
4,
7,
0,
8,
1,
0,
7,
4,
1,
13,
1,
8,
0,
1,
8,
1,
0,
7,
1,
0,
8,
1,
8,
0,
1,
7,
0,
4,
7,
0,
8,
1,
0,
7,
4,
1,
13,
1,
4,
13,
1,
7,
4,
0,
7,
1,
0,
8,
1,
8,
0,
1,
7,
0,
4,
7,
0,
1,
8,
0,
7,
1,
4,
13,
1,
1,
8,
0,
7,
4,
0,
7,
1,
0,
8,
1,
0,
7,
4,
7,
0,
1,
8,
0,
1,
8,
1,
13,
1,
4,
13,
1,
1,
8,
0,
1,
7,
0,
8,
1,
0,
8,
1,
0,
7,
4,
7,
0,
1,
8,
0,
1,
8,
1,
0,
7,
4,
13,
1,
1,
8,
0,
1,
7,
0,
8,
1,
0,
8,
1,
0,
7,
4,
1,
13,
1,
8,
0,
1,
7,
4,
0,
7,
1,
8,
0,
1,
7,
0,
4,
7,
0,
1,
8,
0,
7,
4,
0,
7,
1,
4,
13,
1,
8,
1,
0,
7,
1,
0,
8,
1,
0,
8,
1,
7,
0,
4,
7,
0,
1,
8,
0,
7,
4,
1,
13,
1,
4,
13,
1,
1,
8,
0,
7,
1,
0,
8,
1,
0,
8,
1,
7,
0,
4,
7,
0,
1,
8,
0,
1,
8,
1,
13,
1,
4,
13,
1,
1,
8,
0,
7,
1,
0,
8,
1,
0,
7,
4,
0,
7,
1,
8,
0,
1,
8,
0,
1,
7,
4,
13,
1,
1,
8,
0,
1,
7,
0,
4,
7,
0,
8,
1,
0,
7,
4,
0,
7,
1,
8,
0,
1,
8,
1,
0,
7,
1,
0,
8,
1,
8,
0,
1,
7,
0,
4,
7,
0,
8,
1,
0,
7,
4,
1,
13,
1,
4,
13,
1,
7,
4,
0,
7,
1,
0,
8,
1,
8,
0,
1,
7,
0,
4,
7,
0,
1,
8,
0,
7,
1,
4,
13,
1,
1,
8,
0,
7,
4,
0,
7,
1,
0,
8,
1,
0,
7,
4,
7,
0,
1,
8,
0,
1,
8,
1,
13,
1,
4,
13,
1,
1,
8,
0,
1,
7,
0,
8,
1,
0,
8,
1,
0,
7,
4,
7,
0,
1,
8,
0,
1,
8,
1,
0,
7,
4,
13,
1,
1,
8,
0,
1,
7,
0,
8,
1,
0,
8,
1,
0,
7,
4,
1,
13,
1,
8,
0,
1,
7,
4,
0,
7,
1,
8,
0,
1,
8,
0,
1,
7,
0,
4,
7,
0,
7,
4,
0,
7,
1,
4,
13,
1,
8,
1,
0,
7,
1,
0,
8,
1,
0,
8,
1,
7,
0,
4,
7,
0,
1,
8,
0,
7,
4,
1,
13,
1,
4,
13,
1,
1,
8,
0,
7,
1,
0,
8,
1,
0,
8,
1,
7,
0,
4,
7,
0,
1,
8,
0,
1,
8,
1,
13,
1,
4,
13,
1,
1,
8,
0,
7,
1,
0,
8,
1,
0,
7,
4,
0,
7,
1,
8,
0,
1,
8,
0,
1,
7,
4,
13,
1,
1,
8,
0,
1,
7,
0,
4,
7,
0,
8,
1,
0,
7,
4,
0,
7,
1,
8,
0,
1,
8,
1,
0,
7,
1,
0,
8,
1,
8,
0,
1,
7,
0,
4,
7,
0,
8,
1,
0,
7,
4,
1,
13,
1,
4,
13,
1,
8,
1,
0,
7,
1,
0,
8,
1,
8,
0,
1,
7,
0,
4,
7,
0,
1,
8,
0,
7,
1,
4,
13,
1,
1,
8,
0,
7,
4,
0,
7,
1,
0,
8,
1,
0,
7,
4,
7,
0,
1,
8,
0,
1,
8,
0,
7,
1,
4,
13,
1,
1,
8,
0,
1,
7,
0,
8,
1,
0,
8,
1,
0,
7,
4,
7,
0,
1,
8,
0,
1,
8,
1,
0,
7,
4,
13,
1,
1,
8,
0,
1,
7,
0,
8,
1,
0,
8,
1,
0,
7,
4,
1,
13,
1,
8,
0,
1,
7,
4,
0,
7,
1,
8,
0,
1,
8,
0,
1,
7,
0,
4,
7,
0,
7,
4,
0,
7,
1,
4,
13,
1,
8,
1,
0,
7,
1,
0,
8,
1,
0,
8,
1,
7,
0,
4,
7,
0,
1,
8,
0,
7,
4,
1,
13,
1,
4,
13,
1,
1,
8,
0,
7,
1,
0,
8,
1,
0,
8,
1,
7,
0,
4,
7,
0,
1,
8,
0,
1,
8,
1,
13,
1,
4,
13,
1,
1,
8,
0,
7,
1,
0,
8,
1,
0,
8,
1,
0,
7,
4,
7,
0,
1,
8,
0,
1,
7,
4,
13,
1,
1,
8,
0,
1,
7,
0,
4,
7,
0,
8,
1,
0,
7,
4,
0,
7,
1,
8,
0,
1,
8,
1,
0,
7,
1,
0,
8,
1,
8,
0,
1,
7,
0,
4,
7,
0,
8,
1,
0,
7,
4,
1,
13,
1,
4,
13,
1,
8,
1,
0,
7,
1,
0,
8,
1,
8,
0,
1,
7,
0,
4,
7,
0,
1,
8,
0,
7,
4,
1,
13,
1,
4,
13,
1,
7,
4,
0,
7,
1,
0,
8,
1,
0,
7,
4,
7,
0,
1,
8,
0,
1,
8,
0,
7,
1,
4,
13,
1,
1,
8,
0,
1,
7,
0,
8,
1,
0,
8,
1,
0,
7,
4,
7,
0,
1,
8,
0,
1,
8,
1,
0,
7,
4,
13,
1,
1,
8,
0,
1,
7,
0,
8,
1,
0,
8,
1,
0,
7
];
var getElapsedDays = function(year) {
var daysCounter = 0;
var months = Utils.toInt(235 * Utils.toInt((year - 1) / 19) + // Leap months this cycle
12 * ((year - 1) % 19) + // Regular months in this cycle.
(7 * ((year - 1) % 19) + 1) / 19), parts = 204 + 793 * (months % 1080), hours = 5 + 12 * months + 793 * Utils.toInt(months / 1080) + Utils.toInt(parts / 1080), conjDay = Utils.toInt(1 + 29 * months + hours / 24), conjParts = 1080 * (hours % 24) + parts % 1080;
if (conjParts >= 19440 || conjDay % 7 === 2 && conjParts >= 9924 && !jDate.isJdLeapY(year) || conjDay % 7 === 1 && conjParts >= 16789 && jDate.isJdLeapY(year - 1)) {
daysCounter = conjDay + 1;
} else {
daysCounter = conjDay;
}
if (Utils.has(daysCounter % 7, 0, 3, 5)) {
daysCounter += 1;
}
return daysCounter;
};
var _jDate = /*#__PURE__*/ function() {
function _jDate(arg, month, day, abs) {
_class_call_check(this, _jDate);
this.Day = NaN;
this.Month = NaN;
this.Year = NaN;
this.Abs = NaN;
if (arguments.length === 0) {
this.fromAbs(_jDate.absSd(/* @__PURE__ */ new Date()));
} else if (_instanceof(arg, Date)) {
if (Utils.isValidDate(arg)) {
this.fromAbs(_jDate.absSd(arg));
} else {
throw "jDate constructor: The given Date is not a valid javascript Date";
}
} else if (Array.isArray(arg) && arg.length >= 3) {
this.Day = arg[0];
this.Month = arg[1];
this.Year = arg[2];
this.Abs = arg.length > 3 && arg[3] || _jDate.absJd(this.Year, this.Month, this.Day);
} else if (arg && Utils.isString(arg)) {
var d = new Date(arg);
if (Utils.isValidDate(d)) {
this.fromAbs(_jDate.absSd(d));
} else {
throw 'jDate constructor: The given string "' + arg + '" cannot be parsed into a Date';
}
} else if (Utils.isNumber(arg)) {
if (arguments.length === 1) {
this.fromAbs(arg);