@hebcal/rest-api 3.19.4 → 4.1.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 +1 -69
- package/dist/bundle.js +523 -111
- package/dist/bundle.min.js +3 -2
- package/dist/index.js +523 -109
- package/dist/index.mjs +523 -85
- package/package.json +7 -6
- package/rest-api.d.ts +3 -16
package/dist/bundle.js
CHANGED
|
@@ -1,27 +1,7 @@
|
|
|
1
|
-
/*! @hebcal/rest-api
|
|
2
|
-
var hebcal__rest_api = (function (exports, core,
|
|
1
|
+
/*! @hebcal/rest-api v4.1.0 */
|
|
2
|
+
var hebcal__rest_api = (function (exports, core, leyning) {
|
|
3
3
|
'use strict';
|
|
4
4
|
|
|
5
|
-
function _interopNamespace(e) {
|
|
6
|
-
if (e && e.__esModule) return e;
|
|
7
|
-
var n = Object.create(null);
|
|
8
|
-
if (e) {
|
|
9
|
-
Object.keys(e).forEach(function (k) {
|
|
10
|
-
if (k !== 'default') {
|
|
11
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
12
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
13
|
-
enumerable: true,
|
|
14
|
-
get: function () { return e[k]; }
|
|
15
|
-
});
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
n["default"] = e;
|
|
20
|
-
return Object.freeze(n);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
var leyn__namespace = /*#__PURE__*/_interopNamespace(leyn);
|
|
24
|
-
|
|
25
5
|
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
|
26
6
|
|
|
27
7
|
var check = function (it) {
|
|
@@ -4006,17 +3986,32 @@ function makeAnchor(s) {
|
|
|
4006
3986
|
*/
|
|
4007
3987
|
|
|
4008
3988
|
function getDownloadFilename(options) {
|
|
4009
|
-
let fileName = '
|
|
3989
|
+
let fileName = 'hebcal';
|
|
4010
3990
|
|
|
4011
|
-
if (options.
|
|
4012
|
-
fileName += '
|
|
4013
|
-
|
|
3991
|
+
if (options.year) {
|
|
3992
|
+
fileName += '_' + options.year;
|
|
3993
|
+
|
|
3994
|
+
if (options.isHebrewYear) {
|
|
3995
|
+
fileName += 'h';
|
|
3996
|
+
}
|
|
4014
3997
|
|
|
4015
|
-
|
|
4016
|
-
|
|
3998
|
+
if (options.month) {
|
|
3999
|
+
fileName += '_' + options.month;
|
|
4000
|
+
}
|
|
4001
|
+
} else if (typeof options.start === 'object' && typeof options.end === 'object') {
|
|
4002
|
+
const start = new core.HDate(options.start);
|
|
4003
|
+
const end = new core.HDate(options.end);
|
|
4004
|
+
const y1 = start.greg().getFullYear();
|
|
4005
|
+
const y2 = end.greg().getFullYear();
|
|
4006
|
+
|
|
4007
|
+
if (y1 === y2) {
|
|
4008
|
+
fileName += '_' + y1;
|
|
4009
|
+
} else {
|
|
4010
|
+
fileName += '_' + y1 + '_' + y2;
|
|
4011
|
+
}
|
|
4017
4012
|
}
|
|
4018
4013
|
|
|
4019
|
-
if (options.location) {
|
|
4014
|
+
if (typeof options.location === 'object') {
|
|
4020
4015
|
const loc = options.location;
|
|
4021
4016
|
const name = loc.zip || loc.asciiname || loc.getShortName();
|
|
4022
4017
|
|
|
@@ -4037,7 +4032,7 @@ function pad2(number) {
|
|
|
4037
4032
|
return '0' + number;
|
|
4038
4033
|
}
|
|
4039
4034
|
|
|
4040
|
-
return
|
|
4035
|
+
return '' + number;
|
|
4041
4036
|
}
|
|
4042
4037
|
/**
|
|
4043
4038
|
* @param {number} number
|
|
@@ -4055,18 +4050,7 @@ function pad4(number) {
|
|
|
4055
4050
|
return '0' + number;
|
|
4056
4051
|
}
|
|
4057
4052
|
|
|
4058
|
-
return
|
|
4059
|
-
}
|
|
4060
|
-
/**
|
|
4061
|
-
* Get offset string (like "+05:00" or "-08:00") from tzid (like "Europe/Moscow")
|
|
4062
|
-
* @deprecated
|
|
4063
|
-
* @param {string} tzid
|
|
4064
|
-
* @param {Date} date
|
|
4065
|
-
* @return {string}
|
|
4066
|
-
*/
|
|
4067
|
-
|
|
4068
|
-
function timeZoneOffsetStr(tzid, date) {
|
|
4069
|
-
return core.Zmanim.timeZoneOffset(tzid, date);
|
|
4053
|
+
return '' + number;
|
|
4070
4054
|
}
|
|
4071
4055
|
/**
|
|
4072
4056
|
* Returns just the date portion as YYYY-MM-DD
|
|
@@ -4077,20 +4061,6 @@ function timeZoneOffsetStr(tzid, date) {
|
|
|
4077
4061
|
function toISOString(d) {
|
|
4078
4062
|
return pad4(d.getFullYear()) + '-' + pad2(d.getMonth() + 1) + '-' + pad2(d.getDate());
|
|
4079
4063
|
}
|
|
4080
|
-
/**
|
|
4081
|
-
* Returns a string like "2018-09-01T12:30:00-05:00"
|
|
4082
|
-
* @deprecated
|
|
4083
|
-
* @param {Date} date
|
|
4084
|
-
* @param {string} timeStr must be formatted with only hours and minutes, like "17:12"
|
|
4085
|
-
* @param {string} tzid like "America/New_York"
|
|
4086
|
-
* @return {string}
|
|
4087
|
-
*/
|
|
4088
|
-
|
|
4089
|
-
function toISOStringWithTimezone(date, timeStr, tzid) {
|
|
4090
|
-
const str = toISOString(date);
|
|
4091
|
-
if (!timeStr) return str;
|
|
4092
|
-
return str + 'T' + timeStr + ':00' + core.Zmanim.timeZoneOffset(tzid, date);
|
|
4093
|
-
}
|
|
4094
4064
|
/**
|
|
4095
4065
|
* Returns a category and subcategory name
|
|
4096
4066
|
* @param {Event} ev
|
|
@@ -4272,7 +4242,7 @@ function makeTorahMemoText(ev, il) {
|
|
|
4272
4242
|
return '';
|
|
4273
4243
|
}
|
|
4274
4244
|
|
|
4275
|
-
const reading = mask & core.flags.PARSHA_HASHAVUA ?
|
|
4245
|
+
const reading = mask & core.flags.PARSHA_HASHAVUA ? leyning.getLeyningForParshaHaShavua(ev, il) : leyning.getLeyningForHoliday(ev, il);
|
|
4276
4246
|
let memo = '';
|
|
4277
4247
|
|
|
4278
4248
|
if (reading && (reading.summary || reading.haftara)) {
|
|
@@ -4484,6 +4454,491 @@ function eventsToCsv(events, options) {
|
|
|
4484
4454
|
return [csvHeader].concat(events.map(e => eventToCsv(e, options))).join('\r\n') + '\r\n';
|
|
4485
4455
|
}
|
|
4486
4456
|
|
|
4457
|
+
/*! @hebcal/triennial v1.0.0 */
|
|
4458
|
+
|
|
4459
|
+
const Bereshit$1={book:1,years:{"Y.1":{"1":["1:1","1:5"],"2":["1:6","1:8"],"3":["1:9","1:13"],"4":["1:14","1:19"],"5":["1:20","1:23"],"6":["1:24","1:31"],"7":["2:1","2:3"],M:["2:1","2:3"]},"Y.2":{"1":["2:4","2:9"],"2":["2:10","2:19"],"3":["2:20","2:25"],"4":["3:1","3:21"],"5":["3:22","3:24"],"6":["4:1","4:18"],"7":["4:19","4:26"],M:["4:23","4:26"]},"Y.3":{"1":["5:1","5:5"],"2":["5:6","5:8"],"3":["5:9","5:14"],"4":["5:15","5:20"],"5":["5:21","5:24"],"6":["5:25","5:31"],"7":["5:32","6:8"],M:["6:5","6:8"]}}};const Noach$1={book:1,years:{"Y.1":{"1":["6:9","6:16"],"2":["6:17","6:19"],"3":["6:20","6:22"],"4":["7:1","7:9"],"5":["7:10","7:16"],"6":["7:17","7:24"],"7":["8:1","8:14"],M:["8:12","8:14"]},"Y.2":{"1":["8:15","8:22"],"2":["9:1","9:7"],"3":["9:8","9:17"],"4":["9:18","9:29"],"5":["10:1","10:14"],"6":["10:15","10:20"],"7":["10:21","10:32"],M:["10:26","10:32"]},"Y.3":{"1":["11:1","11:4"],"2":["11:5","11:9"],"3":["11:10","11:13"],"4":["11:14","11:17"],"5":["11:18","11:21"],"6":["11:22","11:25"],"7":["11:26","11:32"],M:["11:29","11:32"]}}};const Vayera$1={book:1,years:{"Y.1":{"1":["18:1","18:5"],"2":["18:6","18:8"],"3":["18:9","18:14"],"4":["18:15","18:21"],"5":["18:22","18:26"],"6":["18:27","18:30"],"7":["18:31","18:33"],M:["18:31","18:33"]},"Y.2":{"1":["19:1","19:11"],"2":["19:12","19:20"],"3":["19:21","19:29"],"4":["19:30","19:38"],"5":["20:1","20:8"],"6":["20:9","20:14"],"7":["20:15","20:18"],M:["20:15","20:18"]},"Y.3":{"1":["21:1","21:4"],"2":["21:5","21:13"],"3":["21:14","21:21"],"4":["21:22","21:34"],"5":["22:1","22:8"],"6":["22:9","22:19"],"7":["22:20","22:24"],M:["22:20","22:24"]}}};const Toldot$1={book:1,years:{"Y.1":{"1":["25:19","25:22"],"2":["25:23","25:26"],"3":["25:27","25:34"],"4":["26:1","26:5"],"5":["26:6","26:12"],"6":["26:13","26:16"],"7":["26:17","26:22"],M:["26:19","26:22"]},"Y.2":{"1":["26:23","26:29"],"2":["26:30","26:33"],"3":["26:34","27:4"],"4":["27:5","27:13"],"5":["27:14","27:17"],"6":["27:18","27:23"],"7":["27:24","27:27"],M:["27:24","27:27"]},"Y.3":{"1":["27:28","27:30"],"2":["27:31","27:33"],"3":["27:34","27:37"],"4":["27:38","27:40"],"5":["27:41","27:46"],"6":["28:1","28:4"],"7":["28:5","28:9"],M:["28:7","28:9"]}}};const Vayetzei$1={book:1,years:{"Y.1":{"1":["28:10","28:12"],"2":["28:13","28:17"],"3":["28:18","28:22"],"4":["29:1","29:8"],"5":["29:9","29:17"],"6":["29:18","29:33"],"7":["29:34","30:13"],M:["30:9","30:13"]},"Y.2":{"1":["30:14","30:16"],"2":["30:17","30:21"],"3":["30:22","30:27"],"4":["30:28","30:36"],"5":["30:37","30:43"],"6":["31:1","31:9"],"7":["31:10","31:16"],M:["31:14","31:16"]},"Y.3":{"1":["31:17","31:21"],"2":["31:22","31:24"],"3":["31:25","31:35"],"4":["31:36","31:42"],"5":["31:43","31:45"],"6":["31:46","31:50"],"7":["31:51","32:3"],M:["32:1","32:3"]}}};const Vayishlach$1={book:1,years:{"Y.1":{"1":["32:4","32:6"],"2":["32:7","32:9"],"3":["32:10","32:13"],"4":["32:14","32:22"],"5":["32:23","32:30"],"6":["32:31","33:5"],"7":["33:6","33:20"],M:["33:18","33:20"]},"Y.2":{"1":["34:1","34:4"],"2":["34:5","34:12"],"3":["34:13","34:17"],"4":["34:18","34:23"],"5":["34:24","34:31"],"6":["35:1","35:11"],"7":["35:12","35:15"],M:["35:12","35:15"]},"Y.3":{"1":["35:16","35:26"],"2":["35:27","35:29"],"3":["36:1","36:8"],"4":["36:9","36:19"],"5":["36:20","36:30"],"6":["36:31","36:39"],"7":["36:40","36:43"],M:["36:40","36:43"]}}};const Vayeshev$1={book:1,years:{"Y.1":{"1":["37:1","37:3"],"2":["37:4","37:7"],"3":["37:8","37:11"],"4":["37:12","37:17"],"5":["37:18","37:22"],"6":["37:23","37:28"],"7":["37:29","37:36"],M:["37:34","37:36"]},"Y.2":{"1":["38:1","38:5"],"2":["38:6","38:11"],"3":["38:12","38:14"],"4":["38:15","38:19"],"5":["38:20","38:23"],"6":["38:24","38:26"],"7":["38:27","38:30"],M:["38:27","38:30"]},"Y.3":{"1":["39:1","39:6"],"2":["39:7","39:10"],"3":["39:11","39:18"],"4":["39:19","39:23"],"5":["40:1","40:8"],"6":["40:9","40:15"],"7":["40:16","40:23"],M:["40:20","40:23"]}}};const Miketz$1={book:1,years:{"Y.1":{"1":["41:1","41:4"],"2":["41:5","41:7"],"3":["41:8","41:14"],"4":["41:15","41:24"],"5":["41:25","41:38"],"6":["41:39","41:43"],"7":["41:44","41:52"],M:["41:50","41:52"]},"Y.2":{"1":["41:53","41:57"],"2":["42:1","42:5"],"3":["42:6","42:18"],"4":["42:19","42:28"],"5":["42:29","42:38"],"6":["43:1","43:7"],"7":["43:8","43:15"],M:["43:11","43:15"]},"Y.3":{"1":["43:16","43:18"],"2":["43:19","43:25"],"3":["43:26","43:29"],"4":["43:30","43:34"],"5":["44:1","44:6"],"6":["44:7","44:10"],"7":["44:11","44:17"],M:["44:14","44:17"]}}};const Vayigash$1={book:1,years:{"Y.1":{"1":["44:18","44:20"],"2":["44:21","44:24"],"3":["44:25","44:30"],"4":["44:31","44:34"],"5":["45:1","45:7"],"6":["45:8","45:18"],"7":["45:19","45:27"],M:["45:25","45:27"]},"Y.2":{"1":["45:28","46:4"],"2":["46:5","46:7"],"3":["46:8","46:11"],"4":["46:12","46:15"],"5":["46:16","46:18"],"6":["46:19","46:22"],"7":["46:23","46:27"],M:["46:23","46:27"]},"Y.3":{"1":["46:28","46:30"],"2":["46:31","46:34"],"3":["47:1","47:6"],"4":["47:7","47:10"],"5":["47:11","47:19"],"6":["47:20","47:22"],"7":["47:23","47:27"],M:["47:25","47:27"]}}};const Vayechi$1={book:1,years:{"Y.1":{"1":["47:28","47:31"],"2":["48:1","48:3"],"3":["48:4","48:9"],"4":["48:10","48:13"],"5":["48:14","48:16"],"6":["48:17","48:19"],"7":["48:20","48:22"],M:["48:20","48:22"]},"Y.2":{"1":["49:1","49:4"],"2":["49:5","49:7"],"3":["49:8","49:12"],"4":["49:13","49:15"],"5":["49:16","49:18"],"6":["49:19","49:21"],"7":["49:22","49:26"],M:["49:22","49:26"]},"Y.3":{"1":["49:27","49:30"],"2":["49:31","49:33"],"3":["50:1","50:6"],"4":["50:7","50:9"],"5":["50:10","50:14"],"6":["50:15","50:20"],"7":["50:21","50:26"],M:["50:23","50:26"]}}};const Shemot$1={book:2,years:{"Y.1":{"1":["1:1","1:7"],"2":["1:8","1:12"],"3":["1:13","1:17"],"4":["1:18","1:22"],"5":["2:1","2:10"],"6":["2:11","2:15"],"7":["2:16","2:25"],M:["2:23","2:25"]},"Y.2":{"1":["3:1","3:6"],"2":["3:7","3:10"],"3":["3:11","3:15"],"4":["3:16","3:22"],"5":["4:1","4:5"],"6":["4:6","4:9"],"7":["4:10","4:17"],M:["4:14","4:17"]},"Y.3":{"1":["4:18","4:20"],"2":["4:21","4:26"],"3":["4:27","4:31"],"4":["5:1","5:5"],"5":["5:6","5:9"],"6":["5:10","5:14"],"7":["5:15","6:1"],M:["5:22","6:1"]}}};const Vaera$1={book:2,years:{"Y.1":{"1":["6:2","6:5"],"2":["6:6","6:9"],"3":["6:10","6:13"],"4":["6:14","6:19"],"5":["6:20","6:25"],"6":["6:26","6:28"],"7":["6:29","7:7"],M:["7:5","7:7"]},"Y.2":{"1":["7:8","7:13"],"2":["7:14","7:18"],"3":["7:19","7:25"],"4":["7:26","7:29"],"5":["8:1","8:6"],"6":["8:7","8:11"],"7":["8:12","8:15"],M:["8:12","8:15"]},"Y.3":{"1":["8:16","8:23"],"2":["8:24","8:28"],"3":["9:1","9:7"],"4":["9:8","9:16"],"5":["9:17","9:21"],"6":["9:22","9:26"],"7":["9:27","9:35"],M:["9:33","9:35"]}}};const Bo$1={book:2,years:{"Y.1":{"1":["10:1","10:3"],"2":["10:4","10:6"],"3":["10:7","10:11"],"4":["10:12","10:15"],"5":["10:16","10:23"],"6":["10:24","10:29"],"7":["11:1","11:3"],M:["11:1","11:3"]},"Y.2":{"1":["11:4","11:10"],"2":["12:1","12:10"],"3":["12:11","12:13"],"4":["12:14","12:16"],"5":["12:17","12:20"],"6":["12:21","12:24"],"7":["12:25","12:28"],M:["12:25","12:28"]},"Y.3":{"1":["12:29","12:32"],"2":["12:33","12:36"],"3":["12:37","12:42"],"4":["12:43","12:51"],"5":["13:1","13:4"],"6":["13:5","13:10"],"7":["13:11","13:16"],M:["13:14","13:16"]}}};const Beshalach$1={book:2,years:{"Y.1":{"1":["13:17","13:22"],"2":["14:1","14:4"],"3":["14:5","14:8"],"4":["14:9","14:14"],"5":["14:15","14:20"],"6":["14:21","14:25"],"7":["14:26","15:26"],M:["15:22","15:26"]},"Y.2":{"1":["14:15","14:20"],"2":["14:21","14:25"],"3":["14:26","15:21"],"4":["15:22","15:26"],"5":["15:27","16:3"],"6":["16:4","16:7"],"7":["16:8","16:10"],M:["16:8","16:10"]},"Y.3":{"1":["14:26","15:21"],"2":["15:22","15:26"],"3":["15:27","16:10"],"4":["16:11","16:27"],"5":["16:28","16:36"],"6":["17:1","17:7"],"7":["17:8","17:16"],M:["17:14","17:16"]}}};const Yitro$1={book:2,descr:"full parashah with Ten Commandments every year",variations:{"Y.1":{"1":["18:1","18:12"],"2":["18:13","18:23"],"3":["18:24","18:27"],"4":["19:1","19:6"],"5":["19:7","19:19"],"6":["19:20","20:14"],"7":["20:15","20:23"],M:["20:19","20:23"]},"Y.2":"Y.1","Y.3":"Y.1"},alt:{descr:"triennial divisions with Ten Commandments in years two and three",variations:{"Y.1":{"1":["18:1","18:4"],"2":["18:5","18:8"],"3":["18:9","18:12"],"4":["18:13","18:16"],"5":["18:17","18:19"],"6":["18:20","18:23"],"7":["18:24","18:27"],M:["18:24","18:27"]},"Y.2":{"1":["19:1","19:6"],"2":["19:7","19:9"],"3":["19:10","19:13"],"4":["19:14","19:19"],"5":["19:20","20:14"],"6":["20:15","20:18"],"7":["20:19","20:23"],M:["20:21","20:23"]},"Y.3":"Y.2"}}};const Mishpatim$1={book:2,years:{"Y.1":{"1":["21:1","21:6"],"2":["21:7","21:11"],"3":["21:12","21:19"],"4":["21:20","21:27"],"5":["21:28","21:32"],"6":["21:33","21:36"],"7":["21:37","22:3"],M:["21:37","22:3"]},"Y.2":{"1":["22:4","22:8"],"2":["22:9","22:12"],"3":["22:13","22:18"],"4":["22:19","22:26"],"5":["22:27","23:5"],"6":["23:6","23:13"],"7":["23:14","23:19"],M:["23:14","23:19"]},"Y.3":{"1":["23:20","23:25"],"2":["23:26","23:30"],"3":["23:31","23:33"],"4":["24:1","24:6"],"5":["24:7","24:11"],"6":["24:12","24:14"],"7":["24:15","24:18"],M:["24:15","24:18"]}}};const Terumah$1={book:2,years:{"Y.1":{"1":["25:1","25:5"],"2":["25:6","25:9"],"3":["25:10","25:16"],"4":["25:17","25:22"],"5":["25:23","25:30"],"6":["25:31","25:33"],"7":["25:34","25:40"],M:["25:37","25:40"]},"Y.2":{"1":["26:1","26:3"],"2":["26:4","26:6"],"3":["26:7","26:11"],"4":["26:12","26:14"],"5":["26:15","26:21"],"6":["26:22","26:25"],"7":["26:26","26:30"],M:["26:26","26:30"]},"Y.3":{"1":["26:31","26:33"],"2":["26:34","26:37"],"3":["27:1","27:3"],"4":["27:4","27:8"],"5":["27:9","27:12"],"6":["27:13","27:16"],"7":["27:17","27:19"],M:["27:17","27:19"]}}};const Tetzaveh$1={book:2,years:{"Y.1":{"1":["27:20","28:5"],"2":["28:6","28:9"],"3":["28:10","28:12"],"4":["28:13","28:17"],"5":["28:18","28:21"],"6":["28:22","28:25"],"7":["28:26","28:30"],M:["28:28","28:30"]},"Y.2":{"1":["28:31","28:35"],"2":["28:36","28:38"],"3":["28:39","28:43"],"4":["29:1","29:4"],"5":["29:5","29:9"],"6":["29:10","29:14"],"7":["29:15","29:18"],M:["29:15","29:18"]},"Y.3":{"1":["29:19","29:21"],"2":["29:22","29:25"],"3":["29:26","29:30"],"4":["29:31","29:34"],"5":["29:35","29:37"],"6":["29:38","29:46"],"7":["30:1","30:10"],M:["30:8","30:10"]}}};const Vayakhel$1={book:2,variations:{"C.2":{"1":["35:1","35:3"],"2":["35:4","35:10"],"3":["35:11","35:20"],"4":["35:21","35:29"],"5":["35:30","35:35"],"6":["36:1","36:7"],"7":["36:8","36:19"],M:["36:17","36:19"]},"B.2":{"1":["37:17","37:19"],"2":["37:20","37:24"],"3":["37:25","37:29"],"4":["38:1","38:3"],"5":["38:4","38:8"],"6":["38:9","38:15"],"7":["38:16","38:20"],M:["38:18","38:20"]},"C.3":{"1":["36:20","36:30"],"2":["36:31","36:38"],"3":["37:1","37:16"],"4":["37:17","37:24"],"5":["37:25","37:29"],"6":["38:1","38:8"],"7":["38:9","38:20"],M:["38:18","38:20"]},"A.3":"C.3","D.1":"C.2","D.2":"C.3","E.1":"C.2","E.3":"C.3","F.1":{"1":["35:1","35:10"],"2":["35:11","35:20"],"3":["35:21","35:29"],"4":["35:30","36:7"],"5":["36:8","36:19"],"6":["36:20","36:38"],"7":["37:1","37:16"],M:["37:10","37:16"]},"G.1":{"1":["35:1","35:3"],"2":["35:4","35:10"],"3":["35:11","35:20"],"4":["35:21","35:23"],"5":["35:24","35:26"],"6":["35:27","35:29"],"7":["35:30","35:35"],M:["35:30","35:35"]},"G.2":{"1":["36:1","36:7"],"2":["36:8","36:13"],"3":["36:14","36:19"],"4":["36:20","36:30"],"5":["36:31","36:38"],"6":["37:1","37:9"],"7":["37:10","37:16"],M:["37:13","37:16"]},"G.3":{"1":["37:17","37:19"],"2":["37:20","37:24"],"3":["37:25","37:29"],"4":["38:1","38:3"],"5":["38:4","38:8"],"6":["38:9","38:15"],"7":["38:16","38:20"],M:["38:18","38:20"]}}};const Pekudei$1={book:2,variations:{"A.3":{"1":["39:22","39:26"],"2":["39:27","39:32"],"3":["39:33","39:43"],"4":["40:1","40:8"],"5":["40:9","40:16"],"6":["40:17","40:27"],"7":["40:28","40:38"],M:["40:34","40:38"]},"B.2":{"1":["38:21","38:23"],"2":["38:24","38:27"],"3":["38:28","39:1"],"4":["39:2","39:7"],"5":["39:8","39:14"],"6":["39:15","39:18"],"7":["39:19","39:21"],M:["39:19","39:21"]},"C.2":"B.2","C.3":"A.3","D.1":"B.2","D.2":"A.3","E.1":"B.2","E.3":"A.3","F.1":"B.2","G.1":{"1":["38:21","38:23"],"2":["38:24","38:27"],"3":["38:28","39:1"],"4":["39:2","39:7"],"5":["39:8","39:14"],"6":["39:15","39:18"],"7":["39:19","39:21"],M:["39:19","39:21"]},"G.2":{"1":["39:22","39:26"],"2":["39:27","39:29"],"3":["39:30","39:32"],"4":["39:33","39:43"],"5":["40:1","40:3"],"6":["40:4","40:6"],"7":["40:7","40:9"],M:["40:7","40:9"]},"G.3":{"1":["40:10","40:12"],"2":["40:13","40:16"],"3":["40:17","40:19"],"4":["40:20","40:25"],"5":["40:26","40:29"],"6":["40:30","40:33"],"7":["40:34","40:38"],M:["40:36","40:38"]}}};const Vayikra$1={book:3,years:{"Y.1":{"1":["1:1","1:4"],"2":["1:5","1:9"],"3":["1:10","1:13"],"4":["1:14","1:17"],"5":["2:1","2:6"],"6":["2:7","2:13"],"7":["2:14","2:16"],M:["2:14","2:16"]},"Y.2":{"1":["3:1","3:5"],"2":["3:6","3:11"],"3":["3:12","3:17"],"4":["4:1","4:7"],"5":["4:8","4:12"],"6":["4:13","4:21"],"7":["4:22","4:26"],M:["4:24","4:26"]},"Y.3":{"1":["4:27","4:31"],"2":["4:32","4:35"],"3":["5:1","5:10"],"4":["5:11","5:13"],"5":["5:14","5:16"],"6":["5:17","5:19"],"7":["5:20","5:26"],M:["5:24","5:26"]}}};const Tzav$1={book:3,years:{"Y.1":{"1":["6:1","6:3"],"2":["6:4","6:6"],"3":["6:7","6:11"],"4":["6:12","6:16"],"5":["6:17","6:23"],"6":["7:1","7:6"],"7":["7:7","7:10"],M:["7:7","7:10"]},"Y.2":{"1":["7:11","7:15"],"2":["7:16","7:18"],"3":["7:19","7:21"],"4":["7:22","7:27"],"5":["7:28","7:31"],"6":["7:32","7:34"],"7":["7:35","7:38"],M:["7:35","7:38"]},"Y.3":{"1":["8:1","8:5"],"2":["8:6","8:9"],"3":["8:10","8:13"],"4":["8:14","8:17"],"5":["8:18","8:21"],"6":["8:22","8:29"],"7":["8:30","8:36"],M:["8:33","8:36"]}}};const Shmini$1={book:3,years:{"Y.1":{"1":["9:1","9:6"],"2":["9:7","9:10"],"3":["9:11","9:16"],"4":["9:17","9:23"],"5":["9:24","10:3"],"6":["10:4","10:7"],"7":["10:8","10:11"],M:["10:8","10:11"]},"Y.2":{"1":["10:12","10:15"],"2":["10:16","10:20"],"3":["11:1","11:8"],"4":["11:9","11:12"],"5":["11:13","11:19"],"6":["11:20","11:28"],"7":["11:29","11:32"],M:["11:29","11:32"]},"Y.3":{"1":["11:1","11:8"],"2":["11:9","11:12"],"3":["11:13","11:19"],"4":["11:20","11:28"],"5":["11:29","11:32"],"6":["11:33","11:38"],"7":["11:39","11:47"],M:["11:45","11:47"]}}};const Tazria$1={book:3,variations:{"D.1":{"1":["12:1","12:4"],"2":["12:5","12:8"],"3":["13:1","13:5"],"4":["13:6","13:8"],"5":["13:9","13:17"],"6":["13:18","13:23"],"7":["13:24","13:28"],M:["13:26","13:28"]},"B.2":{"1":["13:29","13:34"],"2":["13:35","13:39"],"3":["13:40","13:42"],"4":["13:43","13:46"],"5":["13:47","13:50"],"6":["13:51","13:54"],"7":["13:55","13:59"],M:["13:57","13:59"]},"A.3":"B.2","C.1":{"1":["12:1","12:4"],"2":["12:5","12:8"],"3":["13:1","13:5"],"4":["13:6","13:17"],"5":["13:18","13:23"],"6":["13:24","13:28"],"7":["13:29","13:39"],M:["13:37","13:39"]},"D.3":"B.2"}};const Metzora$1={book:3,variations:{"A.3":{"1":["14:33","14:38"],"2":["14:39","14:47"],"3":["14:48","14:53"],"4":["14:54","15:7"],"5":["15:8","15:15"],"6":["15:16","15:28"],"7":["15:29","15:33"],M:["15:31","15:33"]},"B.2":{"1":["14:1","14:5"],"2":["14:6","14:9"],"3":["14:10","14:12"],"4":["14:13","14:15"],"5":["14:16","14:20"],"6":["14:21","14:25"],"7":["14:26","14:32"],M:["14:30","14:32"]},"C.1":"B.2","D.1":"B.2","D.3":"A.3"}};const Kedoshim$1={book:3,variations:{"A.3":{"1":["19:15","19:18"],"2":["19:19","19:22"],"3":["19:23","19:32"],"4":["19:33","19:37"],"5":["20:1","20:7"],"6":["20:8","20:22"],"7":["20:23","20:27"],M:["20:25","20:27"]},"B.2":{"1":["19:1","19:4"],"2":["19:5","19:10"],"3":["19:11","19:14"],"4":["19:15","19:18"],"5":["19:19","19:22"],"6":["19:23","19:32"],"7":["19:33","19:37"],M:["19:35","19:37"]},"C.1":"B.2","D.1":"B.2","D.3":{"1":["19:23","19:25"],"2":["19:26","19:28"],"3":["19:29","19:32"],"4":["19:33","19:37"],"5":["20:1","20:7"],"6":["20:8","20:22"],"7":["20:23","20:27"],M:["20:25","20:27"]}}};const Emor$1={book:3,years:{"Y.1":{"1":["21:1","21:6"],"2":["21:7","21:12"],"3":["21:13","21:15"],"4":["21:16","21:24"],"5":["22:1","22:9"],"6":["22:10","22:12"],"7":["22:13","22:16"],M:["22:13","22:16"]},"Y.2":{"1":["22:17","22:20"],"2":["22:21","22:25"],"3":["22:26","22:33"],"4":["23:1","23:3"],"5":["23:4","23:8"],"6":["23:9","23:14"],"7":["23:15","23:22"],M:["23:19","23:22"]},"Y.3":{"1":["23:23","23:25"],"2":["23:26","23:32"],"3":["23:33","23:44"],"4":["24:1","24:4"],"5":["24:5","24:9"],"6":["24:10","24:12"],"7":["24:13","24:23"],M:["24:21","24:23"]}}};const Behar$1={book:3,variations:{"D.1":{"1":["25:1","25:3"],"2":["25:4","25:7"],"3":["25:8","25:10"],"4":["25:11","25:13"],"5":["25:14","25:18"],"6":["25:19","25:24"],"7":["25:25","25:28"],M:["25:25","25:28"]},"B.2":{"1":["25:29","25:34"],"2":["25:35","25:38"],"3":["25:39","25:43"],"4":["25:44","25:46"],"5":["25:47","25:50"],"6":["25:51","25:54"],"7":["25:55","26:2"],M:["25:55","26:2"]},"A.3":"B.2","C.1":{"1":["25:1","25:3"],"2":["25:4","25:7"],"3":["25:8","25:13"],"4":["25:14","25:18"],"5":["25:19","25:24"],"6":["25:25","25:28"],"7":["25:29","25:38"],M:["25:35","25:38"]},"D.3":"B.2"}};const Bechukotai$1={book:3,variations:{"A.3":{"1":["27:1","27:4"],"2":["27:5","27:8"],"3":["27:9","27:15"],"4":["27:16","27:21"],"5":["27:22","27:25"],"6":["27:26","27:28"],"7":["27:29","27:34"],M:["27:32","27:34"]},"B.2":{"1":["26:3","26:5"],"2":["26:6","26:9"],"3":["26:10","26:46"],"4":["27:1","27:4"],"5":["27:5","27:8"],"6":["27:9","27:11"],"7":["27:12","27:15"],M:["27:12","27:15"]},"C.1":"B.2","D.1":"B.2","D.3":"A.3"}};const Bamidbar$1={book:4,years:{"Y.1":{"1":["1:1","1:4"],"2":["1:5","1:16"],"3":["1:17","1:19"],"4":["1:20","1:27"],"5":["1:28","1:35"],"6":["1:36","1:43"],"7":["1:44","1:54"],M:["1:52","1:54"]},"Y.2":{"1":["2:1","2:9"],"2":["2:10","2:16"],"3":["2:17","2:24"],"4":["2:25","2:31"],"5":["2:32","2:34"],"6":["3:1","3:4"],"7":["3:5","3:13"],M:["3:11","3:13"]},"Y.3":{"1":["3:14","3:20"],"2":["3:21","3:26"],"3":["3:27","3:39"],"4":["3:40","3:43"],"5":["3:44","3:51"],"6":["4:1","4:10"],"7":["4:11","4:20"],M:["4:17","4:20"]}}};const Nasso$1={book:4,years:{"Y.1":{"1":["4:21","4:24"],"2":["4:25","4:28"],"3":["4:29","4:33"],"4":["4:34","4:37"],"5":["4:38","4:49"],"6":["5:1","5:4"],"7":["5:5","5:10"],M:["5:8","5:10"]},"Y.2":{"1":["5:11","5:15"],"2":["5:16","5:26"],"3":["5:27","6:4"],"4":["6:5","6:8"],"5":["6:9","6:15"],"6":["6:16","6:21"],"7":["6:22","6:27"],M:["6:22","6:27"]},"Y.3":{"1":["7:1","7:11"],"2":["7:12","7:23"],"3":["7:24","7:35"],"4":["7:36","7:47"],"5":["7:48","7:59"],"6":["7:60","7:71"],"7":["7:72","7:89"],M:["7:87","7:89"]}}};const Korach$1={book:4,years:{"Y.1":{"1":["16:1","16:3"],"2":["16:4","16:7"],"3":["16:8","16:13"],"4":["16:14","16:19"],"5":["16:20","16:35"],"6":["17:1","17:8"],"7":["17:9","17:15"],M:["17:9","17:15"]},"Y.2":{"1":["16:20","16:27"],"2":["16:28","16:35"],"3":["17:1","17:5"],"4":["17:6","17:8"],"5":["17:9","17:15"],"6":["17:16","17:20"],"7":["17:21","17:24"],M:["17:21","17:24"]},"Y.3":{"1":["17:25","18:7"],"2":["18:8","18:10"],"3":["18:11","18:13"],"4":["18:14","18:20"],"5":["18:21","18:24"],"6":["18:25","18:29"],"7":["18:30","18:32"],M:["18:30","18:32"]}}};const Chukat$1={book:4,variations:{"C.2":{"1":["19:1","19:6"],"2":["19:7","19:9"],"3":["19:10","19:17"],"4":["19:18","19:22"],"5":["20:1","20:6"],"6":["20:7","20:13"],"7":["20:14","20:21"],M:["20:18","20:21"]},"B.2":{"1":["21:11","21:13"],"2":["21:14","21:16"],"3":["21:17","21:20"],"4":["21:21","21:25"],"5":["21:26","21:28"],"6":["21:29","21:33"],"7":["21:34","22:1"],M:["21:34","22:1"]},"C.3":{"1":["20:22","21:3"],"2":["21:4","21:10"],"3":["21:11","21:16"],"4":["21:17","21:20"],"5":["21:21","21:25"],"6":["21:26","21:33"],"7":["21:34","22:1"],M:["21:34","22:1"]},"A.3":"C.3","D.1":"C.2","D.2":"C.3","E.1":"C.2","E.3":"C.3","F.1":{"1":["19:1","19:9"],"2":["19:10","19:17"],"3":["19:18","20:6"],"4":["20:7","20:13"],"5":["20:14","20:21"],"6":["20:22","21:9"],"7":["21:10","21:20"],M:["21:16","21:20"]},"G.1":{"1":["19:1","19:6"],"2":["19:7","19:9"],"3":["19:10","19:13"],"4":["19:14","19:17"],"5":["19:18","19:22"],"6":["20:1","20:6"],"7":["20:7","20:13"],M:["20:7","20:13"]},"G.2":{"1":["20:1","20:6"],"2":["20:7","20:13"],"3":["20:14","20:17"],"4":["20:18","20:21"],"5":["20:22","21:3"],"6":["21:4","21:7"],"7":["21:8","21:10"],M:["21:8","21:10"]},"G.3":"B.2"}};const Balak$1={book:4,variations:{"A.3":{"1":["22:39","23:5"],"2":["23:6","23:12"],"3":["23:13","23:26"],"4":["23:27","23:30"],"5":["24:1","24:13"],"6":["24:14","24:25"],"7":["25:1","25:9"],M:["25:7","25:9"]},"B.2":{"1":["22:2","22:4"],"2":["22:5","22:7"],"3":["22:8","22:12"],"4":["22:13","22:20"],"5":["22:21","22:27"],"6":["22:28","22:30"],"7":["22:31","22:38"],M:["22:36","22:38"]},"C.2":"B.2","C.3":"A.3","D.1":"B.2","D.2":"A.3","E.1":"B.2","E.3":"A.3","F.1":"B.2","G.1":"B.2","G.2":{"1":["22:39","22:41"],"2":["23:1","23:3"],"3":["23:4","23:6"],"4":["23:7","23:12"],"5":["23:13","23:15"],"6":["23:16","23:18"],"7":["23:19","23:26"],M:["23:19","23:26"]},"G.3":{"1":["23:27","23:30"],"2":["24:1","24:9"],"3":["24:10","24:13"],"4":["24:14","24:19"],"5":["24:20","24:25"],"6":["25:1","25:6"],"7":["25:7","25:9"],M:["25:7","25:9"]}}};const Pinchas$1={book:4,years:{"Y.1":{"1":["25:10","25:12"],"2":["25:13","25:15"],"3":["25:16","26:4"],"4":["26:5","26:11"],"5":["26:12","26:22"],"6":["26:23","26:34"],"7":["26:35","26:51"],M:["26:48","26:51"]},"Y.2":{"1":["26:52","26:56"],"2":["26:57","26:62"],"3":["26:63","27:5"],"4":["27:6","27:14"],"5":["27:15","27:23"],"6":["28:1","28:10"],"7":["28:11","28:15"],M:["28:11","28:15"]},"Y.3":{"1":["28:16","28:25"],"2":["28:26","28:31"],"3":["29:1","29:6"],"4":["29:7","29:11"],"5":["29:12","29:16"],"6":["29:17","29:28"],"7":["29:29","30:1"],M:["29:35","30:1"]}}};const Matot$1={book:4,variations:{"B.2":{"1":["31:1","32:4"],"2":["32:5","32:19"],"3":["32:20","32:24"],"4":["32:25","32:27"],"5":["32:28","32:30"],"6":["32:31","32:38"],"7":["32:39","32:42"],M:["32:39","32:42"]},"A.3":"B.2","C.1":{"1":["30:2","30:9"],"2":["30:10","30:13"],"3":["30:14","30:17"],"4":["31:1","31:12"],"5":["31:13","31:24"],"6":["31:25","31:41"],"7":["31:42","31:54"],M:["31:51","31:54"]}}};const Masei$1={book:4,variations:{"A.3":{"1":["33:50","34:15"],"2":["34:16","34:29"],"3":["35:1","35:8"],"4":["35:9","35:15"],"5":["35:16","35:29"],"6":["35:30","35:34"],"7":["36:1","36:13"],M:["36:10","36:13"]},"B.2":{"1":["33:1","33:3"],"2":["33:4","33:6"],"3":["33:7","33:10"],"4":["33:11","33:23"],"5":["33:24","33:36"],"6":["33:37","33:43"],"7":["33:44","33:49"],M:["33:47","33:49"]},"C.1":"B.2"}};const Devarim={book:5,years:{"Y.1":{"1":["1:1","1:3"],"2":["1:4","1:7"],"3":["1:8","1:10"],"4":["1:11","1:21"],"5":["1:22","1:28"],"6":["1:29","1:38"],"7":["1:39","2:1"],M:["1:39","2:1"]},"Y.2":{"1":["2:2","2:5"],"2":["2:6","2:12"],"3":["2:13","2:16"],"4":["2:17","2:19"],"5":["2:20","2:22"],"6":["2:23","2:25"],"7":["2:26","2:30"],M:["2:28","2:30"]},"Y.3":{"1":["2:31","2:34"],"2":["2:35","2:37"],"3":["3:1","3:3"],"4":["3:4","3:7"],"5":["3:8","3:11"],"6":["3:12","3:14"],"7":["3:15","3:22"],M:["3:20","3:22"]}}};const Vaetchanan={book:5,descr:"with the Ten Commandments every year and the Sh'ma in years two and three",years:{"Y.1":{"1":["3:23","3:25"],"2":["3:26","4:4"],"3":["4:5","4:14"],"4":["4:15","4:20"],"5":["4:21","4:40"],"6":["4:41","4:49"],"7":["5:1","5:18"],M:["5:16","5:18"]},"Y.2":{"1":["5:1","5:18"],"2":["5:19","5:24"],"3":["5:25","5:30"],"4":["6:1","6:3"],"5":["6:4","6:9"],"6":["6:10","6:19"],"7":["6:20","6:25"],M:["6:23","6:25"]},"Y.3":{"1":["5:1","5:18"],"2":["5:19","5:24"],"3":["5:25","6:3"],"4":["6:4","6:9"],"5":["6:10","6:19"],"6":["6:20","6:25"],"7":["7:1","7:11"],M:["7:9","7:11"]},alt:{descr:"with the Ten Commandments in year two and the Sh'ma in year three",years:{"Y.1":{"1":["3:23","3:25"],"2":["3:26","3:29"],"3":["4:1","4:4"],"4":["4:5","4:14"],"5":["4:15","4:20"],"6":["4:21","4:29"],"7":["4:30","4:40"],M:["4:36","4:40"]},"Y.2":{"1":["4:41","4:43"],"2":["4:44","4:49"],"3":["5:1","5:18"],"4":["5:19","5:21"],"5":["5:22","5:24"],"6":["5:25","5:30"],"7":["6:1","6:3"],M:["6:1","6:3"]},"Y.3":{"1":["6:4","6:9"],"2":["6:10","6:19"],"3":["6:20","6:22"],"4":["6:23","6:25"],"5":["7:1","7:5"],"6":["7:6","7:8"],"7":["7:9","7:11"],M:["7:9","7:11"]}}}}};const Eikev$1={book:5,years:{"Y.1":{"1":["7:12","7:16"],"2":["7:17","7:21"],"3":["7:22","7:26"],"4":["8:1","8:3"],"5":["8:4","8:10"],"6":["8:11","8:18"],"7":["8:19","9:3"],M:["9:1","9:3"]},"Y.2":{"1":["9:4","9:10"],"2":["9:11","9:14"],"3":["9:15","9:21"],"4":["9:22","9:29"],"5":["10:1","10:5"],"6":["10:6","10:8"],"7":["10:9","10:11"],M:["10:9","10:11"]},"Y.3":{"1":["10:12","10:15"],"2":["10:16","10:22"],"3":["11:1","11:9"],"4":["11:10","11:12"],"5":["11:13","11:15"],"6":["11:16","11:21"],"7":["11:22","11:25"],M:["11:22","11:25"]}}};const Shoftim$1={book:5,years:{"Y.1":{"1":["16:18","16:20"],"2":["16:21","17:7"],"3":["17:8","17:10"],"4":["17:11","17:13"],"5":["17:14","17:17"],"6":["17:18","17:20"],"7":["18:1","18:5"],M:["18:3","18:5"]},"Y.2":{"1":["18:6","18:8"],"2":["18:9","18:13"],"3":["18:14","18:17"],"4":["18:18","18:22"],"5":["19:1","19:7"],"6":["19:8","19:10"],"7":["19:11","19:13"],M:["19:11","19:13"]},"Y.3":{"1":["19:14","19:21"],"2":["20:1","20:4"],"3":["20:5","20:9"],"4":["20:10","20:14"],"5":["20:15","20:20"],"6":["21:1","21:6"],"7":["21:7","21:9"],M:["21:7","21:9"]}}};const Nitzavim$1={book:5,descr:"When these Sidrot are not combined, they should each be read in their entirety.",variations:{"Y.1":{"1":["29:9","29:11"],"2":["29:12","29:14"],"3":["29:15","29:28"],"4":["30:1","30:6"],"5":["30:7","30:10"],"6":["30:11","30:14"],"7":["30:15","30:20"],M:["30:15","30:20"]},"Y.2":"Y.1","Y.3":"Y.1"}};const Vayeilech$1={book:5,descr:"When these Sidrot are not combined, they should each be read in their entirety.",variations:{"Y.1":{"1":["31:1","31:3"],"2":["31:4","31:6"],"3":["31:7","31:9"],"4":["31:10","31:13"],"5":["31:14","31:19"],"6":["31:20","31:24"],"7":["31:25","31:30"],M:["31:28","31:30"]},"Y.2":"Y.1","Y.3":"Y.1"}};var triennialConfig = {Bereshit:Bereshit$1,Noach:Noach$1,"Lech-Lecha":{book:1,years:{"Y.1":{"1":["12:1","12:3"],"2":["12:4","12:9"],"3":["12:10","12:13"],"4":["12:14","12:20"],"5":["13:1","13:4"],"6":["13:5","13:11"],"7":["13:12","13:18"],M:["13:16","13:18"]},"Y.2":{"1":["14:1","14:9"],"2":["14:10","14:16"],"3":["14:17","14:20"],"4":["14:21","14:24"],"5":["15:1","15:6"],"6":["15:7","15:16"],"7":["15:17","15:21"],M:["15:17","15:21"]},"Y.3":{"1":["16:1","16:6"],"2":["16:7","16:9"],"3":["16:10","16:16"],"4":["17:1","17:6"],"5":["17:7","17:17"],"6":["17:18","17:23"],"7":["17:24","17:27"],M:["17:24","17:27"]}}},Vayera:Vayera$1,"Chayei Sara":{book:1,years:{"Y.1":{"1":["23:1","23:4"],"2":["23:5","23:7"],"3":["23:8","23:12"],"4":["23:13","23:16"],"5":["23:17","23:20"],"6":["24:1","24:4"],"7":["24:5","24:9"],M:["24:5","24:9"]},"Y.2":{"1":["24:10","24:14"],"2":["24:15","24:20"],"3":["24:21","24:26"],"4":["24:27","24:33"],"5":["24:34","24:41"],"6":["24:42","24:49"],"7":["24:50","24:52"],M:["24:50","24:52"]},"Y.3":{"1":["24:53","24:58"],"2":["24:59","24:61"],"3":["24:62","24:67"],"4":["25:1","25:6"],"5":["25:7","25:11"],"6":["25:12","25:15"],"7":["25:16","25:18"],M:["25:16","25:18"]}}},Toldot:Toldot$1,Vayetzei:Vayetzei$1,Vayishlach:Vayishlach$1,Vayeshev:Vayeshev$1,Miketz:Miketz$1,Vayigash:Vayigash$1,Vayechi:Vayechi$1,Shemot:Shemot$1,Vaera:Vaera$1,Bo:Bo$1,Beshalach:Beshalach$1,Yitro:Yitro$1,Mishpatim:Mishpatim$1,Terumah:Terumah$1,Tetzaveh:Tetzaveh$1,"Ki Tisa":{book:2,years:{"Y.1":{"1":["30:11","30:13"],"2":["30:14","30:16"],"3":["30:17","30:21"],"4":["30:22","30:33"],"5":["30:34","30:38"],"6":["31:1","31:11"],"7":["31:12","31:17"],M:["31:15","31:17"]},"Y.2":{"1":["31:18","32:6"],"2":["32:7","32:11"],"3":["32:12","32:14"],"4":["32:15","32:24"],"5":["32:25","32:29"],"6":["32:30","33:6"],"7":["33:7","33:11"],M:["33:9","33:11"]},"Y.3":{"1":["33:12","33:16"],"2":["33:17","33:23"],"3":["34:1","34:9"],"4":["34:10","34:17"],"5":["34:18","34:21"],"6":["34:22","34:26"],"7":["34:27","34:35"],M:["34:33","34:35"]}}},Vayakhel:Vayakhel$1,Pekudei:Pekudei$1,Vayikra:Vayikra$1,Tzav:Tzav$1,Shmini:Shmini$1,Tazria:Tazria$1,Metzora:Metzora$1,"Achrei Mot":{book:3,variations:{"D.1":{"1":["16:1","16:3"],"2":["16:4","16:6"],"3":["16:7","16:11"],"4":["16:12","16:17"],"5":["16:18","16:24"],"6":["16:25","16:30"],"7":["16:31","16:34"],M:["16:31","16:34"]},"B.2":{"1":["17:1","17:7"],"2":["17:8","17:12"],"3":["17:13","17:16"],"4":["18:1","18:5"],"5":["18:6","18:21"],"6":["18:22","18:25"],"7":["18:26","18:30"],M:["18:26","18:30"]},"A.3":"B.2","C.1":{"1":["16:1","16:6"],"2":["16:7","16:11"],"3":["16:12","16:17"],"4":["16:18","16:24"],"5":["16:25","16:30"],"6":["16:31","16:34"],"7":["17:1","17:7"],M:["17:5","17:7"]},"D.3":"B.2"}},Kedoshim:Kedoshim$1,Emor:Emor$1,Behar:Behar$1,Bechukotai:Bechukotai$1,Bamidbar:Bamidbar$1,Nasso:Nasso$1,"Beha'alotcha":{book:4,years:{"Y.1":{"1":["8:1","8:4"],"2":["8:5","8:9"],"3":["8:10","8:14"],"4":["8:15","8:22"],"5":["8:23","8:26"],"6":["9:1","9:8"],"7":["9:9","9:14"],M:["9:12","9:14"]},"Y.2":{"1":["9:15","9:18"],"2":["9:19","9:23"],"3":["10:1","10:7"],"4":["10:8","10:10"],"5":["10:11","10:20"],"6":["10:21","10:28"],"7":["10:29","10:34"],M:["10:32","10:34"]},"Y.3":{"1":["10:35","11:9"],"2":["11:10","11:18"],"3":["11:19","11:22"],"4":["11:23","11:29"],"5":["11:30","11:35"],"6":["12:1","12:13"],"7":["12:14","12:16"],M:["12:14","12:16"]}}},"Sh'lach":{book:4,years:{"Y.1":{"1":["13:1","13:3"],"2":["13:4","13:16"],"3":["13:17","13:20"],"4":["13:21","13:24"],"5":["13:25","13:30"],"6":["13:31","13:33"],"7":["14:1","14:7"],M:["14:5","14:7"]},"Y.2":{"1":["14:8","14:10"],"2":["14:11","14:20"],"3":["14:21","14:25"],"4":["14:26","14:38"],"5":["14:39","14:42"],"6":["14:43","15:3"],"7":["15:4","15:7"],M:["15:4","15:7"]},"Y.3":{"1":["15:8","15:10"],"2":["15:11","15:16"],"3":["15:17","15:21"],"4":["15:22","15:26"],"5":["15:27","15:31"],"6":["15:32","15:36"],"7":["15:37","15:41"],M:["15:37","15:41"]}}},Korach:Korach$1,Chukat:Chukat$1,Balak:Balak$1,Pinchas:Pinchas$1,Matot:Matot$1,Masei:Masei$1,Devarim:Devarim,Vaetchanan:Vaetchanan,Eikev:Eikev$1,"Re'eh":{book:5,years:{"Y.1":{"1":["11:26","11:31"],"2":["11:32","12:5"],"3":["12:6","12:10"],"4":["12:11","12:16"],"5":["12:17","12:19"],"6":["12:20","12:25"],"7":["12:26","12:28"],M:["12:26","12:28"]},"Y.2":{"1":["12:29","13:1"],"2":["13:2","13:6"],"3":["13:7","13:12"],"4":["13:13","13:19"],"5":["14:1","14:8"],"6":["14:9","14:21"],"7":["14:22","14:29"],M:["14:22","14:29"]},"Y.3":{"1":["15:1","15:6"],"2":["15:7","15:11"],"3":["15:12","15:18"],"4":["15:19","15:23"],"5":["16:1","16:8"],"6":["16:9","16:12"],"7":["16:13","16:17"],M:["16:13","16:17"]}}},Shoftim:Shoftim$1,"Ki Teitzei":{book:5,years:{"Y.1":{"1":["21:10","21:14"],"2":["21:15","21:17"],"3":["21:18","21:21"],"4":["21:22","22:7"],"5":["22:8","22:12"],"6":["22:13","22:29"],"7":["23:1","23:7"],M:["23:4","23:7"]},"Y.2":{"1":["23:8","23:12"],"2":["23:13","23:15"],"3":["23:16","23:19"],"4":["23:20","23:24"],"5":["23:25","24:4"],"6":["24:5","24:9"],"7":["24:10","24:13"],M:["24:10","24:13"]},"Y.3":{"1":["24:14","24:16"],"2":["24:17","24:19"],"3":["24:20","24:22"],"4":["25:1","25:4"],"5":["25:5","25:10"],"6":["25:11","25:16"],"7":["25:17","25:19"],M:["25:17","25:19"]}}},"Ki Tavo":{book:5,years:{"Y.1":{"1":["26:1","26:3"],"2":["26:4","26:8"],"3":["26:9","26:11"],"4":["26:12","26:15"],"5":["26:16","26:19"],"6":["27:1","27:4"],"7":["27:5","27:10"],M:["27:7","27:10"]},"Y.2":{"1":["26:12","26:15"],"2":["26:16","26:19"],"3":["27:1","27:3"],"4":["27:4","27:8"],"5":["27:6","27:10"],"6":["27:11","28:3"],"7":["28:4","28:6"],M:["28:4","28:6"]},"Y.3":{"1":["27:11","28:3"],"2":["28:4","28:6"],"3":["28:7","28:11"],"4":["28:12","28:14"],"5":["28:15","28:69"],"6":["29:1","29:5"],"7":["29:6","29:8"],M:["29:6","29:8"]}}},Nitzavim:Nitzavim$1,Vayeilech:Vayeilech$1,"Ha'Azinu":{book:5,descr:"every year",variations:{"Y.1":{"1":["32:1","32:6"],"2":["32:7","32:12"],"3":["32:13","32:18"],"4":["32:19","32:28"],"5":["32:29","32:39"],"6":["32:40","32:43"],"7":["32:44","32:52"],M:["32:48","32:52"]},"Y.2":"Y.1","Y.3":"Y.1"}},"Vezot Haberakhah":{book:5,descr:"האזינו-וזאת הברכה should both be read in their entirety due to their brief length",variations:{"Y.1":{"1":["33:1","33:7"],"2":["33:8","33:12"],"3":["33:13","33:17"],"4":["33:18","33:21"],"5":["33:22","33:26"],"6":["33:27","33:29"],"7":["34:1","34:12"]},"Y.2":"Y.1","Y.3":"Y.1"}},"Vayakhel-Pekudei":{book:2,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["35:1","35:10"],"2":["35:11","35:20"],"3":["35:21","35:29"],"4":["35:30","36:7"],"5":["36:8","36:19"],"6":["36:20","36:38"],"7":["37:1","37:16"],M:["37:10","37:16"]},"Y.2":{"1":["37:17","37:24"],"2":["37:25","37:29"],"3":["38:1","38:8"],"4":["38:9","38:20"],"5":["38:21","39:1"],"6":["39:2","39:7"],"7":["39:8","39:21"],M:["39:19","39:21"]},"Y.3":{"1":["39:22","39:26"],"2":["39:27","39:32"],"3":["39:33","39:43"],"4":["40:1","40:8"],"5":["40:9","40:16"],"6":["40:17","40:27"],"7":["40:28","40:38"],M:["40:34","40:38"]}},patterns:{TTS:"A",TST:"B",TSS:"C",SST:"D",STS:"E",STT:"F",SSS:"G"}},"Tazria-Metzora":{book:3,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["12:1","12:4"],"2":["12:5","12:8"],"3":["13:1","13:5"],"4":["13:6","13:17"],"5":["13:18","13:23"],"6":["13:24","13:28"],"7":["13:29","13:39"],M:["13:37","13:39"]},"Y.2":{"1":["13:40","13:46"],"2":["13:47","13:54"],"3":["13:55","13:59"],"4":["14:1","14:5"],"5":["14:6","14:12"],"6":["14:13","14:20"],"7":["14:21","14:32"],M:["14:30","14:32"]},"Y.3":{"1":["14:33","14:38"],"2":["14:39","14:47"],"3":["14:48","14:53"],"4":["14:54","15:7"],"5":["15:8","15:15"],"6":["15:16","15:28"],"7":["15:29","15:33"],M:["15:31","15:33"]}},patterns:{TTS:"A",TST:"B",STT:"C",STS:"D"}},"Achrei Mot-Kedoshim":{book:3,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["16:1","16:6"],"2":["16:7","16:11"],"3":["16:12","16:17"],"4":["16:18","16:24"],"5":["16:25","16:30"],"6":["16:31","16:34"],"7":["17:1","17:7"],M:["17:5","17:7"]},"Y.2":{"1":["17:8","17:12"],"2":["17:13","17:16"],"3":["18:1","18:5"],"4":["18:6","18:21"],"5":["18:22","18:30"],"6":["19:1","19:4"],"7":["19:5","19:14"],M:["19:11","19:14"]},"Y.3":{"1":["19:15","19:18"],"2":["19:19","19:22"],"3":["19:23","19:32"],"4":["19:33","19:37"],"5":["20:1","20:7"],"6":["20:8","20:22"],"7":["20:23","20:27"],M:["20:25","20:27"]}},patterns:{TTS:"A",TST:"B",STT:"C",STS:"D"}},"Behar-Bechukotai":{book:3,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["25:1","25:3"],"2":["25:4","25:7"],"3":["25:8","25:13"],"4":["25:14","25:18"],"5":["25:19","25:24"],"6":["25:25","25:28"],"7":["25:29","25:38"],M:["25:35","25:38"]},"Y.2":{"1":["25:39","25:43"],"2":["25:44","25:46"],"3":["25:47","25:54"],"4":["25:55","26:2"],"5":["26:3","26:5"],"6":["26:6","26:9"],"7":["26:10","26:46"],M:["26:44","26:46"]},"Y.3":{"1":["27:1","27:4"],"2":["27:5","27:8"],"3":["27:9","27:15"],"4":["27:16","27:21"],"5":["27:22","27:25"],"6":["27:26","27:28"],"7":["27:29","27:34"],M:["27:32","27:34"]}},patterns:{TTS:"A",TST:"B",STT:"C",STS:"D"}},"Chukat-Balak":{book:4,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["19:1","19:9"],"2":["19:10","19:17"],"3":["19:18","20:6"],"4":["20:7","20:13"],"5":["20:14","20:21"],"6":["20:22","21:9"],"7":["21:10","21:20"],M:["21:16","21:20"]},"Y.2":{"1":["21:21","21:25"],"2":["21:26","22:1"],"3":["22:2","22:7"],"4":["22:8","22:12"],"5":["22:13","22:20"],"6":["22:21","22:30"],"7":["22:31","22:38"],M:["22:36","22:38"]},"Y.3":{"1":["22:39","23:5"],"2":["23:6","23:12"],"3":["23:13","23:26"],"4":["23:27","23:30"],"5":["24:1","24:13"],"6":["24:14","24:25"],"7":["25:1","25:9"],M:["25:7","25:9"]}},patterns:{TTS:"A",TST:"B",TSS:"C",SST:"D",STS:"E",STT:"F",SSS:"G"}},"Matot-Masei":{book:4,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["30:2","30:9"],"2":["30:10","30:13"],"3":["30:14","30:17"],"4":["31:1","31:12"],"5":["31:13","31:24"],"6":["31:25","31:41"],"7":["31:42","31:54"],M:["31:51","31:54"]},"Y.2":{"1":["32:1","32:4"],"2":["32:5","32:19"],"3":["32:20","32:27"],"4":["32:28","32:42"],"5":["33:1","33:6"],"6":["33:7","33:36"],"7":["33:37","33:49"],M:["33:47","33:49"]},"Y.3":{"1":["33:50","34:15"],"2":["34:16","34:29"],"3":["35:1","35:8"],"4":["35:9","35:15"],"5":["35:16","35:29"],"6":["35:30","35:34"],"7":["36:1","36:13"],M:["36:10","36:13"]}},patterns:{TTS:"A",TST:"B",STT:"C"}},"Nitzavim-Vayeilech":{book:5,descr:"Aliyot Divisions for Combined Sidrot",years:{"Y.1":{"1":["29:9","29:11"],"2":["29:12","29:14"],"3":["29:15","29:28"],"4":["30:1","30:3"],"5":["30:4","30:6"],"6":["30:7","30:10"],"7":["30:11","30:14"],M:["30:11","30:14"]},"Y.2":{"1":["30:1","30:3"],"2":["30:4","30:6"],"3":["30:7","30:10"],"4":["30:11","30:14"],"5":["30:15","30:20"],"6":["31:1","31:3"],"7":["31:4","31:6"],M:["31:4","31:6"]},"Y.3":{"1":["31:7","31:9"],"2":["31:10","31:13"],"3":["31:14","31:19"],"4":["31:20","31:22"],"5":["31:22","31:24"],"6":["31:25","31:27"],"7":["31:28","31:30"],M:["31:28","31:30"]}},patterns:{TTS:"Y",TST:"Y",TSS:"Y",SST:"Y",STS:"Y",STT:"Y",SSS:"Y"}}};
|
|
4460
|
+
|
|
4461
|
+
const Bereshit={"1":{k:"Isaiah",b:"42:5",e:"42:21",note:"God identified as the creator // Creation"},"2":{k:"Isaiah",b:"40:25",e:"40:31",note:"God created, called by name // Eden"},"3":{k:"II Kings",b:"2:1",e:"2:13",note:"Elijah taken // Hanokh"}};const Noach={"1":{k:"Isaiah",b:"54:11",e:"55:5",note:"Storm tossed boat // Ark"},"2":{k:"Isaiah",b:"54:1",e:"54:10",note:"waters of Noah no more"},"3":{k:"Zephaniah",b:"3:9",e:"3:20",note:"one language // babel"}};const Vayera={"1":{k:"II Kings",b:"4:8",e:"4:17",note:"birth of promised child // promise to Sarah"},"2":{k:"II Kings",b:"6:8",e:"6:23",note:"blinding episode // Sodom"},"3":{k:"II Kings",b:"4:18",e:"4:36",note:"saving of child // akedah"}};const Toldot={"1":{k:"Malachi",b:"1:1",e:"1:14",note:"Jacob / Esau"},"2":{k:"II Samuel",b:"19:32",e:"19:40",note:"Barzilay infirm in old age // Isaac"},"3":[{k:"Judges",b:"3:15",e:"3:27",note:"Ehud's ploy // Jacob's ploy"},{k:"Judges",b:"3:30",e:"3:30"}]};const Vayetzei={"1":{k:"Hosea",b:"12:3",e:"12:14",note:"Jacob story"},"2":{k:"Zechariah",b:"1:7",e:"1:17",note:"striped horses //streaked sheep"},"3":{k:"I Samuel",b:"19:11",e:"19:18",note:"deceit / terafim / female wiles // Rachel hides terafim"}};const Vayishlach={"1":[{k:"Obadiah",b:"1:10",e:"1:18",note:"Jacob defeats Edom (Babylon) // Jacob meets Esau"},{k:"Obadiah",b:"1:21",e:"1:21"}],"2":{k:"Jeremiah",b:"30:10",e:"30:22",note:"Jacob will return, settle // Jacob's early settling in Shechem and Bet El"},"3":[{k:"Amos",b:"1:1",e:"1:1",note:"prophecy against Edom // genealogy of Edom"},{k:"Amos",b:"1:11",e:"2:3"}]};const Vayeshev={"1":[{k:"Amos",b:"2:6",e:"3:2",note:"reference to sale of righteous // sale of Joseph"},{k:"Amos",b:"3:7",e:"3:8"}],"2":{k:"I Samuel",b:"24:2",e:"24:15",note:"recognition of significant object David to Saul // Tamar to Judah"},"3":{k:"Judges",b:"7:9",e:"7:20",note:"Gideon dream interpretation // Joseph's in jail"}};const Miketz={"1":{k:"I Kings",b:"3:5",e:"3:15",note:"Solomon's dream // Pharaoh's dream"},"2":{k:"I Kings",b:"3:16",e:"4:1",note:"Solomon's wisdom // Joseph's"},"3":{k:"I Kings",b:"10:1",e:"10:9",note:"Solomon's wisdom and household // Joseph's"}};const Vayigash={"1":{k:"Ezekiel",b:"37:15",e:"37:28",note:"Judah and Joseph united"},"2":{k:"Zechariah",b:"10:3",e:"10:12",note:"Judah and Joseph, return from Egypt // J & J, brothers return to Jacob"},"3":{k:"Isaiah",b:"41:1",e:"41:10",note:"brother helps / Jacob not fear // Joseph settles his family in Goshen"}};const Vayechi={"1":{k:"Amos",b:"5:4",e:"5:15",note:"prophecy to remnants of Joseph // Joseph and kids"},"2":{k:"I Kings",b:"2:1",e:"2:12",note:"David's // Jacob's last speech"},"3":[{k:"II Samuel",b:"1:12",e:"1:12",note:"(lament over) deaths of Saul and Jonathan // deaths of Jacob, Joseph"},{k:"II Samuel",b:"1:17",e:"1:27"}]};const Shemot={"1":[{k:"Isaiah",b:"27:6",e:"27:13",note:"growth of Jacob / Israel // Israel in Egypt"},{k:"Isaiah",b:"29:22",e:"29:23"}],"2":[{k:"Joshua",b:"5:13",e:"6:5",note:"Joshua shoes off // burning bush"},{k:"Joshua",b:"6:15",e:"6:16"}],"3":[{k:"I Samuel",b:"9:15",e:"9:21",note:"anointing of Saul // Moses"},{k:"I Samuel",b:"9:27",e:"10:1"}]};const Vaera={"1":[{k:"Jeremiah",b:"1:1",e:"1:10",note:"appointment of Jeremiah // Moses"},{k:"Jeremiah",b:"1:8",e:"1:8"}],"2":[{k:"Ezekiel",b:"28:25",e:"29:12",note:"Speak to Pharaoh, show Egypt, strike Nile"},{k:"Ezekiel",b:"29:21",e:"29:21"}],"3":[{k:"Isaiah",b:"10:12",e:"10:12",note:"smite Assyria as Egypt"},{k:"Isaiah",b:"10:15",e:"10:26"},{k:"Isaiah",b:"10:32",e:"10:33"}]};const Bo={"1":{k:"Jeremiah",b:"10:1",e:"10:10",note:"goyim will fear signs from heaven // plagues"},"2":{k:"Jeremiah",b:"46:13",e:"46:28",note:"Egypt's fall / Israel's redemption // Exodus"},"3":{k:"II Samuel",b:"7:18",e:"7:29",note:"David recalls Exodus"}};const Beshalach={"1":{k:"Judges",b:"4:4",e:"4:24",note:"defeat of Sisera // defeat of Pharaoh"},"2":{k:"Judges",b:"5:1",e:"5:31",note:"Deborah's song // Moses' song of sea"},"3":[{k:"Joshua",b:"3:9",e:"3:17",note:"splitting Jordan, crossing on dry land // splitting Red Sea"},{k:"Joshua",b:"4:19",e:"4:24"}]};const Yitro={"1":{k:"Isaiah",b:"6:1",e:"6:13",note:"Isaiah's revelation of God // Moses' revelation at Sinai"},"2":{k:"Isaiah",b:"44:9",e:"44:23",note:"making idols to false god // you shall have no other Gods"},"3":{k:"Ezekiel",b:"16:4",e:"16:14",note:"Israel's birth / covenant / marriage(?) // revelation at Sinai"}};const Mishpatim={"1":[{k:"Jeremiah",b:"34:12",e:"34:22",note:"Jeremiah refers to the law that followed the covenant // Mishpatim"},{k:"Jeremiah",b:"33:25",e:"33:26"}],"2":{k:"I Samuel",b:"18:20",e:"18:28",note:"Michal's bride price // a law of Mishpatim"},"3":{k:"Joshua",b:"24:16",e:"24:28",note:"Joshua's covenant // na'aseh v'nishma"}};const Terumah={"1":{k:"Zechariah",b:"2:5",e:"2:17",note:"God's presence in Israelvshakhanti b'tokhekh"},"2":{k:"I Kings",b:"6:1",e:"6:13",note:"Temple // Tabernacle"},"3":{k:"II Samuel",b:"7:1",e:"7:16",note:"Temple // Tabernacle"}};const Tetzaveh={"1":{k:"Ezekiel",b:"43:10",e:"43:17",note:"Temple // Tabernacle"},"2":{k:"Haggai",b:"1:1",e:"1:12",note:"T / T"},"3":{k:"Haggai",b:"2:1",e:"2:9",note:"T / T"}};const Vayakhel={"1":{k:"I Kings",b:"7:40",e:"7:50",note:"T / T"},"2":{k:"I Kings",b:"7:13",e:"7:26",note:"T / T"},"3":{k:"Ezekiel",b:"43:1",e:"43:9",note:"T / T"}};const Pekudei={"1":{k:"I Kings",b:"8:1",e:"8:11",note:"T / T"},"2":{k:"I Kings",b:"8:10",e:"8:21",note:"T / T"},"3":{k:"I Kings",b:"8:22",e:"8:39",note:"T / T"}};const Vayikra={"1":{k:"Isaiah",b:"43:21",e:"44:8",note:"sacrifices"},"2":{k:"I Samuel",b:"2:13",e:"2:26",note:"misbehaving kohanim // if a priest sins"},"3":{k:"Malachi",b:"2:13",e:"3:4",note:"sinfulness ruins offering // sin offerings"}};const Tzav={"1":[{k:"Jeremiah",b:"7:21",e:"7:28",note:"justice over sacrifices // sacrifices at Tabernacle"},{k:"Jeremiah",b:"9:22",e:"9:23"}],"2":{k:"Jeremiah",b:"33:14",e:"33:22",note:"priests offer sacrifices // sacrifices at Tabernacle"},"3":{k:"Ezekiel",b:"42:13",e:"42:20",note:"priestly precincts / clothes // priestly vestments"}};const Shmini={"1":{k:"II Samuel",b:"6:1",e:"6:15",note:"Uzza struck down // Nadav and Avihu"},"2":{k:"Ezekiel",b:"43:18",e:"43:27",note:"8th day sacrifices"},"3":{k:"Hosea",b:"9:1",e:"9:9",note:"Israel has eaten non-kosher // kashrut rules"}};const Tazria={"1":{k:"Isaiah",b:"46:3",e:"46:13",note:"since birth // birth"},"2":{k:"Jeremiah",b:"30:1",e:"30:9",note:"im yoled zakhar // v'yaldah zakhar"}};const Metzora={"1":{k:"II Kings",b:"5:1",e:"5:14",note:"Healing of a leper"},"2":{k:"II Kings",b:"7:3",e:"7:16",note:"4 lepers discover Aram's flight"},"3":{k:"II Kings",b:"5:20",e:"5:27",note:"Gechazi gets leprosy"}};const Kedoshim={"1":{k:"Isaiah",b:"61:1",e:"61:9",note:"you shall be called Priests // kedoshim"},"2":{k:"Amos",b:"9:7",e:"9:15",note:"opposite of chosenness"},"3":{k:"Hosea",b:"4:1",e:"4:15",note:"opposite of holiness / niuf // kedoshim, arayot"}};const Emor={"1":{k:"Ezekiel",b:"44:15",e:"44:24",note:"the conduct of kohanim"},"2":[{k:"Malachi",b:"2:1",e:"2:10",note:"conduct of kohanim / chillul hashem // particularly vs. 22:31-32"},{k:"Malachi",b:"2:7",e:"2:7"}],"3":[{k:"Nachum",b:"1:1",e:"1:7",note:"Judah shall observe its festivals // complete festival calendar"},{k:"Nachum",b:"2:1",e:"2:3"},{k:"Nachum",b:"2:2b",e:"2:3a"}]};const Behar={"1":{k:"Jeremiah",b:"32:6",e:"32:15",note:"land redemption // shmittah"},"2":{k:"Jeremiah",b:"32:16",e:"32:27",note:"prayerwill Israel ever redeem its land // shmittah"}};const Bechukotai={"1":{k:"Jeremiah",b:"17:1",e:"17:14",note:"blessings and curses // tokhechah"},"2":[{k:"Jeremiah",b:"16:9",e:"16:15",note:"desolation and redemption // tokhechah"},{k:"Jeremiah",b:"16:19",e:"16:21"}],"3":{k:"Malachi",b:"3:5",e:"3:12",note:"curses and blessings // tokhechah"}};const Bamidbar={"1":[{k:"Hosea",b:"2:1",e:"2:7",note:"number, lead thru desert as after Egypt // census, desert wanderings"},{k:"Hosea",b:"2:16",e:"2:22"}],"2":{k:"Isaiah",b:"63:7",e:"63:16",note:"God carries us as in desert // desert wanderings"},"3":[{k:"Joshua",b:"8:30",e:"8:35",note:"kohanim who carried the ark // korachites"},{k:"Joshua",b:"8:33",e:"8:33"}]};const Nasso={"1":[{k:"Joshua",b:"6:5",e:"6:14",note:"kohanim carrying ark // gershunites and merarites"},{k:"Joshua",b:"6:12",e:"6:12"}],"2":[{k:"Judges",b:"13:2",e:"13:14",note:"Samson // nazirite rules"},{k:"Judges",b:"13:24",e:"13:25"}],"3":[{k:"Joel",b:"1:8",e:"1:13",note:"end of sacrifices, hope for restart // dedication of Tabernacle"},{k:"Joel",b:"2:12",e:"2:14"}]};const Korach={"1":{k:"I Samuel",b:"12:1",e:"12:13",note:"Samuel's apologia references Moses leadership // Moses'"},"2":{k:"I Samuel",b:"12:13",e:"12:22",note:"appointing non-prophet as leader // Korach's rebellion"},"3":{k:"Ezekiel",b:"45:1",e:"45:15",note:"portion of kohen and levi"}};const Chukat={"1":{k:"Judges",b:"15:9",e:"15:20",note:"Samson gets miraculous water from split ground // splitting rock"},"2":{k:"Judges",b:"11:12",e:"11:27",note:"journey across Moav recalled"},"3":[{k:"II Kings",b:"18:1",e:"18:13",note:"Hezekiah destroys nachash n'choshet // Moses builds nachash n'choshet"},{k:"II Kings",b:"19:15",e:"19:19"}]};const Balak={"1":{k:"Micah",b:"6:1",e:"6:8",note:"events of Balak recalled"},"2":{k:"Micah",b:"5:1",e:"5:8",note:"she'erit Yaakov described // Bila'am's blessing"},"3":{k:"Joshua",b:"24:1",e:"24:14",note:"history mentions Balak"}};const Pinchas={"1":{k:"I Kings",b:"19:1",e:"19:16",note:"Elijah's zeal // Pinchas"},"2":[{k:"Joshua",b:"17:1",e:"17:6",note:"Bnot Tzlofhad"},{k:"Joshua",b:"17:17",e:"17:18"}],"3":{k:"Ezekiel",b:"46:1",e:"46:11",note:"sacrifices on Shabbat and holidays // detailed festival sacrifices"}};const Matot={"1":{k:"Jeremiah",b:"1:11",e:"2:3",note:"miztafon tipatach hara'ah"},"2":{k:"II Kings",b:"22:8",e:"22:19",note:"hinneni mevi ra'ah (Hezekiah's discovered book of Torah)"},"3":{k:"Jeremiah",b:"14:11",e:"14:22",note:"ki yatzumu, eineni shomea"}};const Masei={"1":[{k:"Jeremiah",b:"2:4",e:"2:13",note:"shtayim ra'ot asah ami"},{k:"Jeremiah",b:"4:1",e:"4:2"}],"2":[{k:"Jeremiah",b:"2:14",e:"2:28",note:"ra vamar ozvekh"},{k:"Jeremiah",b:"3:4",e:"3:4"}],"3":[{k:"I Kings",b:"9:2",e:"9:9",note:"l'mashal v'lishninah"},{k:"I Kings",b:"9:4",e:"9:5a"}]};const Eikev={"1":{k:"Isaiah",b:"49:14",e:"49:26",note:"ani moshiekh"},"2":{k:"Isaiah",b:"50:1",e:"51:3",note:"sason v'simcha yimatze"},"3":{k:"Zechariah",b:"8:1",e:"8:8",note:"be'emet u-vitzdakah"}};const Shoftim={"1":[{k:"Isaiah",b:"51:12",e:"51:23",note:"anokhi anokhi"},{k:"Isaiah",b:"51:22",e:"51:22"}],"2":{k:"Isaiah",b:"52:1",e:"52:12",note:"uri uri"},"3":{k:"Isaiah",b:"44:24",e:"45:7",note:"l'ma'an avdi"}};const Nitzavim={"1":{k:"Isaiah",b:"61:10",e:"62:12",note:"sos asis"},"2":{k:"Isaiah",b:"63:1",e:"63:9",note:"tzaratam lo tzar"},"3":{k:"Isaiah",b:"65:16",e:"65:25",note:"terem yikrau ani e'eneh"}};const Vayeilech={"1":{k:"Isaiah",b:"61:10",e:"62:12",note:"sos asis"},"2":{k:"Isaiah",b:"63:1",e:"63:9",note:"tzaratam lo tzar"},"3":{k:"Isaiah",b:"65:16",e:"65:25",note:"terem yikrau ani e'eneh"}};const _holidays={"Pesach I":{k:"Joshua",b:"5:2",e:"5:12"},"Pesach I (on Shabbat)":{k:"Joshua",b:"5:2",e:"5:12"},"Pesach II":[{k:"II Kings",b:"23:1",e:"23:9"},{k:"II Kings",b:"23:21",e:"23:23"}],"Pesach VII":{k:"II Samuel",b:"22:1",e:"22:19"},"Pesach VII (on Shabbat)":{k:"II Samuel",b:"22:1",e:"22:19"},"Pesach VIII":[{k:"Isaiah",b:"11:1",e:"11:12"},{k:"Isaiah",b:"11:16",e:"11:16"}],"Pesach VIII (on Shabbat)":[{k:"Isaiah",b:"11:1",e:"11:12"},{k:"Isaiah",b:"11:16",e:"11:16"}],"Shavuot II":[{k:"Habakkuk",b:"3:1",e:"3:13"},{k:"Habakkuk",b:"3:18",e:"3:19"}],"Shavuot II (on Shabbat)":[{k:"Habakkuk",b:"3:1",e:"3:13"},{k:"Habakkuk",b:"3:18",e:"3:19"}],"Rosh Hashana II":{k:"Jeremiah",b:"31:2",e:"31:20"},"Yom Kippur":{k:"Isaiah",b:"58:1",e:"58:14"},"Yom Kippur (on Shabbat)":{k:"Isaiah",b:"58:1",e:"58:14"},"Yom Kippur (Mincha, Traditional)":[{k:"Jonah",b:"1:1",e:"4:11"},{k:"Micah",b:"7:18",e:"7:20"}],"Yom Kippur (Mincha, Alternate)":[{k:"Jonah",b:"1:1",e:"4:11"},{k:"Micah",b:"7:18",e:"7:20"}],"Sukkot I":[{k:"Zechariah",b:"14:1",e:"14:9"},{k:"Zechariah",b:"14:16",e:"14:21"}],"Sukkot I (on Shabbat)":[{k:"Zechariah",b:"14:1",e:"14:9"},{k:"Zechariah",b:"14:16",e:"14:21"}],"Sukkot II":{k:"I Kings",b:"8:2",e:"8:13"},"Sukkot Shabbat Chol ha-Moed":{k:"Ezekiel",b:"38:18",e:"39:7"},"Simchat Torah":{k:"Joshua",b:"1:1",e:"1:9"},"Shabbat Chanukah":{k:"Zechariah",b:"3:6",e:"4:7"},"Shabbat Rosh Chodesh Chanukah":{k:"Zechariah",b:"3:6",e:"4:7"},"Shabbat HaChodesh":{k:"Ezekiel",b:"45:16",e:"45:25"},"Shabbat HaChodesh (on Rosh Chodesh)":{k:"Ezekiel",b:"45:16",e:"45:25"},"Shabbat HaGadol":[{k:"Malachi",b:"3:13",e:"3:24"},{k:"Malachi",b:"3:23",e:"3:23"}],"Shabbat Parah":{k:"Ezekiel",b:"36:16",e:"36:38"},"Shabbat Shekalim":{k:"II Kings",b:"12:1",e:"12:17"},"Shabbat Shekalim (on Rosh Chodesh)":{k:"II Kings",b:"12:1",e:"12:17"},"Shabbat Shuva":[{k:"Hosea",b:"14:2",e:"14:10"},{k:"Micah",b:"7:18",e:"7:20"}],"Shabbat Shuva (alt)":{k:"Joel",b:"2:15",e:"2:27"},"Shabbat Zachor":{k:"I Samuel",b:"15:2",e:"15:34"},"Shabbat Rosh Chodesh":[{k:"Isaiah",b:"66:1",e:"66:14"},{k:"Isaiah",b:"66:22",e:"66:24"},{k:"Isaiah",b:"66:23",e:"66:23"}]};var triennialHaft = {Bereshit:Bereshit,Noach:Noach,"Lech-Lecha":{"1":{k:"Judges",b:"6:24",e:"6:32",note:"Gideon smashes dad's idol // Abraham and Terach's idols (midrash)"},"2":{k:"Joshua",b:"10:1",e:"10:14",note:"battle of Giveon // battle of 4/5 kings"},"3":{k:"Isaiah",b:"41:8",e:"41:16",note:"Israel, Abraham's progeny // promise to Abraham"}},Vayera:Vayera,"Chayei Sara":{"1":{k:"Isaiah",b:"51:1",e:"51:11",note:"Sarah and Abraham as models"},"2":{k:"I Samuel",b:"14:1",e:"14:12",note:"Jonathan's sign // Eliezer's sign"},"3":{k:"I Kings",b:"1:11",e:"1:31",note:"David's old age // Abraham's"}},Toldot:Toldot,Vayetzei:Vayetzei,Vayishlach:Vayishlach,Vayeshev:Vayeshev,Miketz:Miketz,Vayigash:Vayigash,Vayechi:Vayechi,Shemot:Shemot,Vaera:Vaera,Bo:Bo,Beshalach:Beshalach,Yitro:Yitro,Mishpatim:Mishpatim,Terumah:Terumah,Tetzaveh:Tetzaveh,"Ki Tisa":{"1":[{k:"Jeremiah",b:"17:19",e:"17:27",note:"re observance of Shabbat"},{k:"Jeremiah",b:"17:24",e:"17:25"}],"2":{k:"I Kings",b:"18:20",e:"18:39",note:"Elijah on Carmel // Golden Calf"},"3":{k:"Isaiah",b:"63:17",e:"64:8",note:"seeking forgiveness // Moses after Golden Calf"}},Vayakhel:Vayakhel,Pekudei:Pekudei,Vayikra:Vayikra,Tzav:Tzav,Shmini:Shmini,Tazria:Tazria,Metzora:Metzora,"Achrei Mot":{"1":{k:"Ezekiel",b:"22:1",e:"22:16",note:"abominations // arayot"},"2":{k:"Ezekiel",b:"20:2",e:"20:20",note:"abominations of Egypt // arayot"}},Kedoshim:Kedoshim,Emor:Emor,Behar:Behar,Bechukotai:Bechukotai,Bamidbar:Bamidbar,Nasso:Nasso,"Beha'alotcha":{"1":[{k:"Zechariah",b:"3:1",e:"3:5",note:"Purifying kohen, Menorah // Menorah, purifying leviim"},{k:"Zechariah",b:"4:1",e:"4:7"}],"2":[{k:"Joshua",b:"3:3",e:"3:8",note:"Ark leads in travel"},{k:"Joshua",b:"3:17",e:" 4:7"}],"3":{k:"II Kings",b:"20:1",e:"20:11",note:"Hezekiah healed thru prayer // Miriam"}},"Sh'lach":{"1":{k:"Joshua",b:"2:1",e:"2:11",note:"spies"},"2":{k:"Joshua",b:"14:6",e:"14:15",note:"Calev's reward"},"3":{k:"I Kings",b:"17:1",e:"17:16",note:"mkosheshet etzim // mkoshesh etzim"}},Korach:Korach,Chukat:Chukat,Balak:Balak,Pinchas:Pinchas,Matot:Matot,Masei:Masei,"Devarim - Isaiah 1:1-27, same as full kriyah":false,"Vaetchanan - Isaiah 40:1-26, same as full kriyah":false,Eikev:Eikev,"Re'eh":{"1":{k:"Isaiah",b:"54:11",e:"55:5**",note:"aniya soarah"},"2":{k:"Isaiah",b:"43:1",e:"43:10",note:"al tira ki g'altikha"},"3":{k:"Isaiah",b:"43:11",e:"43:20",note:"ami v'chiri"}},Shoftim:Shoftim,"Ki Teitzei":{"1":{k:"Isaiah",b:"54:1",e:"54:10",note:"roni akarah"},"2":{k:"Jeremiah",b:"33:1",e:"33:11",note:"kol sason v'kol simchah"},"3":[{k:"Isaiah",b:"48:12",e:"48:21",note:"goalekh k'dosh yisrael"},{k:"Isaiah",b:"4:20",e:"4:20"}]},"Ki Tavo":{"1":{k:"Isaiah",b:"60:1",e:"60:9",note:"kumi ori"},"2":{k:"Isaiah",b:"60:13",e:"60:22",note:"amekh kulam tzadikim"},"3":{k:"Zechariah",b:"8:11",e:"8:22",note:"emet umishpat shalom"}},Nitzavim:Nitzavim,Vayeilech:Vayeilech,"Ha'Azinu":{"1":[{k:"II Samuel",b:"22:1",e:"22:1",note:"David // Moses' song"},{k:"II Samuel",b:"22:31",e:"22:51"}],"2":[{k:"II Samuel",b:"22:1",e:"22:1",note:"David //Moses' song"},{k:"II Samuel",b:"22:19",e:"22:31"}],"3":{k:"Joshua",b:"23:1",e:"23:11",note:"Joshua's farewell"}},"Tish'a B'Av":{"1":[{k:"Jeremiah",b:"8:13",e:"8:23"},{k:"Jeremiah",b:"9:23",e:"9:23"}],"2":[{k:"Jeremiah",b:"9:1",e:"9:10"},{k:"Jeremiah",b:"9:23",e:"9:23"}],"3":{k:"Jeremiah",b:"9:11",e:"9:23"}},_holidays:_holidays};
|
|
4462
|
+
|
|
4463
|
+
/**
|
|
4464
|
+
* Represents triennial aliyot for a given date
|
|
4465
|
+
* @typedef {Object} TriennialAliyot
|
|
4466
|
+
* @property {Object<string,Aliyah>} aliyot - a map of aliyot 1-7 plus "M"
|
|
4467
|
+
* @property {number} yearNum - year number, 0-2
|
|
4468
|
+
* @property {Date} date - Shabbat date for when this parsha is read in this 3-year cycle
|
|
4469
|
+
* @property {boolean} [readSeparately] - true if a double parsha is read separately in year `yearNum`
|
|
4470
|
+
* @property {Date} [date1] - Shabbat date of the first part of a read-separately aliyah pair
|
|
4471
|
+
* @property {Date} [date2] - Shabbat date of the second part of a read-separately aliyah pair
|
|
4472
|
+
*/
|
|
4473
|
+
|
|
4474
|
+
const VEZOT_HABERAKHAH = 'Vezot Haberakhah';
|
|
4475
|
+
const isSometimesDoubled = Object.create(null); // N.B. these are 0-based indices
|
|
4476
|
+
|
|
4477
|
+
const doubled = [21, // Vayakhel-Pekudei
|
|
4478
|
+
26, // Tazria-Metzora
|
|
4479
|
+
28, // Achrei Mot-Kedoshim
|
|
4480
|
+
31, // Behar-Bechukotai
|
|
4481
|
+
38, // Chukat-Balak
|
|
4482
|
+
41, // Matot-Masei
|
|
4483
|
+
50 // Nitzavim-Vayeilech
|
|
4484
|
+
];
|
|
4485
|
+
doubled.forEach(id => {
|
|
4486
|
+
isSometimesDoubled[id] = true;
|
|
4487
|
+
isSometimesDoubled[id + 1] = true;
|
|
4488
|
+
});
|
|
4489
|
+
/**
|
|
4490
|
+
* takes a 0-based (Bereshit=0) parsha ID
|
|
4491
|
+
* @private
|
|
4492
|
+
* @param {number} id
|
|
4493
|
+
* @return {string}
|
|
4494
|
+
*/
|
|
4495
|
+
|
|
4496
|
+
function getDoubledName(id) {
|
|
4497
|
+
const p1 = core.parshiot[id];
|
|
4498
|
+
const p2 = core.parshiot[id + 1];
|
|
4499
|
+
const name = p1 + '-' + p2;
|
|
4500
|
+
return name;
|
|
4501
|
+
}
|
|
4502
|
+
/**
|
|
4503
|
+
* A bit like Object.assign(), but just a shallow copy
|
|
4504
|
+
* @private
|
|
4505
|
+
* @param {any} target
|
|
4506
|
+
* @param {any} source
|
|
4507
|
+
* @return {any}
|
|
4508
|
+
*/
|
|
4509
|
+
|
|
4510
|
+
|
|
4511
|
+
function shallowCopy(target, source) {
|
|
4512
|
+
Object.keys(source).forEach(k => target[k] = source[k]);
|
|
4513
|
+
return target;
|
|
4514
|
+
}
|
|
4515
|
+
|
|
4516
|
+
let triennialAliyot;
|
|
4517
|
+
/** Triennial Torah readings */
|
|
4518
|
+
|
|
4519
|
+
class Triennial {
|
|
4520
|
+
/**
|
|
4521
|
+
* Builds a Triennial object
|
|
4522
|
+
* @param {number} [hebrewYear] Hebrew Year (default current year)
|
|
4523
|
+
*/
|
|
4524
|
+
constructor(hebrewYear) {
|
|
4525
|
+
hebrewYear = hebrewYear || new core.HDate().getFullYear();
|
|
4526
|
+
|
|
4527
|
+
if (hebrewYear < 5744) {
|
|
4528
|
+
throw new RangeError(`Invalid Triennial year ${hebrewYear}`);
|
|
4529
|
+
}
|
|
4530
|
+
|
|
4531
|
+
if (!triennialAliyot) {
|
|
4532
|
+
triennialAliyot = Triennial.getTriennialAliyot();
|
|
4533
|
+
}
|
|
4534
|
+
|
|
4535
|
+
this.startYear = Triennial.getCycleStartYear(hebrewYear);
|
|
4536
|
+
this.sedraArray = [];
|
|
4537
|
+
this.bereshit = Array(4);
|
|
4538
|
+
|
|
4539
|
+
for (let yr = 0; yr < 4; yr++) {
|
|
4540
|
+
const sedra = core.HebrewCalendar.getSedra(this.startYear + yr, false);
|
|
4541
|
+
const arr = sedra.getSedraArray();
|
|
4542
|
+
this.bereshit[yr] = this.sedraArray.length + arr.indexOf(0);
|
|
4543
|
+
this.sedraArray = this.sedraArray.concat(arr);
|
|
4544
|
+
} // find the first Saturday on or after Rosh Hashana
|
|
4545
|
+
|
|
4546
|
+
|
|
4547
|
+
const rh = new core.HDate(1, core.months.TISHREI, this.startYear);
|
|
4548
|
+
const firstSaturday = rh.onOrAfter(6);
|
|
4549
|
+
this.firstSaturday = firstSaturday.abs();
|
|
4550
|
+
this.calcVariationOptions();
|
|
4551
|
+
this.readings = this.cycleReadings(this.variationOptions);
|
|
4552
|
+
}
|
|
4553
|
+
/**
|
|
4554
|
+
* @param {string} parsha parsha name ("Bereshit" or "Achrei Mot-Kedoshim")
|
|
4555
|
+
* @param {number} yearNum 0 through 2 for which year of Triennial cycle
|
|
4556
|
+
* @return {Object<string,Aliyah>} a map of aliyot 1-7 plus "M"
|
|
4557
|
+
*/
|
|
4558
|
+
|
|
4559
|
+
|
|
4560
|
+
getReading(parsha, yearNum) {
|
|
4561
|
+
const reading = shallowCopy({}, this.readings[parsha][yearNum]);
|
|
4562
|
+
|
|
4563
|
+
if (reading.aliyot) {
|
|
4564
|
+
Object.values(reading.aliyot).map(aliyah => leyning.calculateNumVerses(aliyah));
|
|
4565
|
+
}
|
|
4566
|
+
|
|
4567
|
+
return reading;
|
|
4568
|
+
}
|
|
4569
|
+
/**
|
|
4570
|
+
* @return {number}
|
|
4571
|
+
*/
|
|
4572
|
+
|
|
4573
|
+
|
|
4574
|
+
getStartYear() {
|
|
4575
|
+
return this.startYear;
|
|
4576
|
+
}
|
|
4577
|
+
/**
|
|
4578
|
+
* Returns triennial year 1, 2 or 3 based on this Hebrew year
|
|
4579
|
+
* @param {number} year Hebrew year
|
|
4580
|
+
* @return {number}
|
|
4581
|
+
*/
|
|
4582
|
+
|
|
4583
|
+
|
|
4584
|
+
static getYearNumber(year) {
|
|
4585
|
+
if (year < 5744) {
|
|
4586
|
+
throw new RangeError(`Invalid Triennial year ${year}`);
|
|
4587
|
+
}
|
|
4588
|
+
|
|
4589
|
+
return (year - 5744) % 3 + 1;
|
|
4590
|
+
}
|
|
4591
|
+
/**
|
|
4592
|
+
* Returns Hebrew year that this 3-year triennial cycle began
|
|
4593
|
+
* @param {number} year Hebrew year
|
|
4594
|
+
* @return {number}
|
|
4595
|
+
*/
|
|
4596
|
+
|
|
4597
|
+
|
|
4598
|
+
static getCycleStartYear(year) {
|
|
4599
|
+
return year - (this.getYearNumber(year) - 1);
|
|
4600
|
+
}
|
|
4601
|
+
/**
|
|
4602
|
+
* First, determine if a doubled parsha is read [T]ogether or [S]eparately
|
|
4603
|
+
* in each of the 3 years. Yields a pattern like 'SSS', 'STS', 'TTT', 'TTS'.
|
|
4604
|
+
* @private
|
|
4605
|
+
* @param {number} id
|
|
4606
|
+
* @return {string}
|
|
4607
|
+
*/
|
|
4608
|
+
|
|
4609
|
+
|
|
4610
|
+
getThreeYearPattern(id) {
|
|
4611
|
+
let pattern = '';
|
|
4612
|
+
|
|
4613
|
+
for (let yr = 0; yr <= 2; yr++) {
|
|
4614
|
+
let found = this.sedraArray.indexOf(-1 * id, this.bereshit[yr]);
|
|
4615
|
+
|
|
4616
|
+
if (found > this.bereshit[yr + 1]) {
|
|
4617
|
+
found = -1;
|
|
4618
|
+
}
|
|
4619
|
+
|
|
4620
|
+
const pat = found == -1 ? 'S' : 'T';
|
|
4621
|
+
pattern += pat;
|
|
4622
|
+
}
|
|
4623
|
+
|
|
4624
|
+
return pattern;
|
|
4625
|
+
}
|
|
4626
|
+
/**
|
|
4627
|
+
* @private
|
|
4628
|
+
*/
|
|
4629
|
+
|
|
4630
|
+
|
|
4631
|
+
calcVariationOptions() {
|
|
4632
|
+
const option = this.variationOptions = Object.create(null);
|
|
4633
|
+
doubled.forEach(id => {
|
|
4634
|
+
const pattern = this.getThreeYearPattern(id);
|
|
4635
|
+
const name = getDoubledName(id); // Next, look up the pattern in JSON to determine readings for each year.
|
|
4636
|
+
// For "all-together", use "Y" pattern to imply Y.1, Y.2, Y.3
|
|
4637
|
+
|
|
4638
|
+
const variation = pattern === 'TTT' ? 'Y' : triennialConfig[name].patterns[pattern];
|
|
4639
|
+
|
|
4640
|
+
if (typeof variation === 'undefined') {
|
|
4641
|
+
throw new Error(`Can't find pattern ${pattern} for ${name}, startYear=${this.startYear}`);
|
|
4642
|
+
}
|
|
4643
|
+
|
|
4644
|
+
const p1 = core.parshiot[id];
|
|
4645
|
+
const p2 = core.parshiot[id + 1];
|
|
4646
|
+
option[name] = option[p1] = option[p2] = variation;
|
|
4647
|
+
});
|
|
4648
|
+
}
|
|
4649
|
+
/**
|
|
4650
|
+
* @return {string}
|
|
4651
|
+
*/
|
|
4652
|
+
|
|
4653
|
+
|
|
4654
|
+
debug() {
|
|
4655
|
+
let str = `Triennial cycle started year ${this.startYear}\n`;
|
|
4656
|
+
doubled.forEach(id => {
|
|
4657
|
+
const pattern = this.getThreeYearPattern(id);
|
|
4658
|
+
const name = getDoubledName(id);
|
|
4659
|
+
const variation = this.variationOptions[name];
|
|
4660
|
+
str += ` ${name} ${pattern} (${variation})\n`;
|
|
4661
|
+
});
|
|
4662
|
+
return str;
|
|
4663
|
+
}
|
|
4664
|
+
/**
|
|
4665
|
+
* Builds a lookup table readings["Bereshit"][0], readings["Matot-Masei"][2]
|
|
4666
|
+
* @private
|
|
4667
|
+
* @param {Object} cycleOption
|
|
4668
|
+
* @return {Map<string,Object[]>}
|
|
4669
|
+
*/
|
|
4670
|
+
|
|
4671
|
+
|
|
4672
|
+
cycleReadings(cycleOption) {
|
|
4673
|
+
const readings = Object.create(null);
|
|
4674
|
+
core.parshiot.forEach(parsha => {
|
|
4675
|
+
readings[parsha] = Array(3);
|
|
4676
|
+
});
|
|
4677
|
+
readings[VEZOT_HABERAKHAH] = Array(3);
|
|
4678
|
+
doubled.map(getDoubledName).forEach(parsha => {
|
|
4679
|
+
readings[parsha] = Array(3);
|
|
4680
|
+
});
|
|
4681
|
+
|
|
4682
|
+
for (let yr = 0; yr <= 2; yr++) {
|
|
4683
|
+
this.cycleReadingsForYear(cycleOption, readings, yr);
|
|
4684
|
+
}
|
|
4685
|
+
|
|
4686
|
+
return readings;
|
|
4687
|
+
}
|
|
4688
|
+
/**
|
|
4689
|
+
* @private
|
|
4690
|
+
* @param {string} option
|
|
4691
|
+
* @param {Map<string,Object[]>} readings
|
|
4692
|
+
* @param {number} yr
|
|
4693
|
+
*/
|
|
4694
|
+
|
|
4695
|
+
|
|
4696
|
+
cycleReadingsForYear(option, readings, yr) {
|
|
4697
|
+
const startIdx = this.bereshit[yr];
|
|
4698
|
+
const endIdx = this.bereshit[yr + 1];
|
|
4699
|
+
|
|
4700
|
+
for (let i = startIdx; i < endIdx; i++) {
|
|
4701
|
+
const id = this.sedraArray[i];
|
|
4702
|
+
|
|
4703
|
+
if (typeof id !== 'number') {
|
|
4704
|
+
continue;
|
|
4705
|
+
}
|
|
4706
|
+
|
|
4707
|
+
const h = id < 0 ? getDoubledName(-id) : core.parshiot[id];
|
|
4708
|
+
const variationKey = isSometimesDoubled[id] ? option[h] : 'Y';
|
|
4709
|
+
const variation = variationKey + '.' + (yr + 1);
|
|
4710
|
+
const a = triennialAliyot[h][variation];
|
|
4711
|
+
|
|
4712
|
+
if (!a) {
|
|
4713
|
+
throw new Error(`can't find ${h} year ${yr} (variation ${variation})`);
|
|
4714
|
+
}
|
|
4715
|
+
|
|
4716
|
+
const aliyot = leyning.clone(a); // calculate numVerses for the subset of aliyot that don't cross chapter boundaries
|
|
4717
|
+
|
|
4718
|
+
Object.keys(aliyot).forEach(num => leyning.calculateNumVerses(aliyot[num]));
|
|
4719
|
+
readings[h][yr] = {
|
|
4720
|
+
aliyot,
|
|
4721
|
+
date: new core.HDate(this.firstSaturday + i * 7)
|
|
4722
|
+
};
|
|
4723
|
+
} // create links for doubled
|
|
4724
|
+
|
|
4725
|
+
|
|
4726
|
+
doubled.forEach(id => {
|
|
4727
|
+
const h = getDoubledName(id);
|
|
4728
|
+
const combined = readings[h][yr];
|
|
4729
|
+
const p1 = core.parshiot[id];
|
|
4730
|
+
const p2 = core.parshiot[id + 1];
|
|
4731
|
+
|
|
4732
|
+
if (combined) {
|
|
4733
|
+
readings[p1][yr] = readings[p2][yr] = {
|
|
4734
|
+
readTogether: h,
|
|
4735
|
+
date: combined.date
|
|
4736
|
+
};
|
|
4737
|
+
} else {
|
|
4738
|
+
readings[h][yr] = {
|
|
4739
|
+
readSeparately: true,
|
|
4740
|
+
date1: readings[p1][yr].date,
|
|
4741
|
+
date2: readings[p2][yr].date
|
|
4742
|
+
};
|
|
4743
|
+
}
|
|
4744
|
+
});
|
|
4745
|
+
const vezotAliyot = triennialAliyot[VEZOT_HABERAKHAH]['Y.1'];
|
|
4746
|
+
readings[VEZOT_HABERAKHAH][yr] = {
|
|
4747
|
+
aliyot: vezotAliyot,
|
|
4748
|
+
date: new core.HDate(23, core.months.TISHREI, this.startYear + yr)
|
|
4749
|
+
};
|
|
4750
|
+
}
|
|
4751
|
+
/**
|
|
4752
|
+
* Walks triennialConfig and builds lookup table for triennial aliyot
|
|
4753
|
+
* @private
|
|
4754
|
+
* @return {Object}
|
|
4755
|
+
*/
|
|
4756
|
+
|
|
4757
|
+
|
|
4758
|
+
static getTriennialAliyot() {
|
|
4759
|
+
const triennialAliyot = Object.create(null);
|
|
4760
|
+
const triennialAliyotAlt = Object.create(null); // build a lookup table so we don't have to follow num/variation/sameas
|
|
4761
|
+
|
|
4762
|
+
Object.keys(triennialConfig).forEach(parsha => {
|
|
4763
|
+
const value = triennialConfig[parsha];
|
|
4764
|
+
|
|
4765
|
+
if (typeof value !== 'object' || typeof value.book !== 'number') {
|
|
4766
|
+
throw new Error(`misconfiguration: ${parsha}`);
|
|
4767
|
+
}
|
|
4768
|
+
|
|
4769
|
+
const book = leyning.BOOK[value.book];
|
|
4770
|
+
triennialAliyot[parsha] = Triennial.resolveSameAs(parsha, book, value);
|
|
4771
|
+
|
|
4772
|
+
if (value.alt) {
|
|
4773
|
+
triennialAliyotAlt[parsha] = Triennial.resolveSameAs(parsha, book, value.alt);
|
|
4774
|
+
}
|
|
4775
|
+
}); // TODO: handle triennialAliyotAlt also
|
|
4776
|
+
|
|
4777
|
+
return triennialAliyot;
|
|
4778
|
+
}
|
|
4779
|
+
/**
|
|
4780
|
+
* Transforms input JSON with sameAs shortcuts like "D.2":"A.3" to
|
|
4781
|
+
* actual aliyot objects for a given variation/year
|
|
4782
|
+
* @private
|
|
4783
|
+
* @param {string} parsha
|
|
4784
|
+
* @param {string} book
|
|
4785
|
+
* @param {Object} triennial
|
|
4786
|
+
* @return {Object}
|
|
4787
|
+
*/
|
|
4788
|
+
|
|
4789
|
+
|
|
4790
|
+
static resolveSameAs(parsha, book, triennial) {
|
|
4791
|
+
const variations = triennial.years || triennial.variations;
|
|
4792
|
+
|
|
4793
|
+
if (typeof variations === 'undefined') {
|
|
4794
|
+
throw new Error(`Parashat ${parsha} has no years or variations`);
|
|
4795
|
+
} // first pass, copy only alyiot definitions from triennialConfig into lookup table
|
|
4796
|
+
|
|
4797
|
+
|
|
4798
|
+
const lookup = Object.create(null);
|
|
4799
|
+
Object.keys(variations).forEach(variation => {
|
|
4800
|
+
const aliyot = variations[variation];
|
|
4801
|
+
|
|
4802
|
+
if (typeof aliyot === 'object') {
|
|
4803
|
+
const dest = {};
|
|
4804
|
+
Object.keys(aliyot).forEach(num => {
|
|
4805
|
+
const src = aliyot[num];
|
|
4806
|
+
const reading = {
|
|
4807
|
+
k: book,
|
|
4808
|
+
b: src[0],
|
|
4809
|
+
e: src[1]
|
|
4810
|
+
};
|
|
4811
|
+
|
|
4812
|
+
if (src.v) {
|
|
4813
|
+
reading.v = src.v;
|
|
4814
|
+
}
|
|
4815
|
+
|
|
4816
|
+
dest[num] = reading;
|
|
4817
|
+
});
|
|
4818
|
+
lookup[variation] = dest;
|
|
4819
|
+
}
|
|
4820
|
+
}); // second pass to resolve sameas strings (to simplify later lookups)
|
|
4821
|
+
|
|
4822
|
+
Object.keys(variations).forEach(variation => {
|
|
4823
|
+
const aliyot = variations[variation];
|
|
4824
|
+
|
|
4825
|
+
if (typeof aliyot === 'string') {
|
|
4826
|
+
if (typeof lookup[aliyot] === 'undefined') {
|
|
4827
|
+
throw new Error(`Can't find source for ${parsha} ${variation} sameas=${aliyot}`);
|
|
4828
|
+
}
|
|
4829
|
+
|
|
4830
|
+
lookup[variation] = lookup[aliyot];
|
|
4831
|
+
}
|
|
4832
|
+
});
|
|
4833
|
+
return lookup;
|
|
4834
|
+
}
|
|
4835
|
+
|
|
4836
|
+
}
|
|
4837
|
+
|
|
4838
|
+
const __cache = Object.create(null);
|
|
4839
|
+
/**
|
|
4840
|
+
* Calculates the 3-year readings for a given year
|
|
4841
|
+
* @param {number} year Hebrew year
|
|
4842
|
+
* @return {Triennial}
|
|
4843
|
+
*/
|
|
4844
|
+
|
|
4845
|
+
|
|
4846
|
+
function getTriennial(year) {
|
|
4847
|
+
const cycleStartYear = Triennial.getCycleStartYear(year);
|
|
4848
|
+
const cached = __cache[cycleStartYear];
|
|
4849
|
+
|
|
4850
|
+
if (cached) {
|
|
4851
|
+
return cached;
|
|
4852
|
+
}
|
|
4853
|
+
|
|
4854
|
+
const tri = new Triennial(cycleStartYear);
|
|
4855
|
+
__cache[cycleStartYear] = tri;
|
|
4856
|
+
return tri;
|
|
4857
|
+
}
|
|
4858
|
+
/**
|
|
4859
|
+
* Looks up the triennial leyning for this Parashat HaShavua
|
|
4860
|
+
* @param {Event} ev
|
|
4861
|
+
* @return {TriennialAliyot} a map of aliyot 1-7 plus "M"
|
|
4862
|
+
*/
|
|
4863
|
+
|
|
4864
|
+
function getTriennialForParshaHaShavua(ev) {
|
|
4865
|
+
if (!ev instanceof core.Event) {
|
|
4866
|
+
throw new TypeError(`Bad event argument: ${ev}`);
|
|
4867
|
+
} else if (ev.getFlags() != core.flags.PARSHA_HASHAVUA) {
|
|
4868
|
+
throw new TypeError(`Event must be parsha hashavua: ${ev.getDesc()}`);
|
|
4869
|
+
}
|
|
4870
|
+
|
|
4871
|
+
const hd = ev.getDate();
|
|
4872
|
+
const hyear0 = hd.getFullYear();
|
|
4873
|
+
const parsha = ev.parsha; // When Nitzavim & Vayeilech are not combined, they should each be read in their entirety.
|
|
4874
|
+
// Vayeilech can occur immediately after RH, so back up one year to pick up
|
|
4875
|
+
// the tail end of previous 3-year cycle.
|
|
4876
|
+
|
|
4877
|
+
const p1 = parsha[0];
|
|
4878
|
+
const hyear = p1 === 'Vayeilech' && hd.getMonth() === core.months.TISHREI ? hyear0 - 1 : hyear0;
|
|
4879
|
+
const triennial = getTriennial(hyear);
|
|
4880
|
+
const startYear = triennial.getStartYear();
|
|
4881
|
+
const yearNum = hyear - startYear;
|
|
4882
|
+
const name = leyning.parshaToString(parsha); // untranslated
|
|
4883
|
+
|
|
4884
|
+
const reading = triennial.getReading(name, yearNum);
|
|
4885
|
+
|
|
4886
|
+
if (typeof reading !== 'object') {
|
|
4887
|
+
throw new ReferenceError(`Can't load reading for ${name} in ${hyear} (year number ${yearNum})`);
|
|
4888
|
+
}
|
|
4889
|
+
|
|
4890
|
+
const aliyotMap = shallowCopy({}, reading.aliyot); // possibly replace 7th aliyah and/or maftir
|
|
4891
|
+
|
|
4892
|
+
const reason = {};
|
|
4893
|
+
leyning.specialReadings(hd, false, aliyotMap, reason);
|
|
4894
|
+
Object.keys(reason).forEach(num => {
|
|
4895
|
+
const aliyah = aliyotMap[num];
|
|
4896
|
+
|
|
4897
|
+
if (typeof aliyah === 'object') {
|
|
4898
|
+
aliyah.reason = reason[num];
|
|
4899
|
+
}
|
|
4900
|
+
});
|
|
4901
|
+
reading.yearNum = yearNum;
|
|
4902
|
+
reading.aliyot = aliyotMap;
|
|
4903
|
+
const triHaft = getTriennialHaftara(parsha, yearNum);
|
|
4904
|
+
shallowCopy(reading, triHaft);
|
|
4905
|
+
return reading;
|
|
4906
|
+
}
|
|
4907
|
+
/**
|
|
4908
|
+
* Looks up the alternative triennial Haftara for a given parsha
|
|
4909
|
+
*
|
|
4910
|
+
* INSTRUCTIONS REGARDING DOUBLE PARSHIYOT
|
|
4911
|
+
*
|
|
4912
|
+
* In any 3 year sequence, in some years these parshiyot are read together
|
|
4913
|
+
* and in some they are read separately.
|
|
4914
|
+
* When separated: read the next haftarah of the parashah being read.
|
|
4915
|
+
* When together: when reading the first third, read the next haftarah
|
|
4916
|
+
* of the first parashah, when reading the latter two thirds, read the
|
|
4917
|
+
* next haftarah of the latter parashah
|
|
4918
|
+
* @private
|
|
4919
|
+
* @param {string[]} parsha
|
|
4920
|
+
* @param {number} yearNum 0, 1, or 2
|
|
4921
|
+
* @return {Object}
|
|
4922
|
+
*/
|
|
4923
|
+
|
|
4924
|
+
function getTriennialHaftara(parsha, yearNum) {
|
|
4925
|
+
const idx = parsha.length === 1 || yearNum === 0 ? 0 : 1;
|
|
4926
|
+
const name = parsha[idx];
|
|
4927
|
+
const triHaft = triennialHaft[name];
|
|
4928
|
+
const triHaft2 = triHaft === null || triHaft === void 0 ? void 0 : triHaft[yearNum + 1];
|
|
4929
|
+
|
|
4930
|
+
if (typeof triHaft2 === 'object') {
|
|
4931
|
+
const haft = leyning.cloneHaftara(triHaft2);
|
|
4932
|
+
return {
|
|
4933
|
+
haft: haft,
|
|
4934
|
+
haftara: leyning.makeSummaryFromParts(haft),
|
|
4935
|
+
haftaraNumV: leyning.sumVerses(haft)
|
|
4936
|
+
};
|
|
4937
|
+
}
|
|
4938
|
+
|
|
4939
|
+
return {};
|
|
4940
|
+
}
|
|
4941
|
+
|
|
4487
4942
|
/**
|
|
4488
4943
|
* @private
|
|
4489
4944
|
* @param {Event} ev
|
|
@@ -4529,7 +4984,7 @@ function eventsToClassicApi(events, options) {
|
|
|
4529
4984
|
*/
|
|
4530
4985
|
|
|
4531
4986
|
function eventToClassicApiObject(ev, options) {
|
|
4532
|
-
let leyning = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
4987
|
+
let leyning$1 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
|
|
4533
4988
|
const timed = Boolean(ev.eventTime);
|
|
4534
4989
|
const hd = ev.getDate();
|
|
4535
4990
|
const dt = hd.greg();
|
|
@@ -4576,20 +5031,20 @@ function eventToClassicApiObject(ev, options) {
|
|
|
4576
5031
|
}
|
|
4577
5032
|
|
|
4578
5033
|
if (!candles) {
|
|
4579
|
-
if (leyning) {
|
|
5034
|
+
if (leyning$1) {
|
|
4580
5035
|
const il = options.il;
|
|
4581
5036
|
const isParsha = mask === core.flags.PARSHA_HASHAVUA;
|
|
4582
|
-
const reading = isParsha ?
|
|
5037
|
+
const reading = isParsha ? leyning.getLeyningForParshaHaShavua(ev, il) : leyning.getLeyningForHoliday(ev, il);
|
|
4583
5038
|
|
|
4584
5039
|
if (reading) {
|
|
4585
5040
|
result.leyning = formatLeyningResult(reading);
|
|
4586
5041
|
const hyear = hd.getFullYear();
|
|
4587
5042
|
|
|
4588
5043
|
if (isParsha && !il && hyear >= 5745) {
|
|
4589
|
-
const triReading =
|
|
5044
|
+
const triReading = getTriennialForParshaHaShavua(ev);
|
|
4590
5045
|
|
|
4591
5046
|
if (triReading) {
|
|
4592
|
-
result.leyning.triennial = formatAliyot({}, triReading);
|
|
5047
|
+
result.leyning.triennial = formatAliyot({}, triReading.aliyot);
|
|
4593
5048
|
}
|
|
4594
5049
|
}
|
|
4595
5050
|
}
|
|
@@ -4656,13 +5111,13 @@ function formatAliyot(result, aliyot) {
|
|
|
4656
5111
|
|
|
4657
5112
|
if (typeof aliyah !== 'undefined') {
|
|
4658
5113
|
const k = num == 'M' ? 'maftir' : num;
|
|
4659
|
-
result[k] =
|
|
5114
|
+
result[k] = leyning.formatAliyahWithBook(aliyah);
|
|
4660
5115
|
}
|
|
4661
5116
|
});
|
|
4662
5117
|
return result;
|
|
4663
5118
|
}
|
|
4664
5119
|
/**
|
|
4665
|
-
* @param {
|
|
5120
|
+
* @param {Leyning} reading
|
|
4666
5121
|
* @return {Object}
|
|
4667
5122
|
*/
|
|
4668
5123
|
|
|
@@ -4736,34 +5191,7 @@ function getLinkAndGuid(ev, il, tzid, mainUrl, utmSource, utmMedium) {
|
|
|
4736
5191
|
|
|
4737
5192
|
return [link, guid];
|
|
4738
5193
|
}
|
|
4739
|
-
/**
|
|
4740
|
-
* @param {Event[]} events
|
|
4741
|
-
* @param {Location} location
|
|
4742
|
-
* @param {string} mainUrl
|
|
4743
|
-
* @param {string} selfUrl
|
|
4744
|
-
* @param {string} [lang] language such as 'he' (default 'en-US')
|
|
4745
|
-
* @param {boolean} [evPubDate] if true, use event time as pubDate (false uses lastBuildDate)
|
|
4746
|
-
* @return {string}
|
|
4747
|
-
*/
|
|
4748
|
-
|
|
4749
5194
|
|
|
4750
|
-
function eventsToRss(events, location, mainUrl, selfUrl) {
|
|
4751
|
-
let lang = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 'en-US';
|
|
4752
|
-
let evPubDate = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : true;
|
|
4753
|
-
const cityDescr = location.getName();
|
|
4754
|
-
const options = {
|
|
4755
|
-
location,
|
|
4756
|
-
mainUrl,
|
|
4757
|
-
selfUrl,
|
|
4758
|
-
lang,
|
|
4759
|
-
evPubDate,
|
|
4760
|
-
title: core.Locale.gettext('Shabbat') + " Times for ".concat(cityDescr),
|
|
4761
|
-
description: "Weekly Shabbat candle lighting times for ".concat(cityDescr),
|
|
4762
|
-
utmSource: 'shabbat1c',
|
|
4763
|
-
utmMedium: 'rss'
|
|
4764
|
-
};
|
|
4765
|
-
return eventsToRss2(events, options);
|
|
4766
|
-
}
|
|
4767
5195
|
const localeToLg = {
|
|
4768
5196
|
's': 'en',
|
|
4769
5197
|
'a': 'en',
|
|
@@ -4834,28 +5262,15 @@ function getPubDate(ev, evPubDate, evDate, lastBuildDate) {
|
|
|
4834
5262
|
|
|
4835
5263
|
|
|
4836
5264
|
function eventToRssItem2(ev, options) {
|
|
4837
|
-
return eventToRssItem(ev, options.evPubDate, options.lastBuildDate, options.dayFormat, options.location, options.mainUrl, options);
|
|
4838
|
-
}
|
|
4839
|
-
/**
|
|
4840
|
-
* @param {Event} ev
|
|
4841
|
-
* @param {boolean} evPubDate
|
|
4842
|
-
* @param {string} lastBuildDate
|
|
4843
|
-
* @param {Intl.DateTimeFormat} dayFormat
|
|
4844
|
-
* @param {Location} location
|
|
4845
|
-
* @param {string} mainUrl
|
|
4846
|
-
* @param {CalOptions} [options]
|
|
4847
|
-
* @return {string}
|
|
4848
|
-
*/
|
|
4849
|
-
|
|
4850
|
-
function eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainUrl, options) {
|
|
4851
5265
|
let subj = ev.render();
|
|
4852
5266
|
const evDate = ev.getDate().greg();
|
|
4853
|
-
const pubDate = getPubDate(ev, evPubDate, evDate, lastBuildDate);
|
|
5267
|
+
const pubDate = getPubDate(ev, options.evPubDate, evDate, options.lastBuildDate);
|
|
5268
|
+
const location = options.location;
|
|
4854
5269
|
const il = location ? location.getIsrael() : false;
|
|
4855
5270
|
const tzid = location ? location.getTzid() : 'UTC';
|
|
4856
5271
|
const utmSource = options && options.utmSource || 'shabbat1c';
|
|
4857
5272
|
const utmMedium = options && options.utmMedium || 'rss';
|
|
4858
|
-
const linkGuid = getLinkAndGuid(ev, il, tzid, mainUrl, utmSource, utmMedium);
|
|
5273
|
+
const linkGuid = getLinkAndGuid(ev, il, tzid, options.mainUrl, utmSource, utmMedium);
|
|
4859
5274
|
const link = linkGuid[0];
|
|
4860
5275
|
const guid = linkGuid[1];
|
|
4861
5276
|
const categories = getEventCategories(ev);
|
|
@@ -4880,6 +5295,7 @@ function eventToRssItem(ev, evPubDate, lastBuildDate, dayFormat, location, mainU
|
|
|
4880
5295
|
memo = ev.getFlags() & core.flags.PARSHA_HASHAVUA ? makeTorahMemoText(ev, il) : ev.memo || holidayDescription[ev.basename()];
|
|
4881
5296
|
}
|
|
4882
5297
|
|
|
5298
|
+
const dayFormat = options.dayFormat;
|
|
4883
5299
|
const description = memo || dayFormat.format(evDate);
|
|
4884
5300
|
const geoTags = cat0 == 'candles' ? "<geo:lat>".concat(location.getLatitude(), "</geo:lat>\n<geo:long>").concat(location.getLongitude(), "</geo:long>\n") : '';
|
|
4885
5301
|
return "<item>\n<title>".concat(subj, "</title>\n<link>").concat(link, "</link>\n<guid isPermaLink=\"false\">").concat(guid, "</guid>\n<description>").concat(description, "</description>\n<category>").concat(cat0, "</category>\n<pubDate>").concat(pubDate, "</pubDate>\n").concat(geoTags, "</item>\n");
|
|
@@ -4943,11 +5359,9 @@ exports.countryNames = countryNames;
|
|
|
4943
5359
|
exports.eventToClassicApiObject = eventToClassicApiObject;
|
|
4944
5360
|
exports.eventToCsv = eventToCsv;
|
|
4945
5361
|
exports.eventToFullCalendar = eventToFullCalendar;
|
|
4946
|
-
exports.eventToRssItem = eventToRssItem;
|
|
4947
5362
|
exports.eventToRssItem2 = eventToRssItem2;
|
|
4948
5363
|
exports.eventsToClassicApi = eventsToClassicApi;
|
|
4949
5364
|
exports.eventsToCsv = eventsToCsv;
|
|
4950
|
-
exports.eventsToRss = eventsToRss;
|
|
4951
5365
|
exports.eventsToRss2 = eventsToRss2;
|
|
4952
5366
|
exports.getCalendarTitle = getCalendarTitle;
|
|
4953
5367
|
exports.getDownloadFilename = getDownloadFilename;
|
|
@@ -4961,9 +5375,7 @@ exports.pad2 = pad2;
|
|
|
4961
5375
|
exports.pad4 = pad4;
|
|
4962
5376
|
exports.renderTitleWithoutTime = renderTitleWithoutTime;
|
|
4963
5377
|
exports.shouldRenderBrief = shouldRenderBrief;
|
|
4964
|
-
exports.timeZoneOffsetStr = timeZoneOffsetStr;
|
|
4965
5378
|
exports.toISOString = toISOString;
|
|
4966
|
-
exports.toISOStringWithTimezone = toISOStringWithTimezone;
|
|
4967
5379
|
|
|
4968
5380
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4969
5381
|
|